@inkeep/agents-manage-ui 0.29.11 → 0.30.1

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 (186) 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 +131 -131
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +7 -7
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +15 -15
  6. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +1 -1
  7. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js +2 -2
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +2 -2
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +1 -1
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +1 -1
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -2
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js.nft.json +1 -1
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +2 -2
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js.nft.json +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -2
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +1 -1
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +1 -1
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +2 -2
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  82. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +1 -1
  83. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  85. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +8 -8
  86. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route.js +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  91. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  92. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +7 -7
  93. package/.next/standalone/agents-manage-ui/.next/server/chunks/1051.js +2 -2
  94. package/.next/standalone/agents-manage-ui/.next/server/chunks/2012.js +1 -0
  95. package/.next/standalone/agents-manage-ui/.next/server/chunks/208.js +1 -0
  96. package/.next/standalone/agents-manage-ui/.next/server/chunks/418.js +1 -0
  97. package/.next/standalone/agents-manage-ui/.next/server/chunks/4386.js +1 -0
  98. package/.next/standalone/agents-manage-ui/.next/server/chunks/4608.js +5 -5
  99. package/.next/standalone/agents-manage-ui/.next/server/chunks/4629.js +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/server/chunks/493.js +1 -1
  101. package/.next/standalone/agents-manage-ui/.next/server/chunks/5206.js +2 -2
  102. package/.next/standalone/agents-manage-ui/.next/server/chunks/5450.js +7 -7
  103. package/.next/standalone/agents-manage-ui/.next/server/chunks/{3738.js → 6685.js} +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/server/chunks/6915.js +1 -1
  105. package/.next/standalone/agents-manage-ui/.next/server/chunks/7166.js +123 -0
  106. package/.next/standalone/agents-manage-ui/.next/server/chunks/{618.js → 7185.js} +1 -1
  107. package/.next/standalone/agents-manage-ui/.next/server/chunks/7306.js +2 -2
  108. package/.next/standalone/agents-manage-ui/.next/server/chunks/7586.js +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/server/chunks/7990.js +1 -1
  110. package/.next/standalone/agents-manage-ui/.next/server/chunks/9887.js +12 -12
  111. package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
  112. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  113. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  114. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  116. package/.next/standalone/agents-manage-ui/.next/static/chunks/{13328-3e425f7d09c51541.js → 13328-589690cae0c51138.js} +1 -1
  117. package/.next/standalone/agents-manage-ui/.next/static/chunks/{59789-dea8ca5029246fe2.js → 18417-889badb50e89f506.js} +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/static/chunks/{92288-ad4e1e33d8b16129.js → 29177-2e8bc35cfa8e85a1.js} +2 -2
  119. package/.next/standalone/agents-manage-ui/.next/static/chunks/30457-3c313bac7f8cfa6c.js +1 -0
  120. package/.next/standalone/agents-manage-ui/.next/static/chunks/38252-95ab90100c9977cf.js +1 -0
  121. package/.next/standalone/agents-manage-ui/.next/static/chunks/60864-5a56298db0914e3d.js +4 -0
  122. package/.next/standalone/agents-manage-ui/.next/static/chunks/63496-05fece77d55b446d.js +1 -0
  123. package/.next/standalone/agents-manage-ui/.next/static/chunks/65336-d517a782803f82bd.js +1 -0
  124. package/.next/standalone/agents-manage-ui/.next/static/chunks/7231-52871124dd13d0cc.js +123 -0
  125. package/.next/standalone/agents-manage-ui/.next/static/chunks/{8300-d2edf6977169afcd.js → 8300-d7a3c39e3a967cc3.js} +1 -1
  126. package/.next/standalone/agents-manage-ui/.next/static/chunks/96777-5f1577313988510b.js +1 -0
  127. package/.next/standalone/agents-manage-ui/.next/static/chunks/{93721-d6b13a7c6e1b73d7.js → 98428-d3f11b624797f527.js} +1 -1
  128. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-067f67beb8f72ffe.js → page-bf3d6e9208c10c47.js} +1 -1
  129. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/{page-8538f99e815560f1.js → page-18c62c993b74b713.js} +1 -1
  130. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/{page-7ff711f0f03db1d6.js → page-c1137c654255649f.js} +1 -1
  131. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-464e6b3c1c143858.js +1 -0
  132. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/{page-332726a07f3652bd.js → page-5eb4e000e8f5282f.js} +1 -1
  133. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/{page-12241592072bf78e.js → page-a915375e7dfcb747.js} +1 -1
  134. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/{page-adacc13813f3516a.js → page-45496e9dc885096e.js} +1 -1
  135. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-b9c5a45fed7d90c6.js → page-8181435b4b6f86d0.js} +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/{page-05f7e4c2bed4dcca.js → page-ef48b8508c4a9f07.js} +1 -1
  137. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-936cffc5d2b96942.js +1 -0
  138. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-bb11506d781ef258.js +1 -0
  139. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-cb21405decefd467.js +1 -0
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-5f8b30a4a2e74d5f.js +1 -0
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-94690f00fc35256a.js +1 -0
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/{page-bb9f5dbff37d1a61.js → page-c2353d575b17851a.js} +1 -1
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/{page-e7d75d20ead8bcb9.js → page-04b33dd50985ac71.js} +1 -1
  144. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/{page-6021547395e16839.js → page-7ce46049f43ac89d.js} +1 -1
  145. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-b49a81e7faace378.js → page-2dceb4e2ac2dd9a1.js} +1 -1
  146. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-f76f97a38f3df5ef.js +1 -0
  147. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-1f465c288972a7c5.js → page-24689c6162ab0c80.js} +1 -1
  148. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-1ffb13926bccc524.js → page-fff0c1d675c192f4.js} +1 -1
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-ea89e6ce2e0f1bb7.js → page-5696b3f6cb5b6b9a.js} +1 -1
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/{page-0858a90ea4eaeeec.js → page-f2d3ab1b44246720.js} +1 -1
  151. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-38b080eefd96c433.js +1 -0
  152. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-c95090e5caaefe10.js +1 -0
  153. package/.next/standalone/agents-manage-ui/package.json +2 -1
  154. package/.next/standalone/package.json +8 -8
  155. package/.next/standalone/packages/agents-core/package.json +1 -1
  156. package/package.json +5 -4
  157. package/src/components/agent/sidepane/edges/edge-editor.tsx +110 -26
  158. package/src/components/agent/sidepane/metadata/metadata-editor.tsx +3 -3
  159. package/src/components/agent/sidepane/nodes/model-section.tsx +3 -3
  160. package/src/components/projects/form/project-models-section.tsx +3 -3
  161. package/src/components/ui/radio-group.tsx +39 -0
  162. package/src/lib/utils/agent-error-parser.ts +1 -1
  163. package/src/lib/utils/cycle-detection.ts +70 -0
  164. package/.next/standalone/agents-manage-ui/.next/server/chunks/1026.js +0 -1
  165. package/.next/standalone/agents-manage-ui/.next/server/chunks/3440.js +0 -1
  166. package/.next/standalone/agents-manage-ui/.next/server/chunks/3802.js +0 -123
  167. package/.next/standalone/agents-manage-ui/.next/server/chunks/7882.js +0 -1
  168. package/.next/standalone/agents-manage-ui/.next/server/chunks/9415.js +0 -1
  169. package/.next/standalone/agents-manage-ui/.next/static/chunks/16631-8d275ca71102f283.js +0 -123
  170. package/.next/standalone/agents-manage-ui/.next/static/chunks/5822-36ae5cbfd8972658.js +0 -1
  171. package/.next/standalone/agents-manage-ui/.next/static/chunks/58544-b3c9fb62efc27e15.js +0 -1
  172. package/.next/standalone/agents-manage-ui/.next/static/chunks/60864-b5d5476b1699d327.js +0 -4
  173. package/.next/standalone/agents-manage-ui/.next/static/chunks/63496-f9d66fd67133f7a3.js +0 -1
  174. package/.next/standalone/agents-manage-ui/.next/static/chunks/83463-ae4972fe9797846b.js +0 -1
  175. package/.next/standalone/agents-manage-ui/.next/static/chunks/84884-ee2796dd0d9c4c4c.js +0 -1
  176. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-8156d2b93d29332a.js +0 -1
  177. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-68fb73b77dc7c643.js +0 -1
  178. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-a901f20df950b72d.js +0 -1
  179. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-f2c578f35187addb.js +0 -1
  180. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-f65e30459cbcbb40.js +0 -1
  181. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-1eb9663a0efef165.js +0 -1
  182. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-23ff38da8e8034d1.js +0 -1
  183. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-af689271025c9a10.js +0 -1
  184. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-0e7131100ff5888c.js +0 -1
  185. /package/.next/standalone/agents-manage-ui/.next/static/{aAf3IZvh4KCdY8JWKhRNk → 8J6i2h2kYuG8UYXrNY4C8}/_buildManifest.js +0 -0
  186. /package/.next/standalone/agents-manage-ui/.next/static/{aAf3IZvh4KCdY8JWKhRNk → 8J6i2h2kYuG8UYXrNY4C8}/_ssgManifest.js +0 -0
@@ -1,13 +1,16 @@
1
1
  import { type Edge, useNodesData, useReactFlow } from '@xyflow/react';
2
2
  import { Spline, Trash2 } from 'lucide-react';
3
3
  import { useCallback } from 'react';
4
+ import { toast } from 'sonner';
4
5
  import { DashedSplineIcon } from '@/components/icons/dashed-spline';
5
6
  import { Badge } from '@/components/ui/badge';
6
7
  import { Button } from '@/components/ui/button';
7
8
  import { Checkbox } from '@/components/ui/checkbox';
8
9
  import { Label } from '@/components/ui/label';
10
+ import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';
9
11
  import { Separator } from '@/components/ui/separator';
10
12
  import { useAgentActions } from '@/features/agent/state/use-agent-store';
13
+ import { getCycleErrorMessage, wouldCreateCycle } from '@/lib/utils/cycle-detection';
11
14
  import type { A2AEdgeData } from '../../configuration/edge-types';
12
15
 
13
16
  type RelationshipOptionProps = {
@@ -42,6 +45,8 @@ type RelationshipSectionProps = {
42
45
  options: Array<{ id: string; label: string | React.ReactNode }>;
43
46
  onCheckedChange: (id: string, checked: boolean) => void;
44
47
  checkedValues: A2AEdgeData['relationships'];
48
+ useRadio?: boolean;
49
+ onRadioChange?: (value: string) => void;
45
50
  };
46
51
 
47
52
  function RelationshipSection({
@@ -51,7 +56,16 @@ function RelationshipSection({
51
56
  options,
52
57
  onCheckedChange,
53
58
  checkedValues,
59
+ useRadio = false,
60
+ onRadioChange,
54
61
  }: RelationshipSectionProps) {
62
+ const getRadioValue = () => {
63
+ const checkedOption = options.find(
64
+ (opt) => checkedValues?.[opt.id as keyof A2AEdgeData['relationships']],
65
+ );
66
+ return checkedOption?.id || '';
67
+ };
68
+
55
69
  return (
56
70
  <div className="space-y-4">
57
71
  <div className="space-y-2">
@@ -61,15 +75,30 @@ function RelationshipSection({
61
75
  </div>
62
76
  <p className="text-muted-foreground text-sm">{description}</p>
63
77
  </div>
64
- {options.map((option) => (
65
- <RelationshipOption
66
- key={option.id}
67
- id={option.id}
68
- label={option.label}
69
- onCheckedChange={onCheckedChange}
70
- checked={checkedValues?.[option.id as keyof A2AEdgeData['relationships']] || false}
71
- />
72
- ))}
78
+ {useRadio && onRadioChange ? (
79
+ <RadioGroup value={getRadioValue()} onValueChange={onRadioChange}>
80
+ {options.map((option) => (
81
+ <div key={option.id} className="flex items-start gap-3">
82
+ <RadioGroupItem value={option.id} id={option.id} className="mt-[5px]" />
83
+ <div className="grid gap-2">
84
+ <Label htmlFor={option.id} className="font-normal">
85
+ {option.label}
86
+ </Label>
87
+ </div>
88
+ </div>
89
+ ))}
90
+ </RadioGroup>
91
+ ) : (
92
+ options.map((option) => (
93
+ <RelationshipOption
94
+ key={option.id}
95
+ id={option.id}
96
+ label={option.label}
97
+ onCheckedChange={onCheckedChange}
98
+ checked={checkedValues?.[option.id as keyof A2AEdgeData['relationships']] || false}
99
+ />
100
+ ))
101
+ )}
73
102
  </div>
74
103
  );
75
104
  }
@@ -79,7 +108,7 @@ interface EdgeEditorProps {
79
108
  }
80
109
 
81
110
  function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
82
- const { updateEdgeData, setEdges, deleteElements } = useReactFlow();
111
+ const { updateEdgeData, setEdges, deleteElements, getEdges } = useReactFlow();
83
112
 
84
113
  const deleteEdge = useCallback(() => {
85
114
  deleteElements({ edges: [{ id: selectedEdge.id }] });
@@ -91,6 +120,43 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
91
120
 
92
121
  const isSelfLoop = selectedEdge.source === selectedEdge.target;
93
122
 
123
+ const checkForCycle = (delegateId: string): boolean => {
124
+ const source = delegateId === 'delegateSourceToTarget' ? selectedEdge.source : selectedEdge.target;
125
+ const target = delegateId === 'delegateSourceToTarget' ? selectedEdge.target : selectedEdge.source;
126
+
127
+ const allEdges = getEdges();
128
+ const otherEdges = allEdges.filter((edge) => edge.id !== selectedEdge.id);
129
+
130
+ if (wouldCreateCycle(otherEdges, { source, target })) {
131
+ const sourceName = (sourceNode?.data.name as string) || (sourceNode?.data.id as string) || 'Sub Agent';
132
+ const targetName = (targetNode?.data.name as string) || (targetNode?.data.id as string) || 'Sub Agent';
133
+ const sourceLabel = delegateId === 'delegateSourceToTarget' ? sourceName : targetName;
134
+ const targetLabel = delegateId === 'delegateSourceToTarget' ? targetName : sourceName;
135
+
136
+ toast.error('Circular Delegation Detected', {
137
+ description: getCycleErrorMessage(sourceLabel, targetLabel),
138
+ });
139
+ return true;
140
+ }
141
+ return false;
142
+ };
143
+
144
+ const updateRelationships = (newRelationships: A2AEdgeData['relationships']) => {
145
+ const hasAnyRelationship =
146
+ newRelationships.transferSourceToTarget ||
147
+ newRelationships.transferTargetToSource ||
148
+ newRelationships.delegateSourceToTarget ||
149
+ newRelationships.delegateTargetToSource;
150
+
151
+ markUnsaved();
152
+
153
+ if (!hasAnyRelationship) {
154
+ setEdges((edges) => edges.filter((edge) => edge.id !== selectedEdge.id));
155
+ } else {
156
+ updateEdgeData(selectedEdge.id, { relationships: newRelationships });
157
+ }
158
+ };
159
+
94
160
  const handleCheckboxChange = (id: string, checked: boolean) => {
95
161
  // Calculate the new relationships state
96
162
  let newRelationships: A2AEdgeData['relationships'];
@@ -111,29 +177,45 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
111
177
  ...updates,
112
178
  };
113
179
  } else {
180
+ const updates: Partial<A2AEdgeData['relationships']> = { [id]: checked };
181
+
182
+ // Prevent two-way delegation: when enabling one delegation direction, disable the opposite
183
+ if (checked) {
184
+ if (id === 'delegateSourceToTarget') {
185
+ updates.delegateTargetToSource = false;
186
+ } else if (id === 'delegateTargetToSource') {
187
+ updates.delegateSourceToTarget = false;
188
+ }
189
+ }
190
+
114
191
  newRelationships = {
115
192
  ...(selectedEdge.data?.relationships as A2AEdgeData['relationships']),
116
- [id]: checked,
193
+ ...updates,
117
194
  };
118
195
  }
119
196
 
120
- const hasAnyRelationship =
121
- newRelationships.transferSourceToTarget ||
122
- newRelationships.transferTargetToSource ||
123
- newRelationships.delegateSourceToTarget ||
124
- newRelationships.delegateTargetToSource;
197
+ updateRelationships(newRelationships);
198
+ };
125
199
 
126
- // Always mark as unsaved when relationships change
127
- markUnsaved();
200
+ const handleDelegateRadioChange = (value: string) => {
201
+ if (value && checkForCycle(value)) return;
128
202
 
129
- if (!hasAnyRelationship) {
130
- // Remove the edge if no relationships remain
131
- setEdges((edges) => edges.filter((edge) => edge.id !== selectedEdge.id));
132
- } else {
133
- updateEdgeData(selectedEdge.id, {
134
- relationships: newRelationships,
135
- });
203
+ const newRelationships: A2AEdgeData['relationships'] = {
204
+ ...(selectedEdge.data?.relationships as A2AEdgeData['relationships']),
205
+ delegateSourceToTarget: false,
206
+ delegateTargetToSource: false,
207
+ };
208
+
209
+ if (value) {
210
+ if (isSelfLoop && value === 'delegateSourceToTarget') {
211
+ newRelationships.delegateSourceToTarget = true;
212
+ newRelationships.delegateTargetToSource = true;
213
+ } else {
214
+ newRelationships[value as keyof A2AEdgeData['relationships']] = true;
215
+ }
136
216
  }
217
+
218
+ updateRelationships(newRelationships);
137
219
  };
138
220
 
139
221
  const sourceName =
@@ -245,10 +327,12 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
245
327
  <RelationshipSection
246
328
  icon={<DashedSplineIcon className="w-4 h-4 text-muted-foreground" />}
247
329
  title="Delegate relationships"
248
- description="Delegate relationships are used to pass a task from one agent to another."
330
+ description="Delegate relationships are used to pass a task from one agent to another. Delegate relationships cannot be bi-directional."
249
331
  options={delegateOptions}
250
332
  onCheckedChange={handleCheckboxChange}
251
333
  checkedValues={selectedEdge.data?.relationships as A2AEdgeData['relationships']}
334
+ useRadio={true}
335
+ onRadioChange={handleDelegateRadioChange}
252
336
  />
253
337
  <Separator />
254
338
  <div className="flex justify-end">
@@ -226,7 +226,7 @@ function MetadataEditor() {
226
226
  value={models.base.providerOptions || ''}
227
227
  placeholder={`{
228
228
  "temperature": 0.7,
229
- "maxTokens": 2048
229
+ "maxOutputTokens": 2048
230
230
  }`}
231
231
  />
232
232
  )}
@@ -286,7 +286,7 @@ function MetadataEditor() {
286
286
  value={models.structuredOutput.providerOptions || ''}
287
287
  placeholder={`{
288
288
  "temperature": 0.1,
289
- "maxTokens": 1024
289
+ "maxOutputTokens": 1024
290
290
  }`}
291
291
  />
292
292
  )}
@@ -345,7 +345,7 @@ function MetadataEditor() {
345
345
  value={models.summarizer.providerOptions || ''}
346
346
  placeholder={`{
347
347
  "temperature": 0.3,
348
- "maxTokens": 1024
348
+ "maxOutputTokens": 1024
349
349
  }`}
350
350
  />
351
351
  )}
@@ -76,7 +76,7 @@ export function ModelSection({
76
76
  value={models?.base?.providerOptions || ''}
77
77
  placeholder={`{
78
78
  "temperature": 0.7,
79
- "maxTokens": 2048
79
+ "maxOutputTokens": 2048
80
80
  }`}
81
81
  />
82
82
  )}
@@ -124,7 +124,7 @@ export function ModelSection({
124
124
  value={models?.structuredOutput?.providerOptions || ''}
125
125
  placeholder={`{
126
126
  "temperature": 0.1,
127
- "maxTokens": 1024
127
+ "maxOutputTokens": 1024
128
128
  }`}
129
129
  />
130
130
  )}
@@ -172,7 +172,7 @@ export function ModelSection({
172
172
  value={models?.summarizer?.providerOptions || ''}
173
173
  placeholder={`{
174
174
  "temperature": 0.3,
175
- "maxTokens": 1024
175
+ "maxOutputTokens": 1024
176
176
  }`}
177
177
  />
178
178
  )}
@@ -62,7 +62,7 @@ function BaseModelSection({ control }: { control: Control<ProjectFormData> }) {
62
62
  }}
63
63
  placeholder={`{
64
64
  "temperature": 0.7,
65
- "maxTokens": 2048
65
+ "maxOutputTokens": 2048
66
66
  }`}
67
67
  />
68
68
  </div>
@@ -116,7 +116,7 @@ function StructuredOutputModelSection({ control }: { control: Control<ProjectFor
116
116
  }}
117
117
  placeholder={`{
118
118
  "temperature": 0.1,
119
- "maxTokens": 1024
119
+ "maxOutputTokens": 1024
120
120
  }`}
121
121
  />
122
122
  </div>
@@ -170,7 +170,7 @@ function SummarizerModelSection({ control }: { control: Control<ProjectFormData>
170
170
  }}
171
171
  placeholder={`{
172
172
  "temperature": 0.3,
173
- "maxTokens": 1024
173
+ "maxOutputTokens": 1024
174
174
  }`}
175
175
  />
176
176
  </div>
@@ -0,0 +1,39 @@
1
+ 'use client';
2
+
3
+ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
4
+ import { Circle } from 'lucide-react';
5
+ import type * as React from 'react';
6
+
7
+ import { cn } from '@/lib/utils';
8
+
9
+ function RadioGroup({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {
10
+ return (
11
+ <RadioGroupPrimitive.Root
12
+ className={cn('grid gap-2', className)}
13
+ {...props}
14
+ />
15
+ );
16
+ }
17
+
18
+ function RadioGroupItem({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {
19
+ return (
20
+ <RadioGroupPrimitive.Item
21
+ data-slot="radio-item"
22
+ className={cn(
23
+ 'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-full border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',
24
+ className
25
+ )}
26
+ {...props}
27
+ >
28
+ <RadioGroupPrimitive.Indicator
29
+ data-slot="radio-indicator"
30
+ className="flex items-center justify-center"
31
+ >
32
+ <Circle className="size-2.5 fill-current text-current" />
33
+ </RadioGroupPrimitive.Indicator>
34
+ </RadioGroupPrimitive.Item>
35
+ );
36
+ }
37
+
38
+ export { RadioGroup, RadioGroupItem };
39
+
@@ -200,7 +200,7 @@ function getFieldDisplayName(field: string): string {
200
200
  description: 'Description',
201
201
  model: 'Model',
202
202
  temperature: 'Temperature',
203
- maxTokens: 'Max tokens',
203
+ maxOutputTokens: 'Max output tokens',
204
204
  systemPrompt: 'System prompt',
205
205
  tools: 'Tools',
206
206
  dataComponents: 'Components',
@@ -0,0 +1,70 @@
1
+ import type { Edge } from '@xyflow/react';
2
+ import type { A2AEdgeData } from '@/components/agent/configuration/edge-types';
3
+
4
+ export type DelegationEdge = {
5
+ source: string;
6
+ target: string;
7
+ };
8
+
9
+ export function wouldCreateCycle(
10
+ edges: Edge[],
11
+ newDelegation: DelegationEdge
12
+ ): boolean {
13
+ const graph = buildDelegationGraph(edges);
14
+ const sources = graph.get(newDelegation.source) || [];
15
+ graph.set(newDelegation.source, [...sources, newDelegation.target]);
16
+ return hasCycle(graph);
17
+ }
18
+
19
+ function buildDelegationGraph(edges: Edge[]): Map<string, string[]> {
20
+ const graph = new Map<string, string[]>();
21
+
22
+ for (const edge of edges) {
23
+ const relationships = edge.data?.relationships as A2AEdgeData['relationships'] | undefined;
24
+ if (!relationships) continue;
25
+
26
+ if (relationships.delegateSourceToTarget) {
27
+ const targets = graph.get(edge.source) || [];
28
+ graph.set(edge.source, [...targets, edge.target]);
29
+ }
30
+
31
+ if (relationships.delegateTargetToSource) {
32
+ const sources = graph.get(edge.target) || [];
33
+ graph.set(edge.target, [...sources, edge.source]);
34
+ }
35
+ }
36
+
37
+ return graph;
38
+ }
39
+
40
+ function hasCycle(graph: Map<string, string[]>): boolean {
41
+ const visited = new Set<string>();
42
+ const stack = new Set<string>();
43
+
44
+ function dfs(node: string): boolean {
45
+ visited.add(node);
46
+ stack.add(node);
47
+
48
+ for (const neighbor of graph.get(node) || []) {
49
+ if (!visited.has(neighbor)) {
50
+ if (dfs(neighbor)) return true;
51
+ } else if (stack.has(neighbor)) {
52
+ return true;
53
+ }
54
+ }
55
+
56
+ stack.delete(node);
57
+ return false;
58
+ }
59
+
60
+ for (const node of graph.keys()) {
61
+ if (!visited.has(node) && dfs(node)) return true;
62
+ }
63
+
64
+ return false;
65
+ }
66
+
67
+ export function getCycleErrorMessage(sourceAgent: string, targetAgent: string): string {
68
+ return `Cannot create delegation from "${sourceAgent}" to "${targetAgent}" as it would create a circular delegation chain. Circular delegations can cause infinite loops.`;
69
+ }
70
+
@@ -1 +0,0 @@
1
- "use strict";exports.id=1026,exports.ids=[1026],exports.modules={5294:(a,b,c)=>{c.d(b,{$Y:()=>g,GO:()=>i,K3:()=>h,h9:()=>k});var d=c(29991);c(58415);var e=c(8703),f=c(45796);async function g(a,b,c=1,d=50){(0,f.M2)(a),(0,f.nt)(b);let h=new URLSearchParams({page:c.toString(),limit:d.toString()});return(await (0,e.J)(`tenants/${a}/projects/${b}/credentials?${h}`)).data}async function h(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`)).data}async function i(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials`,{method:"POST",body:JSON.stringify(c)})).data}async function j(a,b,c,d){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"PUT",body:JSON.stringify(d)})).data}async function k(a,b,c){(0,f.M2)(a),(0,f.nt)(b),await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}(0,c(33451).D)([g,h,i,j,k]),(0,d.A)(g,"78dbbaf22d0fe29e905fcbe5b93c74e3eff23653c6",null),(0,d.A)(h,"706b876b92afbfaff4ba07bb705e50bbcd0d1e40ce",null),(0,d.A)(i,"708aa055b9eacd158f99d215f764023f79e98a9789",null),(0,d.A)(j,"78e7347575f5f69232ff0a9637a028add4ce192395",null),(0,d.A)(k,"70e71f9720028dd3f627e97a23ac1676cc44f80c28",null)},19329:(a,b,c)=>{c.d(b,{U:()=>f});var d=c(29991);c(58415);var e=c(5294);async function f(a,b,c){try{let d=await (0,e.K3)(a,b,c.id);if(d)return d}catch{}try{return await (0,e.GO)(a,b,c)}catch(a){throw console.error("Failed to save credential to database:",a),Error(`Failed to save credential '${c.id}' to database`)}}(0,c(33451).D)([f]),(0,d.A)(f,"708ff1a564f669ab1d5f88f7451b92ff40097ea1bf",null)},21395:(a,b,c)=>{c.d(b,{Ak:()=>p,uP:()=>t,tN:()=>r,Mj:()=>o,tQ:()=>n,pv:()=>m,Mb:()=>l,H6:()=>u,EN:()=>k,P:()=>v,Jg:()=>q});var d=c(29991);c(58415);var e=c(47084),f=c(67417);class g extends Error{constructor(a,b,c){super(a),this.operation=b,this.cause=c,this.name="NangoError"}}function h(a,b,c){if(a instanceof g)throw a;throw new g(b,c,a)}var i=c(33451);let j=()=>{let a=process.env.NANGO_SECRET_KEY;if(!a)throw new g("NANGO_SECRET_KEY environment variable is required for Nango integration");try{return new e.CA({secretKey:a,host:process.env.NANGO_SERVER_URL||"https://api.nango.dev"})}catch(a){throw new g("Failed to initialize Nango client","new Nango",a)}};async function k(){let a=process.env.NANGO_SECRET_KEY;return!!(a&&""!==a.trim())}async function l(){try{let a=j();return(await a.listProviders({})).data}catch(a){console.error("Failed to fetch providers:",a),h(a,"Unable to retrieve available providers from Nango","listProviders")}}async function m(a){try{let b=j();return(await b.getProvider({provider:a})).data}catch(b){console.error(`Failed to fetch provider ${a}:`,b),h(b,`Provider '${a}' not found or inaccessible`,"getProvider")}}async function n(){try{let a=j();return(await a.listIntegrations()).configs}catch(a){console.error("Failed to fetch integrations:",a),h(a,"Unable to retrieve existing integrations","listIntegrations")}}async function o(a){try{let b=j(),c=(await b.getIntegration({uniqueKey:a},{include:["credentials"]})).data,d=!1;d=c.credentials?.type==="OAUTH2"||c.credentials?.type==="OAUTH1"||c.credentials?.type==="TBA"?!!(c.credentials?.client_id&&c.credentials?.client_secret):c.credentials?.type!=="APP"||!!(c.credentials?.app_id&&c.credentials?.app_link);let{credentials:e,...f}=c;return{...f,areCredentialsSet:d}}catch(b){if(b&&"object"==typeof b&&"status"in b&&404===b.status)return null;console.error(`Failed to fetch integration ${a}:`,b),h(b,`Unable to fetch integration with key '${a}'`,"getIntegration")}}async function p(a){try{let b=j();return(await b.createIntegration({provider:a.provider,unique_key:a.uniqueKey,display_name:a.displayName,credentials:a.credentials})).data}catch(b){console.error("Failed to create integration:",b),h(b,`Failed to create integration '${a.uniqueKey}' for provider '${a.provider}'`,"createIntegration")}}async function q({uniqueKey:a}){let b=process.env.NANGO_SECRET_KEY;if(!b)throw new g("NANGO_SECRET_KEY environment variable is required for Nango integration");let c=process.env.NANGO_SERVER_URL||"https://api.nango.dev",d=process.env.OAUTH_CLIENT_NAME||"Inkeep Agent Framework",e=process.env.OAUTH_CLIENT_URI||"https://inkeep.com",f=process.env.OAUTH_CLIENT_LOGO_URI||"https://inkeep.com/images/logos/inkeep-logo-blue.svg",h=await fetch(`${c}/integrations/${a}`,{method:"PATCH",headers:{Authorization:`Bearer ${b}`,"Content-Type":"application/json"},body:JSON.stringify({custom:{oauth_client_name:d,oauth_client_uri:e,oauth_client_logo_uri:f}})});if(!h.ok){let a=await h.json().catch(()=>({}));throw new g(`Failed to update integration: ${h.status} ${h.statusText}`,"updateMCPGenericIntegration",a)}return await h.json()}async function r(a){try{let a=j();return(await a.listConnections()).connections}catch(c){let b=a?` for integration '${a}'`:"";console.error(`Failed to fetch connections${b}:`,c),h(c,`Unable to retrieve connections${b}`,"listConnections")}}async function s({endUserId:a="test-tenant",endUserEmail:b="test@test-tenant.com",endUserDisplayName:c="Test User",organizationId:d=process.env.TENANT_ID||f.P3,organizationDisplayName:e="Test Organization",integrationId:g}){try{let f=j(),{data:h}=await f.createConnectSession({end_user:{id:a,email:b,display_name:c},organization:{id:d,display_name:e},allowed_integrations:[g]});return h}catch(a){console.error("Failed to create connect session:",a),h(a,`Unable to create connect session for integration '${g}'`,"createConnectSession")}}async function t({providerName:a,uniqueKey:b,displayName:c,credentials:d}){try{let e,f=null;try{f=await o(b)}catch(b){if(b instanceof g)throw b;console.debug(`Integration '${a}' not found, will create new one`)}if(f?.areCredentialsSet)e=f;else try{e=await p({provider:a,uniqueKey:b,displayName:c,credentials:d})}catch(b){h(b,`Failed to create integration for provider '${a}'`,"create")}if("mcp-generic"===a)try{await q({uniqueKey:e.unique_key})}catch(a){console.warn("Failed to update MCP generic integration:",a)}try{return(await s({integrationId:e.unique_key})).token}catch(a){h(a,`Failed to create connect session for integration '${e.unique_key}'`,"createConnectSession")}}catch(b){console.error("Unexpected error creating provider connect session:",b),h(b,`Unexpected error creating connect session for provider '${a}'`,"createProviderConnectSession")}}async function u({providerConfigKey:a,connectionId:b}){try{let c=j();return await c.getMetadata(a,b)}catch(a){if(a&&"object"==typeof a&&"status"in a&&404===a.status)return null;console.error("Failed to get connection metadata:",a),h(a,`Unable to retrieve metadata for connection '${b}'`,"getMetadata")}}async function v({providerConfigKey:a,connectionId:b,metadata:c}){try{let d=j();await d.setMetadata(a,b,c)}catch(a){console.error("Failed to set connection metadata:",a),h(a,`Unable to update metadata for connection '${b}'`,"setMetadata")}}(0,i.D)([k,l,m,n,o,p,q,r,t,u,v]),(0,d.A)(k,"00df96f624eb1a84bd667d8cc741ca95c91162f40c",null),(0,d.A)(l,"000e1a7f5eb5750122fa8f7cfb7ee450b98bb51795",null),(0,d.A)(m,"40e200fe770b977ffbf2d6fcc080b9195813199b02",null),(0,d.A)(n,"00565e32ec77b8c2e225f5ac9306c105cd691958bf",null),(0,d.A)(o,"401a15beec760d80d56f8454ede50f1a23bf0501aa",null),(0,d.A)(p,"40e1a2ec39d0ed8e79816aafb6c79546483d0f6dc2",null),(0,d.A)(q,"4061ebe36696e4a450300be6e1676304bd331d1d13",null),(0,d.A)(r,"403dd2433ad96279ef94784d0ee4ba8bdbcdafb46b",null),(0,d.A)(t,"40c2dc256fe7dbd597c12f3752d68bdeee11690aa0",null),(0,d.A)(u,"4017a595b7672880987470a5f932c11ccb79240160",null),(0,d.A)(v,"40e711bbf8e3f610fe1bc9baa54051399a0bf6247e",null)},25623:(a,b,c)=>{c.d(b,{$:()=>h});var d=c(11253),e=c(14450),f=c(59072),g=c(59142);function h(){let{PUBLIC_NANGO_SERVER_URL:a,PUBLIC_NANGO_CONNECT_BASE_URL:b}=(0,f.y)();return{openNangoConnect:(0,e.useCallback)(({sessionToken:c,onEvent:e,connectOptions:f})=>{let g=new d.Ay({host:a||void 0}).openConnectUI({baseURL:f?.baseURL||b||void 0,apiURL:f?.apiURL||a||void 0,onEvent:e,detectClosedAuthWindow:!0});return g.setSessionToken(c),g},[a,b]),openNangoConnectHeadless:(0,e.useCallback)(async({mcpServerUrl:b,providerUniqueKey:c,providerDisplayName:e})=>{let f=await (0,g.u)({providerName:"mcp-generic",uniqueKey:c,displayName:e}),h=new d.Ay({host:a||void 0,connectSessionToken:f});try{return await h.auth(c,{detectClosedAuthWindow:!0,params:{mcp_server_url:b}})}catch(a){if(a instanceof Error)throw Error(`Authentication failed: ${a.message}`);throw a}},[a])}}},59142:(a,b,c)=>{c.d(b,{u:()=>e});var d=c(90147);let e=(0,d.createServerReference)("40c2dc256fe7dbd597c12f3752d68bdeee11690aa0",d.callServer,void 0,d.findSourceMapURL,"createProviderConnectSession")},92558:(a,b,c)=>{c.d(b,{U:()=>e});var d=c(90147);let e=(0,d.createServerReference)("708ff1a564f669ab1d5f88f7451b92ff40097ea1bf",d.callServer,void 0,d.findSourceMapURL,"findOrCreateCredential")}};
@@ -1 +0,0 @@
1
- exports.id=3440,exports.ids=[3440],exports.modules={3687:(a,b,c)=>{"use strict";c.d(b,{E:()=>f});var d=c(72669),e=c(64585);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"skeleton",className:(0,e.cn)("bg-accent animate-pulse rounded-md",a),...b})}},8003:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(43461);function j(){return(0,d.jsx)(e.H,{children:(0,d.jsxs)(f.D,{children:[(0,d.jsx)(g.zY,{title:"Projects",description:i.od}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 md:gap-4",children:Array.from({length:6}).map((a,b)=>(0,d.jsx)(h.E,{className:"h-36 w-full rounded-lg"},`loading-skeleton-${b}`))})]})})}},12075:(a,b,c)=>{"use strict";c.d(b,{e:()=>e});var d=c(90147);let e=(0,d.createServerReference)("78c4f89c251ee1604b454c16956624c2aa0072e85b",d.callServer,void 0,d.findSourceMapURL,"updateExternalAgent")},13907:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(59111),e=c(43433);function f({error:a,reset:b}){return(0,d.jsx)(e.default,{error:a,title:"Something went wrong.",description:"An unexpected error occurred. Please try again.",reset:b})}},17932:(a,b,c)=>{"use strict";c.d(b,{H:()=>j});var d=c(72669);function e({children:a}){return(0,d.jsx)("div",{className:"flex flex-1 flex-col overflow-y-auto scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent h-full w-full min-h-0 bg-muted/20 dark:bg-background",children:(0,d.jsx)("div",{className:"@container/main min-h-0 flex flex-1 flex-col",children:a})})}var f=c(88746),g=c(97633),h=c(80248);function i({breadcrumbs:a}){return(0,d.jsx)("header",{className:"flex h-(--header-height) shrink-0 items-center gap-2 border-b transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-(--header-height) bg-muted/20 dark:bg-background rounded-t-[14px]",children:(0,d.jsxs)("div",{className:"flex w-full items-center gap-1 px-4 lg:gap-2 lg:px-6",children:[(0,d.jsx)(h.SidebarTrigger,{className:"-ml-1 text-muted-foreground hover:text-foreground hover:bg-accent dark:text-muted-foreground dark:hover:text-foreground dark:hover:bg-accent/50"}),(0,d.jsx)(g.Separator,{orientation:"vertical",className:"mx-2 data-[orientation=vertical]:h-4"}),(0,d.jsx)(f.Breadcrumbs,{items:a})]})})}function j({children:a,breadcrumbs:b}){return(0,d.jsxs)("div",{className:"h-[calc(100vh-16px)] flex flex-col overflow-hidden",children:[(0,d.jsx)(i,{breadcrumbs:b}),(0,d.jsx)(e,{children:a})]})}},19499:(a,b,c)=>{"use strict";c.d(b,{ExternalAgentForm:()=>v});var d=c(59111),e=c(35197),f=c(6461),g=c(485),h=c(51820),i=c(68156),j=c(17130),k=c(55124),l=c(16426),m=c(2856),n=c(93622),o=c(35229),p=c(12075),q=c(90147);let r=(0,q.createServerReference)("70a52baf466a53769981956ff3ac65c2dff88b3169",q.callServer,void 0,q.findSourceMapURL,"createExternalAgent");var s=c(34576);let t=s.object({name:s.string().min(1,"Name is required."),description:s.string().optional(),baseUrl:s.string().url("Must be a valid URL."),credentialReferenceId:s.string().nullish()}),u={name:"",description:"",baseUrl:"",credentialReferenceId:"none"};function v({initialData:a,mode:b="create",externalAgent:c,credentials:q,tenantId:s,projectId:v}){let w=(0,g.useRouter)(),x=(0,h.mN)({resolver:(0,e.u)(t),defaultValues:{...u,...a}}),{isSubmitting:y}=x.formState,z=async a=>{try{let d={...a,description:a.description||"",credentialReferenceId:"none"===a.credentialReferenceId?null:a.credentialReferenceId};if("update"===b&&c)await (0,p.e)(s,v,c.id,d),i.oR.success("External agent updated successfully"),w.push(`/${s}/projects/${v}/external-agents/${c.id}`);else{let a=await r(s,v,{...d,id:(0,f.Ak)()});i.oR.success("External agent created successfully"),w.push(`/${s}/projects/${v}/external-agents/${a.id}`)}}catch(a){console.error(`Failed to ${b} external agent:`,a),i.oR.error(`Failed to ${b} external agent. Please try again.`)}};return(0,d.jsx)(n.lV,{...x,children:(0,d.jsxs)("form",{onSubmit:x.handleSubmit(z),className:"space-y-8",children:[(0,d.jsx)(j.a,{control:x.control,name:"name",label:"Name",placeholder:"My External Agent",isRequired:!0}),(0,d.jsx)(l.K,{control:x.control,name:"description",label:"Description (optional)",placeholder:"A brief description of what this external agent does..."}),(0,d.jsx)(j.a,{control:x.control,name:"baseUrl",label:"Base URL",placeholder:"https://api.example.com",isRequired:!0}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(k.U,{control:x.control,selectTriggerClassName:"w-full",name:"credentialReferenceId",label:"Credential",placeholder:"Select a credential",options:[{value:"none",label:"No Authentication"},...q.map(a=>({value:a.id,label:a.id}))]}),(0,d.jsx)(o.n,{title:"How this works",children:(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("p",{children:["Select"," ",(0,d.jsx)("code",{className:"bg-background px-1.5 py-0.5 rounded border",children:"No Authentication"})," ","if the external agent does not require authentication, or if you want to add a credential later."]}),(0,d.jsx)("p",{children:"Otherwise, select from the existing credentials you have already created. The credential will be used when communicating with this external agent."})]})})]}),(0,d.jsx)(m.$,{type:"submit",disabled:y,children:"update"===b?"Save":"Create"})]})})}},20828:(a,b,c)=>{Promise.resolve().then(c.bind(c,75125))},27159:(a,b,c)=>{"use strict";c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(59111),e=c(29477),f=c(67048),g=c(39108),h=c(25773),i=c(42723);function j({...a}){return(0,d.jsx)(e.bL,{"data-slot":"select",...a})}function k({...a}){return(0,d.jsx)(e.WT,{"data-slot":"select-value",...a})}function l({className:a,size:b="default",children:c,...g}){return(0,d.jsxs)(e.l9,{"data-slot":"select-trigger","data-size":b,className:(0,i.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 font-normal normal-case",a),...g,children:[c,(0,d.jsx)(e.In,{asChild:!0,children:(0,d.jsx)(f.A,{className:"size-4 opacity-50"})})]})}function m({className:a,children:b,position:c="popper",...f}){return(0,d.jsx)(e.ZL,{children:(0,d.jsxs)(e.UC,{"data-slot":"select-content",className:(0,i.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent rounded-md border shadow-md","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:c,...f,children:[(0,d.jsx)(o,{}),(0,d.jsx)(e.LM,{className:(0,i.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:b}),(0,d.jsx)(p,{})]})})}function n({className:a,children:b,...c}){return(0,d.jsxs)(e.q7,{"data-slot":"select-item",className:(0,i.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",a),...c,children:[(0,d.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,d.jsx)(e.VF,{children:(0,d.jsx)(g.A,{className:"size-4"})})}),(0,d.jsx)(e.p4,{children:b})]})}function o({className:a,...b}){return(0,d.jsx)(e.PP,{"data-slot":"select-scroll-up-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(h.A,{className:"size-4"})})}function p({className:a,...b}){return(0,d.jsx)(e.wn,{"data-slot":"select-scroll-down-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(f.A,{className:"size-4"})})}},29160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,dynamic:()=>h});var d=c(72669),e=c(45907),f=c(54637),g=c(81438);let h="force-dynamic";async function i({children:a,params:b}){let{tenantId:c,projectId:h}=await b;try{let b=await (0,f.Sw)(c,h);return(0,d.jsx)(g.ProjectProvider,{value:b.data,children:a})}catch(a){return(0,d.jsx)(e.default,{error:a,context:"project"})}}},39885:(a,b,c)=>{"use strict";c.d(b,{DE:()=>f,RR:()=>h,gp:()=>g,zY:()=>j});var d=c(72669),e=c(64585);function f({className:a,children:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("flex flex-row gap-0 p-0 flex-nowrap items-center justify-between mb-8",a),...c,children:b})}function g({className:a,children:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("flex flex-col gap-2 p-0 flex-nowrap items-stretch justify-start",a),...c,children:b})}function h({className:a,children:b,...c}){return(0,d.jsx)("h3",{className:(0,e.cn)("text-xl font-light",a),...c,children:b})}function i({className:a,children:b,...c}){return(0,d.jsx)("p",{className:(0,e.cn)("text-muted-foreground text-sm font-normal",a),...c,children:b})}function j({title:a,description:b,action:c,className:e}){return(0,d.jsxs)(f,{className:e,children:[(0,d.jsxs)(g,{children:[(0,d.jsx)(h,{children:a}),b&&(0,d.jsx)(i,{children:b})]}),c]})}},43461:(a,b,c)=>{"use strict";c.d(b,{CU:()=>j,M0:()=>l,_g:()=>i,iO:()=>f,lh:()=>g,od:()=>k,yr:()=>h});var d=c(72669),e=c(64422);let f="https://docs.inkeep.com",g=(0,d.jsxs)(d.Fragment,{children:["Artifacts automatically capture and store source information from tool and agent interactions, providing a record of where data originates.","\n",(0,d.jsx)(e.G,{href:`${f}/visual-builder/artifact-components`,children:"Learn more"})]}),h=(0,d.jsxs)(d.Fragment,{children:["Components are structured components that agents can use to display rich data.","\n",(0,d.jsx)(e.G,{href:`${f}/visual-builder/data-components`,children:"Learn more"})]}),i=(0,d.jsxs)(d.Fragment,{children:["Agents are visual representations of the data flow between sub agents and tools.","\n",(0,d.jsx)(e.G,{href:`${f}/visual-builder/agent`,children:"Learn more"})]}),j=(0,d.jsxs)(d.Fragment,{children:["API keys are use to authenticate against the Inkeep Agents Run API. They are associated with an agent and can be used to chat with the agent programmatically.","\n"]}),k=(0,d.jsx)(d.Fragment,{children:"Projects help you organize your agents, tools, and configurations."}),l=(0,d.jsxs)(d.Fragment,{children:[k," Create your first project to get started.","\n",(0,d.jsx)(e.G,{href:`${f}/`,children:"Check out the docs"})]})},55124:(a,b,c)=>{"use strict";c.d(b,{U:()=>g});var d=c(59111),e=c(27159),f=c(71771);function g({control:a,name:b,label:c,placeholder:g,options:h,disabled:i=!1,selectTriggerClassName:j,description:k,isRequired:l=!1}){return(0,d.jsx)(f.u,{control:a,name:b,label:c,description:k,isRequired:l,children:a=>(0,d.jsxs)(e.l6,{onValueChange:a.onChange,defaultValue:a.value,disabled:i,children:[(0,d.jsx)(e.bq,{disabled:i,className:j,children:(0,d.jsx)(e.yv,{placeholder:g})}),(0,d.jsx)(e.gC,{children:h.map(a=>(0,d.jsx)(e.eb,{value:a.value,disabled:a.disabled,children:a.label},a.value))})]})})}},60115:(a,b,c)=>{"use strict";c.d(b,{ExternalAgentForm:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call ExternalAgentForm() from the server but ExternalAgentForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/components/external-agents/form/external-agent-form.tsx","ExternalAgentForm")},61552:(a,b,c)=>{Promise.resolve().then(c.bind(c,45907)),Promise.resolve().then(c.bind(c,81438))},61927:(a,b,c)=>{Promise.resolve().then(c.bind(c,88746)),Promise.resolve().then(c.bind(c,97633)),Promise.resolve().then(c.bind(c,80248)),Promise.resolve().then(c.t.bind(c,93520,23))},64422:(a,b,c)=>{"use strict";c.d(b,{G:()=>i});var d=c(72669),e=c(24598),f=c(93520),g=c.n(f),h=c(64585);function i({href:a,children:b,className:c,iconClassName:f,...i}){return(0,d.jsxs)(g(),{href:a,target:"_blank",rel:"noreferrer noopener",className:(0,h.cn)("text-sm text-muted-foreground underline underline-offset-2 inline-flex items-center gap-1 hover:text-primary ml-1 group/link font-mono uppercase transition-colors",c),...i,children:[b,(0,d.jsx)(e.A,{className:(0,h.cn)("size-3.5 text-muted-foreground opacity-60 group-hover/link:text-primary",f)})]})}},64585:(a,b,c)=>{"use strict";c.d(b,{BL:()=>g,cn:()=>f});var d=c(99613),e=c(81533);function f(...a){return(0,e.QP)((0,d.$)(a))}function g(a){return a?a.reduce((a,b)=>(a[b.id]=b,a),{}):{}}},75125:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/error.tsx","default")},78972:(a,b,c)=>{Promise.resolve().then(c.bind(c,13907))},81097:(a,b,c)=>{"use strict";c.d(b,{$Y:()=>g,GO:()=>i,K3:()=>h,h9:()=>k,nZ:()=>j});var d=c(1274);c(2082);var e=c(53842),f=c(41979);async function g(a,b,c=1,d=50){(0,f.M2)(a),(0,f.nt)(b);let h=new URLSearchParams({page:c.toString(),limit:d.toString()});return(await (0,e.J)(`tenants/${a}/projects/${b}/credentials?${h}`)).data}async function h(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`)).data}async function i(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials`,{method:"POST",body:JSON.stringify(c)})).data}async function j(a,b,c,d){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"PUT",body:JSON.stringify(d)})).data}async function k(a,b,c){(0,f.M2)(a),(0,f.nt)(b),await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}(0,c(95454).D)([g,h,i,j,k]),(0,d.A)(g,"78dbbaf22d0fe29e905fcbe5b93c74e3eff23653c6",null),(0,d.A)(h,"706b876b92afbfaff4ba07bb705e50bbcd0d1e40ce",null),(0,d.A)(i,"708aa055b9eacd158f99d215f764023f79e98a9789",null),(0,d.A)(j,"78e7347575f5f69232ff0a9637a028add4ce192395",null),(0,d.A)(k,"70e71f9720028dd3f627e97a23ac1676cc44f80c28",null)},81438:(a,b,c)=>{"use strict";c.d(b,{ProjectProvider:()=>e});var d=c(60241);(0,d.registerClientReference)(function(){throw Error("Attempted to call ProjectContext() from the server but ProjectContext is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/contexts/project-context.tsx","ProjectContext");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call ProjectProvider() from the server but ProjectProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/contexts/project-context.tsx","ProjectProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call useProject() from the server but useProject is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/contexts/project-context.tsx","useProject")},88746:(a,b,c)=>{"use strict";c.d(b,{Breadcrumbs:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call Breadcrumbs() from the server but Breadcrumbs is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/components/ui/breadcrumbs.tsx","Breadcrumbs")},92191:(a,b,c)=>{Promise.resolve().then(c.bind(c,23348)),Promise.resolve().then(c.bind(c,24003)),Promise.resolve().then(c.bind(c,19603)),Promise.resolve().then(c.t.bind(c,61678,23))},96400:(a,b,c)=>{Promise.resolve().then(c.bind(c,43433)),Promise.resolve().then(c.bind(c,58860))},96737:(a,b,c)=>{"use strict";c.d(b,{D:()=>g});var d=c(72669),e=c(89864),f=c(64585);let g=(0,e.forwardRef)(({children:a,className:b,...c},e)=>(0,d.jsx)("div",{ref:e,className:(0,f.cn)("p-6",b),...c,children:a}));g.displayName="MainContent"},97633:(a,b,c)=>{"use strict";c.d(b,{Separator:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call Separator() from the server but Separator is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/components/ui/separator.tsx","Separator")}};