@inkeep/agents-manage-ui 0.0.0-dev-20251021164445 → 0.0.0-dev-20251021181503

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 (287) 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 +219 -165
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +10 -6
  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 +9 -9
  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 +2 -2
  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 +1 -1
  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 +2 -2
  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 +1 -1
  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 +2 -2
  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 +9 -9
  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 +10 -6
  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/2634.js +1 -0
  116. package/.next/standalone/agents-manage-ui/.next/server/chunks/2848.js +123 -0
  117. package/.next/standalone/agents-manage-ui/.next/server/chunks/{4414.js → 2912.js} +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/server/chunks/3086.js +196 -0
  119. package/.next/standalone/agents-manage-ui/.next/server/chunks/3468.js +1 -1
  120. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/server/chunks/4629.js +1 -1
  122. package/.next/standalone/agents-manage-ui/.next/server/chunks/4944.js +1 -0
  123. package/.next/standalone/agents-manage-ui/.next/server/chunks/{9222.js → 5478.js} +2 -2
  124. package/.next/standalone/agents-manage-ui/.next/server/chunks/5732.js +1 -1
  125. package/.next/standalone/agents-manage-ui/.next/server/chunks/5793.js +1 -1
  126. package/.next/standalone/agents-manage-ui/.next/server/chunks/6035.js +1 -1
  127. package/.next/standalone/agents-manage-ui/.next/server/chunks/{3291.js → 6060.js} +1 -1
  128. package/.next/standalone/agents-manage-ui/.next/server/chunks/6565.js +1 -0
  129. package/.next/standalone/agents-manage-ui/.next/server/chunks/6721.js +1 -1
  130. package/.next/standalone/agents-manage-ui/.next/server/chunks/7013.js +1 -0
  131. package/.next/standalone/agents-manage-ui/.next/server/chunks/{9327.js → 7440.js} +1 -1
  132. package/.next/standalone/agents-manage-ui/.next/server/chunks/7988.js +2 -2
  133. package/.next/standalone/agents-manage-ui/.next/server/chunks/7990.js +1 -1
  134. package/.next/standalone/agents-manage-ui/.next/server/chunks/8860.js +1 -1
  135. package/.next/standalone/agents-manage-ui/.next/server/chunks/9394.js +14 -1
  136. package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
  137. package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
  138. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  139. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  140. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  141. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  142. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-7cdffb43af522e3b.js +1 -0
  144. package/.next/standalone/agents-manage-ui/.next/static/chunks/{16631-e313c6f18339824b.js → 16631-6020bdaf3d69b1d9.js} +1 -1
  145. package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-bb4579d108ec132f.js +1 -0
  146. package/.next/standalone/agents-manage-ui/.next/static/chunks/{50285-9138bb26e62daef6.js → 23610-476f03c272ca3950.js} +1 -1
  147. package/.next/standalone/agents-manage-ui/.next/static/chunks/24380.bf03581f9f4f3543.js +1 -0
  148. package/.next/standalone/agents-manage-ui/.next/static/chunks/2450-e80bfc42611f5806.js +1 -0
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/25672-93f2aa7eb2408291.js +1 -0
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/{4698.3051cd4ec04e2aa4.js → 4698.c8eaa281e28f5497.js} +1 -1
  151. package/.next/standalone/agents-manage-ui/.next/static/chunks/{4875-306209ac5547e001.js → 4875-6cc31870e1b4f78e.js} +1 -1
  152. package/.next/standalone/agents-manage-ui/.next/static/chunks/50503-8147daf12b637511.js +1 -0
  153. package/.next/standalone/agents-manage-ui/.next/static/chunks/54244-d5b0e0495a8ba6ff.js +1 -0
  154. package/.next/standalone/agents-manage-ui/.next/static/chunks/{74811-ceebff5ae7c61a66.js → 57812-14885c4aa73b748e.js} +1 -1
  155. package/.next/standalone/agents-manage-ui/.next/static/chunks/{12397-bee57bbef5d5a7e3.js → 74216-541bdcf5750174cf.js} +1 -1
  156. package/.next/standalone/agents-manage-ui/.next/static/chunks/{87193-3d26f0490b9b0a29.js → 76125-20d7ba477878f956.js} +3 -3
  157. package/.next/standalone/agents-manage-ui/.next/static/chunks/{63076-75f725355363164e.js → 90777-529736d21bc531c4.js} +1 -1
  158. package/.next/standalone/agents-manage-ui/.next/static/chunks/92580-8da57347f4ec8f0d.js +1 -0
  159. package/.next/standalone/agents-manage-ui/.next/static/chunks/99458-561dd09c8e46e93b.js +2 -0
  160. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-670ed3b6247fd9d0.js → page-cf6d8b309524a6a4.js} +1 -1
  161. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/{page-586222923f1e95ff.js → page-c4db7bcff51d7bcd.js} +1 -1
  162. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-0198738719aade6d.js +1 -0
  163. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-e2ef59e68782fef0.js +1 -0
  164. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-5a2f0b3eb7b9bede.js +1 -0
  165. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-62ac2a74e0e3c202.js +1 -0
  166. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-ee610980e823a381.js +1 -0
  167. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-9af2eed83637e3da.js → page-81fb8f0e0da184b2.js} +1 -1
  168. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-a5dd61821ccc3368.js +1 -0
  169. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-54bd64dd19bcd7c1.js → page-9b60c2a4d919b4b8.js} +1 -1
  170. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-06480b4647090c3d.js +1 -0
  171. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-8b956cdee22f9770.js +1 -0
  172. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-df1ac1dca5b29f1d.js +1 -0
  173. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-c4a8e9a16d05a8a0.js → page-921320ba530d1773.js} +1 -1
  174. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-bd0cead36aa29cda.js +1 -0
  175. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page-ec2d6dba69b9f4c6.js +1 -0
  176. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-a1f80beb45dc2276.js +1 -0
  177. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-6502a0a11215e5cf.js +1 -0
  178. 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
  179. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-4f8d9541b96da7d8.js +1 -0
  180. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-9ebdf035f876d4f1.js → page-03c7faf211e2744e.js} +1 -1
  181. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-12a8345548e2abc2.js +1 -0
  182. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-535499d8ef464a34.js +1 -0
  183. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-e1b396ac418b8a24.js +1 -0
  184. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-fe6a59c18be829f1.js +1 -0
  185. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-53f9be3e392609d2.js +1 -0
  186. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-e62e04f2573a78d7.js +1 -0
  187. package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-d65a3369c23bc1a6.js → webpack-f5115703464e7f56.js} +1 -1
  188. package/.next/standalone/agents-manage-ui/.next/static/css/feeaa90d59b8c0fb.css +1 -0
  189. package/.next/standalone/agents-manage-ui/package.json +2 -2
  190. package/.next/standalone/packages/agents-core/package.json +1 -1
  191. package/package.json +5 -5
  192. package/src/app/[tenantId]/page.tsx +1 -1
  193. package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.tsx +21 -15
  194. package/src/app/[tenantId]/projects/[projectId]/agents/new/page.tsx +14 -10
  195. package/src/app/[tenantId]/projects/[projectId]/agents/page.tsx +1 -5
  196. package/src/app/[tenantId]/projects/[projectId]/api-keys/page.tsx +1 -5
  197. package/src/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.tsx +3 -9
  198. package/src/app/[tenantId]/projects/[projectId]/artifacts/new/page.tsx +3 -5
  199. package/src/app/[tenantId]/projects/[projectId]/artifacts/page.tsx +3 -5
  200. package/src/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.tsx +3 -9
  201. package/src/app/[tenantId]/projects/[projectId]/components/new/page.tsx +3 -5
  202. package/src/app/[tenantId]/projects/[projectId]/components/page.tsx +3 -5
  203. package/src/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.tsx +1 -7
  204. package/src/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.tsx +1 -3
  205. package/src/app/[tenantId]/projects/[projectId]/credentials/new/page.tsx +3 -4
  206. package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.tsx +3 -9
  207. package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.tsx +1 -3
  208. package/src/app/[tenantId]/projects/[projectId]/credentials/page.tsx +1 -3
  209. package/src/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.tsx +86 -0
  210. package/src/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.tsx +52 -0
  211. package/src/app/[tenantId]/projects/[projectId]/external-agents/new/page.tsx +43 -0
  212. package/src/app/[tenantId]/projects/[projectId]/external-agents/page.tsx +64 -0
  213. package/src/app/[tenantId]/projects/[projectId]/layout.tsx +4 -7
  214. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.tsx +3 -5
  215. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.tsx +3 -5
  216. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout.tsx +1 -4
  217. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.tsx +1 -3
  218. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/page.tsx +1 -3
  219. package/src/app/[tenantId]/projects/[projectId]/settings/page.tsx +3 -8
  220. package/src/app/[tenantId]/projects/page.tsx +1 -1
  221. package/src/app/api/data-components/[dataComponentId]/generate-preview/route.ts +4 -7
  222. package/src/app/api/signoz/conversations/[conversationId]/route.ts +3 -6
  223. package/src/components/agent/agent.tsx +43 -1
  224. package/src/components/agent/configuration/node-types.tsx +18 -5
  225. package/src/components/agent/node-library/node-library.tsx +1 -1
  226. package/src/components/agent/nodes/external-agent-node.tsx +8 -12
  227. package/src/components/agent/nodes/{mcp-placeholder-node.tsx → placeholder-node.tsx} +8 -4
  228. package/src/components/agent/sidepane/nodes/external-agent-node-editor.tsx +72 -17
  229. package/src/components/agent/sidepane/nodes/external-agent-selector/external-agent-item.tsx +39 -0
  230. package/src/components/agent/sidepane/nodes/external-agent-selector/external-agent-selector.tsx +114 -0
  231. package/src/components/agent/sidepane/nodes/external-agent-selector/loading.tsx +26 -0
  232. package/src/components/agent/sidepane/nodes/sub-agent-node-editor.tsx +22 -4
  233. package/src/components/agent/sidepane/sidepane.tsx +9 -1
  234. package/src/components/credentials/credential-resources-list.tsx +146 -0
  235. package/src/components/credentials/views/credential-form-validation.ts +1 -0
  236. package/src/components/credentials/views/credential-form.tsx +96 -5
  237. package/src/components/credentials/views/edit-credential-form.tsx +4 -3
  238. package/src/components/credentials/views/new-credential-form.tsx +13 -0
  239. package/src/components/external-agents/external-agent-item.tsx +169 -0
  240. package/src/components/external-agents/external-agents-list.tsx +29 -0
  241. package/src/components/external-agents/form/external-agent-form.tsx +146 -0
  242. package/src/components/external-agents/form/validation.ts +10 -0
  243. package/src/components/external-agents/view-external-agent-details.tsx +129 -0
  244. package/src/components/sidebar-nav/sidebar-nav.tsx +6 -0
  245. package/src/features/agent/domain/deserialize.ts +144 -111
  246. package/src/features/agent/domain/serialize.ts +152 -78
  247. package/src/features/agent/state/use-agent-store.ts +27 -3
  248. package/src/hooks/use-node-editor.ts +18 -1
  249. package/src/lib/actions/agent-full.ts +1 -1
  250. package/src/lib/actions/external-agents.ts +73 -0
  251. package/src/lib/api/credentials.ts +2 -0
  252. package/src/lib/api/external-agents.ts +121 -0
  253. package/src/lib/types/agent-full.ts +4 -2
  254. package/src/lib/types/external-agents.ts +2 -0
  255. package/src/lib/utils/external-agent-utils.ts +33 -0
  256. package/.next/standalone/agents-manage-ui/.next/server/chunks/1042.js +0 -14
  257. package/.next/standalone/agents-manage-ui/.next/server/chunks/1176.js +0 -1
  258. package/.next/standalone/agents-manage-ui/.next/server/chunks/4529.js +0 -123
  259. package/.next/standalone/agents-manage-ui/.next/server/chunks/5333.js +0 -196
  260. package/.next/standalone/agents-manage-ui/.next/server/chunks/6870.js +0 -1
  261. package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-851660ac17cd9821.js +0 -1
  262. package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-2dce45935d70f504.js +0 -1
  263. package/.next/standalone/agents-manage-ui/.next/static/chunks/24380.e6f7d95645e17d66.js +0 -1
  264. package/.next/standalone/agents-manage-ui/.next/static/chunks/300-efa35eafe593b090.js +0 -1
  265. package/.next/standalone/agents-manage-ui/.next/static/chunks/50324-6c2b8627fccd09fe.js +0 -1
  266. package/.next/standalone/agents-manage-ui/.next/static/chunks/61089-ddd70e2d283804f5.js +0 -1
  267. package/.next/standalone/agents-manage-ui/.next/static/chunks/86507-340cc6112e9218de.js +0 -2
  268. package/.next/standalone/agents-manage-ui/.next/static/chunks/89441-916e04ec6f04b028.js +0 -1
  269. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-f07f6d11da5725a3.js +0 -1
  270. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-b136bb9a9b117810.js +0 -1
  271. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-efbbd62ebe386fbb.js +0 -1
  272. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-2ad8069946c69ed8.js +0 -1
  273. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-b274518e243d4b2b.js +0 -1
  274. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-dbbbbe86b24c7fbe.js +0 -1
  275. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-56e1531226b4bde4.js +0 -1
  276. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-35b4a7d0a4152774.js +0 -1
  277. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-140e69cb775bd6fb.js +0 -1
  278. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-cd7a9453e707ee0c.js +0 -1
  279. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-c42f1ec825bdc202.js +0 -1
  280. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-7057bfdd0c6cbd6a.js +0 -1
  281. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-3b222f3ae3101ba8.js +0 -1
  282. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-625d0b8a1e577507.js +0 -1
  283. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-6c2aa64045d8e702.js +0 -1
  284. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-f3f27c9da18c75e1.js +0 -1
  285. package/.next/standalone/agents-manage-ui/.next/static/css/86b7c14b860f21e3.css +0 -1
  286. /package/.next/standalone/agents-manage-ui/.next/static/{-q1f8eaP93rBncFeN2wk_ → _hhV2vscjy4Dr-g-NJY1d}/_buildManifest.js +0 -0
  287. /package/.next/standalone/agents-manage-ui/.next/static/{-q1f8eaP93rBncFeN2wk_ → _hhV2vscjy4Dr-g-NJY1d}/_ssgManifest.js +0 -0
@@ -1,6 +1,8 @@
1
- import { generateId } from '@/lib/utils/id-utils';
2
1
  import type { Edge, Node } from '@xyflow/react';
3
- import type { AgentToolConfigLookup } from '@/components/agent/agent';
2
+ import type {
3
+ AgentToolConfigLookup,
4
+ SubAgentExternalAgentConfigLookup,
5
+ } from '@/components/agent/agent';
4
6
  import type { AgentMetadata } from '@/components/agent/configuration/agent-types';
5
7
  import type { A2AEdgeData } from '@/components/agent/configuration/edge-types';
6
8
  import { EdgeType } from '@/components/agent/configuration/edge-types';
@@ -8,35 +10,16 @@ import { NodeType } from '@/components/agent/configuration/node-types';
8
10
  import type { ArtifactComponent } from '@/lib/api/artifact-components';
9
11
  import type { DataComponent } from '@/lib/api/data-components';
10
12
  import type { FullAgentDefinition, InternalAgentDefinition } from '@/lib/types/agent-full';
13
+ import type { ExternalAgent } from '@/lib/types/external-agents';
14
+ import { generateId } from '@/lib/utils/id-utils';
11
15
 
12
- // Use the exported InternalAgentDefinition from core
13
- type InternalAgent = InternalAgentDefinition;
14
-
15
- type ExternalAgent = {
16
- id: string;
17
- name: string;
18
- description: string;
19
- baseUrl: string;
20
- headers?: Record<string, string> | null;
21
- type: 'external';
22
- credentialReferenceId?: string | null;
16
+ export type ExtendedAgent = InternalAgentDefinition & {
17
+ dataComponents: string[];
18
+ artifactComponents: string[];
19
+ models?: AgentMetadata['models'];
20
+ type: 'internal';
23
21
  };
24
22
 
25
- export type ExtendedAgent =
26
- | (InternalAgent & {
27
- dataComponents: string[];
28
- artifactComponents: string[];
29
- models?: AgentMetadata['models'];
30
- type: 'internal';
31
- })
32
- | ExternalAgent;
33
-
34
- function isInternalAgent(
35
- agent: ExtendedAgent | FullAgentDefinition['subAgents'][string]
36
- ): agent is InternalAgent {
37
- return agent.type === 'internal' && 'canUse' in agent;
38
- }
39
-
40
23
  // Note: Tools are now project-scoped, not part of FullAgentDefinition
41
24
 
42
25
  /**
@@ -92,9 +75,11 @@ export function serializeAgentData(
92
75
  metadata?: AgentMetadata,
93
76
  dataComponentLookup?: Record<string, DataComponent>,
94
77
  artifactComponentLookup?: Record<string, ArtifactComponent>,
95
- agentToolConfigLookup?: AgentToolConfigLookup
78
+ agentToolConfigLookup?: AgentToolConfigLookup,
79
+ subAgentExternalAgentConfigLookup?: SubAgentExternalAgentConfigLookup
96
80
  ): FullAgentDefinition {
97
81
  const subAgents: Record<string, ExtendedAgent> = {};
82
+ const externalAgents: Record<string, ExternalAgent> = {};
98
83
  const functionTools: Record<string, any> = {};
99
84
  const functions: Record<string, any> = {};
100
85
  // Note: Tools are now project-scoped and not included in agent serialization
@@ -265,27 +250,26 @@ export function serializeAgentData(
265
250
 
266
251
  subAgents[subAgentId] = agent;
267
252
  } else if (node.type === NodeType.ExternalAgent) {
268
- const subAgentId = (node.data.id as string) || node.id;
269
-
270
- // Parse headers from JSON string to object
271
- const parsedHeaders = safeJsonParse(node.data.headers as string);
253
+ const externalAgentId = (node.data.id as string) || node.id;
272
254
 
273
- const agent: ExternalAgent = {
274
- id: subAgentId,
255
+ const externalAgent: ExternalAgent & {
256
+ tempHeaders: Record<string, string> | null;
257
+ relationshipId: string | null;
258
+ } = {
259
+ id: externalAgentId,
275
260
  name: node.data.name as string,
276
261
  description: (node.data.description as string) || '',
277
262
  baseUrl: node.data.baseUrl as string,
278
- headers: parsedHeaders || null,
279
- type: 'external',
263
+ createdAt: node.data.createdAt as string,
264
+ updatedAt: node.data.updatedAt as string,
280
265
  credentialReferenceId: (node.data.credentialReferenceId as string) || null,
266
+ tempHeaders: (node.data as any).tempHeaders || null,
267
+ relationshipId: (node.data.relationshipId as string) || null,
281
268
  };
282
269
 
283
- if (node.data.isDefault) {
284
- defaultSubAgentId = subAgentId;
285
- }
286
-
287
- subAgents[subAgentId] = agent;
270
+ externalAgents[externalAgentId] = externalAgent;
288
271
  }
272
+ // External agent nodes are skipped - they are project-scoped resources
289
273
  }
290
274
 
291
275
  for (const edge of edges) {
@@ -294,35 +278,115 @@ export function serializeAgentData(
294
278
  edge.type === EdgeType.A2AExternal ||
295
279
  edge.type === EdgeType.SelfLoop
296
280
  ) {
297
- // edge.source and edge.target are the ids of the nodes (since we allow editing the agent ids we need to use node ids since those are stable)
298
- // we need to find the agents based on the node ids and then update the agents canTransferTo and canDelegateTo with the agent ids not the node ids
299
-
300
281
  const sourceAgentNode = nodes.find((node) => node.id === edge.source);
301
282
  const targetAgentNode = nodes.find((node) => node.id === edge.target);
302
283
 
303
284
  const sourceSubAgentId = (sourceAgentNode?.data.id || sourceAgentNode?.id) as string;
304
285
  const targetSubAgentId = (targetAgentNode?.data.id || targetAgentNode?.id) as string;
305
286
  const sourceAgent: ExtendedAgent = subAgents[sourceSubAgentId];
306
- const targetAgent: ExtendedAgent = subAgents[targetSubAgentId];
307
-
308
- if (sourceAgent && targetAgent && (edge.data as any)?.relationships) {
309
- const relationships = (edge.data as any).relationships as A2AEdgeData['relationships'];
310
-
311
- // Helper function to safely add relationship to internal agent
312
- const addRelationship = (
313
- agent: ExtendedAgent,
314
- relationshipType: 'canTransferTo' | 'canDelegateTo',
315
- targetId: string
316
- ) => {
317
- if (isInternalAgent(agent)) {
318
- if (!agent[relationshipType]) agent[relationshipType] = [];
319
- const subAgentRelationships = agent[relationshipType];
320
- if (subAgentRelationships && !subAgentRelationships.includes(targetId)) {
321
- subAgentRelationships.push(targetId);
287
+
288
+ const targetAgent: ExtendedAgent | undefined = subAgents[targetSubAgentId];
289
+ const targetExternalAgent: ExternalAgent | undefined = externalAgents[targetSubAgentId];
290
+ const isTargetExternal = targetExternalAgent !== undefined;
291
+
292
+ if (!sourceAgent || !(edge.data as any)?.relationships) {
293
+ continue;
294
+ }
295
+
296
+ const relationships = (edge.data as any).relationships as A2AEdgeData['relationships'];
297
+
298
+ // Helper function to add relationship
299
+ const addRelationship = (
300
+ agent: ExtendedAgent,
301
+ relationshipType: 'canTransferTo' | 'canDelegateTo',
302
+ targetId: string,
303
+ isExternal: boolean = false,
304
+ headers?: Record<string, string>,
305
+ relationshipId?: string
306
+ ) => {
307
+ if (relationshipType === 'canDelegateTo') {
308
+ if (!agent.canDelegateTo) {
309
+ agent.canDelegateTo = [];
310
+ }
311
+
312
+ // External agents always use object format
313
+ if (isExternal) {
314
+ const existingIndex = agent.canDelegateTo.findIndex(
315
+ (item) =>
316
+ typeof item === 'object' &&
317
+ item.externalAgentId === targetId &&
318
+ item.subAgentExternalAgentRelationId === relationshipId
319
+ );
320
+
321
+ const relationshipData: any = {
322
+ externalAgentId: targetId,
323
+ headers: headers ?? null,
324
+ };
325
+
326
+ // Only include relationshipId if it's not null (schema expects optional, not nullable)
327
+ if (relationshipId) {
328
+ relationshipData.subAgentExternalAgentRelationId = relationshipId;
329
+ }
330
+
331
+ if (existingIndex !== -1) {
332
+ // Update existing relationship
333
+ agent.canDelegateTo[existingIndex] = relationshipData;
334
+ } else {
335
+ // Add new relationship
336
+ agent.canDelegateTo.push(relationshipData);
337
+ }
338
+ } else {
339
+ // Internal agents use string format
340
+ if (!agent.canDelegateTo.includes(targetId)) {
341
+ agent.canDelegateTo.push(targetId);
322
342
  }
323
343
  }
324
- };
344
+ } else {
345
+ if (!agent.canTransferTo) agent.canTransferTo = [];
346
+ if (!agent.canTransferTo.includes(targetId)) {
347
+ agent.canTransferTo.push(targetId);
348
+ }
349
+ }
350
+ };
351
+
352
+ // Handle edges to external agents (only delegation is allowed)
353
+ if (isTargetExternal) {
354
+ if (relationships.delegateSourceToTarget) {
355
+ const tempHeaders = (targetExternalAgent as any).tempHeaders;
356
+ let externalAgentHeaders: Record<string, string> | undefined;
357
+ const relationshipId = (targetExternalAgent as any).relationshipId;
358
+
359
+ if (tempHeaders !== undefined) {
360
+ if (
361
+ typeof tempHeaders === 'object' &&
362
+ tempHeaders !== null &&
363
+ !Array.isArray(tempHeaders)
364
+ ) {
365
+ externalAgentHeaders = tempHeaders;
366
+ }
367
+ } else {
368
+ const existingConfig = relationshipId
369
+ ? subAgentExternalAgentConfigLookup?.[sourceSubAgentId]?.[relationshipId]
370
+ : null;
371
+ if (existingConfig?.headers) {
372
+ externalAgentHeaders = existingConfig.headers;
373
+ }
374
+ }
375
+
376
+ addRelationship(
377
+ sourceAgent,
378
+ 'canDelegateTo',
379
+ targetSubAgentId,
380
+ true, // isExternal
381
+ externalAgentHeaders,
382
+ relationshipId
383
+ );
384
+ }
385
+ continue;
386
+ }
325
387
 
388
+ // Handle edges between internal agents
389
+ if (targetAgent) {
326
390
  // Process transfer relationships
327
391
  if (relationships.transferSourceToTarget) {
328
392
  addRelationship(sourceAgent, 'canTransferTo', targetSubAgentId);
@@ -458,9 +522,18 @@ export function validateSerializedData(
458
522
  ): StructuredValidationError[] {
459
523
  const errors: StructuredValidationError[] = [];
460
524
 
525
+ if (!data.defaultSubAgentId) {
526
+ errors.push({
527
+ message: 'Default sub agent ID is required, please select a default sub agent.',
528
+ field: 'defaultSubAgentId',
529
+ code: 'required',
530
+ path: ['defaultSubAgentId'],
531
+ });
532
+ }
533
+
461
534
  if (data.defaultSubAgentId && !data.subAgents[data.defaultSubAgentId]) {
462
535
  errors.push({
463
- message: `Default agent ID '${data.defaultSubAgentId}' not found in agents.`,
536
+ message: `Default sub agent ID '${data.defaultSubAgentId}' not found in sub agents.`,
464
537
  field: 'defaultSubAgentId',
465
538
  code: 'invalid_reference',
466
539
  path: ['defaultSubAgentId'],
@@ -468,8 +541,8 @@ export function validateSerializedData(
468
541
  }
469
542
 
470
543
  for (const [subAgentId, agent] of Object.entries(data.subAgents)) {
471
- // Only validate tools for internal agents (external agents don't have tools)
472
- if (isInternalAgent(agent) && agent.canUse) {
544
+ // All subAgents are internal agents (external agents are project-scoped)
545
+ if (agent.canUse) {
473
546
  // Skip tool validation if tools data is not available (project-scoped)
474
547
  const toolsData = (data as any).tools;
475
548
  if (toolsData) {
@@ -487,7 +560,7 @@ export function validateSerializedData(
487
560
  }
488
561
  }
489
562
 
490
- if (isInternalAgent(agent) && agent.canUse) {
563
+ if (agent.canUse) {
491
564
  for (const canUseItem of agent.canUse) {
492
565
  const toolId = canUseItem.toolId;
493
566
  const toolType = (canUseItem as any).toolType;
@@ -552,19 +625,20 @@ export function validateSerializedData(
552
625
  }
553
626
  }
554
627
 
555
- // Only validate relationships for internal agents (external agents don't have these properties)
556
- if (isInternalAgent(agent)) {
557
- for (const targetId of agent.canTransferTo ?? []) {
558
- if (!data.subAgents[targetId]) {
559
- errors.push({
560
- message: `Transfer target '${targetId}' not found in agents.`,
561
- field: 'canTransferTo',
562
- code: 'invalid_reference',
563
- path: ['agents', subAgentId, 'canTransferTo'],
564
- });
565
- }
628
+ // Validate relationships (all subAgents are internal agents)
629
+ for (const targetId of agent.canTransferTo ?? []) {
630
+ if (!data.subAgents[targetId]) {
631
+ errors.push({
632
+ message: `Transfer target '${targetId}' not found in agents.`,
633
+ field: 'canTransferTo',
634
+ code: 'invalid_reference',
635
+ path: ['agents', subAgentId, 'canTransferTo'],
636
+ });
566
637
  }
567
- for (const targetId of agent.canDelegateTo ?? []) {
638
+ }
639
+ for (const targetId of agent.canDelegateTo ?? []) {
640
+ // String = internal subAgent
641
+ if (typeof targetId === 'string') {
568
642
  if (!data.subAgents[targetId]) {
569
643
  errors.push({
570
644
  message: `Delegate target '${targetId}' not found in agents.`,
@@ -3,11 +3,15 @@ import { addEdge, applyEdgeChanges, applyNodeChanges } from '@xyflow/react';
3
3
  import { create } from 'zustand';
4
4
  import { devtools } from 'zustand/middleware';
5
5
  import { useShallow } from 'zustand/react/shallow';
6
- import type { AgentToolConfigLookup } from '@/components/agent/agent';
6
+ import type {
7
+ AgentToolConfigLookup,
8
+ SubAgentExternalAgentConfigLookup,
9
+ } from '@/components/agent/agent';
7
10
  import type { AgentMetadata } from '@/components/agent/configuration/agent-types';
8
11
  import { mcpNodeHandleId, NodeType } from '@/components/agent/configuration/node-types';
9
12
  import type { ArtifactComponent } from '@/lib/api/artifact-components';
10
13
  import type { DataComponent } from '@/lib/api/data-components';
14
+ import type { ExternalAgent } from '@/lib/types/external-agents';
11
15
  import type { MCPTool } from '@/lib/types/tools';
12
16
  import type { AgentErrorSummary } from '@/lib/utils/agent-error-parser';
13
17
 
@@ -20,7 +24,9 @@ type AgentStateData = {
20
24
  dataComponentLookup: Record<string, DataComponent>;
21
25
  artifactComponentLookup: Record<string, ArtifactComponent>;
22
26
  toolLookup: Record<string, MCPTool>;
27
+ externalAgentLookup: Record<string, ExternalAgent>;
23
28
  agentToolConfigLookup: AgentToolConfigLookup;
29
+ subAgentExternalAgentConfigLookup: SubAgentExternalAgentConfigLookup;
24
30
  dirty: boolean;
25
31
  history: HistoryEntry[];
26
32
  future: HistoryEntry[];
@@ -36,13 +42,19 @@ type AgentActions = {
36
42
  dataComponentLookup?: Record<string, DataComponent>,
37
43
  artifactComponentLookup?: Record<string, ArtifactComponent>,
38
44
  toolLookup?: Record<string, MCPTool>,
39
- agentToolConfigLookup?: AgentToolConfigLookup
45
+ agentToolConfigLookup?: AgentToolConfigLookup,
46
+ externalAgentLookup?: Record<string, ExternalAgent>,
47
+ subAgentExternalAgentConfigLookup?: SubAgentExternalAgentConfigLookup
40
48
  ): void;
41
49
  reset(): void;
42
50
  setDataComponentLookup(dataComponentLookup: Record<string, DataComponent>): void;
43
51
  setArtifactComponentLookup(artifactComponentLookup: Record<string, ArtifactComponent>): void;
44
52
  setToolLookup(toolLookup: Record<string, MCPTool>): void;
45
53
  setAgentToolConfigLookup(agentToolConfigLookup: AgentToolConfigLookup): void;
54
+ setExternalAgentLookup(externalAgentLookup: Record<string, ExternalAgent>): void;
55
+ setSubAgentExternalAgentConfigLookup(
56
+ subAgentExternalAgentConfigLookup: SubAgentExternalAgentConfigLookup
57
+ ): void;
46
58
  setNodes(updater: (prev: Node[]) => Node[]): void;
47
59
  setEdges(updater: (prev: Edge[]) => Edge[]): void;
48
60
  onNodesChange(changes: NodeChange[]): void;
@@ -88,6 +100,8 @@ const initialAgentState: AgentStateData = {
88
100
  artifactComponentLookup: {},
89
101
  toolLookup: {},
90
102
  agentToolConfigLookup: {},
103
+ externalAgentLookup: {},
104
+ subAgentExternalAgentConfigLookup: {},
91
105
  dirty: false,
92
106
  history: [],
93
107
  future: [],
@@ -107,7 +121,9 @@ export const agentStore = create<AgentState>()(
107
121
  dataComponentLookup = {},
108
122
  artifactComponentLookup = {},
109
123
  toolLookup = {},
110
- agentToolConfigLookup = {}
124
+ agentToolConfigLookup = {},
125
+ externalAgentLookup = {},
126
+ subAgentExternalAgentConfigLookup = {}
111
127
  ) {
112
128
  set({
113
129
  nodes,
@@ -117,6 +133,8 @@ export const agentStore = create<AgentState>()(
117
133
  artifactComponentLookup,
118
134
  toolLookup,
119
135
  agentToolConfigLookup,
136
+ externalAgentLookup,
137
+ subAgentExternalAgentConfigLookup,
120
138
  dirty: false,
121
139
  history: [],
122
140
  future: [],
@@ -139,6 +157,12 @@ export const agentStore = create<AgentState>()(
139
157
  setAgentToolConfigLookup(agentToolConfigLookup) {
140
158
  set({ agentToolConfigLookup });
141
159
  },
160
+ setExternalAgentLookup(externalAgentLookup) {
161
+ set({ externalAgentLookup });
162
+ },
163
+ setSubAgentExternalAgentConfigLookup(subAgentExternalAgentConfigLookup) {
164
+ set({ subAgentExternalAgentConfigLookup });
165
+ },
142
166
  setNodes(updater) {
143
167
  set((state) => ({ nodes: updater(state.nodes) }));
144
168
  },
@@ -9,9 +9,25 @@ interface UseNodeEditorOptions {
9
9
  }
10
10
 
11
11
  export function useNodeEditor({ selectedNodeId, errorHelpers }: UseNodeEditorOptions) {
12
- const { updateNodeData } = useReactFlow();
12
+ const { updateNodeData, setNodes } = useReactFlow();
13
13
  const { markUnsaved } = useAgentActions();
14
14
 
15
+ const updateDefaultSubAgent = useCallback(
16
+ (isDefault: boolean) => {
17
+ setNodes((nodes) =>
18
+ nodes.map((node) => {
19
+ if (node.id === selectedNodeId) {
20
+ return { ...node, data: { ...node.data, isDefault }, deletable: !isDefault };
21
+ } else if (isDefault && node.data.isDefault) {
22
+ return { ...node, data: { ...node.data, isDefault: false }, deletable: true };
23
+ }
24
+ return node;
25
+ })
26
+ );
27
+ },
28
+ [selectedNodeId, setNodes]
29
+ );
30
+
15
31
  // Focus management for error fields
16
32
  const fieldRefs = useRef<Record<string, HTMLElement>>({});
17
33
 
@@ -127,6 +143,7 @@ export function useNodeEditor({ selectedNodeId, errorHelpers }: UseNodeEditorOpt
127
143
  updatePath,
128
144
  updateNestedPath,
129
145
  handleInputChange,
146
+ updateDefaultSubAgent,
130
147
 
131
148
  // Error handling
132
149
  getFieldError,
@@ -17,9 +17,9 @@ import {
17
17
  updateFullAgent as apiUpdateFullAgent,
18
18
  } from '../api/agent-full-client';
19
19
  import {
20
+ type Agent,
20
21
  type FullAgentDefinition,
21
22
  FullAgentDefinitionSchema,
22
- type Agent,
23
23
  } from '../types/agent-full';
24
24
 
25
25
  /**
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Server actions for external agent operations with path revalidation
3
+ */
4
+
5
+ 'use server';
6
+
7
+ import { revalidatePath } from 'next/cache';
8
+ import { deleteExternalAgent, fetchExternalAgents } from '../api/external-agents';
9
+ import { ApiError } from '../types/errors';
10
+ import type { ExternalAgent } from '../types/external-agents';
11
+ import type { ActionResult } from './types';
12
+
13
+ /**
14
+ * Fetch all external agents for a project
15
+ */
16
+ export async function fetchExternalAgentsAction(
17
+ tenantId: string,
18
+ projectId: string
19
+ ): Promise<ActionResult<ExternalAgent[]>> {
20
+ try {
21
+ const externalAgents = await fetchExternalAgents(tenantId, projectId);
22
+ return {
23
+ success: true,
24
+ data: externalAgents,
25
+ };
26
+ } catch (error) {
27
+ if (error instanceof ApiError) {
28
+ return {
29
+ success: false,
30
+ error: error.message,
31
+ code: error.error.code,
32
+ };
33
+ }
34
+
35
+ return {
36
+ success: false,
37
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
38
+ code: 'unknown_error',
39
+ };
40
+ }
41
+ }
42
+
43
+ /**
44
+ * Delete an external agent
45
+ */
46
+ export async function deleteExternalAgentAction(
47
+ tenantId: string,
48
+ projectId: string,
49
+ externalAgentId: string
50
+ ): Promise<ActionResult<void>> {
51
+ try {
52
+ await deleteExternalAgent(tenantId, projectId, externalAgentId);
53
+ revalidatePath(`/${tenantId}/projects/${projectId}/external-agents`);
54
+ revalidatePath(`/${tenantId}/projects/${projectId}/external-agents/${externalAgentId}`);
55
+ return {
56
+ success: true,
57
+ };
58
+ } catch (error) {
59
+ if (error instanceof ApiError) {
60
+ return {
61
+ success: false,
62
+ error: error.message,
63
+ code: error.error.code,
64
+ };
65
+ }
66
+
67
+ return {
68
+ success: false,
69
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
70
+ code: 'unknown_error',
71
+ };
72
+ }
73
+ }
@@ -3,6 +3,7 @@
3
3
  import type {
4
4
  CredentialReferenceApiInsert,
5
5
  CredentialReferenceApiSelect,
6
+ ExternalAgentApiSelect,
6
7
  McpTool,
7
8
  } from '@inkeep/agents-core';
8
9
  import type { ListResponse, SingleResponse } from '../types/response';
@@ -13,6 +14,7 @@ import { validateProjectId, validateTenantId } from './resource-validation';
13
14
  // Re-export types from core package for convenience
14
15
  export type Credential = CredentialReferenceApiSelect & {
15
16
  tools?: McpTool[];
17
+ externalAgents?: ExternalAgentApiSelect[];
16
18
  };
17
19
  export type CreateCredentialRequest = CredentialReferenceApiInsert;
18
20
 
@@ -0,0 +1,121 @@
1
+ 'use server';
2
+
3
+ import type { ExternalAgentApiInsert, ExternalAgentApiSelect } from '@inkeep/agents-core';
4
+
5
+ import type { ListResponse, SingleResponse } from '../types/response';
6
+ // Default configuration
7
+ import { makeManagementApiRequest } from './api-config';
8
+ import { validateProjectId, validateTenantId } from './resource-validation';
9
+
10
+ // Use Omit to make id optional for creation
11
+ type CreateExternalAgentRequest = Omit<ExternalAgentApiInsert, 'id'> & {
12
+ id?: string; // Make id optional for creation
13
+ };
14
+
15
+ export type ExternalAgent = ExternalAgentApiSelect;
16
+
17
+ /**
18
+ * List all external agents for the current project
19
+ */
20
+ export async function fetchExternalAgents(
21
+ tenantId: string,
22
+ projectId: string,
23
+ page = 1,
24
+ pageSize = 50
25
+ ): Promise<ExternalAgent[]> {
26
+ validateTenantId(tenantId);
27
+ validateProjectId(projectId);
28
+
29
+ const params = new URLSearchParams({
30
+ page: page.toString(),
31
+ limit: pageSize.toString(),
32
+ });
33
+
34
+ const response = await makeManagementApiRequest<ListResponse<ExternalAgent>>(
35
+ `tenants/${tenantId}/projects/${projectId}/external-agents?${params}`
36
+ );
37
+
38
+ return response.data;
39
+ }
40
+
41
+ /**
42
+ * Get a single external agent by ID
43
+ */
44
+ export async function fetchExternalAgent(
45
+ tenantId: string,
46
+ projectId: string,
47
+ id: string
48
+ ): Promise<ExternalAgent> {
49
+ validateTenantId(tenantId);
50
+ validateProjectId(projectId);
51
+
52
+ const response = await makeManagementApiRequest<SingleResponse<ExternalAgent>>(
53
+ `tenants/${tenantId}/projects/${projectId}/external-agents/${id}`
54
+ );
55
+
56
+ return response.data;
57
+ }
58
+
59
+ /**
60
+ * Create a new external agent
61
+ */
62
+ export async function createExternalAgent(
63
+ tenantId: string,
64
+ projectId: string,
65
+ data: CreateExternalAgentRequest
66
+ ): Promise<ExternalAgent> {
67
+ validateTenantId(tenantId);
68
+ validateProjectId(projectId);
69
+
70
+ const response = await makeManagementApiRequest<SingleResponse<ExternalAgent>>(
71
+ `tenants/${tenantId}/projects/${projectId}/external-agents`,
72
+ {
73
+ method: 'POST',
74
+ body: JSON.stringify(data),
75
+ }
76
+ );
77
+
78
+ return response.data;
79
+ }
80
+
81
+ /**
82
+ * Update an existing external agent
83
+ */
84
+ export async function updateExternalAgent(
85
+ tenantId: string,
86
+ projectId: string,
87
+ id: string,
88
+ data: Partial<CreateExternalAgentRequest>
89
+ ): Promise<ExternalAgent> {
90
+ validateTenantId(tenantId);
91
+ validateProjectId(projectId);
92
+
93
+ const response = await makeManagementApiRequest<SingleResponse<ExternalAgent>>(
94
+ `tenants/${tenantId}/projects/${projectId}/external-agents/${id}`,
95
+ {
96
+ method: 'PUT',
97
+ body: JSON.stringify(data),
98
+ }
99
+ );
100
+
101
+ return response.data;
102
+ }
103
+
104
+ /**
105
+ * Delete an external agent
106
+ */
107
+ export async function deleteExternalAgent(
108
+ tenantId: string,
109
+ projectId: string,
110
+ id: string
111
+ ): Promise<void> {
112
+ validateTenantId(tenantId);
113
+ validateProjectId(projectId);
114
+
115
+ await makeManagementApiRequest<void>(
116
+ `tenants/${tenantId}/projects/${projectId}/external-agents/${id}`,
117
+ {
118
+ method: 'DELETE',
119
+ }
120
+ );
121
+ }
@@ -9,12 +9,13 @@ import { z } from 'zod';
9
9
 
10
10
  // Import core types and schemas
11
11
  import {
12
- type AgentApiInsert,
13
- AgentApiInsertSchema,
14
12
  AgentAgentApiInsertSchema,
15
13
  type AgentAgentInsert,
14
+ type AgentApiInsert,
15
+ AgentApiInsertSchema,
16
16
  type FullAgentDefinition as CoreFullAgentDefinition,
17
17
  ErrorResponseSchema,
18
+ type ExternalAgentApiInsert,
18
19
  type ExternalAgentDefinition,
19
20
  FullAgentDefinitionSchema,
20
21
  type FunctionApiInsert,
@@ -31,6 +32,7 @@ import type { SingleResponse } from './response';
31
32
  // Extend FullAgentDefinition with UI-specific lookup maps
32
33
  export type FullAgentDefinition = CoreFullAgentDefinition & {
33
34
  tools?: Record<string, ToolApiInsert>;
35
+ externalAgents?: Record<string, ExternalAgentApiInsert>;
34
36
  functionTools?: Record<string, any>; // Function tools are agent-scoped
35
37
  functions?: Record<string, FunctionApiInsert>;
36
38
  };