@inkeep/agents-manage-ui 0.24.2 → 0.25.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 (346) 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 +306 -252
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +7 -3
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/agents-manage-ui/.next/routes-manifest.json +38 -0
  7. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +2 -2
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js.nft.json +1 -1
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js +2 -2
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js.nft.json +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js.nft.json +1 -1
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +1 -1
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js.nft.json +1 -1
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js.nft.json +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js.nft.json +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -0
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js.nft.json +1 -0
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -0
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -0
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js.nft.json +1 -0
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -0
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +2 -0
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js.nft.json +1 -0
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -0
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -0
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js.nft.json +1 -0
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -0
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js.nft.json +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  82. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  83. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js.nft.json +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  86. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js.nft.json +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  89. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
  92. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  93. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +2 -2
  95. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  98. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js.nft.json +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  101. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  102. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  103. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +10 -10
  105. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-preview/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js +1 -1
  107. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js.nft.json +1 -1
  108. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route.js +1 -1
  110. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route.js.nft.json +1 -1
  111. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  113. package/.next/standalone/agents-manage-ui/.next/server/app/page.js.nft.json +1 -1
  114. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +7 -3
  116. package/.next/standalone/agents-manage-ui/.next/server/chunks/1729.js +1 -0
  117. package/.next/standalone/agents-manage-ui/.next/server/chunks/1735.js +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/server/chunks/2444.js +4084 -0
  119. package/.next/standalone/agents-manage-ui/.next/server/chunks/2783.js +1 -1
  120. package/.next/standalone/agents-manage-ui/.next/server/chunks/2848.js +123 -0
  121. package/.next/standalone/agents-manage-ui/.next/server/chunks/3228.js +7 -0
  122. package/.next/standalone/agents-manage-ui/.next/server/chunks/3468.js +1 -1
  123. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  124. package/.next/standalone/agents-manage-ui/.next/server/chunks/3691.js +1 -0
  125. package/.next/standalone/agents-manage-ui/.next/server/chunks/3700.js +1 -0
  126. package/.next/standalone/agents-manage-ui/.next/server/chunks/3948.js +1 -1
  127. package/.next/standalone/agents-manage-ui/.next/server/chunks/4243.js +1 -0
  128. package/.next/standalone/agents-manage-ui/.next/server/chunks/4389.js +1 -0
  129. package/.next/standalone/agents-manage-ui/.next/server/chunks/4629.js +1 -1
  130. package/.next/standalone/agents-manage-ui/.next/server/chunks/4652.js +196 -0
  131. package/.next/standalone/agents-manage-ui/.next/server/chunks/{1674.js → 5093.js} +2 -2
  132. package/.next/standalone/agents-manage-ui/.next/server/chunks/5105.js +21 -0
  133. package/.next/standalone/agents-manage-ui/.next/server/chunks/5262.js +1 -1
  134. package/.next/standalone/agents-manage-ui/.next/server/chunks/5450.js +2 -2
  135. package/.next/standalone/agents-manage-ui/.next/server/chunks/5732.js +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/server/chunks/6035.js +1 -1
  137. package/.next/standalone/agents-manage-ui/.next/server/chunks/6295.js +7 -0
  138. package/.next/standalone/agents-manage-ui/.next/server/chunks/6624.js +1 -1
  139. package/.next/standalone/agents-manage-ui/.next/server/chunks/6721.js +4 -4
  140. package/.next/standalone/agents-manage-ui/.next/server/chunks/6724.js +3 -0
  141. package/.next/standalone/agents-manage-ui/.next/server/chunks/6737.js +1 -0
  142. package/.next/standalone/agents-manage-ui/.next/server/chunks/6747.js +1 -1
  143. package/.next/standalone/agents-manage-ui/.next/server/chunks/{5395.js → 6786.js} +3 -3
  144. package/.next/standalone/agents-manage-ui/.next/server/chunks/7011.js +55 -0
  145. package/.next/standalone/agents-manage-ui/.next/server/chunks/7024.js +1 -1
  146. package/.next/standalone/agents-manage-ui/.next/server/chunks/7165.js +1 -0
  147. package/.next/standalone/agents-manage-ui/.next/server/chunks/7597.js +1 -0
  148. package/.next/standalone/agents-manage-ui/.next/server/chunks/7711.js +1 -1
  149. package/.next/standalone/agents-manage-ui/.next/server/chunks/7978.js +10 -0
  150. package/.next/standalone/agents-manage-ui/.next/server/chunks/7990.js +1 -1
  151. package/.next/standalone/agents-manage-ui/.next/server/chunks/8634.js +1 -0
  152. package/.next/standalone/agents-manage-ui/.next/server/chunks/8860.js +1 -1
  153. package/.next/standalone/agents-manage-ui/.next/server/chunks/9122.js +1 -1
  154. package/.next/standalone/agents-manage-ui/.next/server/chunks/92.js +1 -0
  155. package/.next/standalone/agents-manage-ui/.next/server/chunks/9665.js +14 -0
  156. package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
  157. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  158. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  159. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  160. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  161. package/.next/standalone/agents-manage-ui/.next/static/chunks/1257-a43f23dc7cfadd1a.js +1 -0
  162. package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-e897defc4ea6529d.js +1 -0
  163. package/.next/standalone/agents-manage-ui/.next/static/chunks/{16631-e313c6f18339824b.js → 16631-6020bdaf3d69b1d9.js} +1 -1
  164. package/.next/standalone/agents-manage-ui/.next/static/chunks/18717-8627b7c54fe55222.js +1 -0
  165. package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-657d5adb39ba5fc5.js +1 -0
  166. package/.next/standalone/agents-manage-ui/.next/static/chunks/26910-76880739b4acdd3b.js +1 -0
  167. package/.next/standalone/agents-manage-ui/.next/static/chunks/{49717-c3caecdba1246d8f.js → 27590-b22ba4119fb3a372.js} +1 -1
  168. package/.next/standalone/agents-manage-ui/.next/static/chunks/28481-6b34f3276862f826.js +1 -0
  169. package/.next/standalone/agents-manage-ui/.next/static/chunks/3401-910d2d2183ae4708.js +1 -0
  170. package/.next/standalone/agents-manage-ui/.next/static/chunks/36433-4bbd4872aaa5963f.js +1 -0
  171. package/.next/standalone/agents-manage-ui/.next/static/chunks/36887-83df6b6bba85c3ce.js +25 -0
  172. package/.next/standalone/agents-manage-ui/.next/static/chunks/37214-7f57e96783b16cf2.js +1 -0
  173. package/.next/standalone/agents-manage-ui/.next/static/chunks/{37775-eeaab573593358e7.js → 37775-a0cb4c2997df88af.js} +1 -1
  174. package/.next/standalone/agents-manage-ui/.next/static/chunks/45964-598be3d16ad8fd82.js +1 -0
  175. package/.next/standalone/agents-manage-ui/.next/static/chunks/{48869-3adeab47774071e4.js → 48869-0e8ec51e0d0bb87d.js} +1 -1
  176. package/.next/standalone/agents-manage-ui/.next/static/chunks/{5369-18b7584eb6e85241.js → 5841-042919582028a91e.js} +1 -1
  177. package/.next/standalone/agents-manage-ui/.next/static/chunks/{23364-08749556f2446cad.js → 59984-01e64298ea759d0c.js} +1 -1
  178. package/.next/standalone/agents-manage-ui/.next/static/chunks/62073-1dc8bf01aebe418e.js +2 -0
  179. package/.next/standalone/agents-manage-ui/.next/static/chunks/63923-002bbcf19f95597d.js +1 -0
  180. package/.next/standalone/agents-manage-ui/.next/static/chunks/69779-66e0654502936a87.js +2 -0
  181. package/.next/standalone/agents-manage-ui/.next/static/chunks/71b0359b-aaefd7f1f00e7a48.js +1 -0
  182. package/.next/standalone/agents-manage-ui/.next/static/chunks/{19317-031cfdbe64ae32fe.js → 72652-6d8231193d77f28d.js} +2 -2
  183. package/.next/standalone/agents-manage-ui/.next/static/chunks/77751-c4efde5ba62fec62.js +1 -0
  184. package/.next/standalone/agents-manage-ui/.next/static/chunks/{78225-5445b2afb05249db.js → 78225-b5ec1e80a1dfd053.js} +1 -1
  185. package/.next/standalone/agents-manage-ui/.next/static/chunks/{24957-f2e6353ef4e01dc1.js → 83892-38da8bfc1bff44ef.js} +1 -1
  186. package/.next/standalone/agents-manage-ui/.next/static/chunks/84314-a3ddef3556c9173e.js +1 -0
  187. package/.next/standalone/agents-manage-ui/.next/static/chunks/8801-0137324b58b9d24b.js +1 -0
  188. package/.next/standalone/agents-manage-ui/.next/static/chunks/88831-cc7c54f946c90858.js +1 -0
  189. package/.next/standalone/agents-manage-ui/.next/static/chunks/{36551-09ba51a7603b6640.js → 95280-167a9efa81c05903.js} +1 -1
  190. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/loading-8d4bcbf81b74728a.js +1 -0
  191. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-9b08f45294a2041b.js → page-f32d93ea151e5bfe.js} +1 -1
  192. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/loading-bc621c786fb0c041.js +1 -0
  193. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/loading-8d4bcbf81b74728a.js +1 -0
  194. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-caf36cef03adb078.js +1 -0
  195. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-786019278b0c5425.js +1 -0
  196. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-c6b8967eafb31e5d.js +1 -0
  197. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-f18f8f4709f89922.js +1 -0
  198. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-bc621c786fb0c041.js +1 -0
  199. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-809b9566d45884b8.js +1 -0
  200. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-609271102f74b71f.js +1 -0
  201. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-2a6e0bffe525b69b.js +1 -0
  202. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-bc621c786fb0c041.js +1 -0
  203. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-ebf7eb9b2f07a64e.js +1 -0
  204. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-8983699d524c6c88.js +1 -0
  205. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-f9b9031bacd28167.js +1 -0
  206. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-ae738d29541b4861.js +1 -0
  207. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-bc621c786fb0c041.js +1 -0
  208. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-730b47b6465cd36e.js +1 -0
  209. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/{page-accc8e5a5d324305.js → page-8776902647b7fbbf.js} +1 -1
  210. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-9ab6b0b2810d46ab.js → page-21019b30080af732.js} +1 -1
  211. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-1c53fbc7ec0f4788.js +1 -0
  212. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page-662caa60b1021748.js +1 -0
  213. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-314d5614f44b9a9d.js +1 -0
  214. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-9785336c318f3894.js +1 -0
  215. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/{layout-1a97adf59dd6a2fe.js → layout-be45ce45edffada7.js} +1 -1
  216. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-00d3bd4e0e0283ca.js → page-cf822495da0f37eb.js} +1 -1
  217. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-dc9cf0e005a0164f.js +1 -0
  218. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-8d4bcbf81b74728a.js +1 -0
  219. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-c7df640ea2699c60.js → page-08afaeba4f478e5d.js} +1 -1
  220. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-85355ce11a9ab57f.js +1 -0
  221. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-e784b16aa3440091.js +1 -0
  222. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-5d8fccb553e26266.js +1 -0
  223. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/{page-4e07cce32c8cfa4c.js → page-0a4773ac888b4503.js} +1 -1
  224. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-e631f5dc0c4114c8.js +1 -0
  225. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/{error-f9cda97c25875770.js → error-6ccf54ce7173616c.js} +1 -1
  226. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-bc621c786fb0c041.js +1 -0
  227. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-f6893db530628b8e.js +1 -0
  228. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-dd39ef98ae51f3e5.js +1 -0
  229. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/{not-found-1a97adf59dd6a2fe.js → not-found-be45ce45edffada7.js} +1 -1
  230. package/.next/standalone/agents-manage-ui/.next/static/chunks/d5c4f074-ec221a5ba84e50a2.js +1 -0
  231. package/.next/standalone/agents-manage-ui/.next/static/css/4ac8a1b177c82019.css +1 -0
  232. package/.next/standalone/agents-manage-ui/package.json +1 -1
  233. package/.next/standalone/packages/agents-core/package.json +1 -1
  234. package/package.json +4 -4
  235. package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.tsx +18 -10
  236. package/src/app/[tenantId]/projects/[projectId]/agents/new/page.tsx +13 -7
  237. package/src/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.tsx +86 -0
  238. package/src/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.tsx +52 -0
  239. package/src/app/[tenantId]/projects/[projectId]/external-agents/new/page.tsx +43 -0
  240. package/src/app/[tenantId]/projects/[projectId]/external-agents/page.tsx +64 -0
  241. package/src/components/agent/agent.tsx +43 -1
  242. package/src/components/agent/configuration/node-types.tsx +18 -5
  243. package/src/components/agent/node-library/node-library.tsx +1 -1
  244. package/src/components/agent/nodes/external-agent-node.tsx +8 -12
  245. package/src/components/agent/nodes/{mcp-placeholder-node.tsx → placeholder-node.tsx} +8 -4
  246. package/src/components/agent/sidepane/edges/edge-editor.tsx +18 -3
  247. package/src/components/agent/sidepane/nodes/external-agent-node-editor.tsx +83 -18
  248. package/src/components/agent/sidepane/nodes/external-agent-selector/external-agent-item.tsx +39 -0
  249. package/src/components/agent/sidepane/nodes/external-agent-selector/external-agent-selector.tsx +114 -0
  250. package/src/components/agent/sidepane/nodes/external-agent-selector/loading.tsx +26 -0
  251. package/src/components/agent/sidepane/nodes/function-tool-node-editor.tsx +11 -1
  252. package/src/components/agent/sidepane/nodes/mcp-node-editor.tsx +15 -1
  253. package/src/components/agent/sidepane/nodes/sub-agent-node-editor.tsx +24 -5
  254. package/src/components/agent/sidepane/sidepane.tsx +9 -1
  255. package/src/components/credentials/credential-resources-list.tsx +146 -0
  256. package/src/components/credentials/views/credential-form-validation.ts +1 -0
  257. package/src/components/credentials/views/credential-form.tsx +96 -5
  258. package/src/components/credentials/views/edit-credential-form.tsx +4 -3
  259. package/src/components/credentials/views/new-credential-form.tsx +13 -0
  260. package/src/components/data-components/preview/component-preview-generator.tsx +1 -1
  261. package/src/components/external-agents/external-agent-item.tsx +169 -0
  262. package/src/components/external-agents/external-agents-list.tsx +29 -0
  263. package/src/components/external-agents/form/external-agent-form.tsx +146 -0
  264. package/src/components/external-agents/form/validation.ts +10 -0
  265. package/src/components/external-agents/view-external-agent-details.tsx +129 -0
  266. package/src/components/sidebar-nav/sidebar-nav.tsx +6 -0
  267. package/src/components/ui/button.tsx +2 -0
  268. package/src/features/agent/domain/deserialize.ts +144 -111
  269. package/src/features/agent/domain/serialize.ts +142 -77
  270. package/src/features/agent/state/use-agent-store.ts +27 -3
  271. package/src/hooks/use-node-editor.ts +6 -1
  272. package/src/lib/actions/agent-full.ts +1 -1
  273. package/src/lib/actions/external-agents.ts +73 -0
  274. package/src/lib/api/credentials.ts +2 -0
  275. package/src/lib/api/external-agents.ts +121 -0
  276. package/src/lib/types/agent-full.ts +4 -2
  277. package/src/lib/types/external-agents.ts +2 -0
  278. package/src/lib/utils/external-agent-utils.ts +33 -0
  279. package/.next/standalone/agents-manage-ui/.next/server/chunks/127.js +0 -21
  280. package/.next/standalone/agents-manage-ui/.next/server/chunks/1613.js +0 -14
  281. package/.next/standalone/agents-manage-ui/.next/server/chunks/2263.js +0 -1
  282. package/.next/standalone/agents-manage-ui/.next/server/chunks/2313.js +0 -1
  283. package/.next/standalone/agents-manage-ui/.next/server/chunks/4414.js +0 -1
  284. package/.next/standalone/agents-manage-ui/.next/server/chunks/4529.js +0 -123
  285. package/.next/standalone/agents-manage-ui/.next/server/chunks/4653.js +0 -196
  286. package/.next/standalone/agents-manage-ui/.next/server/chunks/4999.js +0 -7
  287. package/.next/standalone/agents-manage-ui/.next/server/chunks/5164.js +0 -1
  288. package/.next/standalone/agents-manage-ui/.next/server/chunks/5831.js +0 -7
  289. package/.next/standalone/agents-manage-ui/.next/server/chunks/6870.js +0 -1
  290. package/.next/standalone/agents-manage-ui/.next/server/chunks/7585.js +0 -1
  291. package/.next/standalone/agents-manage-ui/.next/server/chunks/7953.js +0 -55
  292. package/.next/standalone/agents-manage-ui/.next/server/chunks/7988.js +0 -10
  293. package/.next/standalone/agents-manage-ui/.next/server/chunks/8526.js +0 -1
  294. package/.next/standalone/agents-manage-ui/.next/server/chunks/9128.js +0 -1
  295. package/.next/standalone/agents-manage-ui/.next/server/chunks/9222.js +0 -4080
  296. package/.next/standalone/agents-manage-ui/.next/server/chunks/9234.js +0 -1
  297. package/.next/standalone/agents-manage-ui/.next/server/chunks/9973.js +0 -3
  298. package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-851660ac17cd9821.js +0 -1
  299. package/.next/standalone/agents-manage-ui/.next/static/chunks/17022-540bbf991b193531.js +0 -1
  300. package/.next/standalone/agents-manage-ui/.next/static/chunks/18726-cd04df960a499e08.js +0 -1
  301. package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-d77f86e28c8ac7aa.js +0 -1
  302. package/.next/standalone/agents-manage-ui/.next/static/chunks/4875-6cc31870e1b4f78e.js +0 -1
  303. package/.next/standalone/agents-manage-ui/.next/static/chunks/4f68d2c2-a2a1661f39e29b33.js +0 -1
  304. package/.next/standalone/agents-manage-ui/.next/static/chunks/50285-9138bb26e62daef6.js +0 -1
  305. package/.next/standalone/agents-manage-ui/.next/static/chunks/50324-6c2b8627fccd09fe.js +0 -1
  306. package/.next/standalone/agents-manage-ui/.next/static/chunks/55244-84901b87c4a2322e.js +0 -1
  307. package/.next/standalone/agents-manage-ui/.next/static/chunks/61089-ddd70e2d283804f5.js +0 -1
  308. package/.next/standalone/agents-manage-ui/.next/static/chunks/64ea4822-c34b4b3b56c2346d.js +0 -1
  309. package/.next/standalone/agents-manage-ui/.next/static/chunks/67132-6a36ac852bc82474.js +0 -1
  310. package/.next/standalone/agents-manage-ui/.next/static/chunks/69380-a44c9d214bcad658.js +0 -2
  311. package/.next/standalone/agents-manage-ui/.next/static/chunks/70613-cb7a1ac35bddb6bf.js +0 -1
  312. package/.next/standalone/agents-manage-ui/.next/static/chunks/74811-ceebff5ae7c61a66.js +0 -1
  313. package/.next/standalone/agents-manage-ui/.next/static/chunks/85232-22a9d60836ca811e.js +0 -1
  314. package/.next/standalone/agents-manage-ui/.next/static/chunks/86507-340cc6112e9218de.js +0 -2
  315. package/.next/standalone/agents-manage-ui/.next/static/chunks/87193-3d26f0490b9b0a29.js +0 -25
  316. package/.next/standalone/agents-manage-ui/.next/static/chunks/88831-baf97ca962c66e41.js +0 -1
  317. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/loading-deaaaaef5d47014d.js +0 -1
  318. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/loading-7c6d3a56c46ab4e4.js +0 -1
  319. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/loading-deaaaaef5d47014d.js +0 -1
  320. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-633b2ccbc49cb865.js +0 -1
  321. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-31799b84d22395a9.js +0 -1
  322. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-4f45e4faafd17dea.js +0 -1
  323. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-f4a38461a135be91.js +0 -1
  324. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-7c6d3a56c46ab4e4.js +0 -1
  325. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-5debce906045b390.js +0 -1
  326. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-689b7881ec533096.js +0 -1
  327. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-2affd4f21c17e73d.js +0 -1
  328. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-7c6d3a56c46ab4e4.js +0 -1
  329. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-089d6e9a7adc24d0.js +0 -1
  330. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-9b370b3ff69e1891.js +0 -1
  331. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-c3bd0a85e2c23715.js +0 -1
  332. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-637284cef2f03cfa.js +0 -1
  333. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-7c6d3a56c46ab4e4.js +0 -1
  334. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-effcc7ad7a251c11.js +0 -1
  335. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-d9421c0fe814f7ee.js +0 -1
  336. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-deaaaaef5d47014d.js +0 -1
  337. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-19309f8dea87d91d.js +0 -1
  338. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-60d99eca498e8ca9.js +0 -1
  339. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-3b222f3ae3101ba8.js +0 -1
  340. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-6201459e626dfd90.js +0 -1
  341. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-7c6d3a56c46ab4e4.js +0 -1
  342. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-76b7b5622c4726f8.js +0 -1
  343. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-2494491bcdc2dd72.js +0 -1
  344. package/.next/standalone/agents-manage-ui/.next/static/css/86b7c14b860f21e3.css +0 -1
  345. /package/.next/standalone/agents-manage-ui/.next/static/{4HTfKGfjXenctXjz8hNi9 → aTiLptKg2evHDvJ7u0L_H}/_buildManifest.js +0 -0
  346. /package/.next/standalone/agents-manage-ui/.next/static/{4HTfKGfjXenctXjz8hNi9 → aTiLptKg2evHDvJ7u0L_H}/_ssgManifest.js +0 -0
@@ -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
  }
@@ -1,29 +1,71 @@
1
- import type { Node } from '@xyflow/react';
2
- import { useCallback } from 'react';
1
+ import { type Node, useReactFlow } from '@xyflow/react';
2
+ import { Trash2 } from 'lucide-react';
3
+ import { useParams } from 'next/navigation';
4
+ import { useCallback, useEffect, useState } from 'react';
3
5
  import { ExpandableJsonEditor } from '@/components/form/expandable-json-editor';
6
+ import { Button } from '@/components/ui/button';
7
+ import { ExternalLink } from '@/components/ui/external-link';
8
+ import { Separator } from '@/components/ui/separator';
9
+ import { useAgentActions, useAgentStore } from '@/features/agent/state/use-agent-store';
4
10
  import type { ErrorHelpers } from '@/hooks/use-agent-errors';
5
11
  import { useAutoPrefillIdZustand } from '@/hooks/use-auto-prefill-id-zustand';
6
12
  import { useNodeEditor } from '@/hooks/use-node-editor';
7
13
  import type { Credential } from '@/lib/api/credentials';
14
+ import { getCurrentHeadersForExternalAgentNode } from '@/lib/utils/external-agent-utils';
15
+ import type { SubAgentExternalAgentConfigLookup } from '../../agent';
8
16
  import type { ExternalAgentNodeData } from '../../configuration/node-types';
9
- import { CredentialSelector } from './credential-selector';
10
17
  import { InputField, TextareaField } from './form-fields';
11
18
 
12
19
  interface ExternalAgentNodeEditorProps {
13
20
  selectedNode: Node<ExternalAgentNodeData>;
14
21
  credentialLookup: Record<string, Credential>;
22
+ subAgentExternalAgentConfigLookup: SubAgentExternalAgentConfigLookup;
15
23
  errorHelpers?: ErrorHelpers;
16
24
  }
17
25
 
18
26
  export function ExternalAgentNodeEditor({
19
27
  selectedNode,
20
- credentialLookup,
28
+ subAgentExternalAgentConfigLookup,
21
29
  errorHelpers,
22
30
  }: ExternalAgentNodeEditorProps) {
23
- const { handleInputChange, getFieldError, setFieldRef, updateField } = useNodeEditor({
31
+ const { updateNodeData } = useReactFlow();
32
+ const { markUnsaved } = useAgentActions();
33
+ const { handleInputChange, getFieldError, setFieldRef, updateField, deleteNode } = useNodeEditor({
24
34
  selectedNodeId: selectedNode.id,
25
35
  errorHelpers,
26
36
  });
37
+ const { tenantId, projectId } = useParams<{
38
+ tenantId: string;
39
+ projectId: string;
40
+ }>();
41
+ const handleHeadersChange = (value: string) => {
42
+ // Always update the input state (allows user to type invalid JSON)
43
+ setHeadersInputValue(value);
44
+
45
+ // Only save to node data if the JSON is valid
46
+ try {
47
+ const parsedHeaders = value.trim() === '' ? {} : JSON.parse(value);
48
+ if (
49
+ typeof parsedHeaders === 'object' &&
50
+ parsedHeaders !== null &&
51
+ !Array.isArray(parsedHeaders)
52
+ ) {
53
+ // Valid format - save to node data
54
+ updateNodeData(selectedNode.id, {
55
+ ...selectedNode.data,
56
+ tempHeaders: parsedHeaders,
57
+ });
58
+ markUnsaved();
59
+ }
60
+ } catch {
61
+ // Invalid JSON - don't save, but allow user to continue typing
62
+ // The ExpandableJsonEditor will show the validation error
63
+ }
64
+ };
65
+
66
+ const { edges } = useAgentStore((state) => ({
67
+ edges: state.edges,
68
+ }));
27
69
 
28
70
  const handleIdChange = useCallback(
29
71
  (generatedId: string) => {
@@ -40,6 +82,24 @@ export function ExternalAgentNodeEditor({
40
82
  isEditing: false,
41
83
  });
42
84
 
85
+ const getCurrentHeaders = useCallback((): Record<string, string> => {
86
+ return getCurrentHeadersForExternalAgentNode(
87
+ selectedNode,
88
+ subAgentExternalAgentConfigLookup,
89
+ edges
90
+ );
91
+ }, [selectedNode, subAgentExternalAgentConfigLookup, edges]);
92
+
93
+ // Local state for headers input (allows invalid JSON while typing)
94
+ const [headersInputValue, setHeadersInputValue] = useState('{}');
95
+
96
+ // Sync input value when node changes (but not on every data change)
97
+ // biome-ignore lint/correctness/useExhaustiveDependencies: intentionally omit getCurrentHeaders to prevent reset loops
98
+ useEffect(() => {
99
+ const newHeaders = getCurrentHeaders();
100
+ setHeadersInputValue(JSON.stringify(newHeaders, null, 2));
101
+ }, [selectedNode.id]);
102
+
43
103
  return (
44
104
  <div className="space-y-8 flex flex-col">
45
105
  <p className="text-sm text-muted-foreground">
@@ -56,6 +116,7 @@ export function ExternalAgentNodeEditor({
56
116
  value={selectedNode.data.name || ''}
57
117
  onChange={handleInputChange}
58
118
  placeholder="Support agent"
119
+ disabled
59
120
  error={getFieldError('name')}
60
121
  />
61
122
 
@@ -68,6 +129,7 @@ export function ExternalAgentNodeEditor({
68
129
  onChange={handleInputChange}
69
130
  placeholder="my-external-agent"
70
131
  error={getFieldError('id')}
132
+ disabled
71
133
  description="Choose a unique identifier for this agent. Using an existing id will replace that agent."
72
134
  isRequired
73
135
  />
@@ -81,6 +143,7 @@ export function ExternalAgentNodeEditor({
81
143
  onChange={handleInputChange}
82
144
  placeholder="This agent is responsible for..."
83
145
  error={getFieldError('description')}
146
+ disabled
84
147
  />
85
148
 
86
149
  <InputField
@@ -93,26 +156,28 @@ export function ExternalAgentNodeEditor({
93
156
  placeholder="https://api.example.com/agent"
94
157
  error={getFieldError('baseUrl')}
95
158
  tooltip="This URL is used to discover the agent's capabilities and communicate with it using the A2A protocol. For locally hosted agent defined with the agent-framework this would be: http://localhost:3002/tenants/:tenantId/projects/:projectId/agents/:agentId"
159
+ disabled
96
160
  />
97
161
  <ExpandableJsonEditor
98
162
  name="headers"
99
163
  label="Headers"
100
- value={selectedNode.data.headers}
101
- onChange={(value) => updateField('headers', value)}
164
+ value={headersInputValue}
165
+ onChange={handleHeadersChange}
102
166
  placeholder="{}"
103
167
  className=""
104
168
  />
105
- <CredentialSelector
106
- label="Credential"
107
- credentialLookup={credentialLookup}
108
- value={
109
- typeof selectedNode.data.credentialReferenceId === 'string'
110
- ? selectedNode.data.credentialReferenceId
111
- : null
112
- }
113
- onValueChange={(value) => updateField('credentialReferenceId', value || '')}
114
- placeholder="Select a credential"
115
- />
169
+ <ExternalLink
170
+ href={`/${tenantId}/projects/${projectId}/external-agents/${selectedNode.data.id}/edit`}
171
+ >
172
+ Edit External Agent
173
+ </ExternalLink>
174
+ <Separator />
175
+ <div className="flex justify-end">
176
+ <Button variant="destructive-outline" size="sm" onClick={deleteNode}>
177
+ <Trash2 className="size-4" />
178
+ Delete
179
+ </Button>
180
+ </div>
116
181
  </div>
117
182
  );
118
183
  }