@inkeep/agents-manage-ui 0.0.0-dev-20251021180725 → 0.0.0-dev-20251021214723

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 (276) 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 +243 -189
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +6 -2
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +5 -5
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +2 -2
  7. package/.next/standalone/agents-manage-ui/.next/routes-manifest.json +38 -0
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +2 -2
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js.nft.json +1 -1
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js +2 -2
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js.nft.json +1 -1
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js.nft.json +1 -1
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js.nft.json +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js.nft.json +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +2 -2
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js.nft.json +1 -1
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -0
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js.nft.json +1 -0
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -0
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -0
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js.nft.json +1 -0
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -0
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +2 -0
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js.nft.json +1 -0
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -0
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -0
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js.nft.json +1 -0
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -0
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js.nft.json +1 -1
  82. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  83. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  84. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js.nft.json +1 -1
  85. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  87. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js.nft.json +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  89. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  90. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  92. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +3 -3
  93. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  96. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  98. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  99. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js.nft.json +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  101. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  102. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  103. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  105. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +10 -10
  106. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-preview/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  108. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  110. package/.next/standalone/agents-manage-ui/.next/server/app/page.js.nft.json +1 -1
  111. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  112. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +6 -2
  113. package/.next/standalone/agents-manage-ui/.next/server/chunks/{7953.js → 1653.js} +2 -2
  114. package/.next/standalone/agents-manage-ui/.next/server/chunks/1735.js +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/server/chunks/2848.js +123 -0
  116. package/.next/standalone/agents-manage-ui/.next/server/chunks/{4414.js → 2912.js} +1 -1
  117. package/.next/standalone/agents-manage-ui/.next/server/chunks/2949.js +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/server/chunks/3468.js +1 -1
  119. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  120. package/.next/standalone/agents-manage-ui/.next/server/chunks/3948.js +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/server/chunks/3967.js +1 -1
  122. package/.next/standalone/agents-manage-ui/.next/server/chunks/4605.js +1 -1
  123. package/.next/standalone/agents-manage-ui/.next/server/chunks/4629.js +1 -1
  124. package/.next/standalone/agents-manage-ui/.next/server/chunks/4944.js +1 -0
  125. package/.next/standalone/agents-manage-ui/.next/server/chunks/5330.js +1 -0
  126. package/.next/standalone/agents-manage-ui/.next/server/chunks/5343.js +196 -0
  127. package/.next/standalone/agents-manage-ui/.next/server/chunks/{9222.js → 5478.js} +2 -2
  128. package/.next/standalone/agents-manage-ui/.next/server/chunks/5732.js +1 -1
  129. package/.next/standalone/agents-manage-ui/.next/server/chunks/5781.js +1 -14
  130. package/.next/standalone/agents-manage-ui/.next/server/chunks/6035.js +1 -1
  131. package/.next/standalone/agents-manage-ui/.next/server/chunks/6334.js +1 -1
  132. package/.next/standalone/agents-manage-ui/.next/server/chunks/6721.js +4 -4
  133. package/.next/standalone/agents-manage-ui/.next/server/chunks/7539.js +1 -0
  134. package/.next/standalone/agents-manage-ui/.next/server/chunks/7569.js +1 -0
  135. package/.next/standalone/agents-manage-ui/.next/server/chunks/7709.js +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/server/chunks/7711.js +1 -1
  137. package/.next/standalone/agents-manage-ui/.next/server/chunks/7988.js +2 -2
  138. package/.next/standalone/agents-manage-ui/.next/server/chunks/7990.js +1 -1
  139. package/.next/standalone/agents-manage-ui/.next/server/chunks/848.js +14 -0
  140. package/.next/standalone/agents-manage-ui/.next/server/chunks/8541.js +1 -0
  141. package/.next/standalone/agents-manage-ui/.next/server/chunks/8860.js +1 -1
  142. package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
  143. package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
  144. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  145. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  146. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  147. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  148. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-7cdffb43af522e3b.js +1 -0
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/141-2194354efdb43c90.js +1 -0
  151. package/.next/standalone/agents-manage-ui/.next/static/chunks/16631-3e83016992303b73.js +123 -0
  152. package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-9a62532499d9cbb2.js +1 -0
  153. package/.next/standalone/agents-manage-ui/.next/static/chunks/{21222.e4e7c46ec8877cf5.js → 21222.fe424c5b7428fcea.js} +1 -1
  154. package/.next/standalone/agents-manage-ui/.next/static/chunks/{50285-9138bb26e62daef6.js → 23610-476f03c272ca3950.js} +1 -1
  155. package/.next/standalone/agents-manage-ui/.next/static/chunks/{23650-279b019c0d10672a.js → 23650-2d38d02faab9fd7e.js} +1 -1
  156. package/.next/standalone/agents-manage-ui/.next/static/chunks/25672-93f2aa7eb2408291.js +1 -0
  157. package/.next/standalone/agents-manage-ui/.next/static/chunks/40225-e4654bb3fceab03b.js +1 -0
  158. package/.next/standalone/agents-manage-ui/.next/static/chunks/53120-a72be36d572c45b3.js +1 -0
  159. package/.next/standalone/agents-manage-ui/.next/static/chunks/54244-d5b0e0495a8ba6ff.js +1 -0
  160. package/.next/standalone/agents-manage-ui/.next/static/chunks/{74811-ceebff5ae7c61a66.js → 57812-14885c4aa73b748e.js} +1 -1
  161. package/.next/standalone/agents-manage-ui/.next/static/chunks/6744-1a1e01a442cf2b69.js +1 -0
  162. package/.next/standalone/agents-manage-ui/.next/static/chunks/{87193-3d26f0490b9b0a29.js → 76125-20d7ba477878f956.js} +3 -3
  163. package/.next/standalone/agents-manage-ui/.next/static/chunks/88831-65d25c60ff6a0d1e.js +1 -0
  164. package/.next/standalone/agents-manage-ui/.next/static/chunks/{55744-14f65637fb7140bb.js → 91079-1e455b416cbf2d97.js} +1 -1
  165. package/.next/standalone/agents-manage-ui/.next/static/chunks/99458-561dd09c8e46e93b.js +2 -0
  166. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-559a0e2feb9d1b88.js → page-45c97fa0fc22d717.js} +1 -1
  167. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/{page-e4badb90e08fca0e.js → page-69bd6def1fdced3f.js} +1 -1
  168. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-fc3cc8358eba1dcf.js +1 -0
  169. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-eb952f1ed869c550.js +1 -0
  170. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-30078150a76a218a.js +1 -0
  171. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-90279083dc616fd4.js +1 -0
  172. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/{page-4fd992b333ee8376.js → page-d79677532c8ae190.js} +1 -1
  173. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-d4178e9e1916d13a.js → page-5e407c2230a27710.js} +1 -1
  174. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-184c20fe54ac13a0.js +1 -0
  175. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-cd615e6939889e58.js → page-1161f1b034a30bec.js} +1 -1
  176. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-abe719d4143fe6d0.js +1 -0
  177. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-4b5c069faaff8bd6.js +1 -0
  178. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-b157591aa308e700.js +1 -0
  179. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-8039ddab76f9faaf.js → page-35dce9d10dc6c3a3.js} +1 -1
  180. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-a5d83c3633ab50e7.js +1 -0
  181. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page-ec2d6dba69b9f4c6.js +1 -0
  182. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-3e00507c258a14b0.js +1 -0
  183. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-ec5bb6206fffe16f.js +1 -0
  184. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-00d3bd4e0e0283ca.js → page-c990397341b90672.js} +1 -1
  185. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-434ec2dcf5788eef.js +1 -0
  186. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-d174ad393f08c235.js → page-bf7834a30778ca16.js} +1 -1
  187. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-c378465695b7fcbd.js → page-1d6968e16c3dd151.js} +1 -1
  188. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-a8f8410720a5818c.js +1 -0
  189. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-e1b396ac418b8a24.js +1 -0
  190. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-c89d56219688d058.js +1 -0
  191. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-01f63220f21c7cfb.js +1 -0
  192. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-683fe7e0cf3904d3.js +1 -0
  193. package/.next/standalone/agents-manage-ui/.next/static/chunks/{d834c995-72666c5916d3b86e.js → d834c995-fff42da332d4f84d.js} +1 -1
  194. package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-d65a3369c23bc1a6.js → webpack-56287459cbc030fa.js} +1 -1
  195. package/.next/standalone/agents-manage-ui/.next/static/css/5e4932a0101d6186.css +1 -0
  196. package/.next/standalone/agents-manage-ui/package.json +1 -1
  197. package/.next/standalone/packages/agents-core/package.json +1 -1
  198. package/package.json +4 -4
  199. package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.tsx +18 -10
  200. package/src/app/[tenantId]/projects/[projectId]/agents/new/page.tsx +13 -7
  201. package/src/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.tsx +86 -0
  202. package/src/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.tsx +52 -0
  203. package/src/app/[tenantId]/projects/[projectId]/external-agents/new/page.tsx +43 -0
  204. package/src/app/[tenantId]/projects/[projectId]/external-agents/page.tsx +64 -0
  205. package/src/components/agent/agent.tsx +43 -1
  206. package/src/components/agent/configuration/node-types.tsx +18 -5
  207. package/src/components/agent/node-library/node-library.tsx +1 -1
  208. package/src/components/agent/nodes/external-agent-node.tsx +8 -12
  209. package/src/components/agent/nodes/{mcp-placeholder-node.tsx → placeholder-node.tsx} +8 -4
  210. package/src/components/agent/sidepane/edges/edge-editor.tsx +18 -3
  211. package/src/components/agent/sidepane/nodes/external-agent-node-editor.tsx +83 -18
  212. package/src/components/agent/sidepane/nodes/external-agent-selector/external-agent-item.tsx +39 -0
  213. package/src/components/agent/sidepane/nodes/external-agent-selector/external-agent-selector.tsx +114 -0
  214. package/src/components/agent/sidepane/nodes/external-agent-selector/loading.tsx +26 -0
  215. package/src/components/agent/sidepane/nodes/function-tool-node-editor.tsx +11 -1
  216. package/src/components/agent/sidepane/nodes/mcp-node-editor.tsx +15 -1
  217. package/src/components/agent/sidepane/nodes/sub-agent-node-editor.tsx +24 -5
  218. package/src/components/agent/sidepane/sidepane.tsx +9 -1
  219. package/src/components/credentials/credential-resources-list.tsx +146 -0
  220. package/src/components/credentials/views/credential-form-validation.ts +1 -0
  221. package/src/components/credentials/views/credential-form.tsx +96 -5
  222. package/src/components/credentials/views/edit-credential-form.tsx +4 -3
  223. package/src/components/credentials/views/new-credential-form.tsx +13 -0
  224. package/src/components/data-components/preview/component-preview-generator.tsx +1 -1
  225. package/src/components/external-agents/external-agent-item.tsx +169 -0
  226. package/src/components/external-agents/external-agents-list.tsx +29 -0
  227. package/src/components/external-agents/form/external-agent-form.tsx +146 -0
  228. package/src/components/external-agents/form/validation.ts +10 -0
  229. package/src/components/external-agents/view-external-agent-details.tsx +129 -0
  230. package/src/components/sidebar-nav/sidebar-nav.tsx +6 -0
  231. package/src/components/ui/button.tsx +2 -0
  232. package/src/features/agent/domain/deserialize.ts +144 -111
  233. package/src/features/agent/domain/serialize.ts +142 -77
  234. package/src/features/agent/state/use-agent-store.ts +27 -3
  235. package/src/hooks/use-node-editor.ts +6 -1
  236. package/src/lib/actions/agent-full.ts +1 -1
  237. package/src/lib/actions/external-agents.ts +73 -0
  238. package/src/lib/api/credentials.ts +2 -0
  239. package/src/lib/api/external-agents.ts +121 -0
  240. package/src/lib/types/agent-full.ts +4 -2
  241. package/src/lib/types/external-agents.ts +2 -0
  242. package/src/lib/utils/external-agent-utils.ts +33 -0
  243. package/.next/standalone/agents-manage-ui/.next/server/chunks/3717.js +0 -1
  244. package/.next/standalone/agents-manage-ui/.next/server/chunks/4529.js +0 -123
  245. package/.next/standalone/agents-manage-ui/.next/server/chunks/6358.js +0 -1
  246. package/.next/standalone/agents-manage-ui/.next/server/chunks/6818.js +0 -1
  247. package/.next/standalone/agents-manage-ui/.next/server/chunks/6870.js +0 -1
  248. package/.next/standalone/agents-manage-ui/.next/server/chunks/8162.js +0 -1
  249. package/.next/standalone/agents-manage-ui/.next/server/chunks/891.js +0 -196
  250. package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-851660ac17cd9821.js +0 -1
  251. package/.next/standalone/agents-manage-ui/.next/static/chunks/16631-e313c6f18339824b.js +0 -123
  252. package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-5c45452d86333b49.js +0 -1
  253. package/.next/standalone/agents-manage-ui/.next/static/chunks/37191-b9540cf50a41d10d.js +0 -1
  254. package/.next/standalone/agents-manage-ui/.next/static/chunks/50324-6c2b8627fccd09fe.js +0 -1
  255. package/.next/standalone/agents-manage-ui/.next/static/chunks/61089-ddd70e2d283804f5.js +0 -1
  256. package/.next/standalone/agents-manage-ui/.next/static/chunks/63209-c85b701265732b38.js +0 -1
  257. package/.next/standalone/agents-manage-ui/.next/static/chunks/86507-340cc6112e9218de.js +0 -2
  258. package/.next/standalone/agents-manage-ui/.next/static/chunks/87817-86c2e7dd6f1d2a25.js +0 -1
  259. package/.next/standalone/agents-manage-ui/.next/static/chunks/88831-baf97ca962c66e41.js +0 -1
  260. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-fd4931a4dce7bbcc.js +0 -1
  261. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-e6a0d040757d714c.js +0 -1
  262. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-2ef30d1c4a08bf1c.js +0 -1
  263. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-2dc9232570ef8f79.js +0 -1
  264. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-8030a774459e9505.js +0 -1
  265. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-e3410fb65d776373.js +0 -1
  266. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-122d64932f58f736.js +0 -1
  267. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-0a2a574c78526792.js +0 -1
  268. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-626d879ae1110842.js +0 -1
  269. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-8333b2227270a61e.js +0 -1
  270. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-3b222f3ae3101ba8.js +0 -1
  271. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-dd16edcb356553d6.js +0 -1
  272. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-7d8c096775d48dd2.js +0 -1
  273. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-460655c327b24cc4.js +0 -1
  274. package/.next/standalone/agents-manage-ui/.next/static/css/86b7c14b860f21e3.css +0 -1
  275. /package/.next/standalone/agents-manage-ui/.next/static/{XDBVQcoBx1lmqIF-dFkO9 → ZcFW2mSreb3TZKn3GQBio}/_buildManifest.js +0 -0
  276. /package/.next/standalone/agents-manage-ui/.next/static/{XDBVQcoBx1lmqIF-dFkO9 → ZcFW2mSreb3TZKn3GQBio}/_ssgManifest.js +0 -0
@@ -0,0 +1,86 @@
1
+ import FullPageError from '@/components/errors/full-page-error';
2
+ import { BodyTemplate } from '@/components/layout/body-template';
3
+ import { MainContent } from '@/components/layout/main-content';
4
+ import { ExternalAgentForm } from '@/components/external-agents/form/external-agent-form';
5
+ import type { ExternalAgentFormData } from '@/components/external-agents/form/validation';
6
+ import { type Credential, fetchCredentials } from '@/lib/api/credentials';
7
+ import { fetchExternalAgent } from '@/lib/api/external-agents';
8
+ import type { ExternalAgent } from '@/lib/types/external-agents';
9
+
10
+ interface EditExternalAgentPageProps {
11
+ params: Promise<{ externalAgentId: string; tenantId: string; projectId: string }>;
12
+ }
13
+
14
+ async function EditExternalAgentPage({ params }: EditExternalAgentPageProps) {
15
+ const { externalAgentId, tenantId, projectId } = await params;
16
+
17
+ // Fetch both in parallel with individual error handling
18
+ const [externalAgentResult, credentialsResult] = await Promise.allSettled([
19
+ fetchExternalAgent(tenantId, projectId, externalAgentId),
20
+ fetchCredentials(tenantId, projectId),
21
+ ]);
22
+
23
+ // Handle external agent result (required)
24
+ let externalAgent: ExternalAgent;
25
+ if (externalAgentResult.status === 'fulfilled') {
26
+ externalAgent = externalAgentResult.value;
27
+ } else {
28
+ console.error('Failed to load external agent:', externalAgentResult.reason);
29
+ return (
30
+ <FullPageError
31
+ error={externalAgentResult.reason as Error}
32
+ link={`/${tenantId}/projects/${projectId}/external-agents`}
33
+ linkText="Back to external agents"
34
+ context="External agent"
35
+ />
36
+ );
37
+ }
38
+
39
+ // Handle credentials result (optional - fallback to empty array)
40
+ let credentials: Credential[] = [];
41
+ if (credentialsResult.status === 'fulfilled') {
42
+ credentials = credentialsResult.value;
43
+ } else {
44
+ console.error('Failed to load credentials:', credentialsResult.reason);
45
+ // Continue without credentials
46
+ }
47
+
48
+ // Convert ExternalAgent to ExternalAgentFormData format
49
+ const initialFormData: ExternalAgentFormData = {
50
+ name: externalAgent.name,
51
+ description: externalAgent.description || '',
52
+ baseUrl: externalAgent.baseUrl,
53
+ credentialReferenceId: externalAgent.credentialReferenceId || 'none',
54
+ };
55
+
56
+ return (
57
+ <BodyTemplate
58
+ breadcrumbs={[
59
+ {
60
+ label: 'External agents',
61
+ href: `/${tenantId}/projects/${projectId}/external-agents`,
62
+ },
63
+ {
64
+ label: externalAgent.name,
65
+ href: `/${tenantId}/projects/${projectId}/external-agents/${externalAgentId}`,
66
+ },
67
+ { label: 'Edit' },
68
+ ]}
69
+ >
70
+ <MainContent>
71
+ <div className="max-w-2xl mx-auto py-4">
72
+ <ExternalAgentForm
73
+ initialData={initialFormData}
74
+ mode="update"
75
+ externalAgent={externalAgent}
76
+ credentials={credentials}
77
+ tenantId={tenantId}
78
+ projectId={projectId}
79
+ />
80
+ </div>
81
+ </MainContent>
82
+ </BodyTemplate>
83
+ );
84
+ }
85
+
86
+ export default EditExternalAgentPage;
@@ -0,0 +1,52 @@
1
+ import FullPageError from '@/components/errors/full-page-error';
2
+ import { BodyTemplate } from '@/components/layout/body-template';
3
+ import { MainContent } from '@/components/layout/main-content';
4
+ import { ViewExternalAgentDetails } from '@/components/external-agents/view-external-agent-details';
5
+ import { fetchExternalAgent } from '@/lib/api/external-agents';
6
+
7
+ interface ExternalAgentPageProps {
8
+ params: Promise<{ externalAgentId: string; tenantId: string; projectId: string }>;
9
+ }
10
+
11
+ async function ExternalAgentPage({ params }: ExternalAgentPageProps) {
12
+ const { externalAgentId, tenantId, projectId } = await params;
13
+
14
+ let externalAgent: Awaited<ReturnType<typeof fetchExternalAgent>>;
15
+ try {
16
+ externalAgent = await fetchExternalAgent(tenantId, projectId, externalAgentId);
17
+ } catch (error) {
18
+ return (
19
+ <FullPageError
20
+ error={error as Error}
21
+ link={`/${tenantId}/projects/${projectId}/external-agents`}
22
+ linkText="Back to external agents"
23
+ context="External agent"
24
+ />
25
+ );
26
+ }
27
+
28
+ return (
29
+ <BodyTemplate
30
+ breadcrumbs={[
31
+ {
32
+ label: 'External agents',
33
+ href: `/${tenantId}/projects/${projectId}/external-agents`,
34
+ },
35
+ {
36
+ label: externalAgent.name,
37
+ href: `/${tenantId}/projects/${projectId}/external-agents/${externalAgentId}`,
38
+ },
39
+ ]}
40
+ >
41
+ <MainContent>
42
+ <ViewExternalAgentDetails
43
+ externalAgent={externalAgent}
44
+ tenantId={tenantId}
45
+ projectId={projectId}
46
+ />
47
+ </MainContent>
48
+ </BodyTemplate>
49
+ );
50
+ }
51
+
52
+ export default ExternalAgentPage;
@@ -0,0 +1,43 @@
1
+ import { BodyTemplate } from '@/components/layout/body-template';
2
+ import { MainContent } from '@/components/layout/main-content';
3
+ import { ExternalAgentForm } from '@/components/external-agents/form/external-agent-form';
4
+ import { type Credential, fetchCredentials } from '@/lib/api/credentials';
5
+
6
+ async function NewExternalAgentPage({
7
+ params,
8
+ }: {
9
+ params: Promise<{ tenantId: string; projectId: string }>;
10
+ }) {
11
+ const { tenantId, projectId } = await params;
12
+ let credentials: Credential[] = [];
13
+ try {
14
+ credentials = await fetchCredentials(tenantId, projectId);
15
+ } catch (error) {
16
+ console.error('Failed to load credentials:', error);
17
+ }
18
+
19
+ return (
20
+ <BodyTemplate
21
+ breadcrumbs={[
22
+ {
23
+ label: 'External agents',
24
+ href: `/${tenantId}/projects/${projectId}/external-agents`,
25
+ },
26
+ { label: 'New' },
27
+ ]}
28
+ >
29
+ <MainContent>
30
+ <div className="max-w-2xl mx-auto py-4">
31
+ <ExternalAgentForm
32
+ mode="create"
33
+ credentials={credentials}
34
+ tenantId={tenantId}
35
+ projectId={projectId}
36
+ />
37
+ </div>
38
+ </MainContent>
39
+ </BodyTemplate>
40
+ );
41
+ }
42
+
43
+ export default NewExternalAgentPage;
@@ -0,0 +1,64 @@
1
+ import { Plus } from 'lucide-react';
2
+ import Link from 'next/link';
3
+ import FullPageError from '@/components/errors/full-page-error';
4
+ import { BodyTemplate } from '@/components/layout/body-template';
5
+ import EmptyState from '@/components/layout/empty-state';
6
+ import { MainContent } from '@/components/layout/main-content';
7
+ import { PageHeader } from '@/components/layout/page-header';
8
+ import { ExternalAgentsList } from '@/components/external-agents/external-agents-list';
9
+ import { Button } from '@/components/ui/button';
10
+ import { fetchExternalAgents } from '@/lib/api/external-agents';
11
+
12
+ const externalAgentsDescription =
13
+ 'Create external agents that can be delegated to from your internal agents.';
14
+
15
+ async function ExternalAgentsPage({
16
+ params,
17
+ }: {
18
+ params: Promise<{ tenantId: string; projectId: string }>;
19
+ }) {
20
+ const { tenantId, projectId } = await params;
21
+
22
+ let externalAgents: Awaited<ReturnType<typeof fetchExternalAgents>>;
23
+ try {
24
+ externalAgents = await fetchExternalAgents(tenantId, projectId);
25
+ } catch (error) {
26
+ return <FullPageError error={error as Error} context="External agents" />;
27
+ }
28
+
29
+ return (
30
+ <BodyTemplate breadcrumbs={[{ label: 'External agents' }]}>
31
+ <MainContent className="min-h-full">
32
+ {externalAgents.length > 0 ? (
33
+ <>
34
+ <PageHeader
35
+ title="External agents"
36
+ description={externalAgentsDescription}
37
+ action={
38
+ <Button asChild>
39
+ <Link
40
+ href={`/${tenantId}/projects/${projectId}/external-agents/new`}
41
+ className="flex items-center gap-2"
42
+ >
43
+ <Plus className="size-4" />
44
+ New external agent
45
+ </Link>
46
+ </Button>
47
+ }
48
+ />
49
+ <ExternalAgentsList externalAgents={externalAgents} />
50
+ </>
51
+ ) : (
52
+ <EmptyState
53
+ title="No external agents yet."
54
+ description={externalAgentsDescription}
55
+ link={`/${tenantId}/projects/${projectId}/external-agents/new`}
56
+ linkText="Create external agent"
57
+ />
58
+ )}
59
+ </MainContent>
60
+ </BodyTemplate>
61
+ );
62
+ }
63
+
64
+ export default ExternalAgentsPage;
@@ -48,9 +48,21 @@ export type AgentToolConfig = {
48
48
  headers?: Record<string, string>;
49
49
  };
50
50
 
51
+ export type SubAgentExternalAgentConfig = {
52
+ externalAgentId: string;
53
+ headers?: Record<string, string>;
54
+ };
55
+
51
56
  // AgentToolConfigLookup: subAgentId -> relationshipId -> config
52
57
  export type AgentToolConfigLookup = Record<string, Record<string, AgentToolConfig>>;
53
58
 
59
+ // SubAgentExternalAgentConfigLookup: subAgentId -> relationshipId -> config
60
+ export type SubAgentExternalAgentConfigLookup = Record<
61
+ string,
62
+ Record<string, SubAgentExternalAgentConfig>
63
+ >;
64
+
65
+ import type { ExternalAgent } from '@/lib/api/external-agents';
54
66
  import { EdgeType, edgeTypes, initialEdges } from './configuration/edge-types';
55
67
  import {
56
68
  agentNodeSourceHandleId,
@@ -81,6 +93,7 @@ interface AgentProps {
81
93
  artifactComponentLookup?: Record<string, ArtifactComponent>;
82
94
  toolLookup?: Record<string, MCPTool>;
83
95
  credentialLookup?: Record<string, Credential>;
96
+ externalAgentLookup?: Record<string, ExternalAgent>;
84
97
  }
85
98
 
86
99
  function Flow({
@@ -89,6 +102,7 @@ function Flow({
89
102
  artifactComponentLookup = {},
90
103
  toolLookup = {},
91
104
  credentialLookup = {},
105
+ externalAgentLookup = {},
92
106
  }: AgentProps) {
93
107
  const [showPlayground, setShowPlayground] = useState(false);
94
108
  const router = useRouter();
@@ -193,6 +207,28 @@ function Flow({
193
207
  return lookup;
194
208
  }, [agent?.subAgents]);
195
209
 
210
+ const subAgentExternalAgentConfigLookup = useMemo((): SubAgentExternalAgentConfigLookup => {
211
+ if (!agent?.subAgents) return {} as SubAgentExternalAgentConfigLookup;
212
+ const lookup: SubAgentExternalAgentConfigLookup = {};
213
+ Object.entries(agent.subAgents).forEach(([subAgentId, agentData]) => {
214
+ if ('canDelegateTo' in agentData && agentData.canDelegateTo) {
215
+ const externalAgentConfigs: Record<string, SubAgentExternalAgentConfig> = {};
216
+ agentData.canDelegateTo
217
+ .filter((delegate) => typeof delegate === 'object' && 'externalAgentId' in delegate)
218
+ .forEach((delegate) => {
219
+ externalAgentConfigs[delegate.externalAgentId] = {
220
+ externalAgentId: delegate.externalAgentId,
221
+ headers: delegate.headers ?? undefined,
222
+ };
223
+ });
224
+ if (Object.keys(externalAgentConfigs).length > 0) {
225
+ lookup[subAgentId] = externalAgentConfigs;
226
+ }
227
+ }
228
+ });
229
+ return lookup;
230
+ }, [agent?.subAgents]);
231
+
196
232
  const {
197
233
  screenToFlowPosition,
198
234
  updateNodeData,
@@ -564,7 +600,8 @@ function Flow({
564
600
  metadata,
565
601
  dataComponentLookup,
566
602
  artifactComponentLookup,
567
- agentToolConfigLookup
603
+ agentToolConfigLookup,
604
+ subAgentExternalAgentConfigLookup
568
605
  );
569
606
 
570
607
  const functionToolNodeMap = new Map<string, string>();
@@ -691,6 +728,8 @@ function Flow({
691
728
  setErrors,
692
729
  agentToolConfigLookup,
693
730
  toolLookup,
731
+ subAgentExternalAgentConfigLookup,
732
+ externalAgentLookup,
694
733
  ]);
695
734
 
696
735
  useEffect(() => {
@@ -928,6 +967,7 @@ function Flow({
928
967
  dataComponentLookup={dataComponentLookup}
929
968
  artifactComponentLookup={artifactComponentLookup}
930
969
  agentToolConfigLookup={agentToolConfigLookup}
970
+ subAgentExternalAgentConfigLookup={subAgentExternalAgentConfigLookup}
931
971
  credentialLookup={credentialLookup}
932
972
  />
933
973
  {showPlayground && agent?.id && (
@@ -950,6 +990,7 @@ export function Agent({
950
990
  artifactComponentLookup,
951
991
  toolLookup,
952
992
  credentialLookup,
993
+ externalAgentLookup,
953
994
  }: AgentProps) {
954
995
  return (
955
996
  <ReactFlowProvider>
@@ -959,6 +1000,7 @@ export function Agent({
959
1000
  artifactComponentLookup={artifactComponentLookup}
960
1001
  toolLookup={toolLookup}
961
1002
  credentialLookup={credentialLookup}
1003
+ externalAgentLookup={externalAgentLookup}
962
1004
  />
963
1005
  </ReactFlowProvider>
964
1006
  );
@@ -1,8 +1,8 @@
1
- import { Bot, BotMessageSquare, Code, Hammer } from 'lucide-react';
1
+ import { Bot, Code, Globe, Hammer } from 'lucide-react';
2
2
  import { ExternalAgentNode } from '../nodes/external-agent-node';
3
3
  import { FunctionToolNode } from '../nodes/function-tool-node';
4
4
  import { MCPNode } from '../nodes/mcp-node';
5
- import { MCPPlaceholderNode } from '../nodes/mcp-placeholder-node';
5
+ import { PlaceholderNode } from '../nodes/placeholder-node';
6
6
  import { SubAgentNode } from '../nodes/sub-agent-node';
7
7
  import type { AgentModels } from './agent-types';
8
8
 
@@ -11,6 +11,7 @@ interface NodeData {
11
11
  isDefault?: boolean;
12
12
  subAgentId?: string | null; // Optional for MCP nodes
13
13
  relationshipId?: string | null; // Optional for MCP nodes
14
+ type?: 'mcp-placeholder' | 'external-agent-placeholder'; // Optional for placeholder nodes
14
15
  }
15
16
 
16
17
  import type { SubAgentStopWhen } from '@inkeep/agents-core/client-exports';
@@ -48,7 +49,7 @@ export interface ExternalAgentNodeData extends Record<string, unknown> {
48
49
  name: string;
49
50
  description?: string;
50
51
  baseUrl: string;
51
- headers: string;
52
+ relationshipId?: string | null;
52
53
  credentialReferenceId?: string | null;
53
54
  }
54
55
 
@@ -69,6 +70,7 @@ export interface FunctionToolNodeData extends Record<string, unknown> {
69
70
  export enum NodeType {
70
71
  SubAgent = 'agent',
71
72
  ExternalAgent = 'external-agent',
73
+ ExternalAgentPlaceholder = 'external-agent-placeholder',
72
74
  MCP = 'mcp',
73
75
  MCPPlaceholder = 'mcp-placeholder',
74
76
  FunctionTool = 'function-tool',
@@ -77,8 +79,9 @@ export enum NodeType {
77
79
  export const nodeTypes = {
78
80
  [NodeType.SubAgent]: SubAgentNode,
79
81
  [NodeType.ExternalAgent]: ExternalAgentNode,
82
+ [NodeType.ExternalAgentPlaceholder]: PlaceholderNode,
80
83
  [NodeType.MCP]: MCPNode,
81
- [NodeType.MCPPlaceholder]: MCPPlaceholderNode,
84
+ [NodeType.MCPPlaceholder]: PlaceholderNode,
82
85
  [NodeType.FunctionTool]: FunctionToolNode,
83
86
  };
84
87
 
@@ -95,6 +98,10 @@ export const newNodeDefaults: Record<keyof typeof nodeTypes, NodeData> = {
95
98
  [NodeType.ExternalAgent]: {
96
99
  name: '',
97
100
  },
101
+ [NodeType.ExternalAgentPlaceholder]: {
102
+ name: 'Select external agent',
103
+ type: 'external-agent-placeholder',
104
+ },
98
105
  [NodeType.MCP]: {
99
106
  name: 'MCP',
100
107
  subAgentId: null,
@@ -102,6 +109,7 @@ export const newNodeDefaults: Record<keyof typeof nodeTypes, NodeData> = {
102
109
  },
103
110
  [NodeType.MCPPlaceholder]: {
104
111
  name: 'Select MCP server',
112
+ type: 'mcp-placeholder',
105
113
  },
106
114
  [NodeType.FunctionTool]: {
107
115
  name: 'Function Tool',
@@ -118,7 +126,12 @@ export const nodeTypeMap = {
118
126
  [NodeType.ExternalAgent]: {
119
127
  type: NodeType.ExternalAgent,
120
128
  name: 'External Agent',
121
- Icon: BotMessageSquare,
129
+ Icon: Globe,
130
+ },
131
+ [NodeType.ExternalAgentPlaceholder]: {
132
+ type: NodeType.ExternalAgentPlaceholder,
133
+ name: 'External Agent',
134
+ Icon: Globe,
122
135
  },
123
136
  [NodeType.MCPPlaceholder]: {
124
137
  type: NodeType.MCPPlaceholder,
@@ -5,7 +5,7 @@ import { NodeItem } from './node-item';
5
5
 
6
6
  const nodeTypes: NodeItem[] = [
7
7
  nodeTypeMap[NodeType.SubAgent],
8
- nodeTypeMap[NodeType.ExternalAgent],
8
+ nodeTypeMap[NodeType.ExternalAgentPlaceholder],
9
9
  nodeTypeMap[NodeType.MCPPlaceholder],
10
10
  nodeTypeMap[NodeType.FunctionTool],
11
11
  ];
@@ -1,19 +1,19 @@
1
1
  import { type NodeProps, Position } from '@xyflow/react';
2
- import { BotMessageSquare } from 'lucide-react';
2
+ import { Globe } from 'lucide-react';
3
3
  import { Badge } from '@/components/ui/badge';
4
4
  import { NODE_WIDTH } from '@/features/agent/domain/deserialize';
5
5
  import { useAgentErrors } from '@/hooks/use-agent-errors';
6
- import type { AgentNodeData } from '../configuration/node-types';
6
+ import { cn } from '@/lib/utils';
7
+ import type { ExternalAgentNodeData } from '../configuration/node-types';
7
8
  import { externalAgentNodeTargetHandleId } from '../configuration/node-types';
8
9
  import { ErrorIndicator } from '../error-display/error-indicator';
9
10
  import { BaseNode, BaseNodeContent, BaseNodeHeader, BaseNodeHeaderTitle } from './base-node';
10
11
  import { Handle } from './handle';
11
12
  import { NodeTab } from './node-tab';
12
- import { cn } from '@/lib/utils';
13
13
 
14
- export function ExternalAgentNode(props: NodeProps & { data: AgentNodeData }) {
14
+ export function ExternalAgentNode(props: NodeProps & { data: ExternalAgentNodeData }) {
15
15
  const { data, selected, id } = props;
16
- const { name, description, isExecuting } = data;
16
+ const { name, description } = data;
17
17
  const { getNodeErrors, hasNodeErrors } = useAgentErrors();
18
18
 
19
19
  // Use the agent ID from node data if available, otherwise fall back to React Flow node ID
@@ -25,17 +25,13 @@ export function ExternalAgentNode(props: NodeProps & { data: AgentNodeData }) {
25
25
  <div className="relative">
26
26
  <NodeTab isSelected={selected}>External</NodeTab>
27
27
  <BaseNode
28
- isSelected={selected || data.isDelegating}
29
- className={cn(
30
- 'rounded-tl-none',
31
- hasErrors && 'ring-2 ring-red-300 border-red-300',
32
- isExecuting && 'node-executing'
33
- )}
28
+ isSelected={selected}
29
+ className={cn('rounded-tl-none', hasErrors && 'ring-2 ring-red-300 border-red-300')}
34
30
  style={{ width: NODE_WIDTH }}
35
31
  >
36
32
  <BaseNodeHeader className="flex items-center justify-between gap-2">
37
33
  <div className="flex items-center gap-2 min-w-0">
38
- <BotMessageSquare className="size-4 text-muted-foreground" />
34
+ <Globe className="size-4 text-muted-foreground" />
39
35
  <BaseNodeHeaderTitle>{name || 'External Agent'}</BaseNodeHeaderTitle>
40
36
  </div>
41
37
  <Badge variant="primary" className="text-xs uppercase">
@@ -1,12 +1,13 @@
1
1
  import type { NodeProps } from '@xyflow/react';
2
- import { Hammer } from 'lucide-react';
2
+ import { Globe, Hammer } from 'lucide-react';
3
3
  import { BaseNode, BaseNodeHeader, BaseNodeHeaderTitle } from './base-node';
4
4
 
5
- type MCPPlaceholderNodeData = {
5
+ type PlaceholderNodeData = {
6
6
  name: string;
7
+ type: 'mcp-placeholder' | 'external-agent-placeholder';
7
8
  };
8
9
 
9
- export function MCPPlaceholderNode(props: NodeProps & { data: MCPPlaceholderNodeData }) {
10
+ export function PlaceholderNode(props: NodeProps & { data: PlaceholderNodeData }) {
10
11
  const { data, selected } = props;
11
12
  const { name } = data;
12
13
  return (
@@ -15,7 +16,10 @@ export function MCPPlaceholderNode(props: NodeProps & { data: MCPPlaceholderNode
15
16
  className={`rounded-4xl border-dashed min-w-40 min-h-13 flex items-center justify-center max-w-3xs ${selected ? 'outline-dashed outline-2 outline-gray-700 hover:outline-gray-700 ring-0 hover:ring-0' : ''}`}
16
17
  >
17
18
  <BaseNodeHeader className="mb-0 py-3">
18
- <Hammer className="size-4 text-muted-foreground/65" />
19
+ {data.type === 'mcp-placeholder' && <Hammer className="size-4 text-muted-foreground/65" />}
20
+ {data.type === 'external-agent-placeholder' && (
21
+ <Globe className="size-4 text-muted-foreground/65" />
22
+ )}
19
23
  <BaseNodeHeaderTitle className="text-muted-foreground">{name}</BaseNodeHeaderTitle>
20
24
  </BaseNodeHeader>
21
25
  </BaseNode>
@@ -1,9 +1,12 @@
1
1
  import { type Edge, useNodesData, useReactFlow } from '@xyflow/react';
2
- import { Spline } from 'lucide-react';
2
+ import { Spline, Trash2 } from 'lucide-react';
3
+ import { useCallback } from 'react';
3
4
  import { DashedSplineIcon } from '@/components/icons/dashed-spline';
4
5
  import { Badge } from '@/components/ui/badge';
6
+ import { Button } from '@/components/ui/button';
5
7
  import { Checkbox } from '@/components/ui/checkbox';
6
8
  import { Label } from '@/components/ui/label';
9
+ import { Separator } from '@/components/ui/separator';
7
10
  import { useAgentActions } from '@/features/agent/state/use-agent-store';
8
11
  import type { A2AEdgeData } from '../../configuration/edge-types';
9
12
 
@@ -76,7 +79,12 @@ interface EdgeEditorProps {
76
79
  }
77
80
 
78
81
  function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
79
- const { updateEdgeData, setEdges } = useReactFlow();
82
+ const { updateEdgeData, setEdges, deleteElements } = useReactFlow();
83
+
84
+ const deleteEdge = useCallback(() => {
85
+ deleteElements({ edges: [{ id: selectedEdge.id }] });
86
+ }, [selectedEdge.id, deleteElements]);
87
+
80
88
  const sourceNode = useNodesData(selectedEdge.source);
81
89
  const targetNode = useNodesData(selectedEdge.target);
82
90
  const { markUnsaved } = useAgentActions();
@@ -216,7 +224,7 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
216
224
  </Badge>{' '}
217
225
  can delegate to{' '}
218
226
  <Badge variant="code" className="my-0.5">
219
- {sourceNode?.data.name as string}
227
+ {sourceName}
220
228
  </Badge>
221
229
  </div>
222
230
  ),
@@ -242,6 +250,13 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
242
250
  onCheckedChange={handleCheckboxChange}
243
251
  checkedValues={selectedEdge.data?.relationships as A2AEdgeData['relationships']}
244
252
  />
253
+ <Separator />
254
+ <div className="flex justify-end">
255
+ <Button variant="destructive-outline" size="sm" onClick={deleteEdge}>
256
+ <Trash2 className="size-4" />
257
+ Delete
258
+ </Button>
259
+ </div>
245
260
  </div>
246
261
  );
247
262
  }