@inkeep/agents-manage-ui 0.39.3 → 0.39.4

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 (232) hide show
  1. package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
  2. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +2 -2
  3. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +3 -3
  4. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +20 -20
  6. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +2 -2
  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 +6 -6
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +2 -2
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +2 -2
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +1 -1
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +2 -2
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +2 -2
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -2
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js.nft.json +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -2
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +2 -2
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js.nft.json +1 -1
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -2
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +3 -3
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +2 -2
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/tool-calls/page.js +2 -2
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/tool-calls/page.js.nft.json +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/tool-calls/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/settings/page.js +2 -2
  82. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/settings/page_client-reference-manifest.js +1 -1
  83. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.html +2 -2
  85. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.rsc +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  89. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  92. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  93. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  98. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  101. package/.next/standalone/agents-manage-ui/.next/server/app/accept-invitation/[invitationId]/page_client-reference-manifest.js +1 -1
  102. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route.js +3 -3
  103. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  105. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  106. package/.next/standalone/agents-manage-ui/.next/server/app/device/page_client-reference-manifest.js +1 -1
  107. package/.next/standalone/agents-manage-ui/.next/server/app/device.html +1 -1
  108. package/.next/standalone/agents-manage-ui/.next/server/app/device.rsc +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/server/app/device.segments/_full.segment.rsc +1 -1
  110. package/.next/standalone/agents-manage-ui/.next/server/app/device.segments/_head.segment.rsc +1 -1
  111. package/.next/standalone/agents-manage-ui/.next/server/app/device.segments/_index.segment.rsc +1 -1
  112. package/.next/standalone/agents-manage-ui/.next/server/app/device.segments/_tree.segment.rsc +1 -1
  113. package/.next/standalone/agents-manage-ui/.next/server/app/device.segments/device/__PAGE__.segment.rsc +1 -1
  114. package/.next/standalone/agents-manage-ui/.next/server/app/device.segments/device.segment.rsc +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/server/app/index.html +1 -1
  116. package/.next/standalone/agents-manage-ui/.next/server/app/index.rsc +2 -2
  117. package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  118. package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/_full.segment.rsc +2 -2
  119. package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/_head.segment.rsc +1 -1
  120. package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/_index.segment.rsc +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  122. package/.next/standalone/agents-manage-ui/.next/server/app/login/page_client-reference-manifest.js +1 -1
  123. package/.next/standalone/agents-manage-ui/.next/server/app/login.html +1 -1
  124. package/.next/standalone/agents-manage-ui/.next/server/app/login.rsc +1 -1
  125. package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/_full.segment.rsc +1 -1
  126. package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/_head.segment.rsc +1 -1
  127. package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/_index.segment.rsc +1 -1
  128. package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  129. package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  130. package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/login.segment.rsc +1 -1
  131. package/.next/standalone/agents-manage-ui/.next/server/app/logout/route_client-reference-manifest.js +1 -1
  132. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization/page_client-reference-manifest.js +1 -1
  133. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.html +1 -1
  134. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.rsc +1 -1
  135. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/_full.segment.rsc +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/_head.segment.rsc +1 -1
  137. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/_index.segment.rsc +1 -1
  138. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/_tree.segment.rsc +1 -1
  139. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/no-organization/__PAGE__.segment.rsc +1 -1
  140. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/no-organization.segment.rsc +1 -1
  141. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  142. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  143. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +2 -2
  144. package/.next/standalone/agents-manage-ui/.next/server/chunks/{9380.js → 4281.js} +2 -2
  145. package/.next/standalone/agents-manage-ui/.next/server/chunks/{1279.js → 4362.js} +1 -1
  146. package/.next/standalone/agents-manage-ui/.next/server/chunks/5318.js +1 -0
  147. package/.next/standalone/agents-manage-ui/.next/server/chunks/6348.js +2 -2
  148. package/.next/standalone/agents-manage-ui/.next/server/chunks/8307.js +1 -0
  149. package/.next/standalone/agents-manage-ui/.next/server/chunks/8667.js +1 -0
  150. package/.next/standalone/agents-manage-ui/.next/server/chunks/8777.js +1 -0
  151. package/.next/standalone/agents-manage-ui/.next/server/chunks/8832.js +4 -4
  152. package/.next/standalone/agents-manage-ui/.next/server/chunks/8870.js +1 -1
  153. package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
  154. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  155. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  156. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +2 -2
  157. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  158. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  159. package/.next/standalone/agents-manage-ui/.next/static/chunks/13516.bff720627c63631e.js +23 -0
  160. package/.next/standalone/agents-manage-ui/.next/static/chunks/{2074.e3cb114c1c8bbaee.js → 2074.d09f7397e91352f3.js} +1 -1
  161. package/.next/standalone/agents-manage-ui/.next/static/chunks/{26493.bd2ebe1c07a533a2.js → 26493.8ff960128c42b921.js} +1 -1
  162. package/.next/standalone/agents-manage-ui/.next/static/chunks/{30043.c30f8a3e087001b9.js → 30043.d194f772cc909695.js} +1 -1
  163. package/.next/standalone/agents-manage-ui/.next/static/chunks/{32609.e78336bf4190f8a2.js → 32609.3ef7f8d40d68ed51.js} +1 -1
  164. package/.next/standalone/agents-manage-ui/.next/static/chunks/{36576.c19a624887f1cf96.js → 36576.ce9209ba2cee755f.js} +1 -1
  165. package/.next/standalone/agents-manage-ui/.next/static/chunks/41950-405a518f384d14bd.js +1 -0
  166. package/.next/standalone/agents-manage-ui/.next/static/chunks/{50653.ef934e5c80f80118.js → 50653.1898219b08934c00.js} +2 -2
  167. package/.next/standalone/agents-manage-ui/.next/static/chunks/61883-d1bc0a3a13207d87.js +10 -0
  168. package/.next/standalone/agents-manage-ui/.next/static/chunks/{64419.4947301678417572.js → 64419.58715ea5e231ca4f.js} +1 -1
  169. package/.next/standalone/agents-manage-ui/.next/static/chunks/67168-ef9bb0faf9b7b2f3.js +1 -0
  170. package/.next/standalone/agents-manage-ui/.next/static/chunks/78295-54370b09ce7910c4.js +123 -0
  171. package/.next/standalone/agents-manage-ui/.next/static/chunks/{94775.9e9be9eab236eebc.js → 94775.cb75814a0d45d818.js} +1 -1
  172. package/.next/standalone/agents-manage-ui/.next/static/chunks/{9798a8e4-e9db6f9d9a18f186.js → 9798a8e4-191e8a0b80e94a99.js} +1 -1
  173. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/layout-32648da255ad788f.js +1 -0
  174. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-8e3f99c35a73ed1d.js → page-ae395fc69d3b38bf.js} +6 -6
  175. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/{page-78bced04841cbdfe.js → page-26ef79c8f2590b5e.js} +1 -1
  176. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-d84494a94b4d6f8f.js +1 -0
  177. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-eaf6258791bd6645.js +1 -0
  178. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-e4769970f57bdd58.js +1 -0
  179. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/{page-cfdc80e720d33579.js → page-a8ad2ee2a2160aeb.js} +1 -1
  180. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-4ed55802a43dbfc8.js +14 -0
  181. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-9840d230895f2877.js +14 -0
  182. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-984e5bdb34a677d9.js → page-a316bfeadb11aaad.js} +1 -1
  183. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-b0fcdc5b5717a239.js +1 -0
  184. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-027ab002df9dcc37.js +1 -0
  185. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-87c872d275cb0d61.js +1 -0
  186. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-220e836dd4b6c7fa.js → page-d765069f479350aa.js} +1 -1
  187. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/{page-4fed3dcf06007768.js → page-9bc7f61954a4f77b.js} +1 -1
  188. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/{page-762a146348e5e10c.js → page-121ee7898fa967fa.js} +1 -1
  189. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/{page-79c2e8195b47670f.js → page-2ecf223a8ff77f99.js} +1 -1
  190. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-4ae3fbd90d5382d3.js → page-dfe2e85b6a36ade8.js} +1 -1
  191. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-bb72edbd97f01f24.js +1 -0
  192. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-52f40cc2d3102c1c.js +1 -0
  193. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-1cd0d194426690ac.js → page-6e535fb07c0f91fd.js} +1 -1
  194. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-f59aa22ea840d31d.js → page-596de2f06cac02ea.js} +1 -1
  195. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/{page-685b8053fbf375be.js → page-e923013391850e3d.js} +2 -2
  196. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/{page-97d5c988e704def0.js → page-b969119bcb421723.js} +1 -1
  197. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/{page-35cdb812fa27c2ff.js → page-07ece57594f933a3.js} +1 -1
  198. package/.next/standalone/agents-manage-ui/.next/static/chunks/webpack-6efd92ae249a2696.js +1 -0
  199. package/.next/standalone/agents-manage-ui/package.json +1 -1
  200. package/.next/standalone/packages/agents-core/package.json +1 -1
  201. package/package.json +4 -4
  202. package/src/components/agent/configuration/model-options.tsx +4 -0
  203. package/src/components/agent/copilot/components/connect-tool-card.tsx +128 -83
  204. package/src/components/agent/copilot/components/sub-agent-tool-relation-result.tsx +3 -0
  205. package/src/components/agent/copilot/copilot-chat.tsx +1 -0
  206. package/src/components/agent/copilot/message-parts/message.tsx +4 -0
  207. package/src/components/agent/copilot/message-parts/tool-result.tsx +3 -0
  208. package/src/components/mcp-servers/selection/mcp-server-selection.tsx +28 -40
  209. package/src/hooks/use-scope-selection.tsx +106 -0
  210. package/.next/standalone/agents-manage-ui/.next/server/chunks/4404.js +0 -1
  211. package/.next/standalone/agents-manage-ui/.next/server/chunks/6699.js +0 -1
  212. package/.next/standalone/agents-manage-ui/.next/server/chunks/7760.js +0 -1
  213. package/.next/standalone/agents-manage-ui/.next/server/chunks/9184.js +0 -1
  214. package/.next/standalone/agents-manage-ui/.next/static/chunks/13071-ceccb85c519c3f02.js +0 -10
  215. package/.next/standalone/agents-manage-ui/.next/static/chunks/143.f2a227fb038eb7c8.js +0 -23
  216. package/.next/standalone/agents-manage-ui/.next/static/chunks/53242-6be13538c0f58a26.js +0 -1
  217. package/.next/standalone/agents-manage-ui/.next/static/chunks/65239-e7a34bca752e6b99.js +0 -1
  218. package/.next/standalone/agents-manage-ui/.next/static/chunks/78295-a27da1184099ddc1.js +0 -123
  219. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/layout-a6a0d7358b38fea9.js +0 -1
  220. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-afe5bc7779052d09.js +0 -1
  221. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-d98b29c6d0d03555.js +0 -1
  222. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-e0614f31c691971d.js +0 -1
  223. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-244af94427168ef3.js +0 -14
  224. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-2b99f31e0805b8d1.js +0 -14
  225. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-b52bf1b5e557c121.js +0 -1
  226. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-a8b869f42e44f2c3.js +0 -1
  227. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-ae95d3c3a713813e.js +0 -1
  228. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-a42065d1429e114e.js +0 -1
  229. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/page-f8559b16b0b59f61.js +0 -1
  230. package/.next/standalone/agents-manage-ui/.next/static/chunks/webpack-7d5f632dead1170c.js +0 -1
  231. /package/.next/standalone/agents-manage-ui/.next/static/{lBKCeyjiK8HntrFR9VTbV → sPJ9kGtvMvxgudUCZo8YP}/_buildManifest.js +0 -0
  232. /package/.next/standalone/agents-manage-ui/.next/static/{lBKCeyjiK8HntrFR9VTbV → sPJ9kGtvMvxgudUCZo8YP}/_ssgManifest.js +0 -0
@@ -12,13 +12,13 @@ import {
12
12
  import { Button } from '@/components/ui/button';
13
13
  import { Input } from '@/components/ui/input';
14
14
  import { useOAuthLogin } from '@/hooks/use-oauth-login';
15
+ import { useScopeSelection } from '@/hooks/use-scope-selection';
15
16
  import type { Credential } from '@/lib/api/credentials';
16
17
  import { getThirdPartyOAuthRedirectUrl } from '@/lib/api/mcp-catalog';
17
18
  import { createMCPTool } from '@/lib/api/tools';
18
19
  import type { PrebuiltMCPServer } from '@/lib/data/prebuilt-mcp-servers';
19
20
  import { generateId } from '@/lib/utils/id-utils';
20
21
  import { PrebuiltServersGrid } from './prebuilt-servers-grid';
21
- import { ScopeSelectionDialog } from './scope-selection-dialog';
22
22
 
23
23
  /**
24
24
  * Remove user_id from Composio URLs before storing in DB.
@@ -48,8 +48,6 @@ export function MCPServerSelection({ credentials, tenantId, projectId }: MCPServ
48
48
  const [loadingServerId, setLoadingServerId] = useState<string>();
49
49
  const [selectedMode, setSelectedMode] = useState<SelectionMode>('popular');
50
50
  const [searchQuery, setSearchQuery] = useState('');
51
- const [scopeDialogOpen, setScopeDialogOpen] = useState(false);
52
- const [pendingServer, setPendingServer] = useState<PrebuiltMCPServer | null>(null);
53
51
  const router = useRouter();
54
52
 
55
53
  const { handleOAuthLogin } = useOAuthLogin({
@@ -57,20 +55,14 @@ export function MCPServerSelection({ credentials, tenantId, projectId }: MCPServ
57
55
  projectId,
58
56
  });
59
57
 
60
- const handleSelectPrebuiltServer = (server: PrebuiltMCPServer) => {
61
- // For servers that require auth, show scope selection dialog first
62
- if (server.isOpen) {
63
- // Open servers don't need credentials, proceed directly
64
- createServerWithScope(server, CredentialScopeEnum.project);
65
- } else {
66
- setPendingServer(server);
67
- setScopeDialogOpen(true);
68
- }
69
- };
70
-
71
- const createServerWithScope = async (server: PrebuiltMCPServer, scope: CredentialScope) => {
58
+ const createServerWithScope = async ({
59
+ server,
60
+ scope,
61
+ }: {
62
+ server: PrebuiltMCPServer;
63
+ scope: CredentialScope;
64
+ }) => {
72
65
  setLoadingServerId(server.id);
73
- setPendingServer(null);
74
66
 
75
67
  const mcpServerName = server.name;
76
68
  const serverUrl = removeComposioUserId(server.url);
@@ -97,35 +89,26 @@ export function MCPServerSelection({ credentials, tenantId, projectId }: MCPServ
97
89
 
98
90
  const newTool = await createMCPTool(tenantId, projectId, mcpToolData);
99
91
 
100
- // For user-scoped, don't start OAuth - just redirect to detail page
101
- if (scope === CredentialScopeEnum.user) {
102
- toast.success(
103
- `${server.name} MCP server created. Users can connect their own accounts from the detail page.`
104
- );
105
- router.push(`/${tenantId}/projects/${projectId}/mcp-servers/${newTool.id}`);
106
- return;
107
- }
108
-
109
- // For project-scoped, proceed with OAuth
92
+ // proceed with OAuth flow
110
93
  const isThirdPartyServer = serverUrl.includes('composio.dev');
111
94
 
112
95
  if (server.isOpen) {
113
96
  toast.success(`${server.name} MCP server created successfully`);
114
97
  router.push(`/${tenantId}/projects/${projectId}/mcp-servers/${newTool.id}`);
115
98
  } else if (isThirdPartyServer) {
116
- // For third-party servers, get the correct OAuth URL for project scope
117
- const projectScopedRedirectUrl = await getThirdPartyOAuthRedirectUrl(
99
+ const credentialScopedRedirectUrl = await getThirdPartyOAuthRedirectUrl(
118
100
  tenantId,
119
101
  projectId,
120
102
  serverUrl,
121
- 'project'
103
+ scope
122
104
  );
123
- if (projectScopedRedirectUrl) {
105
+ if (credentialScopedRedirectUrl) {
124
106
  handleOAuthLogin({
125
107
  toolId: newTool.id,
126
108
  mcpServerUrl: serverUrl,
127
109
  toolName: mcpServerName,
128
- thirdPartyConnectAccountUrl: projectScopedRedirectUrl,
110
+ thirdPartyConnectAccountUrl: credentialScopedRedirectUrl,
111
+ credentialScope: scope,
129
112
  });
130
113
  } else {
131
114
  // Fallback: redirect to detail page if we couldn't get the OAuth URL
@@ -142,9 +125,19 @@ export function MCPServerSelection({ credentials, tenantId, projectId }: MCPServ
142
125
  }
143
126
  };
144
127
 
145
- const handleScopeConfirm = (scope: CredentialScope) => {
146
- if (pendingServer) {
147
- createServerWithScope(pendingServer, scope);
128
+ const { requestScopeSelection, ScopeDialog } = useScopeSelection<PrebuiltMCPServer>({
129
+ onConfirm: (scope, server) => {
130
+ createServerWithScope({ server, scope });
131
+ },
132
+ });
133
+
134
+ const handleSelectPrebuiltServer = (server: PrebuiltMCPServer) => {
135
+ // For servers that require auth, show scope selection dialog first
136
+ if (server.isOpen) {
137
+ // Open servers don't need credentials, proceed directly
138
+ createServerWithScope({ server, scope: CredentialScopeEnum.project });
139
+ } else {
140
+ requestScopeSelection(server.name, server);
148
141
  }
149
142
  };
150
143
 
@@ -203,12 +196,7 @@ export function MCPServerSelection({ credentials, tenantId, projectId }: MCPServ
203
196
  )}
204
197
 
205
198
  {/* Scope selection dialog for prebuilt servers */}
206
- <ScopeSelectionDialog
207
- open={scopeDialogOpen}
208
- onOpenChange={setScopeDialogOpen}
209
- serverName={pendingServer?.name ?? ''}
210
- onConfirm={handleScopeConfirm}
211
- />
199
+ {ScopeDialog}
212
200
  </>
213
201
  );
214
202
  }
@@ -0,0 +1,106 @@
1
+ 'use client';
2
+
3
+ import { useCallback, useState } from 'react';
4
+ import type { CredentialScope } from '@/components/mcp-servers/form/validation';
5
+ import { ScopeSelectionDialog } from '@/components/mcp-servers/selection/scope-selection-dialog';
6
+
7
+ export interface UseScopeSelectionOptions<T = void> {
8
+ /**
9
+ * Called when the user confirms their scope selection.
10
+ * Receives the selected scope and any context data passed to requestScopeSelection.
11
+ */
12
+ onConfirm: (scope: CredentialScope, context: T) => void | Promise<void>;
13
+ }
14
+
15
+ export interface UseScopeSelectionReturn<T = void> {
16
+ /**
17
+ * Opens the scope selection dialog.
18
+ * @param name - Display name for the dialog (e.g., server or tool name)
19
+ * @param context - Optional context data to pass through to onConfirm
20
+ */
21
+ requestScopeSelection: (name: string, context: T) => void;
22
+
23
+ /**
24
+ * Whether the dialog is currently open
25
+ */
26
+ isOpen: boolean;
27
+
28
+ /**
29
+ * Closes the dialog without confirming
30
+ */
31
+ close: () => void;
32
+
33
+ /**
34
+ * The dialog component to render. Must be included in your JSX.
35
+ */
36
+ ScopeDialog: React.ReactNode;
37
+ }
38
+
39
+ /**
40
+ * Hook for managing credential scope selection with a dialog.
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * const { requestScopeSelection, ScopeDialog } = useScopeSelection({
45
+ * onConfirm: (scope, toolId) => {
46
+ * console.log(`Selected scope ${scope} for tool ${toolId}`);
47
+ * },
48
+ * });
49
+ *
50
+ * return (
51
+ * <>
52
+ * <Button onClick={() => requestScopeSelection('My Tool', 'tool-123')}>
53
+ * Connect
54
+ * </Button>
55
+ * {ScopeDialog}
56
+ * </>
57
+ * );
58
+ * ```
59
+ */
60
+ export function useScopeSelection<T = void>(
61
+ options: UseScopeSelectionOptions<T>
62
+ ): UseScopeSelectionReturn<T> {
63
+ const [isOpen, setIsOpen] = useState(false);
64
+ const [pendingName, setPendingName] = useState('');
65
+ const [pendingContext, setPendingContext] = useState<T | null>(null);
66
+
67
+ const requestScopeSelection = useCallback((name: string, context: T) => {
68
+ setPendingName(name);
69
+ setPendingContext(context);
70
+ setIsOpen(true);
71
+ }, []);
72
+
73
+ const close = useCallback(() => {
74
+ setIsOpen(false);
75
+ setPendingName('');
76
+ setPendingContext(null);
77
+ }, []);
78
+
79
+ const handleConfirm = useCallback(
80
+ async (scope: CredentialScope) => {
81
+ if (pendingContext !== null) {
82
+ await options.onConfirm(scope, pendingContext);
83
+ }
84
+ close();
85
+ },
86
+ [options, pendingContext, close]
87
+ );
88
+
89
+ const ScopeDialog = (
90
+ <ScopeSelectionDialog
91
+ open={isOpen}
92
+ onOpenChange={(open) => {
93
+ if (!open) close();
94
+ }}
95
+ serverName={pendingName}
96
+ onConfirm={handleConfirm}
97
+ />
98
+ );
99
+
100
+ return {
101
+ requestScopeSelection,
102
+ isOpen,
103
+ close,
104
+ ScopeDialog,
105
+ };
106
+ }
@@ -1 +0,0 @@
1
- "use strict";exports.id=4404,exports.ids=[4404],exports.modules={18136:(a,b,c)=>{c.d(b,{U:()=>e});var d=c(38870);let e=(0,d.createServerReference)("7047a1549e7688257864f5ff1d31bd429729744fe6",d.callServer,void 0,d.findSourceMapURL,"findOrCreateCredential")},30366:(a,b,c)=>{c.d(b,{$:()=>j});var d=c(46298),e=c(11775),f=c(69495),g=c(53787),h=c(99513),i=c(52082);function j(){let{PUBLIC_NANGO_SERVER_URL:a,PUBLIC_NANGO_CONNECT_BASE_URL:b}=(0,f.y)(),{user:c}=(0,i.Q)(),j=(0,g.N)();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:e,providerDisplayName:f})=>{let{data:g}=await j.organization.getFullOrganization(),i=await (0,h.u)({providerName:"mcp-generic",uniqueKey:e,displayName:f,endUserId:c?.id,endUserEmail:c?.email,endUserDisplayName:c?.name,organizationId:g?.id,organizationDisplayName:g?.name}),k=new d.Ay({host:a||void 0,connectSessionToken:i});try{return await k.auth(e,{detectClosedAuthWindow:!0,params:{mcp_server_url:b}})}catch(a){if(a instanceof Error)throw Error(`Authentication failed: ${a.message}`);throw a}},[a,c?.id,c?.email,c?.name,j])}}},53094:(a,b,c)=>{c.d(b,{U:()=>f});var d=c(60922);c(70092);var e=c(90153);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(28708).D)([f]),(0,d.A)(f,"7047a1549e7688257864f5ff1d31bd429729744fe6",null)},65535:(a,b,c)=>{c.d(b,{uP:()=>t,tN:()=>r,Mj:()=>o,tQ:()=>n,pv:()=>m,Mb:()=>l,H6:()=>u,EN:()=>k,P:()=>v,Jg:()=>q});var d=c(60922);c(70092);var e=c(76831),f=c(91442);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(28708);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,endUserId:e,endUserEmail:f,endUserDisplayName:i,organizationId:j,organizationDisplayName:k}){try{let l,m=null;try{m=await o(b)}catch(b){if(b instanceof g)throw b;console.debug(`Integration '${a}' not found, will create new one`)}if(m?.areCredentialsSet)l=m;else try{l=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:l.unique_key})}catch(a){console.warn("Failed to update MCP generic integration:",a)}try{return(await s({integrationId:l.unique_key,endUserId:e,endUserEmail:f,endUserDisplayName:i,organizationId:j,organizationDisplayName:k})).token}catch(a){h(a,`Failed to create connect session for integration '${l.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,q,r,t,u,v]),(0,d.A)(k,"00f4ab59df8f1c96975f11537f7325718817c5ab4e",null),(0,d.A)(l,"00d6d5bd2e4b3a8021923c39e61ceb05ffada35ee8",null),(0,d.A)(m,"40d2d16e190efa4650048969311a964af0b0668bd4",null),(0,d.A)(n,"00447a68e2da6a2f420459da5467168318ecbca49b",null),(0,d.A)(o,"40f90d62441f487b2c52e4536cbfc882eef124ce9a",null),(0,d.A)(q,"407f7e02bf535b76d6a39c3254642dbeb10981c52a",null),(0,d.A)(r,"405fe03570dab2bdaea166fbb3f1324d92466fbceb",null),(0,d.A)(t,"4074874d19f0fbb65e875199900f44750540f3ccd8",null),(0,d.A)(u,"4032bdaed766c6d92d2194a01825aa0ad6b18af27a",null),(0,d.A)(v,"404a022b35ea08846dd3dcef19d6a5dda1090774ff",null)},90153:(a,b,c)=>{c.d(b,{$Y:()=>g,GO:()=>i,Ji:()=>l,K3:()=>h,h9:()=>k,nZ:()=>j});var d=c(60922);c(70092);var e=c(83110),f=c(38867);async function g(a,b,c=1,d=100){(0,f.M2)(a),(0,f.nt)(b);let h=new URLSearchParams({page:c.toString(),limit:d.toString()});return(await (0,e.Js)(`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.Js)(`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.Js)(`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.Js)(`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.Js)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}async function l(a,b,c){(0,f.M2)(a),(0,f.nt)(b);try{return(await (0,e.Js)(`tenants/${a}/projects/${b}/tools/${c}/user-credential`)).data}catch{return null}}(0,c(28708).D)([g,h,i,j,k,l]),(0,d.A)(g,"78e9f391b58b7990031722d136b07434c4fe1652a4",null),(0,d.A)(h,"70d308525b7c4194ce31cdbb4c79e25435ddfec800",null),(0,d.A)(i,"707b18bcbbd64e648bf4bac302968fcf6c67c83a30",null),(0,d.A)(j,"785531761c71ceaf696fbc163bb668e5416480717f",null),(0,d.A)(k,"70d841432e45feb6f48589de8ad2cd75431898df2a",null),(0,d.A)(l,"7065c63befbfc6b71cb7237eb34e6c0683309324a4",null)},99513:(a,b,c)=>{c.d(b,{u:()=>e});var d=c(38870);let e=(0,d.createServerReference)("4074874d19f0fbb65e875199900f44750540f3ccd8",d.callServer,void 0,d.findSourceMapURL,"createProviderConnectSession")}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=6699,exports.ids=[6699],exports.modules={35547:(a,b,c)=>{c.r(b),c.d(b,{"40811c394d72864cd6b342381e64a16e7bb4a32a07":()=>d.bW,"60580318dda54da2dabe4642843137c1f8da46bed3":()=>d.gL,"606a65768e913b8195f35a93ecc612321fbbb073b8":()=>d.Dv,"60c34f0993f69e42858c82f468546bfe81c472e9cb":()=>p,"60c419e233a006b0a2b083ce9fbf35123bf27b145e":()=>d.qf,"702b050fbf10d1df4788576e88a7a91bf23cd2de98":()=>s,"70a65dede390dd8c6612381b560a740d1d512b2429":()=>r,"70df9a3159471286924d9b6d80fafd213f0e17baa6":()=>q,"70fcdc44fdc43bb565b1dc4be90895362a8494e7ea":()=>d.Tg});var d=c(64381),e=c(60922);c(70092);var f=c(10515),g=c(83110),h=c(38867),i=c(28708);async function j(a,b){return(0,h.M2)(a),(0,h.nt)(b),await (0,g.Js)(`tenants/${a}/projects/${b}/artifact-components?limit=100`)}async function k(a,b,c){return(0,h.M2)(a),(0,h.nt)(b),(await (0,g.Js)(`tenants/${a}/projects/${b}/artifact-components/${c}`)).data}async function l(a,b,c){return(0,h.M2)(a),(0,h.nt)(b),(await (0,g.Js)(`tenants/${a}/projects/${b}/artifact-components`,{method:"POST",body:JSON.stringify(c)})).data}async function m(a,b,c){return(0,h.M2)(a),(0,h.nt)(b),(await (0,g.Js)(`tenants/${a}/projects/${b}/artifact-components/${c.id}`,{method:"PUT",body:JSON.stringify(c)})).data}async function n(a,b,c){(0,h.M2)(a),(0,h.nt)(b),await (0,g.Js)(`tenants/${a}/projects/${b}/artifact-components/${c}`,{method:"DELETE"})}(0,i.D)([j,k,l,m,n]),(0,e.A)(j,"600154ab77912e0f58d5f5dd2308a16a97bad3d3f2",null),(0,e.A)(k,"7000ad2a22760e1f8b504393da55585883451d614c",null),(0,e.A)(l,"709e304f17e41c40e6e4392ce87267744f41094f09",null),(0,e.A)(m,"70da832ba4556b84b49f4a075dafb9863dd36a3813",null),(0,e.A)(n,"7006abe0ce537ca812b4b15d59a4415131360655d5",null);var o=c(27829);async function p(a,b){try{let c=await j(a,b);return{success:!0,data:c.data}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function q(a,b,c){try{let d=await l(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function r(a,b,c){try{let d=await m(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts`),(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts/${c.id}`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function s(a,b,c){try{return await n(a,b,c),(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts`),{success:!0}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}(0,i.D)([p,q,r,s]),(0,e.A)(p,"60c34f0993f69e42858c82f468546bfe81c472e9cb",null),(0,e.A)(q,"70df9a3159471286924d9b6d80fafd213f0e17baa6",null),(0,e.A)(r,"70a65dede390dd8c6612381b560a740d1d512b2429",null),(0,e.A)(s,"702b050fbf10d1df4788576e88a7a91bf23cd2de98",null)},63137:(a,b,c)=>{c.d(b,{W:()=>k});var d=c(11918),e=c(33032),f=c(11775),g=c(96765),h=c(82064),i=c(38870);let j=(0,i.createServerReference)("702b050fbf10d1df4788576e88a7a91bf23cd2de98",i.callServer,void 0,i.findSourceMapURL,"deleteArtifactComponentAction");function k({artifactComponentId:a,artifactComponentName:b,setIsOpen:c,redirectOnDelete:i=!1}){let[k,l]=(0,f.useState)(!1),m=(0,e.useRouter)(),{tenantId:n,projectId:o}=(0,e.useParams)(),p=async()=>{l(!0);try{let b=await j(n,o,a);b.success?(c(!1),g.oR.success("Artifact deleted."),i&&m.push(`/${n}/projects/${o}/artifacts`)):g.oR.error(b.error)}finally{l(!1)}};return(0,d.jsx)(h.J,{itemName:b||"this artifact",isSubmitting:k,onDelete:p})}},75294:(a,b,c)=>{c.d(b,{ArtifactComponentForm:()=>A});var d=c(11918),e=c(269),f=c(33032),g=c(11775),h=c(84834),i=c(96765),j=c(3641),k=c(64768),l=c(43543),m=c(35725),n=c(33149),o=c(871),p=c(20774),q=c(38870);let r=(0,q.createServerReference)("70a65dede390dd8c6612381b560a740d1d512b2429",q.callServer,void 0,q.findSourceMapURL,"updateArtifactComponentAction"),s=(0,q.createServerReference)("70df9a3159471286924d9b6d80fafd213f0e17baa6",q.callServer,void 0,q.findSourceMapURL,"createArtifactComponentAction");var t=c(30182),u=c(63137);let v={id:"",name:"",description:"",props:void 0};var w=c(38131),x=c(32697),y=c(83956);let z=w.object({id:y.f,name:w.string().min(1,"Name is required."),description:w.string().optional(),props:w.union([w.string(),w.null(),w.undefined()]).transform((a,b)=>{if(a)try{let c=JSON.parse(a),d=(0,x._O)(a);if(!d.isValid){let a=d.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:w.ZodIssueCode.custom,message:a}),w.NEVER}return c.required??=[],c}catch(a){return b.addIssue({code:w.ZodIssueCode.custom,message:(0,x.SR)(a)}),w.NEVER}}).optional()});function A({id:a,tenantId:b,projectId:c,initialData:q}){let[w,x]=(0,g.useState)(!1),y=(0,h.mN)({resolver:(0,e.u)(z),defaultValues:(a=>{if(!a)return v;let b={...a};return b.props&&(b.props=(0,t.S_)(b.props)),b})(q)}),{isSubmitting:A}=y.formState,B=(0,f.useRouter)();(0,p.S)({form:y,nameField:"name",idField:"id",isEditing:!!a});let C=async d=>{try{let e={...d};if(void 0===e.props&&(e.props=null),a){let a=await r(b,c,e);if(!a.success)return void i.oR.error(a.error||"Failed to update artifact.");i.oR.success("Artifact updated.");return}let f=await s(b,c,e);if(!f.success)return void i.oR.error(f.error||"Failed to create artifact");i.oR.success("Artifact created."),B.push(`/${b}/projects/${c}/artifacts`)}catch(b){console.error("Error submitting artifact:",b);let a=b instanceof Error?b.message:"An unexpected error occurred.";i.oR.error(a)}};return(0,d.jsxs)(n.Dialog,{open:w,onOpenChange:x,children:[(0,d.jsx)(o.lV,{...y,children:(0,d.jsxs)("form",{onSubmit:y.handleSubmit(C),className:"max-w-3xl mx-auto py-4 space-y-8",children:[(0,d.jsx)(j.a,{control:y.control,name:"name",label:"Name",placeholder:"Document Artifact",isRequired:!0}),(0,d.jsx)(j.a,{control:y.control,name:"id",label:"Id",placeholder:"my-artifact",disabled:!!a,isRequired:!0,description:!a&&"Choose a unique identifier for this artifact. Using an existing id will replace that artifact."}),(0,d.jsx)(k.K,{control:y.control,name:"description",label:"Description",placeholder:"Structured factual information extracted from search results",className:"min-h-[80px]"}),(0,d.jsx)(l.S,{control:y.control,name:"props",label:"Properties",placeholder:"Enter a valid JSON Schema with inPreview flags, or leave empty to save entire tool result...",description:"Optional: Define specific fields with inPreview flags, or leave empty to capture the complete tool response.",uri:"custom-json-schema-artifact-component.json",hasInPreview:!0}),(0,d.jsxs)("div",{className:"flex w-full justify-between",children:[(0,d.jsx)(m.$,{type:"submit",disabled:A,children:"Save"}),a&&(0,d.jsx)(n.DialogTrigger,{asChild:!0,children:(0,d.jsx)(m.$,{type:"button",variant:"destructive-outline",children:"Delete Artifact"})})]})]})}),w&&a&&(0,d.jsx)(u.W,{artifactComponentId:a,artifactComponentName:y.getValues("name"),setIsOpen:x,redirectOnDelete:!0})]})}},91707:(a,b,c)=>{c.r(b),c.d(b,{default:()=>j});var d=c(22528),e=c(4728),f=c(20288),g=c(34249),h=c(19102),i=c(37402);function j(){return(0,d.jsx)(e.H,{breadcrumbs:[{label:"Artifacts"}],children:(0,d.jsxs)(f.D,{children:[(0,d.jsx)(g.zY,{title:"Artifacts",description:i.lh}),(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-artifact-${b}`))})]})})}},95561:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(28941).A)("trash",[["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]])},96634:(a,b,c)=>{c.d(b,{ArtifactComponentForm:()=>d});let d=(0,c(7044).registerClientReference)(function(){throw Error("Attempted to call ArtifactComponentForm() from the server but ArtifactComponentForm 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/artifact-components/form/artifact-component-form.tsx","ArtifactComponentForm")}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7760,exports.ids=[7760],exports.modules={597:(a,b,c)=>{c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(11918),e=c(84759),f=c(56417),g=c(71935),h=c(74520),i=c(30182);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"})})}},3227:(a,b,c)=>{c.d(b,{MCPServerForm:()=>G});var d=c(11918),e=c(269),f=c(37747),g=c(33032),h=c(11775),i=c(84834),j=c(96765),k=c(3641),l=c(77050),m=c(35725),n=c(82064),o=c(33149),p=c(871),q=c(88530),r=c(86066),s=c(38870);let t=(0,s.createServerReference)("405f9d841cfe05bc88ae94363d6296654721656037",s.callServer,void 0,s.findSourceMapURL,"detectOAuthServerAction");var u=c(51324),v=c(90595),w=c(5471),x=c(2048),y=c(54623),z=c(71935),A=c(5220),B=c(11890),C=c(6084);function D({control:a,name:b,label:c,availableTools:e=[],description:f,disabled:g=!1}){let{field:{value:j,onChange:k},fieldState:{error:l}}=(0,i.as)({name:b,control:a}),n=(0,h.useMemo)(()=>"object"==typeof j&&null!==j&&"type"in j?"all"===j.type?{type:"all"}:"selective"===j.type&&Array.isArray(j.tools)?{type:"selective",tools:j.tools}:{type:"selective",tools:[]}:{type:"selective",tools:[]},[j]),o=()=>{k({type:"all"})},q=()=>{k({type:"selective",tools:[]})},r=(a,b)=>{if("all"===n.type){let c=e.map(a=>a.name).filter(b=>b!==a);k({type:"selective",tools:b?[...c,a]:c})}else k({type:"selective",tools:b?[...n.tools.filter(b=>b!==a),a]:n.tools.filter(b=>b!==a)})},s=()=>{switch(n.type){case"all":return e.length;case"selective":return n.tools.filter(a=>e.some(b=>b.name===a)).length;default:return 0}},t=s()===e.length;return(0,d.jsx)(p.zB,{control:a,name:b,render:()=>(0,d.jsxs)(p.eI,{children:[(0,d.jsxs)(p.lR,{children:[c,(0,d.jsx)(A.E,{variant:"count",children:s()})]}),f&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:f}),(0,d.jsxs)("div",{className:"mt-2",children:[0===e.length&&(0,d.jsx)("div",{className:"text-sm text-muted-foreground border rounded-md p-3 py-2 bg-gray-100/80 dark:bg-sidebar",children:"No tools available from this server"}),e.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 justify-between py-3 px-6 rounded-t-lg border border-b-0",children:[(0,d.jsxs)("div",{className:"text-sm",children:[s()," ",(0,d.jsxs)("span",{className:"text-gray-400 dark:text-white/40",children:["/ ",e.length," tool",1===e.length?"":"s"]})]}),t?(0,d.jsxs)(m.$,{type:"button",variant:"outline",size:"sm",onClick:q,disabled:g,children:[(0,d.jsx)(y.A,{className:"w-4 h-4 text-muted-foreground"}),"Deselect all"]}):(0,d.jsxs)(m.$,{type:"button",variant:"outline",size:"sm",onClick:o,disabled:g,children:[(0,d.jsx)(z.A,{className:"w-4 h-4 text-muted-foreground"}),"Select all"]})]}),(0,d.jsx)("div",{className:"max-h-96 overflow-y-auto border rounded-lg rounded-t-none scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent",children:e.map(a=>{let b=(a=>{switch(n.type){case"all":return e.some(b=>b.name===a);case"selective":return n.tools.includes(a)&&e.some(b=>b.name===a);default:return!1}})(a.name);return(0,d.jsxs)("div",{className:"space-y-2 flex items-start gap-6 border-b last:border-b-0 py-4 px-6 relative",children:[(0,d.jsx)("div",{className:"flex items-center h-[22px]",children:(0,d.jsx)(B.S,{checked:b,disabled:g,className:"mb-0",onClick:()=>!g&&r(a.name,!b)})}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)(A.E,{variant:b?"primary":"code",className:`font-mono font-medium text-xs cursor-pointer transition-colors ${g?"opacity-50 cursor-not-allowed":""}`,onClick:()=>!g&&r(a.name,!b),children:a.name}),(0,d.jsxs)(C.Tooltip,{delayDuration:800,children:[(0,d.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,d.jsx)("p",{className:"text-sm text-muted-foreground line-clamp-1",children:a.description})}),(0,d.jsx)(C.TooltipContent,{side:"bottom",align:"start",children:a.description})]})]})]},a.name)})})]})]}),(0,d.jsx)(p.C5,{children:l?.message})]})})}var E=c(22286);let F={name:"",config:{type:"mcp",mcp:{server:{url:""},transport:{type:f.o7.streamableHttp},toolsConfig:{type:"all"}}},imageUrl:"",credentialReferenceId:"oauth",credentialScope:E.t.project};function G({initialData:a,mode:b="create",tool:c,credentials:s,tenantId:y,projectId:z}){let A=(0,g.useRouter)(),[B,C]=(0,h.useState)(!1),[G,H]=(0,h.useState)(!1),I=(0,i.mN)({resolver:(0,e.u)(E.E),defaultValues:{...F,...a}}),{handleOAuthLogin:J}=(0,r.U)({tenantId:y,projectId:z}),{isSubmitting:K}=I.formState,L=async a=>{try{let d=a.name;if(a.credentialScope===E.t.user&&"create"===b){let b={id:(0,x.$)(),name:d,config:{type:"mcp",mcp:{server:{url:a.config.mcp.server.url},transport:{type:a.config.mcp.transport.type}}},credentialReferenceId:null,credentialScope:E.t.user,imageUrl:a.imageUrl},c=await (0,v.X)(y,z,b);j.oR.success("MCP server created. Users can connect their own accounts from the detail page."),A.push(`/${y}/projects/${z}/mcp-servers/${c.id}`);return}if("oauth"===a.credentialReferenceId&&"create"===b){let b=await t(a.config.mcp.server.url);if(!b.success)return void j.oR.error(b.error||"Failed to detect OAuth support");if(!b.data)return void j.oR.error("This MCP server does not support OAuth authentication. Please select a different credential.");let c={id:(0,x.$)(),name:d,config:{type:"mcp",mcp:{server:{url:a.config.mcp.server.url},transport:{type:a.config.mcp.transport.type}}},credentialReferenceId:null,credentialScope:E.t.project,imageUrl:a.imageUrl},e=await (0,v.X)(y,z,c);J({toolId:e.id,mcpServerUrl:a.config.mcp.server.url,toolName:d});return}let e={...a,name:d,credentialReferenceId:"none"===a.credentialReferenceId?null:a.credentialReferenceId,credentialScope:a.credentialScope,config:{...a.config,mcp:{...a.config.mcp,activeTools:(a=>{if("all"===a.type)return;let b=c?.availableTools?.map(a=>a.name)||[];return a.tools.filter(a=>b.includes(a))})(a.config.mcp.toolsConfig)}}};if("update"===b&&c)await (0,w.Y)(y,z,c.id,e),j.oR.success("MCP server updated successfully"),A.push(`/${y}/projects/${z}/mcp-servers/${c.id}`);else{let a=await (0,v.X)(y,z,{...e,id:(0,x.$)()});j.oR.success("MCP server created successfully"),A.push(`/${y}/projects/${z}/mcp-servers/${a.id}`)}}catch(a){console.error(`Failed to ${b} MCP tool:`,a),j.oR.error(`Failed to ${b} MCP server. Please try again.`)}},M=async()=>{if(c){H(!0);try{let a=await (0,u.o)(y,z,c.id,!1);a.success?(C(!1),j.oR.success("MCP server deleted."),A.push(`/${y}/projects/${z}/mcp-servers`)):j.oR.error(a.error||"Failed to delete MCP server.")}finally{H(!1)}}};return(0,d.jsxs)(o.Dialog,{open:B,onOpenChange:C,children:[(0,d.jsx)(p.lV,{...I,children:(0,d.jsxs)("form",{onSubmit:I.handleSubmit(L),className:"space-y-8",children:[(0,d.jsx)(k.a,{control:I.control,name:"name",label:"Name",placeholder:"MCP server",isRequired:!0}),(0,d.jsx)(k.a,{control:I.control,name:"config.mcp.server.url",label:"URL",placeholder:"https://api.example.com/mcp",isRequired:!0}),(0,d.jsx)(l.U,{control:I.control,selectTriggerClassName:"w-full",name:"config.mcp.transport.type",label:"Transport type",placeholder:"Select transport type",options:[{value:f.o7.streamableHttp,label:"Streamable HTTP"},{value:f.o7.sse,label:"Server-Sent Events (SSE)"}]}),(0,d.jsx)(k.a,{control:I.control,name:"imageUrl",label:"Image URL (optional)",placeholder:"https://example.com/icon.png or data:image/png;base64,..."}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(l.U,{control:I.control,selectTriggerClassName:"w-full",name:"credentialScope",label:"Credential Scope",placeholder:"Select credential scope",disabled:"update"===b,options:[{value:E.t.project,label:"Project (shared team credential)"},{value:E.t.user,label:"User (each user connects their own)"}]}),(0,d.jsx)(q.n,{title:"Credential Scope",children:(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:"Project:"})," One shared credential for the entire team. You'll connect an OAuth account now that everyone will use."]}),(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:"User:"})," Each team member connects their own account. No OAuth required during setup — users connect later from the detail page."]})]})})]}),I.watch("credentialScope")===E.t.project&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(l.U,{control:I.control,selectTriggerClassName:"w-full",name:"credentialReferenceId",label:"Credential",placeholder:"Select a credential",options:[{value:"oauth",label:"OAuth"},{value:"none",label:"No Authentication"},...s.map(a=>({value:a.id,label:a.name}))]}),(0,d.jsx)(q.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:"OAuth"})," ",'to authenticate with the MCP server\'s OAuth flow, which will start after you click "Create".']}),(0,d.jsxs)("p",{children:["Select"," ",(0,d.jsx)("code",{className:"bg-background px-1.5 py-0.5 rounded border",children:"No Authentication"})," ","to skip authentication (i.e. none required or add a credential later)."]}),(0,d.jsx)("p",{children:"Or select from the existing credentials you have already created."})]})})]}),"update"===b&&(0,d.jsx)(D,{control:I.control,name:"config.mcp.toolsConfig",label:"Tools",availableTools:c?.availableTools||[],description:"Select which tools should be enabled for this MCP server"}),(0,d.jsxs)("div",{className:"flex w-full justify-between",children:[(0,d.jsx)(m.$,{type:"submit",disabled:K,children:"update"===b?"Save":"Create"}),"update"===b&&c&&(0,d.jsx)(o.DialogTrigger,{asChild:!0,children:(0,d.jsx)(m.$,{type:"button",variant:"destructive-outline",children:"Delete Server"})})]})]})}),B&&c&&(0,d.jsx)(n.J,{itemName:c.name||"this MCP server",isSubmitting:G,onDelete:M})]})}},5471:(a,b,c)=>{c.d(b,{Y:()=>e});var d=c(38870);let e=(0,d.createServerReference)("7868d9de8276083bd6a8411c64f7b5f74e08d90a43",d.callServer,void 0,d.findSourceMapURL,"updateMCPTool")},9383:(a,b,c)=>{c.d(b,{Q1:()=>i,cZ:()=>k,oU:()=>j});var d=c(60922);c(70092);var e=c(6229),f=c(10515),g=c(92082),h=c(27829);async function i(a,b){try{let c=await (0,g.iu)(a,b);return{success:!0,data:c}}catch(a){if(a instanceof h.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function j(a,b,c,d=!0){try{return await (0,g.Wy)(a,b,c),d&&(0,f.revalidatePath)(`/${a}/projects/${b}/mcp-servers`,"page"),{success:!0}}catch(a){if(a instanceof h.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function k(a){try{let b=await (0,e.Rt)({serverUrl:a});return{success:!0,data:b}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to detect OAuth support",code:"oauth_detection_failed"}}}(0,c(28708).D)([i,j,k]),(0,d.A)(i,"60ceb2f1c731b9279614977b2048da9f7404c2d8b8",null),(0,d.A)(j,"78254ee2ac4078d1caa6c3f81e5494a8513c02e51f",null),(0,d.A)(k,"405f9d841cfe05bc88ae94363d6296654721656037",null)},11890:(a,b,c)=>{c.d(b,{S:()=>h});var d=c(11918),e=c(17147),f=c(71935),g=c(30182);function h({className:a,...b}){return(0,d.jsx)(e.bL,{"data-slot":"checkbox",className:(0,g.cn)("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-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,d.jsx)(e.C1,{"data-slot":"checkbox-indicator",className:"flex items-center justify-center text-current transition-none",children:(0,d.jsx)(f.A,{className:"size-3.5"})})})}},14596:(a,b,c)=>{c.d(b,{S:()=>g,U:()=>h});var d=c(60922);c(70092);var e=c(83110),f=c(38867);async function g(a,b){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.Js)(`tenants/${a}/projects/${b}/credential-stores`)).data}async function h({tenantId:a,projectId:b,storeId:c,key:d,value:g,metadata:h}){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.Js)(`tenants/${a}/projects/${b}/credential-stores/${c}/credentials`,{method:"POST",body:JSON.stringify({key:d,value:g,metadata:h})})).data}(0,c(28708).D)([g,h]),(0,d.A)(g,"600f9d00ef271796d2671bf54535c47ce94de5aa7d",null),(0,d.A)(h,"40d00d2ce2d99aa128d59304d7dfa4423b44a80695",null)},17147:(a,b,c)=>{c.d(b,{C1:()=>x,bL:()=>v});var d=c(11775),e=c(91695),f=c(82003),g=c(25877),h=c(96176),i=c(65212),j=c(98300),k=c(59351),l=c(94857),m=c(11918),n="Checkbox",[o,p]=(0,f.A)(n),[q,r]=o(n);function s(a){let{__scopeCheckbox:b,checked:c,children:e,defaultChecked:f,disabled:g,form:i,name:j,onCheckedChange:k,required:l,value:o="on",internal_do_not_use_render:p}=a,[r,s]=(0,h.i)({prop:c,defaultProp:f??!1,onChange:k,caller:n}),[t,u]=d.useState(null),[v,w]=d.useState(null),x=d.useRef(!1),y=!t||!!i||!!t.closest("form"),z={checked:r,disabled:g,setChecked:s,control:t,setControl:u,name:j,form:i,value:o,hasConsumerStoppedPropagationRef:x,required:l,defaultChecked:!A(f)&&f,isFormControl:y,bubbleInput:v,setBubbleInput:w};return(0,m.jsx)(q,{scope:b,...z,children:"function"==typeof p?p(z):e})}var t="CheckboxTrigger",u=d.forwardRef(({__scopeCheckbox:a,onKeyDown:b,onClick:c,...f},h)=>{let{control:i,value:j,disabled:k,checked:n,required:o,setControl:p,setChecked:q,hasConsumerStoppedPropagationRef:s,isFormControl:u,bubbleInput:v}=r(t,a),w=(0,e.s)(h,p),x=d.useRef(n);return d.useEffect(()=>{let a=i?.form;if(a){let b=()=>q(x.current);return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[i,q]),(0,m.jsx)(l.sG.button,{type:"button",role:"checkbox","aria-checked":A(n)?"mixed":n,"aria-required":o,"data-state":B(n),"data-disabled":k?"":void 0,disabled:k,value:j,...f,ref:w,onKeyDown:(0,g.mK)(b,a=>{"Enter"===a.key&&a.preventDefault()}),onClick:(0,g.mK)(c,a=>{q(a=>!!A(a)||!a),v&&u&&(s.current=a.isPropagationStopped(),s.current||a.stopPropagation())})})});u.displayName=t;var v=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,name:d,checked:e,defaultChecked:f,required:g,disabled:h,value:i,onCheckedChange:j,form:k,...l}=a;return(0,m.jsx)(s,{__scopeCheckbox:c,checked:e,defaultChecked:f,disabled:h,required:g,onCheckedChange:j,name:d,form:k,value:i,internal_do_not_use_render:({isFormControl:a})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(u,{...l,ref:b,__scopeCheckbox:c}),a&&(0,m.jsx)(z,{__scopeCheckbox:c})]})})});v.displayName=n;var w="CheckboxIndicator",x=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,forceMount:d,...e}=a,f=r(w,c);return(0,m.jsx)(k.C,{present:d||A(f.checked)||!0===f.checked,children:(0,m.jsx)(l.sG.span,{"data-state":B(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:b,style:{pointerEvents:"none",...a.style}})})});x.displayName=w;var y="CheckboxBubbleInput",z=d.forwardRef(({__scopeCheckbox:a,...b},c)=>{let{control:f,hasConsumerStoppedPropagationRef:g,checked:h,defaultChecked:k,required:n,disabled:o,name:p,value:q,form:s,bubbleInput:t,setBubbleInput:u}=r(y,a),v=(0,e.s)(c,u),w=(0,i.Z)(h),x=(0,j.X)(f);d.useEffect(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!g.current;if(w!==h&&a){let c=new Event("click",{bubbles:b});t.indeterminate=A(h),a.call(t,!A(h)&&h),t.dispatchEvent(c)}},[t,w,h,g]);let z=d.useRef(!A(h)&&h);return(0,m.jsx)(l.sG.input,{type:"checkbox","aria-hidden":!0,defaultChecked:k??z.current,required:n,disabled:o,name:p,value:q,form:s,...b,tabIndex:-1,ref:v,style:{...b.style,...x,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function A(a){return"indeterminate"===a}function B(a){return A(a)?"indeterminate":a?"checked":"unchecked"}z.displayName=y},22286:(a,b,c)=>{c.d(b,{E:()=>h,t:()=>g});var d=c(37747),e=c(38131);let f=e.discriminatedUnion("type",[e.object({type:e.literal("all")}),e.object({type:e.literal("selective"),tools:e.array(e.string())})]),g={project:"project",user:"user"},h=e.object({name:e.string().min(1,"Name is required."),config:e.object({type:e.literal("mcp"),mcp:e.object({server:e.object({url:e.string().url("Must be a valid URL.")}),transport:e.object({type:e.nativeEnum(d.o7)}),toolsConfig:f.default({type:"all"})})}),credentialReferenceId:e.string().nullish(),credentialScope:e.enum(g).default("project"),imageUrl:e.string().optional()})},51324:(a,b,c)=>{c.d(b,{o:()=>e});var d=c(38870);let e=(0,d.createServerReference)("78254ee2ac4078d1caa6c3f81e5494a8513c02e51f",d.callServer,void 0,d.findSourceMapURL,"deleteToolAction")},77050:(a,b,c)=>{c.d(b,{U:()=>g});var d=c(11918),e=c(597),f=c(29774);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))})]})})}},78921:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(28941).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},82064:(a,b,c)=>{c.d(b,{J:()=>h});var d=c(11918),e=c(78921),f=c(35725),g=c(33149);function h({itemName:a,isSubmitting:b,onDelete:c,customTitle:h,customDescription:i}){let j=async()=>{await c()};return(0,d.jsxs)(g.DialogContent,{children:[(0,d.jsx)(g.DialogTitle,{children:h||`Delete ${a||"this item"}`}),(0,d.jsx)(g.DialogDescription,{children:i||`Are you sure you want to delete ${a||"this item"}? This action cannot be undone.`}),(0,d.jsxs)(g.Es,{children:[(0,d.jsx)(g.HM,{asChild:!0,children:(0,d.jsx)(f.$,{variant:"outline",children:"Cancel"})}),(0,d.jsx)(f.$,{variant:"destructive",onClick:j,disabled:b,children:b?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.A,{className:"size-4 animate-spin"})," Deleting..."]}):"Delete"})]})]})}},83608:(a,b,c)=>{c.d(b,{$Y:()=>g,GO:()=>i,Ji:()=>l,K3:()=>h,h9:()=>k,nZ:()=>j});var d=c(26421);c(56387);var e=c(24961),f=c(65382);async function g(a,b,c=1,d=100){(0,f.M2)(a),(0,f.nt)(b);let h=new URLSearchParams({page:c.toString(),limit:d.toString()});return(await (0,e.Js)(`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.Js)(`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.Js)(`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.Js)(`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.Js)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}async function l(a,b,c){(0,f.M2)(a),(0,f.nt)(b);try{return(await (0,e.Js)(`tenants/${a}/projects/${b}/tools/${c}/user-credential`)).data}catch{return null}}(0,c(77851).D)([g,h,i,j,k,l]),(0,d.A)(g,"78e9f391b58b7990031722d136b07434c4fe1652a4",null),(0,d.A)(h,"70d308525b7c4194ce31cdbb4c79e25435ddfec800",null),(0,d.A)(i,"707b18bcbbd64e648bf4bac302968fcf6c67c83a30",null),(0,d.A)(j,"785531761c71ceaf696fbc163bb668e5416480717f",null),(0,d.A)(k,"70d841432e45feb6f48589de8ad2cd75431898df2a",null),(0,d.A)(l,"7065c63befbfc6b71cb7237eb34e6c0683309324a4",null)},86066:(a,b,c)=>{c.d(b,{U:()=>o});var d=c(37747),e=c(33032),f=c(11775),g=c(96765),h=c(69495),i=c(95995),j=c(5471),k=c(18136),l=c(2048),m=c(52082),n=c(30366);function o({tenantId:a,projectId:b,onFinish:c}){let o=(0,e.useRouter)(),{PUBLIC_INKEEP_AGENTS_MANAGE_API_URL:p}=(0,h.y)(),{openNangoConnectHeadless:q}=(0,n.$)(),{user:r}=(0,m.Q)(),s=(0,f.useRef)(new Map),t=(0,f.useCallback)((d,e)=>new Promise((f,g)=>{let h=s.current.get(d);h&&(h(),s.current.delete(d));try{let h=e??function({PUBLIC_INKEEP_AGENTS_MANAGE_API_URL:a,tenantId:b,projectId:c,id:d}){if(!b||"string"!=typeof b)throw Error("Invalid tenantId: must be a non-empty string");if(!d||"string"!=typeof d)throw Error("Invalid tool id: must be a non-empty string");if(!c||"string"!=typeof c)throw Error("Invalid projectId: must be a non-empty string");let e=/^[a-zA-Z0-9-_]+$/;if(!e.test(b))throw Error("Invalid tenantId format: only alphanumeric characters, hyphens, and underscores allowed");if(!e.test(d))throw Error("Invalid tool id format: only alphanumeric characters, hyphens, and underscores allowed");if(!e.test(c))throw Error("Invalid projectId format: only alphanumeric characters, hyphens, and underscores allowed");let f=`${a}/oauth/login?tenantId=${encodeURIComponent(b)}&projectId=${encodeURIComponent(c)}&toolId=${encodeURIComponent(d)}`;if(!f.startsWith(a))throw Error("Invalid OAuth URL generated");return f}({PUBLIC_INKEEP_AGENTS_MANAGE_API_URL:p,tenantId:a,projectId:b,id:d}),i=window.open(h,"oauth-popup","width=600,height=700,scrollbars=yes,resizable=yes,status=yes,location=yes");if(!i){let a=Error(`Failed to open popup for ${d} - blocked by browser`);console.error(a.message),g(a);return}let j=!1,k=(e,h)=>{j||(j=!0,window.removeEventListener("message",l),m&&clearInterval(m),clearTimeout(n),s.current.delete(d),e?(c?c(d):o.push(`/${a}/projects/${b}/mcp-servers/${d}`),f()):g(h||Error("OAuth login failed")))},l=a=>{"oauth-success"===a.data.type?k(!0):"oauth-error"===a.data.type&&k(!1,Error(a.data.error||"OAuth login failed"))};window.addEventListener("message",l);let m=null,n=setTimeout(()=>{j||(m=setInterval(()=>{try{i.closed&&k(!0)}catch{}},1e3))},3e3);s.current.set(d,()=>{k(!1,Error("OAuth login cancelled"))})}catch(a){g(a instanceof Error?a:Error("OAuth login failed"))}}),[p,a,b,c,o]),u=(0,f.useCallback)(async({toolId:e,mcpServerUrl:f,toolName:g,credentialScope:h})=>{if(!r)throw Error("User not found");let i=await q({mcpServerUrl:f,providerUniqueKey:`${(0,d.K_)(g)}_${e.slice(0,4)}`,providerDisplayName:g}),m="user"===h,n={id:(0,l.$)(),name:g,type:d.Ns.nango,credentialStoreId:d.Ux,createdBy:r?.email??void 0,...m&&{toolId:e,userId:r.id},retrievalParams:{connectionId:i.connectionId,providerConfigKey:i.providerConfigKey,provider:"mcp-generic",authMode:"OAUTH2"}},p=await (0,k.U)(a,b,n);m||await (0,j.Y)(a,b,e,{credentialReferenceId:p.id}),c?c(e):o.push(`/${a}/projects/${b}/mcp-servers/${e}`)},[q,c,o,a,b,r]);return{handleOAuthLogin:(0,f.useCallback)(async({toolId:c,mcpServerUrl:e,toolName:f,thirdPartyConnectAccountUrl:h,credentialScope:j})=>{if(h)return void await t(c,h);try{let g=await (0,i.S)(a,b),h=g.some(a=>a.type===d.Ns.nango&&a.available),k=g.some(a=>a.type===d.Ns.keychain&&a.available);if(h)await u({toolId:c,mcpServerUrl:e,toolName:f,credentialScope:j});else if(k)await t(c);else throw Error("No credential store available. Please configure Nango or Keychain.")}catch(b){let a=b instanceof Error?b:Error("OAuth login failed");throw g.oR.error(a.message),a}},[a,b,u,t])}}},90595:(a,b,c)=>{c.d(b,{X:()=>e});var d=c(38870);let e=(0,d.createServerReference)("70c691ebf1de4d51887cb1d999e79796cbee257826",d.callServer,void 0,d.findSourceMapURL,"createMCPTool")},92082:(a,b,c)=>{c.d(b,{Wy:()=>k,XL:()=>i,YU:()=>j,iu:()=>g,xl:()=>h});var d=c(60922);c(70092);var e=c(83110),f=c(38867);async function g(a,b,c=1,d=100,h){(0,f.M2)(a),(0,f.nt)(b);let i=new URLSearchParams({page:c.toString(),limit:d.toString()});return h&&i.append("status",h),(await (0,e.Js)(`tenants/${a}/projects/${b}/tools?${i}`)).data.filter(a=>a.config?.type==="mcp")}async function h(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.Js)(`tenants/${a}/projects/${b}/tools/${c}`)).data}async function i(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.Js)(`tenants/${a}/projects/${b}/tools`,{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.Js)(`tenants/${a}/projects/${b}/tools/${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.Js)(`tenants/${a}/projects/${b}/tools/${c}`,{method:"DELETE"})}(0,c(28708).D)([g,h,i,j,k]),(0,d.A)(g,"7c0e44f684ada95f38bcfd2ba5000b7346de3b601c",null),(0,d.A)(h,"704d5be8e73ad09270955149bbf7c00abb08e0b350",null),(0,d.A)(i,"70c691ebf1de4d51887cb1d999e79796cbee257826",null),(0,d.A)(j,"7868d9de8276083bd6a8411c64f7b5f74e08d90a43",null),(0,d.A)(k,"7024545dd127ddda8193c0321500bab66d207300c6",null)},95995:(a,b,c)=>{c.d(b,{S:()=>e});var d=c(38870);let e=(0,d.createServerReference)("600f9d00ef271796d2671bf54535c47ce94de5aa7d",d.callServer,void 0,d.findSourceMapURL,"listCredentialStores")}};
@@ -1 +0,0 @@
1
- exports.id=9184,exports.ids=[9184],exports.modules={597:(a,b,c)=>{"use strict";c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(11918),e=c(84759),f=c(56417),g=c(71935),h=c(74520),i=c(30182);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"})})}},12724:(a,b,c)=>{"use strict";c.d(b,{ExternalAgentForm:()=>v});var d=c(11918),e=c(269),f=c(19863),g=c(33032),h=c(84834),i=c(96765),j=c(3641),k=c(77050),l=c(64768),m=c(35725),n=c(871),o=c(88530),p=c(34765),q=c(38870);let r=(0,q.createServerReference)("70e99142808fdfb8adf86324210b8dca410d1d8061",q.callServer,void 0,q.findSourceMapURL,"createExternalAgent");var s=c(38131);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"})]})})}},28834:(a,b,c)=>{Promise.resolve().then(c.bind(c,37524)),Promise.resolve().then(c.bind(c,82631))},29255:(a,b,c)=>{"use strict";c.d(b,{ExternalAgentForm:()=>d});let d=(0,c(7044).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")},34765:(a,b,c)=>{"use strict";c.d(b,{e:()=>e});var d=c(38870);let e=(0,d.createServerReference)("783631f56946c73f69d044e8766d96d751b92aea88",d.callServer,void 0,d.findSourceMapURL,"updateExternalAgent")},46986:(a,b,c)=>{Promise.resolve().then(c.bind(c,74666)),Promise.resolve().then(c.bind(c,27069))},70009:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j,dynamic:()=>i});var d=c(22528),e=c(37524),f=c(82631),g=c(86426),h=c(72640);let i="force-dynamic";async function j({children:a,params:b}){let{tenantId:c,projectId:i}=await b;try{let b=await (0,g.Sw)(c,i);return(0,d.jsx)(f.ProjectProvider,{value:b.data,children:a})}catch(a){return(0,d.jsx)(e.default,{errorCode:(0,h.E)(a),context:"project",link:`/${c}/projects`,linkText:"Back to projects"})}}},77050:(a,b,c)=>{"use strict";c.d(b,{U:()=>g});var d=c(11918),e=c(597),f=c(29774);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))})]})})}},82631:(a,b,c)=>{"use strict";c.d(b,{ProjectProvider:()=>e});var d=c(7044);(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")},83608:(a,b,c)=>{"use strict";c.d(b,{$Y:()=>g,GO:()=>i,Ji:()=>l,K3:()=>h,h9:()=>k,nZ:()=>j});var d=c(26421);c(56387);var e=c(24961),f=c(65382);async function g(a,b,c=1,d=100){(0,f.M2)(a),(0,f.nt)(b);let h=new URLSearchParams({page:c.toString(),limit:d.toString()});return(await (0,e.Js)(`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.Js)(`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.Js)(`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.Js)(`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.Js)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}async function l(a,b,c){(0,f.M2)(a),(0,f.nt)(b);try{return(await (0,e.Js)(`tenants/${a}/projects/${b}/tools/${c}/user-credential`)).data}catch{return null}}(0,c(77851).D)([g,h,i,j,k,l]),(0,d.A)(g,"78e9f391b58b7990031722d136b07434c4fe1652a4",null),(0,d.A)(h,"70d308525b7c4194ce31cdbb4c79e25435ddfec800",null),(0,d.A)(i,"707b18bcbbd64e648bf4bac302968fcf6c67c83a30",null),(0,d.A)(j,"785531761c71ceaf696fbc163bb668e5416480717f",null),(0,d.A)(k,"70d841432e45feb6f48589de8ad2cd75431898df2a",null),(0,d.A)(l,"7065c63befbfc6b71cb7237eb34e6c0683309324a4",null)}};
@@ -1,10 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[13071],{198:(e,t,a)=>{a.d(t,{G7:()=>i,L$:()=>u,h_:()=>m,oI:()=>d,uB:()=>l,xL:()=>c});var s=a(59112),r=a(11203),n=a(41805);a(6871);var o=a(29944);function l({className:e,...t}){return(0,s.jsx)(r.uB,{"data-slot":"command",className:(0,o.cn)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...t})}function i({className:e,...t}){return(0,s.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,s.jsx)(n.A,{className:"size-4 shrink-0 opacity-50"}),(0,s.jsx)(r.uB.Input,{"data-slot":"command-input",className:(0,o.cn)("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",e),...t})]})}function d({className:e,...t}){return(0,s.jsx)(r.uB.List,{"data-slot":"command-list",className:(0,o.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent",e),...t})}function c({...e}){return(0,s.jsx)(r.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}function u({className:e,...t}){return(0,s.jsx)(r.uB.Group,{"data-slot":"command-group",className:(0,o.cn)("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:font-mono [&_[cmdk-group-heading]]:tracking-wide",e),...t})}function m({className:e,...t}){return(0,s.jsx)(r.uB.Item,{"data-slot":"command-item",className:(0,o.cn)("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...t})}},280:(e,t,a)=>{a.d(t,{Z:()=>u});var s=a(59112),r=a(86559),n=a(95556),o=a(46539),l=a(6871),i=a(23579),d=a(23600),c=a(29944);function u({id:e,uri:t,label:a,children:u,actions:m,isRequired:p=!1,open:h,onOpenChange:x,hasError:f}){let g=(0,d.Y1)(e=>e.monaco),j=(0,n.useCallback)(()=>{if(!g)return;let e=g.editor.getModel(g.Uri.parse(t)),[a]=g.editor.getEditors().filter(t=>t.getModel()===e);a?.focus()},[g,t]),v=(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)(i.J,{id:e,className:(0,c.cn)(f&&"text-red-600","gap-1"),onClick:j,children:[a,p&&(0,s.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[m,!h&&(0,s.jsx)(l.DialogTrigger,{asChild:!0,children:(0,s.jsxs)(o.$,{variant:"link",size:"sm",type:"button",className:"text-xs rounded-sm h-6",children:[(0,s.jsx)(r.A,{className:"size-3.5"}),"Expand"]})})]})]}),(0,s.jsx)("div",{className:(0,c.cn)("relative space-y-2",h&&"grow"),children:u})]});return(0,s.jsxs)(l.Dialog,{open:h,onOpenChange:x,children:[(0,s.jsx)("div",{className:"space-y-2",children:v}),(0,s.jsxs)(l.DialogContent,{size:"fullscreen",className:"!max-w-none h-screen w-screen max-h-screen p-0 gap-0 border-0 rounded-none",children:[(0,s.jsx)(l.DialogTitle,{className:"sr-only",children:a}),(0,s.jsx)(l.DialogDescription,{className:"sr-only",children:`${a} Editor`}),(0,s.jsx)("div",{className:"flex flex-col w-full px-8 pb-8 pt-12 mx-auto max-w-7xl min-w-0 gap-2",children:v})]})]})}},13071:(e,t,a)=>{a.d(t,{ProjectForm:()=>G});var s=a(59112),r=a(16559),n=a(92400),o=a(32618),l=a(21933),i=a(8641),d=a(50877),c=a(46539),u=a(80381),m=a(97512),p=a(93008),h=a(71506);let x=(0,h.createServerReference)("70fcdc44fdc43bb565b1dc4be90895362a8494e7ea",h.callServer,void 0,h.findSourceMapURL,"updateProjectAction"),f=(0,h.createServerReference)("60580318dda54da2dabe4642843137c1f8da46bed3",h.callServer,void 0,h.findSourceMapURL,"createProjectAction");var g=a(79776);let j={id:"",name:"",description:"",models:{base:{model:g.nr,providerOptions:void 0},structuredOutput:{model:g.jV,providerOptions:void 0},summarizer:{model:g.tI,providerOptions:void 0}},stopWhen:void 0};var v=a(16239),b=a(93409),y=a(95556),N=a(41707),w=a(34368),C=a(99716),O=a(31273),k=a(69661),I=a(23579),S=a(92013);function _({control:e}){let{field:t}=(0,o.as)({control:e,name:"models.base.providerOptions"});return(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(C.u,{control:e,name:"models.base.model",label:"Base model",description:"Primary model for general agent responses",isRequired:!0,children:e=>(0,s.jsx)(N.B,{label:"",placeholder:"Select base model",value:e.value||"",onValueChange:e.onChange,canClear:!1})}),(0,s.jsx)(w.y,{name:"models.base.providerOptions",label:"Provider options",value:t.value?JSON.stringify(t.value,null,2):"",onChange:e=>{if(!e?.trim())return void t.onChange(void 0);try{let a=JSON.parse(e);t.onChange(a)}catch{}},placeholder:`{
2
- "temperature": 0.7,
3
- "maxOutputTokens": 2048
4
- }`})]})}function z({control:e}){let{field:t}=(0,o.as)({control:e,name:"models.structuredOutput.providerOptions"}),a=(0,o.FH)({control:e,name:"models.base.model"});return(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(C.u,{control:e,name:"models.structuredOutput.model",label:"Structured output model",description:"Model for structured outputs and components (defaults to base model)",children:e=>(0,s.jsx)(N.B,{label:"",placeholder:"Select structured output model (optional)",value:e.value||"",onValueChange:e.onChange,inheritedValue:a,canClear:!0})}),(0,s.jsx)(w.y,{name:"models.structuredOutput.providerOptions",label:"Provider options",value:t.value?JSON.stringify(t.value,null,2):"",onChange:e=>{if(!e?.trim())return void t.onChange(void 0);try{let a=JSON.parse(e);t.onChange(a)}catch{}},placeholder:`{
5
- "temperature": 0.1,
6
- "maxOutputTokens": 1024
7
- }`})]})}function P({control:e}){let{field:t}=(0,o.as)({control:e,name:"models.summarizer.providerOptions"}),a=(0,o.FH)({control:e,name:"models.base.model"});return(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(C.u,{control:e,name:"models.summarizer.model",label:"Summarizer model",description:"Model for summarization tasks (defaults to base model)",children:e=>(0,s.jsx)(N.B,{label:"",placeholder:"Select summarizer model (optional)",value:e.value||"",onValueChange:e.onChange,inheritedValue:a,canClear:!0})}),(0,s.jsx)(w.y,{name:"models.summarizer.providerOptions",label:"Provider options",value:t.value?JSON.stringify(t.value,null,2):"",onChange:e=>{if(!e?.trim())return void t.onChange(void 0);try{let a=JSON.parse(e);t.onChange(a)}catch{}},placeholder:`{
8
- "temperature": 0.3,
9
- "maxOutputTokens": 1024
10
- }`})]})}function A({control:e}){let[t,a]=(0,y.useState)(!1),{errors:r}=(0,o.lN)({control:e}),n=!!(r.models?.base?.model||r.models?.base?.providerOptions||r.models?.structuredOutput?.model||r.models?.structuredOutput?.providerOptions||r.models?.summarizer?.model||r.models?.summarizer?.providerOptions);return(0,y.useEffect)(()=>{n&&a(!0)},[n]),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(I.J,{className:"text-sm font-medium",children:"Default models"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:"Set default models that will be inherited by agents and sub agents in this project."})]}),(0,s.jsxs)(O.Nt,{open:t,onOpenChange:a,className:"border rounded-md bg-background",children:[(0,s.jsx)(O.R6,{asChild:!0,children:(0,s.jsxs)(c.$,{type:"button",variant:"ghost",size:"sm",className:"flex items-center justify-start gap-2 w-full group p-0 h-auto hover:!bg-transparent transition-colors py-2 px-4",children:[(0,s.jsx)(v.A,{className:"h-4 w-4 transition-transform duration-200 group-data-[state=open]:rotate-90"}),"Configure default models"]})}),(0,s.jsxs)(O.Ke,{className:"space-y-6 mt-4 data-[state=closed]:animate-[collapsible-up_200ms_ease-out] data-[state=open]:animate-[collapsible-down_200ms_ease-out] overflow-hidden px-4 pb-6",children:[(0,s.jsx)(_,{control:e}),(0,s.jsx)(z,{control:e}),(0,s.jsx)(P,{control:e}),(0,s.jsx)(k.n,{title:"How model inheritance works:",Icon:b.A,children:(0,s.jsx)(S.O,{})})]})]})]})}function M({control:e}){let t=(0,o.FH)({control:e,name:"stopWhen"}),a=!!(t?.transferCountIs||t?.stepCountIs),[r,n]=(0,y.useState)(a),{errors:l}=(0,o.lN)({control:e}),d=!!(l.stopWhen?.transferCountIs||l.stopWhen?.stepCountIs);return(0,y.useEffect)(()=>{d&&n(!0)},[d]),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(I.J,{className:"text-sm font-medium",children:"Execution limits"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground mt-1",children:"Set default execution limits that will be inherited by agents and sub agents in this project."})]}),(0,s.jsxs)(O.Nt,{open:r,onOpenChange:n,className:"border rounded-md bg-background",children:[(0,s.jsx)(O.R6,{asChild:!0,children:(0,s.jsxs)(c.$,{type:"button",variant:"ghost",size:"sm",className:"flex items-center justify-start gap-2 w-full group p-0 h-auto hover:!bg-transparent transition-colors py-2 px-4",children:[(0,s.jsx)(v.A,{className:"h-4 w-4 transition-transform duration-200 group-data-[state=open]:rotate-90"}),"Configure Execution Limits"]})}),(0,s.jsxs)(O.Ke,{className:"space-y-6 mt-4 data-[state=closed]:animate-[collapsible-up_200ms_ease-out] data-[state=open]:animate-[collapsible-down_200ms_ease-out] overflow-hidden px-4 pb-6",children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[(0,s.jsx)("div",{className:"space-y-2",children:(0,s.jsx)(i.a,{control:e,name:"stopWhen.transferCountIs",description:"Maximum number of agent transfers per conversation (agent-level, default: 10)",label:"Max transfers",type:"number",placeholder:"10",min:"1"})}),(0,s.jsx)("div",{className:"space-y-2",children:(0,s.jsx)(i.a,{control:e,name:"stopWhen.stepCountIs",label:"Max steps",type:"number",placeholder:"50",min:"1",description:"Maximum number of execution steps per agent (agent-level limit)"})})]}),(0,s.jsx)(k.n,{title:"How inheritance works:",Icon:b.A,children:(0,s.jsxs)("ul",{className:"space-y-1.5 list-disc list-outside pl-4",children:[(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{className:"font-medium",children:"transferCountIs"}),": Project → Agent only (agent-level limit)"]}),(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{className:"font-medium",children:"stepCountIs"}),": Project → Agent only (agent-level limit)"]}),(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{className:"font-medium",children:"Explicit settings"})," always take precedence over inherited values"]}),(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{className:"font-medium",children:"Default fallback"}),": transferCountIs = 10 if no value is set"]}),(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{className:"font-medium",children:"Error limit"})," is hardcoded to 3 errors across all levels"]})]})})]})]})]})}var $=a(65686);let E=$.object({model:$.string().optional(),providerOptions:$.record($.string(),$.any()).optional().nullable()}),D=$.object({model:$.string().min(1,"Base model is required"),providerOptions:$.record($.string(),$.any()).optional().nullable()}),W=$.object({base:D,structuredOutput:E.optional(),summarizer:E.optional()}),T=$.object({transferCountIs:$.number().min(1).max(100).optional().nullable(),stepCountIs:$.number().min(1).max(1e3).optional().nullable()}).optional(),R=$.object({id:$.string().min(1,"Project ID is required").regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,{message:"ID must start and end with lowercase alphanumeric characters, and may contain hyphens"}),name:$.string().min(1,"Project name is required").max(100,"Name must be less than 100 characters"),description:$.string().max(500,"Description must be less than 500 characters").optional(),models:W,stopWhen:T});function G({tenantId:e,projectId:t,onSuccess:a,onCancel:h,initialData:g}){let v=(0,o.mN)({resolver:(0,r.u)(R),defaultValues:g?{...g,stopWhen:g?.stopWhen||{},models:g?.models||{base:{model:"",providerOptions:null}}}:{...j}}),{isSubmitting:b}=v.formState,y=(0,n.useRouter)();(0,p.S)({form:v,nameField:"name",idField:"id",isEditing:!!t});let N=async s=>{let r,n=(r=e=>{if(e&&("object"!=typeof e||0!==Object.keys(e).length))return e},{...s,models:{...s.models,base:{model:s.models.base.model,providerOptions:r(s.models.base.providerOptions)},structuredOutput:s.models?.structuredOutput?.model?{model:s.models.structuredOutput.model,providerOptions:r(s.models.structuredOutput.providerOptions)}:void 0,summarizer:s.models?.summarizer?.model?{model:s.models.summarizer.model,providerOptions:r(s.models.summarizer.providerOptions)}:void 0},stopWhen:(e=>{if(!e||"object"==typeof e&&0===Object.keys(e).length)return{};let t={};return(null!==e.transferCountIs&&void 0!==e.transferCountIs&&(t.transferCountIs=e.transferCountIs),null!==e.stepCountIs&&void 0!==e.stepCountIs&&(t.stepCountIs=e.stepCountIs),0===Object.keys(t).length)?{}:t})(s.stopWhen)});try{if(t){let r=await x(e,t,n);if(!r.success)return void l.oR.error(r.error||"Failed to update project");l.oR.success("Project updated successfully"),a&&a(s.id)}else{let t=await f(e,n);if(!t.success)return void l.oR.error(t.error||"Failed to create project");l.oR.success("Project created successfully"),a?a(s.id):y.push(`/${e}/projects/${s.id}/agent`)}}catch(t){console.error("Error creating project:",t);let e=t instanceof Error?t.message:"An unexpected error occurred";l.oR.error(e)}};return(0,s.jsx)(u.lV,{...v,children:(0,s.jsxs)("form",{onSubmit:v.handleSubmit(N),className:"space-y-8",children:[(0,s.jsx)(i.a,{control:v.control,name:"name",label:"Name",placeholder:"My Project",description:"A friendly name for your project",isRequired:!0}),(0,s.jsx)(i.a,{control:v.control,name:"id",label:"Id",placeholder:"my-project",description:"Choose a unique identifier for this project. This cannot be changed later.",disabled:!!t,isRequired:!0}),(0,s.jsx)(d.K,{control:v.control,name:"description",label:"Description",placeholder:"Describe what this project is for...",className:"min-h-[100px]"}),(0,s.jsx)(m.Separator,{}),(0,s.jsx)(A,{control:v.control}),(0,s.jsx)(m.Separator,{}),(0,s.jsx)(M,{control:v.control}),(0,s.jsxs)("div",{className:`flex gap-3 ${h?"justify-end":"justify-start"}`,children:[h&&(0,s.jsx)(c.$,{type:"button",variant:"outline",onClick:h,disabled:b,children:"Cancel"}),(0,s.jsx)(c.$,{type:"submit",disabled:b,children:t?"Update project":"Create project"})]})]})})}},31273:(e,t,a)=>{a.d(t,{Ke:()=>l,Nt:()=>n,R6:()=>o});var s=a(59112),r=a(96176);function n({...e}){return(0,s.jsx)(r.bL,{"data-slot":"collapsible",...e})}function o({...e}){return(0,s.jsx)(r.R6,{"data-slot":"collapsible-trigger",...e})}function l({...e}){return(0,s.jsx)(r.Ke,{"data-slot":"collapsible-content",...e})}},34368:(e,t,a)=>{a.d(t,{y:()=>d});var s=a(59112),r=a(95556),n=a(43189),o=a(46539),l=a(29944),i=a(280);function d({name:e,value:t,onChange:a,className:d,label:c="JSON",placeholder:u="Enter valid JSON...",error:m,readOnly:p,editorOptions:h}){var x;let{error:f}=((e="")=>{let[t,a]=(0,r.useState)("");return(0,r.useEffect)(()=>{if(!e.trim())return void a("");try{JSON.parse(e),a("")}catch{a("Invalid JSON syntax")}},[e]),{error:t}})(t),{handleFormat:g,canFormat:j}={handleFormat:()=>{if(!x&&t?.trim()){let e=(0,l.IB)(t);a?.(e)}},canFormat:!(x=!!(m||f))&&!!t?.trim()},[v,b]=(0,r.useState)(!1),y=`${v?"expanded-":""}${e}.json`,N=m||f,w=`${e}-label`;return(0,s.jsxs)(i.Z,{id:w,open:v,onOpenChange:b,uri:y,label:c,className:d,hasError:!!N,actions:!p&&(0,s.jsx)(o.$,{type:"button",onClick:g,disabled:!j,variant:"link",size:"sm",className:"text-xs rounded-sm h-6",children:"Format"}),children:[(0,s.jsx)(n.i,{uri:y,value:t,onChange:a,placeholder:u,"aria-invalid":N?"true":void 0,className:(0,l.cn)(!v&&N&&"max-h-96"),hasDynamicHeight:!v,"aria-labelledby":w,readOnly:p,editorOptions:h}),N&&(0,s.jsx)("p",{className:"text-sm text-red-600",children:N})]})}},41707:(e,t,a)=>{a.d(t,{B:()=>f});var s=a(59112),r=a(93409),n=a(2256),o=a(72715),l=a(18471),i=a(95556),d=a(79776),c=a(46539),u=a(198),m=a(23579),p=a(98570),h=a(5892),x=a(29944);function f({label:e="Model",tooltip:t,value:a,onValueChange:f,placeholder:g="Select a model...",inheritedValue:j,isRequired:v=!1,canClear:b=!0}){let[y,N]=(0,i.useState)(!1),[w,C]=(0,i.useState)(null),[O,k]=(0,i.useState)(""),I=(0,i.useMemo)(()=>{for(let[e,t]of Object.entries(d.Og)){let e=t.find(e=>e.value===a);if(e)return e}if(a){if(a.startsWith("openrouter/")){let e=a.replace("openrouter/","");return{value:a,label:e,prefix:"openrouter/"}}if(a.startsWith("gateway/")){let e=a.replace("gateway/","");return{value:a,label:e,prefix:"gateway/"}}if(a.startsWith("nim/")){let e=a.replace("nim/","");return{value:a,label:e,prefix:"nim/"}}if(a.startsWith("custom/")){let e=a.replace("custom/","");return{value:a,label:e,prefix:"custom/"}}return{value:a,label:`${a} (custom)`}}return null},[a]),S=(0,i.useMemo)(()=>{if(!j)return null;for(let[e,t]of Object.entries(d.Og)){let e=t.find(e=>e.value===j);if(e)return e}return j?{value:j,label:j}:null},[j]);return(0,s.jsxs)("div",{className:"space-y-2",children:[e&&(0,s.jsxs)(m.J,{children:[e,t&&(0,s.jsx)(h.B,{children:(0,s.jsxs)(h.Tooltip,{children:[(0,s.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,s.jsx)(r.A,{className:"w-3 h-3 text-muted-foreground"})}),(0,s.jsx)(h.TooltipContent,{children:t})]})}),v&&(0,s.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,s.jsx)("div",{className:"relative",children:(0,s.jsxs)("div",{className:"flex w-full shadow-xs rounded-md",children:[(0,s.jsxs)(p.AM,{open:y,onOpenChange:N,children:[(0,s.jsx)(p.Wv,{asChild:!0,children:(0,s.jsxs)(c.$,{variant:"outline",role:"combobox","aria-expanded":y,className:(0,x.cn)("justify-between bg-background dark:bg-input/30 flex-1 text-foreground shadow-none truncate",I&&b?"rounded-r-none border-r-0":"rounded-r-md"),children:[I?(0,s.jsxs)("div",{className:"truncate",children:["prefix"in I&&I.prefix&&(0,s.jsx)("span",{className:"text-gray-400",children:I.prefix}),I.label]}):S?(0,s.jsxs)("div",{className:"truncate text-muted-foreground",children:[(0,s.jsx)("span",{className:"italic",children:S.label}),(0,s.jsx)("span",{className:"text-xs ml-1",children:"(inherited)"})]}):(0,s.jsx)("div",{className:"text-muted-foreground",children:g}),(0,s.jsx)(n.A,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,s.jsx)(p.hl,{className:"p-0 w-[var(--radix-popover-trigger-width)] transition-all duration-200 ease-in-out",align:"start",side:"bottom",onWheel:e=>{e.stopPropagation()},onTouchMove:e=>{e.stopPropagation()},children:(0,s.jsxs)(u.uB,{children:[(0,s.jsx)(u.G7,{placeholder:"Search models or type custom model ID..."}),(0,s.jsxs)(u.oI,{className:"max-h-64",children:[(0,s.jsx)(u.xL,{children:(()=>{if("undefined"!=typeof document){let e=document.querySelector("[cmdk-input]"),t=e?.value||"";if(t.trim())return(0,s.jsxs)(u.h_,{className:"flex items-center justify-between cursor-pointer text-foreground",value:t,onSelect:()=>{let e=t.trim();!e.includes("/")||e.startsWith("openrouter/")||e.startsWith("gateway/")||e.startsWith("nim/")||e.startsWith("custom/"),f?.(e),N(!1)},children:['Use "',t,'" as custom model']})}return(0,s.jsx)("div",{className:"p-2 text-muted-foreground text-sm",children:"Type to search models or enter a custom model ID"})})()}),(0,s.jsx)(u.L$,{heading:"Custom OpenAI-compatible",children:(0,s.jsx)(u.h_,{className:"flex items-center justify-between cursor-pointer text-foreground",value:"__custom__",onSelect:()=>{C("custom"),N(!1),k("")},children:"Custom OpenAI-compatible ..."})}),(0,s.jsxs)(u.L$,{heading:"LLM Gateway",children:[(0,s.jsx)(u.h_,{className:"flex items-center justify-between cursor-pointer text-foreground",value:"__openrouter__",onSelect:()=>{C("openrouter"),N(!1),k("")},children:"OpenRouter ..."}),(0,s.jsx)(u.h_,{className:"flex items-center justify-between cursor-pointer text-foreground",value:"__gateway__",onSelect:()=>{C("gateway"),N(!1),k("")},children:"Vercel AI Gateway ..."}),(0,s.jsx)(u.h_,{className:"flex items-center justify-between cursor-pointer text-foreground",value:"__nim__",onSelect:()=>{C("nim"),N(!1),k("")},children:"NVIDIA NIM ..."})]}),Object.entries(d.Og).map(([e,t])=>(0,s.jsx)(u.L$,{heading:e,children:t.map(e=>(0,s.jsxs)(u.h_,{className:"flex items-center justify-between cursor-pointer text-foreground",value:e.value,onSelect:e=>{f?.(e===a?"":e),N(!1),k(""),C(null)},children:[e.label,(0,s.jsx)(o.A,{className:(0,x.cn)("ml-2 h-4 w-4",a===e.value?"opacity-100":"opacity-0")})]},e.value))},e))]})]})})]}),w&&(0,s.jsx)("div",{className:"absolute top-full left-0 right-0 mt-1 p-3 bg-background border rounded-md shadow-lg z-20",children:(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("div",{className:"text-sm font-medium",children:"openrouter"===w?"OpenRouter Model ID":"gateway"===w?"Vercel AI Gateway Model ID":"nim"===w?"NVIDIA NIM Model ID":"Custom Model ID"}),(0,s.jsx)("div",{className:"text-xs text-muted-foreground",children:"openrouter"===w?"Examples: anthropic/claude-3-5-sonnet, meta-llama/llama-3.1-405b-instruct":"gateway"===w?"Examples: openai/gpt-4o, anthropic/claude-3-5-sonnet":"nim"===w?"Examples: nvidia/llama-3.3-nemotron-super-49b-v1.5, nvidia/nemotron-4-340b-instruct":"Examples: my-custom-model, llama-3-custom, custom-finetuned"}),(0,s.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,s.jsx)("input",{className:"flex-1 px-3 py-2 text-sm border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"openrouter"===w?"anthropic/claude-3-5-sonnet":"gateway"===w?"openai/gpt-4o":"nim"===w?"nvidia/llama-3.3-nemotron-super-49b-v1.5":"my-custom-model",value:O,onChange:e=>k(e.target.value),onKeyDown:e=>{if("Enter"===e.key&&O.trim()){let e="openrouter"===w?"openrouter/":"gateway"===w?"gateway/":"nim"===w?"nim/":"custom/";f?.(`${e}${O.trim()}`),C(null),k(""),N(!1)}"Escape"===e.key&&(C(null),k(""))}}),(0,s.jsx)(c.$,{size:"sm",onClick:()=>{if(O.trim()){let e="openrouter"===w?"openrouter/":"gateway"===w?"gateway/":"nim"===w?"nim/":"custom/";f?.(`${e}${O.trim()}`),C(null),k(""),N(!1)}},disabled:!O.trim(),children:"Add"}),(0,s.jsx)(c.$,{size:"sm",variant:"outline",onClick:()=>{C(null),k("")},children:"Cancel"})]})]})}),b&&(0,s.jsx)("div",{className:(0,x.cn)("transition-all duration-200 ease-in-out overflow-hidden",I&&b?"w-10 opacity-100 scale-100":"w-0 opacity-0 scale-95"),children:(0,s.jsx)(c.$,{variant:"outline",size:"icon",className:"rounded-l-none border-l-0 px-2 bg-transparent w-10 transition-all duration-200 ease-in-out text-muted-foreground hover:text-foreground",onClick:()=>{f?.("")},"aria-label":"Clear model selection",type:"button",disabled:!I,children:(0,s.jsx)(l.A,{className:"h-4 w-4 text-gray-500 dark:text-white/40"})})})]})})]})}},69661:(e,t,a)=>{a.d(t,{n:()=>r});var s=a(59112);function r({title:e,Icon:t,children:a}){return(0,s.jsxs)("div",{className:"text-xs text-gray-800 dark:text-muted-foreground p-3 bg-gray-100/80 dark:bg-sidebar rounded-md",children:[e&&(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[t&&(0,s.jsx)(t,{className:"w-3 h-3 text-muted-foreground"}),(0,s.jsx)("p",{className:"font-medium text-foreground font-mono uppercase",children:e})]}),a]})}a(46539)},79776:(e,t,a)=>{a.d(t,{nr:()=>r,jV:()=>n,tI:()=>o,Og:()=>l});let s="anthropic/claude-sonnet-4-5",r=s,n=s,o=s,l={anthropic:[{value:"anthropic/claude-opus-4-5",label:"Claude Opus 4.5"},{value:"anthropic/claude-opus-4-1",label:"Claude Opus 4.1"},{value:s,label:"Claude Sonnet 4.5"},{value:"anthropic/claude-sonnet-4-0",label:"Claude Sonnet 4"},{value:"anthropic/claude-haiku-4-5",label:"Claude Haiku 4.5"},{value:"anthropic/claude-3-5-haiku-latest",label:"Claude Haiku 3.5"}],openai:[{value:"openai/gpt-5.2",label:"GPT-5.2"},{value:"openai/gpt-5.1",label:"GPT-5.1"},{value:"openai/gpt-4.1",label:"GPT-4.1"},{value:"openai/gpt-4.1-mini",label:"GPT-4.1 Mini"},{value:"openai/gpt-4.1-nano",label:"GPT-4.1 Nano"},{value:"openai/gpt-5",label:"GPT-5"},{value:"openai/gpt-5-mini",label:"GPT-5 Mini"},{value:"openai/gpt-5-nano",label:"GPT-5 Nano"}],google:[{value:"google/gemini-3-pro-preview",label:"Gemini 3 Pro Preview"},{value:"google/gemini-2.5-pro",label:"Gemini 2.5 Pro"},{value:"google/gemini-2.5-flash",label:"Gemini 2.5 Flash"},{value:"google/gemini-2.5-flash-lite",label:"Gemini 2.5 Flash Lite"}]}},92013:(e,t,a)=>{a.d(t,{O:()=>r});var s=a(59112);let r=()=>(0,s.jsxs)("ul",{className:"space-y-1.5 list-disc list-outside pl-4",children:[(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{className:"font-medium",children:"Models"}),": Project → Agent → Agent (partial inheritance - missing models only)"]}),(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{className:"font-medium",children:"Individual model types"})," inherit independently (base, structuredOutput, summarizer)"]}),(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{className:"font-medium",children:"Explicit settings"})," always take precedence over inherited values"]}),(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{className:"font-medium",children:"Provider options"})," are inherited along with the model if not explicitly set"]})]})},98570:(e,t,a)=>{a.d(t,{AM:()=>o,Wv:()=>l,hl:()=>i});var s=a(59112),r=a(81086),n=a(29944);function o({...e}){return(0,s.jsx)(r.bL,{"data-slot":"popover",...e})}function l({className:e,...t}){return(0,s.jsx)(r.l9,{"data-slot":"popover-trigger",className:(0,n.cn)("font-sans normal-case",e),...t})}function i({className:e,align:t="center",sideOffset:a=4,...o}){return(0,s.jsx)(r.ZL,{children:(0,s.jsx)(r.UC,{"data-slot":"popover-content",align:t,sideOffset:a,className:(0,n.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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...o})})}}}]);
@@ -1,23 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[143],{143:(e,t,r)=>{r.r(t),r.d(t,{CopilotChat:()=>eh});var a=r(59112),n=r(97835),s=r(66517),o=r(65905),i=r(95556),l=r(21933),d=r(46539),c=r(1439),u=r(71506);let p=(0,u.createServerReference)("00110c67012c21d9d42d8823e8b8de4670daabd920",u.callServer,void 0,u.findSourceMapURL,"getCopilotTokenAction");async function m(e,t){let r=null;for(let a=0;a<=e;a++){try{let e=await p();if(e.success)return e.data;if("configuration_error"===e.code)throw Error(e.error);r=Error(e.error)}catch(e){r=e instanceof Error?e:Error("Unknown error")}if(a<e){let e=1e3*2**a;t?.(a+1,e),await new Promise(t=>setTimeout(t,e))}}throw r||Error("Failed to fetch copilot token after retries")}var x=r(25653),f=r(37064),h=r(14711),g=r(72715),y=r(65827),v=r(89736),j=r(78130),b=r(5892);let w=({citation:e})=>{let{key:t,href:r,artifact:n}=e,s=(0,a.jsx)("span",{className:`citation-badge inline-flex items-center justify-center h-5 min-w-5 px-2 mr-1 text-xs font-medium bg-gray-50 dark:bg-muted text-gray-700 dark:text-foreground hover:bg-gray-100 dark:hover:bg-muted/80 rounded-full border border-gray-200 dark:border-border transition-colors ${r?"cursor-pointer":"cursor-help"}`,children:t}),o=(0,a.jsxs)("div",{className:"p-2",children:[(0,a.jsx)("div",{className:"font-medium text-sm mb-1 text-popover-foreground",children:n.name}),(0,a.jsx)("div",{className:"text-xs text-muted-foreground leading-relaxed",children:n.description})]});return r?(0,a.jsxs)(b.Tooltip,{children:[(0,a.jsx)(b.TooltipTrigger,{asChild:!0,children:(0,a.jsx)("a",{href:r,target:"_blank",rel:"noopener noreferrer",className:"no-underline",children:s})}),(0,a.jsx)(b.TooltipContent,{className:"max-w-xs",children:o})]}):(0,a.jsxs)(b.Tooltip,{children:[(0,a.jsx)(b.TooltipTrigger,{asChild:!0,children:s}),(0,a.jsx)(b.TooltipContent,{className:"max-w-xs",children:o})]})};var N=r(17587);let k=({artifact:e})=>{let t=e.artifactSummary||{record_type:"site",title:e.name,url:void 0};return(0,a.jsx)("div",{className:"inline-block mr-2 mb-2",children:(0,a.jsxs)(b.Tooltip,{children:[(0,a.jsx)(b.TooltipTrigger,{asChild:!0,children:(0,a.jsxs)("a",{href:t?.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 px-2 py-1 border border-border rounded-sm text-xs text-gray-700 dark:text-foreground hover:bg-gray-100 dark:hover:bg-muted transition-colors",children:[(0,a.jsx)(N.A,{className:"w-3 h-3 text-gray-500 dark:text-muted-foreground"}),(0,a.jsx)("span",{className:"max-w-32 truncate",children:t?.title||e.name})]})}),(0,a.jsx)(b.TooltipContent,{className:"max-w-xs",children:(0,a.jsxs)("div",{className:"p-2",children:[(0,a.jsx)("div",{className:"font-medium text-sm mb-1 text-popover-foreground",children:e.name}),(0,a.jsx)("div",{className:"text-xs text-muted-foreground leading-relaxed",children:e.description})]})})]})})},A=({artifacts:e})=>(0,a.jsxs)("div",{className:"mt-3 pt-3",children:[(0,a.jsx)("div",{className:"text-xs text-gray-500 dark:text-muted-foreground font-medium mb-2",children:"Sources"}),(0,a.jsx)("div",{className:"space-y-2",children:e.map((e,t)=>(0,a.jsx)(k,{artifact:e},e.artifactId||`artifact-${t}`))})]});var S=r(34295),I=r(37567),E=r(75653),C=r(95234),T=r(65266),U=r(95617),$=r(79814),R=r(49255),_=r(1212);let L={agent_generate:(0,a.jsx)(s.A,{className:"w-3 h-3 text-gray-500 dark:text-white-alpha-500"}),agent_reasoning:(0,a.jsx)(S.A,{className:"w-3 h-3 text-gray-500 dark:text-white-alpha-500"}),tool_call:(0,a.jsx)(I.A,{className:"w-3 h-3 text-gray-500 dark:text-white-alpha-500"}),tool_result:(0,a.jsx)(I.A,{className:"w-3 h-3 text-gray-500 dark:text-white-alpha-500"}),transfer:(0,a.jsx)(E.A,{className:"w-3 h-3 text-gray-500 dark:text-white-alpha-500"}),delegation_sent:(0,a.jsx)(C.A,{className:"w-3 h-3 text-gray-500 dark:text-white-alpha-500"}),delegation_returned:(0,a.jsx)(T.A,{className:"w-3 h-3 text-gray-500 dark:text-white-alpha-500"}),artifact_saved:(0,a.jsx)(U.A,{className:"w-3 h-3 text-gray-500 dark:text-white-alpha-500"}),error:(0,a.jsx)($.A,{className:"w-3 h-3 text-gray-500 dark:text-white-alpha-500"}),agent_initializing:(0,a.jsx)(R.A,{className:"w-3 h-3 animate-spin"}),completion:(0,a.jsx)(T.A,{className:"w-3 h-3 text-gray-500 dark:text-white-alpha-500"}),default:(0,a.jsx)(_.A,{className:"w-3 h-3 text-gray-500 dark:text-white-alpha-500"})},z=({operation:e,isLast:t})=>(0,a.jsxs)("div",{className:"flex flex-col items-start my-2 relative",children:[!t&&(0,a.jsx)("div",{className:"absolute left-1.5 top-6 bottom-0 w-px bg-gray-200 dark:bg-border"}),(0,a.jsxs)("div",{className:"inline-flex items-center gap-1 text-xs text-gray-500 dark:text-gray-400 dark:hover:text-gray-300 transition-colors ml-[5px] justify-start",children:[(0,a.jsx)("span",{className:"flex items-center justify-center w-3 h-3 relative z-10 mt-0.5",children:L[e.type]||L.default}),(0,a.jsx)("span",{className:"font-medium ml-1 text-left",children:(e=>{if(e.label)return e.label;let{type:t}=e;switch(t){case"agent_initializing":return"Agent initializing";case"agent_ready":return"Agent ready";case"completion":return"Agent finished";default:return t.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase())}})(e)})]})]});var O=r(39470),M=r(95684);let P=(0,u.createServerReference)("40d7ca6172a01fdf9776f603584c43fedfecbc11d1",u.callServer,void 0,u.findSourceMapURL,"fetchToolApprovalDiff");var D=r(39968),F=r(78522),H=r(23600),V=r(66552),B=r(29944);let W=({originalValue:e,newValue:t,originalUri:r,modifiedUri:n,className:s,editorOptions:o={},onMount:l,...d})=>{let c=(0,i.useId)(),u=r??`code-original-${c}.txt`,p=n??`code-modified-${c}.txt`,m=e&&""!==e.trim(),x=(0,i.useRef)(null),f=(0,i.useRef)(null),h=(0,H.Y1)(e=>e.monaco),{importMonaco:g}=(0,H.ib)();return((0,i.useEffect)(()=>{g()},[]),(0,i.useEffect)(()=>{if(!m)return;let t=f.current?.getOriginalEditor().getModel();t&&t.getValue()!==e&&t.setValue(e)},[e,m]),(0,i.useEffect)(()=>{if(!m)return;let e=f.current?.getModifiedEditor().getModel();e&&e.getValue()!==t&&e.setValue(t)},[t,m]),(0,i.useEffect)(()=>{if(!m)return;let r=x.current;if(!r||!h)return;let{editor:a}=h,{model:n}=(0,V.pj)({monaco:h,uri:u,value:e}),{model:s}=(0,V.pj)({monaco:h,uri:p,value:t}),i=a.createDiffEditor(r,{automaticLayout:!0,readOnly:!0,renderSideBySide:!1,minimap:{enabled:!1},overviewRulerLanes:0,scrollBeyondLastLine:!1,lineNumbers:"off",wordWrap:"on",contextmenu:!1,fixedOverflowWidgets:!0,padding:{top:12,bottom:12},scrollbar:{vertical:"auto",horizontal:"hidden",useShadows:!1,alwaysConsumeMouseWheel:!1},stickyScroll:{enabled:!1},fontSize:12,lineDecorationsWidth:0,enableSplitViewResizing:!1,renderOverviewRuler:!1,diffWordWrap:"on",...o});function d(){if(r&&i){let e=i.getModifiedEditor().getContentHeight();e>0&&(r.style.height=`${e}px`,i.layout())}}i.setModel({original:n,modified:s}),f.current=i;let c=setTimeout(()=>{d()},0),g=i.getOriginalEditor(),y=i.getModifiedEditor(),v=[n,s,i,g.onDidContentSizeChange(d),y.onDidContentSizeChange(d),g.onKeyDown(e=>{"Space"===e.code&&e.browserEvent.stopPropagation()}),y.onKeyDown(e=>{"Space"===e.code&&e.browserEvent.stopPropagation()}),{dispose:()=>{clearTimeout(c)}}];return l?.(i),(0,V.Ye)(v)},[h,m]),m)?(0,a.jsx)("div",{className:(0,B.cn)("w-full","rounded-md relative dark:bg-input/30 transition-colors","border border-input shadow-xs",s,!h&&"px-3 py-4","[&_.editor.original]:left-1!","[&_.editor.modified]:left-1!"),...d,ref:x,children:!h&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(F.E,{className:"h-4 w-4/5"}),(0,a.jsx)(F.E,{className:"h-4 w-3/5 mt-3 mb-full"})]})}):(0,a.jsx)(D.T,{value:t,uri:p,readOnly:!0,className:s,...d})};var K=r(84345);let J=({originalValue:e,newValue:t,className:r=""})=>{let n=(0,i.useMemo)(()=>(0,K.b2)(e??"",t??""),[e,t]);return(0,a.jsx)("div",{className:`text-sm leading-relaxed whitespace-pre-wrap space-x-0.5 ${r}`,children:n.map((e,t)=>e.added?(0,a.jsx)("span",{className:n.length>1?"bg-primary/10 dark:bg-sky-blue/30 text-azure-900 dark:text-crystal-blue rounded-sm px-1 py-0.5":"leading-normal",children:e.value},t):e.removed?(0,a.jsx)("span",{className:"line-through text-gray-400 dark:text-white/40",children:e.value},t):(0,a.jsx)("span",{children:e.value},t))})},q=({children:e})=>(0,a.jsx)("div",{className:"text-sm font-medium mb-2 text-foreground",children:e}),Q=({originalValue:e,field:t,newValue:r})=>{let n;return(0,a.jsxs)("div",{className:"flex flex-col relative",children:[(0,a.jsx)(q,{children:(n=t.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[-_]/g," ").toLowerCase()).charAt(0).toUpperCase()+n.slice(1)}),"string"==typeof e&&"string"==typeof r?(0,a.jsx)(J,{originalValue:e,newValue:r}):(0,a.jsx)(W,{originalValue:e?JSON.stringify(e,null,2):"",newValue:JSON.stringify(r,null,2)})]})};var Y=r(98788);let G=({toolName:e})=>(0,a.jsxs)("div",{className:"text-sm text-muted-foreground",children:["Would you like to run ",(0,a.jsx)(M.E,{variant:"code",children:e}),"?"]}),Z=({entityData:e,toolName:t})=>{let r=e.name||e.id,n=t.split("-").pop()||"entity";return(0,a.jsx)("div",{className:"flex items-start gap-3",children:(0,a.jsxs)("div",{className:"flex flex-col gap-1 flex-1",children:[(0,a.jsxs)("div",{className:"text-sm font-medium",children:["Delete ",n,"?"]}),(0,a.jsxs)("div",{className:"text-sm text-muted-foreground",children:["Are you sure you want to delete ",(0,a.jsx)(M.E,{variant:"code",children:r}),"?"]})]})})},X=({diffs:e})=>(0,a.jsx)("div",{className:"flex flex-col gap-5",children:e.map(({field:e,oldValue:t,newValue:r})=>(0,a.jsx)(Q,{field:e,originalValue:t,newValue:r},e))}),ee=({children:e})=>(0,a.jsx)("div",{className:"flex flex-col rounded-lg border px-4 py-3 gap-5 my-3 text-foreground",children:e}),et=({data:e,copilotAgentId:t,copilotProjectId:r,copilotTenantId:n,runApiUrl:s,cookieHeader:o,copilotToken:l})=>{let[c,u]=(0,i.useState)([]),[p,m]=(0,i.useState)(null),[x,f]=(0,i.useState)(!0),[h,y]=(0,i.useState)(null),[v,j]=(0,i.useState)(!1),{conversationId:b,toolCallId:w,input:N,toolName:k}=e.details.data,{projectId:A,tenantId:S}=N.request||N,I=k.includes("delete"),E=e=>{j(!0),fetch(`${s}/api/tool-approvals`,{method:"POST",headers:{...n&&{"x-inkeep-tenant-id":n},...r&&{"x-inkeep-project-id":r},...t&&{"x-inkeep-agent-id":t},...o?{"x-forwarded-cookie":o}:{},Authorization:`Bearer ${l}`,"Content-Type":"application/json"},body:JSON.stringify({conversationId:b,toolCallId:w,approved:e})})};if((0,i.useEffect)(()=>{(async()=>{try{f(!0),y(null);let e=await P({toolName:k,input:N,tenantId:S,projectId:A});if(!e.success)return void y(e.error||"Failed to load entity state");I&&e.entityData?m(e.entityData):u(e.data||[])}catch(e){console.error("Failed to compute diff:",e),y(e instanceof Error?e.message:"Failed to load entity state")}finally{f(!1)}})()},[w]),x)return(0,a.jsx)("div",{className:"text-sm text-muted-foreground",children:(0,a.jsx)(Y.I,{messages:["Fetching changes","Analyzing changes","Generating diff"]})});if(h)return(0,a.jsxs)("div",{className:"text-sm text-destructive",children:["Error: ",h]});let C=({approveLabel:e="Approve",approveVariant:t="default",rejectLabel:r="Reject",approveIcon:n=(0,a.jsx)(g.A,{className:"size-3"})})=>!v&&(0,a.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,a.jsxs)(d.$,{variant:t,size:"xs",type:"button",onClick:()=>E(!0),children:[n,e]}),(0,a.jsx)(d.$,{variant:"outline",size:"xs",type:"button",onClick:()=>E(!1),children:r})]});return I&&p?(0,a.jsxs)(ee,{children:[(0,a.jsx)(Z,{entityData:p,toolName:k}),(0,a.jsx)(C,{approveLabel:"Delete",approveVariant:"destructive",rejectLabel:"Cancel",approveIcon:(0,a.jsx)(O.A,{className:"size-3"})})]}):c.length>0?(0,a.jsxs)(ee,{children:[(0,a.jsx)(X,{diffs:c}),(0,a.jsx)(C,{})]}):(0,a.jsxs)(ee,{children:[(0,a.jsx)(G,{toolName:k}),(0,a.jsx)(C,{})]})};var er=r(26765),ea=r(90232),en=r(20980),es=r(81523),eo=r(30545);let ei=(0,u.createServerReference)("704d5be8e73ad09270955149bbf7c00abb08e0b350",u.callServer,void 0,u.findSourceMapURL,"fetchMCPTool");function el({toolId:e,targetTenantId:t,targetProjectId:r,onConnect:n}){let[s,l]=(0,i.useState)("loading"),[c,u]=(0,i.useState)(""),[p,m]=(0,i.useState)(null);(0,i.useEffect)(()=>{(async()=>{if(!t||!r||!e){l("error"),u("Missing tenant, project, or tool ID");return}try{let a,n=await ei(t,r,e),s=n.config?.mcp?.server?.url||"",o=s.includes("composio.dev"),i=n.credentialScope||"project";if(o&&"needs_auth"===n.status)try{let e=await (0,eo.z)(t,r,s,i);e.data?.thirdPartyConnectAccountUrl&&(a=e.data.thirdPartyConnectAccountUrl)}catch(e){console.error("Failed to fetch third-party connect URL:",e),u("Failed to fetch third-party connect URL. Go to the MCP server page to see more details.")}else o&&"healthy"===n.status&&l("success");m({name:n.name,imageUrl:n.imageUrl,url:s,thirdPartyConnectAccountUrl:a,credentialScope:i}),l("idle")}catch(e){console.error("Failed to fetch tool details:",e),l("error"),u("Failed to load tool details")}})()},[e,t,r]);let x=async()=>{if(!e||!p){l("error"),u("Tool ID and details are required to complete OAuth");return}l("connecting"),u("");try{await n({toolId:e,toolName:p.name,mcpServerUrl:p.url,thirdPartyConnectAccountUrl:p.thirdPartyConnectAccountUrl,credentialScope:p.credentialScope}),l("success")}catch(e){console.error("OAuth failed:",e),l("error"),u(e instanceof Error?e.message:"OAuth failed")}};return"loading"===s?(0,a.jsx)("div",{className:"p-4 rounded-lg border border-border bg-card shadow-sm",children:(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,a.jsx)(o.A,{className:"size-4 animate-spin"}),(0,a.jsx)("span",{children:"Loading tool details..."})]})}):(0,a.jsxs)("div",{className:"p-4 rounded-lg border border-border bg-card shadow-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 flex-wrap",children:[p&&(0,a.jsx)(es.u,{imageUrl:p.imageUrl,name:p.name,size:24,className:"shrink-0"}),(0,a.jsx)("h3",{className:"flex-1 min-w-0 text-base font-semibold text-foreground",children:p?.name||e}),"success"!==s&&(0,a.jsx)(d.$,{onClick:x,disabled:"connecting"===s||!e,className:"gap-2",size:"sm",children:"connecting"===s?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.A,{className:"size-4 animate-spin"}),"Connecting..."]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(er.A,{className:"size-4"}),"Connect"]})})]}),"success"===s&&(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-3 text-sm text-green-600 dark:text-green-400",children:[(0,a.jsx)(ea.A,{className:"size-4"}),(0,a.jsx)("span",{children:"Successfully authenticated!"})]}),"error"===s&&(0,a.jsxs)("div",{className:"flex items-start gap-2 mt-3 text-sm text-destructive",children:[(0,a.jsx)(en.A,{className:"size-4 mt-0.5"}),(0,a.jsx)("span",{children:c||"Connection failed. Please try again."})]})]})}function ed({relations:e,targetTenantId:t,targetProjectId:r,onConnect:n}){return 0===e.length?null:(0,a.jsx)(a.Fragment,{children:e.map(e=>(0,a.jsx)(el,{toolId:e.toolId,targetTenantId:t,targetProjectId:r,onConnect:n},e.id))})}function ec(e){return e&&"object"==typeof e&&"text"in e&&"SubAgentToolRelationResponse"in e.text}let eu=({data:e,targetTenantId:t,targetProjectId:r,onOAuthLogin:n})=>{let s=(e.details.data.output?.result?.content||[]).filter(ec).map(e=>e.text.SubAgentToolRelationResponse.data),o=async e=>{if(!n)throw Error("OAuth handler not provided");await n(e)};return 0===s.length?null:(0,a.jsx)("div",{className:"flex flex-col gap-3 py-3",children:(0,a.jsx)(ed,{relations:s,targetTenantId:t,targetProjectId:r,onConnect:o})})};function ep({parts:e}){let[t,r]=(0,i.useState)([]);(0,i.useEffect)(()=>{let t=[],a="";for(let r of e)if("text"===r.type)a+=r.text||"";else if("data-artifact"===r.type){let e=r.data,t=e.artifactSummary||{record_type:"site",title:e.name,url:void 0};a+=` ^${t?.title||e.name}^`}else if(a&&(t.push({type:"text",content:a}),a=""),"data-operation"===r.type){let{type:e}=r.data;["agent_initializing","agent_ready","error"].includes(e)||t.push({type:"inline-operation",operation:r.data})}else"data-summary"===r.type&&t.push({type:"inline-operation",operation:{type:"data-summary",...r.data}});a&&t.push({type:"text",content:a}),r(t)},[e]);let n=t.filter(e=>"inline-operation"===e.type),s=0;return(0,a.jsx)("div",{className:"inline",children:t.map((t,r)=>{if("text"===t.type)return(0,a.jsx)(v.jH,{remarkPlugins:[y.A],components:{sup:({children:t,...r})=>{if(t&&"string"==typeof t){let r=e.find(e=>"data-artifact"===e.type&&(e.data.artifactSummary?.title||e.data.name)===t);if(r){let e=r.data,t=e.artifactSummary||{record_type:"site",title:e.name,url:void 0};return(0,a.jsx)(w,{citation:{key:t?.title||e.name,href:t?.url,artifact:{...e,artifactSummary:t}}})}}return(0,a.jsx)("sup",{...r,children:t})}},children:t.content},r);if("inline-operation"===t.type){let e=s===n.length-1;return s++,(0,a.jsx)(z,{operation:t.operation,isLast:e},r)}return null})})}let em=({message:e,isStreaming:t=!1,renderMarkdown:r,dataComponentLookup:n={},copilotAgentId:s,copilotProjectId:l,copilotTenantId:d,runApiUrl:c,targetTenantId:u,targetProjectId:p,targetAgentId:m,onOAuthLogin:x,cookieHeader:f,copilotToken:h})=>{let{operations:y,textContent:v,artifacts:b}=function(e){let[t,r]=(0,i.useState)([]),[a,n]=(0,i.useState)(""),[s,o]=(0,i.useState)([]),l=(0,i.useRef)(new Set),d=(0,i.useRef)(new Set);return(0,i.useEffect)(()=>{l.current.clear(),d.current.clear(),r([]),o([])},[]),(0,i.useEffect)(()=>{let t=[],a=[],s="";for(let r of e)if("data-artifact"===r.type){let e=r.data.artifactId||r.data.name;d.current.has(e)||(d.current.add(e),a.push(r.data))}else if("text"===r.type)s+=r.text||"";else if("data-operation"===r.type||"data-summary"===r.type){let e=r.data.type;l.current.has(e)||(l.current.add(e),t.push(r.data))}t.length>0&&r(e=>[...e,...t]),a.length>0&&o(e=>[...e,...a]),n(s)},[e]),{operations:t,textContent:a,artifacts:s}}(e.parts);if("user"===e.role)return(0,a.jsx)("div",{children:(0,a.jsx)("div",{children:(0,a.jsx)("p",{className:"text-sm",children:v})})});let w=t||e.parts.some(e=>"text"===e.type&&"streaming"===e.state),N=t||w;return(0,a.jsx)("div",{className:"flex justify-start",children:(0,a.jsxs)("div",{className:"max-w-4xl w-full",children:[(y.length>0||N)&&(0,a.jsx)("div",{className:"mb-3",children:(0,a.jsx)("div",{className:"flex items-center gap-2",children:N?(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)("div",{className:"flex items-center gap-3 h-auto w-full",children:[(0,a.jsx)(o.A,{className:"w-4 h-4 text-gray-400 dark:text-muted-foreground animate-spin"}),(0,a.jsx)("span",{className:"text-xs font-medium text-gray-600 dark:text-muted-foreground",children:"Processing..."})]})}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.A,{className:"w-3 h-3 text-gray-500 dark:text-muted-foreground"}),(0,a.jsx)("span",{className:"text-xs font-medium text-gray-600 dark:text-muted-foreground",children:"Completed"})]})})}),(v||e.parts.some(e=>"text"===e.type||"data-component"===e.type||"data-operation"===e.type))&&(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"prose prose-sm max-w-none",children:(()=>{let t=[],r=[];for(let a=0;a<e.parts.length;a++){let n=e.parts[a];"text"===n.type||"data-artifact"===n.type||"data-component"===n.type&&"text"===n.data.type?r.push(n):(r.length>0&&(t.push({type:"text-group",parts:r}),r=[]),t.push(n))}return r.length>0&&t.push({type:"text-group",parts:r}),t.map((e,t)=>{if("text-group"===e.type)return(0,a.jsx)("div",{children:(0,a.jsx)(ep,{parts:e.parts})},`text-group-${t}`);if("data-component"===e.type){let r=e.data.id,s=r?n[r]:void 0,o=s?.render?.component;return(0,a.jsxs)("div",{className:"my-2 rounded-lg border border-gray-200 dark:border-border bg-white dark:bg-card overflow-hidden",children:[(0,a.jsx)("div",{className:"bg-gray-50 dark:bg-muted px-3 py-1.5 border-b border-gray-200 dark:border-border flex items-center gap-2",children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("div",{className:"w-2 h-2 rounded-full bg-blue-400"}),(0,a.jsx)("span",{className:"text-xs font-medium text-gray-700 dark:text-foreground",children:e.data.name||"Unnamed"})]})}),(0,a.jsx)("div",{className:"p-3",children:o&&s.render?(0,a.jsx)(j.s,{code:s.render.component,props:e.data.props||{}}):(0,a.jsx)("pre",{className:"whitespace-pre-wrap text-xs text-gray-600 dark:text-muted-foreground font-mono",children:JSON.stringify(e.data.props,null,2)})})]},`component-${t}`)}return"data-operation"===e.type?"tool_call"===e.data.type?(0,a.jsxs)("div",{children:[(0,a.jsx)(ep,{parts:[e]}),e.data.details.data.needsApproval&&(0,a.jsx)(et,{data:e.data,copilotAgentId:s,copilotProjectId:l,copilotTenantId:d,runApiUrl:c,cookieHeader:f,copilotToken:h})]},`operation-${t}`):"tool_result"===e.data.type?(0,a.jsx)("div",{children:e.data.details.data.output?.result?.content?.length>0&&(0,a.jsx)(eu,{data:e.data,copilotAgentId:s,copilotProjectId:l,copilotTenantId:d,runApiUrl:c,targetTenantId:u,targetProjectId:p,targetAgentId:m,onOAuthLogin:x})},`operation-${t}`):(0,a.jsx)("div",{children:(0,a.jsx)(ep,{parts:[e]})},`operation-${t}`):"data-summary"===e.type?(0,a.jsx)("div",{children:(0,a.jsx)(ep,{parts:[e]})},`summary-${t}`):null})})()}),b.length>0&&(0,a.jsx)(A,{artifacts:b})]})]})})},ex=e=>{let{message:t,renderMarkdown:r,renderComponent:n,...s}=e,o=t.parts[t.parts.length-1],i=o?.type!=="data-operation"||o?.data?.type!=="completion";return(0,a.jsx)("div",{children:(0,a.jsx)(em,{message:t,isStreaming:i,renderMarkdown:r,renderComponent:n,copilotAgentId:s.copilotAgentId,copilotProjectId:s.copilotProjectId,copilotTenantId:s.copilotTenantId,runApiUrl:s.runApiUrl,targetTenantId:s.targetTenantId,targetProjectId:s.targetProjectId,targetAgentId:s.targetAgentId,onOAuthLogin:s.onOAuthLogin,cookieHeader:s.cookieHeader,copilotToken:s.copilotToken})})},ef=`
2
- .ikp-markdown-code {
3
- background-color: var(--ikp-color-gray-100);
4
- color: var(--ikp-color-gray-900);
5
- }
6
-
7
- [data-theme=dark] .ikp-markdown-code {
8
- background-color: var(--ikp-color-white-alpha-100);
9
- color: var(--ikp-color-white-alpha-950);
10
- }
11
- `;function eh({agentId:e,tenantId:t,projectId:r,refreshAgentGraph:u}){let{chatFunctionsRef:p,isOpen:g,setIsOpen:y,setIsStreaming:v,dynamicHeaders:j,setDynamicHeaders:b,isCopilotConfigured:w}=(0,h.F)(),[N,k]=(0,i.useState)(f.$),{handleOAuthLogin:A}=(0,x.U)({tenantId:t,projectId:r,onFinish:()=>{u({fetchTools:!0})}});(0,i.useEffect)(()=>()=>v(!1),[v]),(0,i.useEffect)(()=>{let e=e=>{"tool_result"===e.detail.type&&e.detail.conversationId===N&&u()};return document.addEventListener("ikp-data-operation",e),()=>{document.removeEventListener("ikp-data-operation",e)}},[N,u]);let{PUBLIC_INKEEP_AGENTS_RUN_API_URL:S,PUBLIC_INKEEP_COPILOT_AGENT_ID:I,PUBLIC_INKEEP_COPILOT_PROJECT_ID:E,PUBLIC_INKEEP_COPILOT_TENANT_ID:C}=(0,c.y)(),{apiKey:T,cookieHeader:U,isLoading:$,error:R,retryCount:_,refresh:L}=function(){let[e,t]=(0,i.useState)(null),[r,a]=(0,i.useState)(null),[n,s]=(0,i.useState)(null),[o,l]=(0,i.useState)(!0),[d,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(0),x=(0,i.useRef)(!0),f=(0,i.useCallback)(async()=>{try{l(!0),c(null),p(0);let e=await m(3,(e,t)=>{x.current&&(p(e),console.log(`Copilot token fetch retry ${e}/3 after ${t}ms`))});x.current&&(t(e.apiKey),a(e.cookieHeader??null),s(e.expiresAt),c(null),p(0))}catch(e){if(x.current){let t=e instanceof Error?e.message:"Unknown error";c(Error(t)),console.error("Copilot token fetch failed after all retries:",t)}}finally{x.current&&l(!1)}},[]);return(0,i.useEffect)(()=>(x.current=!0,()=>{x.current=!1}),[]),(0,i.useEffect)(()=>{f()},[f]),(0,i.useEffect)(()=>{if(!n)return;let e=setTimeout(()=>{console.log("Auto-refreshing copilot token before expiry..."),f()},Math.max(0,new Date(n).getTime()-Date.now()-3e5));return()=>clearTimeout(e)},[n,f]),{apiKey:e,cookieHeader:r,isLoading:o,error:d,retryCount:u,refresh:f}}();return((0,i.useEffect)(()=>{if(R&&!$&&g){let e=R.message?.includes("not configured"),t=e?R.message:"Unable to connect to the Agent Editor. This may be due to a temporary network issue.";l.oR.error(t,{action:e?void 0:(0,a.jsxs)(d.$,{variant:"destructive-outline",size:"sm",onClick:()=>{L(),y(!0)},className:"gap-2",children:[(0,a.jsx)(s.A,{className:"h-4 w-4"}),"Try Again"]})}),y(!1)}},[R,$,g,y,L]),w)?$&&g?(0,a.jsxs)("div",{className:"flex items-center justify-center p-4 text-muted-foreground text-sm",children:[(0,a.jsx)(o.A,{className:"h-4 w-4 animate-spin mr-2"}),(0,a.jsx)("span",{children:_>0?`Reconnecting (attempt ${_}/3)...`:"Loading..."})]}):T?(0,a.jsx)("div",{className:"h-full flex flex-row gap-4",children:(0,a.jsx)("div",{className:"flex-1 min-w-0 h-full",children:(0,a.jsx)(n.V,{openSettings:{isOpen:g,onOpenChange:y},position:"left",baseSettings:{onEvent:async e=>{"user_message_submitted"===e.eventName&&v(!0),"assistant_message_received"===e.eventName&&v(!1),"chat_clear_button_clicked"===e.eventName&&(b({}),k((0,f.$)()),v(!1))},primaryBrandColor:"#3784ff",colorMode:{sync:{target:document.documentElement,attributes:["class"],isDarkMode:e=>!!e?.class?.includes("dark")}},theme:{styles:[{key:"custom-styles",type:"style",value:ef}],colors:{gray:{50:"#fafaf9",100:"#f4f4f3",200:"#eeeceb",300:"#dedbd9",400:"#cec7c2",500:"#a9a19a",600:"#75716b",700:"#58534e",800:"#443f3e",900:"#2b2826",950:"#1a1817",1e3:"#080706"},grayDark:{950:"oklch(0.141 0.005 285.823)"}}}},aiChatSettings:{aiAssistantName:"Agent Editor",components:{...ex?{IkpMessage:a=>ex({...a,copilotAgentId:I,copilotProjectId:E,copilotTenantId:C,runApiUrl:S,targetTenantId:t,targetProjectId:r,targetAgentId:e,onOAuthLogin:A,cookieHeader:U,copilotToken:T})}:{}},conversationId:N,chatFunctionsRef:p,aiAssistantAvatar:{light:"/assets/inkeep-icons/icon-blue.svg",dark:"/assets/inkeep-icons/icon-sky.svg"},agentUrl:`${S}/api/chat`,headers:{"x-emit-operations":"true",Authorization:`Bearer ${T}`,"x-inkeep-tenant-id":C||"","x-inkeep-project-id":E||"","x-inkeep-agent-id":I||"","x-target-tenant-id":t,"x-target-project-id":r,...e?{"x-target-agent-id":e}:{},...j?.conversationId?{"x-inkeep-from-conversation-id":j.conversationId}:{},...j?.messageId?{"x-inkeep-from-message-id":j.messageId}:{},...U?{"x-forwarded-cookie":U}:{}},exampleQuestionsLabel:e?void 0:"Try one of these examples:",exampleQuestions:e?void 0:[{label:"Build a weather agent",value:"Help me build an agent that can tell me the weather in any city."},{label:"Build a recipe agent",value:"Help me build an agent that can help me find recipes."},{label:"Build a travel agent",value:"Help me build an agent that can help me plan my travel."}],introMessage:e?`Hi! What would you like to change about \`${e}\`?`:"Hi! What would you like to build?"}},JSON.stringify(j))})}):null:null}},12370:(e,t,r)=>{r.d(t,{S:()=>n});var a=r(71506);let n=(0,a.createServerReference)("600f9d00ef271796d2671bf54535c47ce94de5aa7d",a.callServer,void 0,a.findSourceMapURL,"listCredentialStores")},25653:(e,t,r)=>{r.d(t,{U:()=>x});var a=r(37211),n=r(92400),s=r(95556),o=r(21933),i=r(1439),l=r(12370),d=r(79998),c=r(80861),u=r(37064),p=r(48618),m=r(67836);function x({tenantId:e,projectId:t,onFinish:r}){let x=(0,n.useRouter)(),{PUBLIC_INKEEP_AGENTS_MANAGE_API_URL:f}=(0,i.y)(),{openNangoConnectHeadless:h}=(0,m.$)(),{user:g}=(0,p.Q)(),y=(0,s.useRef)(new Map),v=(0,s.useCallback)((a,n)=>new Promise((s,o)=>{let i=y.current.get(a);i&&(i(),y.current.delete(a));try{let i=n??function({PUBLIC_INKEEP_AGENTS_MANAGE_API_URL:e,tenantId:t,projectId:r,id:a}){if(!t||"string"!=typeof t)throw Error("Invalid tenantId: must be a non-empty string");if(!a||"string"!=typeof a)throw Error("Invalid tool id: must be a non-empty string");if(!r||"string"!=typeof r)throw Error("Invalid projectId: must be a non-empty string");let n=/^[a-zA-Z0-9-_]+$/;if(!n.test(t))throw Error("Invalid tenantId format: only alphanumeric characters, hyphens, and underscores allowed");if(!n.test(a))throw Error("Invalid tool id format: only alphanumeric characters, hyphens, and underscores allowed");if(!n.test(r))throw Error("Invalid projectId format: only alphanumeric characters, hyphens, and underscores allowed");let s=`${e}/oauth/login?tenantId=${encodeURIComponent(t)}&projectId=${encodeURIComponent(r)}&toolId=${encodeURIComponent(a)}`;if(!s.startsWith(e))throw Error("Invalid OAuth URL generated");return s}({PUBLIC_INKEEP_AGENTS_MANAGE_API_URL:f,tenantId:e,projectId:t,id:a}),l=window.open(i,"oauth-popup","width=600,height=700,scrollbars=yes,resizable=yes,status=yes,location=yes");if(!l){let e=Error(`Failed to open popup for ${a} - blocked by browser`);console.error(e.message),o(e);return}let d=!1,c=(n,i)=>{d||(d=!0,window.removeEventListener("message",u),p&&clearInterval(p),clearTimeout(m),y.current.delete(a),n?(r?r(a):x.push(`/${e}/projects/${t}/mcp-servers/${a}`),s()):o(i||Error("OAuth login failed")))},u=e=>{"oauth-success"===e.data.type?c(!0):"oauth-error"===e.data.type&&c(!1,Error(e.data.error||"OAuth login failed"))};window.addEventListener("message",u);let p=null,m=setTimeout(()=>{d||(p=setInterval(()=>{try{l.closed&&c(!0)}catch{}},1e3))},3e3);y.current.set(a,()=>{c(!1,Error("OAuth login cancelled"))})}catch(e){o(e instanceof Error?e:Error("OAuth login failed"))}}),[f,e,t,r,x]),j=(0,s.useCallback)(async({toolId:n,mcpServerUrl:s,toolName:o,credentialScope:i})=>{if(!g)throw Error("User not found");let l=await h({mcpServerUrl:s,providerUniqueKey:`${(0,a.K_)(o)}_${n.slice(0,4)}`,providerDisplayName:o}),p="user"===i,m={id:(0,u.$)(),name:o,type:a.Ns.nango,credentialStoreId:a.Ux,createdBy:g?.email??void 0,...p&&{toolId:n,userId:g.id},retrievalParams:{connectionId:l.connectionId,providerConfigKey:l.providerConfigKey,provider:"mcp-generic",authMode:"OAUTH2"}},f=await (0,c.U)(e,t,m);p||await (0,d.Y)(e,t,n,{credentialReferenceId:f.id}),r?r(n):x.push(`/${e}/projects/${t}/mcp-servers/${n}`)},[h,r,x,e,t,g]);return{handleOAuthLogin:(0,s.useCallback)(async({toolId:r,mcpServerUrl:n,toolName:s,thirdPartyConnectAccountUrl:i,credentialScope:d})=>{if(i)return void await v(r,i);try{let o=await (0,l.S)(e,t),i=o.some(e=>e.type===a.Ns.nango&&e.available),c=o.some(e=>e.type===a.Ns.keychain&&e.available);if(i)await j({toolId:r,mcpServerUrl:n,toolName:s,credentialScope:d});else if(c)await v(r);else throw Error("No credential store available. Please configure Nango or Keychain.")}catch(t){let e=t instanceof Error?t:Error("OAuth login failed");throw o.oR.error(e.message),e}},[e,t,j,v])}}},30545:(e,t,r)=>{r.d(t,{z:()=>n});var a=r(71506);let n=(0,a.createServerReference)("785bffd260080b90c05c3b174dead32c7feaab8e0b",a.callServer,void 0,a.findSourceMapURL,"fetchThirdPartyMCPServer")},57092:(e,t,r)=>{r.d(t,{u:()=>n});var a=r(71506);let n=(0,a.createServerReference)("4074874d19f0fbb65e875199900f44750540f3ccd8",a.callServer,void 0,a.findSourceMapURL,"createProviderConnectSession")},67836:(e,t,r)=>{r.d(t,{$:()=>d});var a=r(2661),n=r(95556),s=r(1439),o=r(90649),i=r(57092),l=r(48618);function d(){let{PUBLIC_NANGO_SERVER_URL:e,PUBLIC_NANGO_CONNECT_BASE_URL:t}=(0,s.y)(),{user:r}=(0,l.Q)(),d=(0,o.N)();return{openNangoConnect:(0,n.useCallback)(({sessionToken:r,onEvent:n,connectOptions:s})=>{let o=new a.Ay({host:e||void 0}).openConnectUI({baseURL:s?.baseURL||t||void 0,apiURL:s?.apiURL||e||void 0,onEvent:n,detectClosedAuthWindow:!0});return o.setSessionToken(r),o},[e,t]),openNangoConnectHeadless:(0,n.useCallback)(async({mcpServerUrl:t,providerUniqueKey:n,providerDisplayName:s})=>{let{data:o}=await d.organization.getFullOrganization(),l=await (0,i.u)({providerName:"mcp-generic",uniqueKey:n,displayName:s,endUserId:r?.id,endUserEmail:r?.email,endUserDisplayName:r?.name,organizationId:o?.id,organizationDisplayName:o?.name}),c=new a.Ay({host:e||void 0,connectSessionToken:l});try{return await c.auth(n,{detectClosedAuthWindow:!0,params:{mcp_server_url:t}})}catch(e){if(e instanceof Error)throw Error(`Authentication failed: ${e.message}`);throw e}},[e,r?.id,r?.email,r?.name,d])}}},78130:(e,t,r)=>{r.d(t,{s:()=>p});var a=r(59112),n=r(22912),s=r(95556),o=r(63398),i=r(81845),l=r(1391);let{AlertCircle:d}=n,c=String.raw;function u({error:e}){let t=String(e),r=t.split("\n"),n=r[0]||t,s=r.slice(1).join("\n");return(0,a.jsxs)(l.Fc,{variant:"destructive",className:"max-w-full",children:[(0,a.jsx)(d,{className:"h-4 w-4"}),(0,a.jsx)(l.XL,{className:"font-semibold text-sm",children:s}),(0,a.jsx)(l.TN,{className:"mt-2 space-y-2",children:(0,a.jsx)("div",{className:"font-mono text-xs break-words",children:n})})]})}function p({code:e,props:t}){let r=(0,s.useMemo)(()=>{let r,a;return r=e.match(/(?:export\s+(?:default\s+)?)?(?:function\s+(\w+)|const\s+(\w+)\s*=\s*(?:\(.*\)\s*=>|\(\)))/),a=r?.[1]||r?.[2]||"App",c`
12
- import { ErrorBoundary } from "react-error-boundary";
13
-
14
- ${e}
15
-
16
- export default function App() {
17
- const props = ${JSON.stringify(t)};
18
- return (
19
- <ErrorBoundary fallbackRender={fallbackRender}>
20
- <${a} {...props} />
21
- </ErrorBoundary>
22
- );
23
- }`},[e,t]),l=(0,s.useMemo)(()=>({fallbackRender:u,import:{"lucide-react":n,"react-error-boundary":o}}),[]),{element:d}=(0,i.CL)({code:r,scope:l});return(0,a.jsx)("div",{children:d})}},79998:(e,t,r)=>{r.d(t,{Y:()=>n});var a=r(71506);let n=(0,a.createServerReference)("7868d9de8276083bd6a8411c64f7b5f74e08d90a43",a.callServer,void 0,a.findSourceMapURL,"updateMCPTool")},80861:(e,t,r)=>{r.d(t,{U:()=>n});var a=r(71506);let n=(0,a.createServerReference)("7047a1549e7688257864f5ff1d31bd429729744fe6",a.callServer,void 0,a.findSourceMapURL,"findOrCreateCredential")}}]);