@inkeep/agents-manage-ui 0.35.0 → 0.35.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) 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 +7 -7
  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 +2 -2
  6. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +1 -1
  7. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js.nft.json +1 -1
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/[agentId]/page.js +2 -2
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/[agentId]/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/new/page.js +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/new/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js.nft.json +1 -1
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js.nft.json +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +2 -2
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js.nft.json +1 -1
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js.nft.json +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +2 -2
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js.nft.json +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -2
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js.nft.json +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -2
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js.nft.json +1 -1
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +2 -2
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js.nft.json +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -2
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js.nft.json +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js.nft.json +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js.nft.json +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  82. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  83. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js.nft.json +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  86. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +3 -3
  89. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  92. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  93. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  95. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js.nft.json +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  98. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.html +2 -2
  100. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.rsc +2 -2
  101. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  102. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  103. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_index.segment.rsc +2 -2
  105. package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  106. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  107. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  108. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  110. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
  111. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_full.segment.rsc +9 -9
  112. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
  113. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  114. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  116. package/.next/standalone/agents-manage-ui/.next/server/app/accept-invitation/[invitationId]/page.js +2 -2
  117. package/.next/standalone/agents-manage-ui/.next/server/app/accept-invitation/[invitationId]/page.js.nft.json +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/server/app/accept-invitation/[invitationId]/page_client-reference-manifest.js +1 -1
  119. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route.js +2 -2
  120. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route_client-reference-manifest.js +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/agents-manage-ui/.next/server/app/index.html +1 -1
  124. package/.next/standalone/agents-manage-ui/.next/server/app/index.rsc +10 -10
  125. package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  126. package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/_full.segment.rsc +10 -10
  127. package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/_index.segment.rsc +9 -9
  128. package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  129. package/.next/standalone/agents-manage-ui/.next/server/app/login/page.js +1 -1
  130. package/.next/standalone/agents-manage-ui/.next/server/app/login/page.js.nft.json +1 -1
  131. package/.next/standalone/agents-manage-ui/.next/server/app/login/page_client-reference-manifest.js +1 -1
  132. package/.next/standalone/agents-manage-ui/.next/server/app/login.html +1 -1
  133. package/.next/standalone/agents-manage-ui/.next/server/app/login.rsc +10 -10
  134. package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/_full.segment.rsc +10 -10
  135. package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/_index.segment.rsc +9 -9
  136. package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  137. package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  138. package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/login.segment.rsc +1 -1
  139. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization/page.js +2 -2
  140. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization/page.js.nft.json +1 -1
  141. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization/page_client-reference-manifest.js +1 -1
  142. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.html +1 -1
  143. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.rsc +10 -10
  144. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/_full.segment.rsc +10 -10
  145. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/_index.segment.rsc +9 -9
  146. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/_tree.segment.rsc +2 -2
  147. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/no-organization/__PAGE__.segment.rsc +2 -2
  148. package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/no-organization.segment.rsc +1 -1
  149. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +1 -1
  150. package/.next/standalone/agents-manage-ui/.next/server/app/page.js.nft.json +1 -1
  151. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  152. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +7 -7
  153. package/.next/standalone/agents-manage-ui/.next/server/chunks/1293.js +1 -0
  154. package/.next/standalone/agents-manage-ui/.next/server/chunks/1310.js +1 -1
  155. package/.next/standalone/agents-manage-ui/.next/server/chunks/2175.js +12 -12
  156. package/.next/standalone/agents-manage-ui/.next/server/chunks/2536.js +3 -3
  157. package/.next/standalone/agents-manage-ui/.next/server/chunks/2562.js +1 -0
  158. package/.next/standalone/agents-manage-ui/.next/server/chunks/408.js +1 -0
  159. package/.next/standalone/agents-manage-ui/.next/server/chunks/554.js +1 -1
  160. package/.next/standalone/agents-manage-ui/.next/server/chunks/6601.js +1 -0
  161. package/.next/standalone/agents-manage-ui/.next/server/chunks/7412.js +1 -1
  162. package/.next/standalone/agents-manage-ui/.next/server/chunks/8012.js +1 -1
  163. package/.next/standalone/agents-manage-ui/.next/server/chunks/8764.js +1 -1
  164. package/.next/standalone/agents-manage-ui/.next/server/chunks/9783.js +2 -2
  165. package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
  166. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  167. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  168. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +2 -2
  169. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  170. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  171. package/.next/standalone/agents-manage-ui/.next/static/chunks/15082-a2e45716ea6e9ea3.js +14 -0
  172. package/.next/standalone/agents-manage-ui/.next/static/chunks/24409-2059704647722c68.js +1 -0
  173. package/.next/standalone/agents-manage-ui/.next/static/chunks/27689-0b2b1513171fa6e5.js +1 -0
  174. package/.next/standalone/agents-manage-ui/.next/static/chunks/2796-ed66e1ce7a1358ff.js +1 -0
  175. package/.next/standalone/agents-manage-ui/.next/static/chunks/{36c0bed7-2c2b02163e330804.js → 36c0bed7-691aff15d7a088a3.js} +1 -1
  176. package/.next/standalone/agents-manage-ui/.next/static/chunks/44231-6e28b2fdec6ab8dd.js +2 -0
  177. package/.next/standalone/agents-manage-ui/.next/static/chunks/{88458-96e1537f353e510c.js → 45264-ab1a2a084f7b1a88.js} +2 -2
  178. package/.next/standalone/agents-manage-ui/.next/static/chunks/47873-2fa5638bc7dd9a65.js +1 -0
  179. package/.next/standalone/agents-manage-ui/.next/static/chunks/{39540-6fe2cbfb3bba02bc.js → 64104-3dae9af5bdc420a8.js} +1 -1
  180. package/.next/standalone/agents-manage-ui/.next/static/chunks/{68408-9584fe994310fce3.js → 68408-05e1b99f1f762746.js} +1 -1
  181. package/.next/standalone/agents-manage-ui/.next/static/chunks/72071-9129417da8f80852.js +1 -0
  182. package/.next/standalone/agents-manage-ui/.next/static/chunks/78674-7680ec10a1fc77a7.js +433 -0
  183. package/.next/standalone/agents-manage-ui/.next/static/chunks/93042-20c3f9237ded3444.js +1 -0
  184. package/.next/standalone/agents-manage-ui/.next/static/chunks/99087-bc97425ad3256aa4.js +1 -0
  185. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/[agentId]/{page-93b40d49d626eda4.js → page-653bfe3430bdaa1c.js} +1 -1
  186. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/new/{page-65f3970304541dd4.js → page-8b8c5de2957e4e64.js} +1 -1
  187. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-fb1169638e0cd063.js +1 -0
  188. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/{page-92c7140232f39bd6.js → page-e84ed9fd681ab8b3.js} +1 -1
  189. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-805c29cf95e9db58.js +1 -0
  190. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-d3281d9bcf54ae6c.js +1 -0
  191. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/{page-8dddabaaaf0b486a.js → page-e674f7754e252b5a.js} +1 -1
  192. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-380d06224dcc4099.js → page-3740313083c3e82d.js} +1 -1
  193. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/{page-298c28ab1a2a3da9.js → page-03dd330ac681c22f.js} +1 -1
  194. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-4ea40de9697df0e6.js → page-5c9dd4daad30eb23.js} +1 -1
  195. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/{page-7f9aa85d5d2ba168.js → page-dc1a347b0a6c7918.js} +1 -1
  196. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-f39eab191cedd2a7.js +1 -0
  197. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-9ff91709bfbca158.js +1 -0
  198. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-b9a17acfe790161f.js → page-f311d873dd22eb3e.js} +1 -1
  199. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-c2092910da9cc129.js +1 -0
  200. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-6af0cd4bb138deb2.js +1 -0
  201. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-f048bc3f36c5de07.js +1 -0
  202. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-f9f0db8f058dbf8b.js → page-7f7f87a1284b9fa2.js} +1 -1
  203. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-55df0b3906cb0ee7.js +1 -0
  204. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-58259585a0f64c39.js → page-af0d5fedee5116c5.js} +1 -1
  205. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-4614794a5e4dffac.js +1 -0
  206. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-5ce8b1db0071a573.js → page-ccea0b8e5dc1069d.js} +1 -1
  207. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-eac53cde27c1aaf4.js +2 -0
  208. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/{page-4caccf4408ece2a0.js → page-7c8cb9ecf2c1d2c8.js} +2 -2
  209. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-10b13e05e1807a1c.js +1 -0
  210. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/accept-invitation/[invitationId]/page-afa44ab90fe0dde4.js +1 -0
  211. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/{layout-d982795071054596.js → layout-998d84e77b50b584.js} +1 -1
  212. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/login/page-d3043b2f3a12af48.js +1 -0
  213. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/no-organization/page-8238a96f9939bcb6.js +1 -0
  214. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/page-c37a2fa9eb5685df.js +1 -0
  215. package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-97c2d505080fae0f.js → webpack-8e4302e8bf996d39.js} +1 -1
  216. package/.next/standalone/agents-manage-ui/.next/static/css/89ffc200f54288fe.css +1 -0
  217. package/.next/standalone/agents-manage-ui/package.json +3 -3
  218. package/.next/standalone/packages/agents-core/package.json +1 -1
  219. package/package.json +6 -6
  220. package/src/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.tsx +28 -30
  221. package/src/app/[tenantId]/projects/[projectId]/artifacts/new/page.tsx +1 -3
  222. package/src/app/[tenantId]/projects/[projectId]/artifacts/page.tsx +37 -43
  223. package/src/app/accept-invitation/[invitationId]/page.tsx +2 -1
  224. package/src/app/login/page.tsx +2 -1
  225. package/src/app/no-organization/page.tsx +2 -1
  226. package/src/components/artifact-components/form/artifact-component-form.tsx +13 -12
  227. package/src/components/artifact-components/form/validation.ts +3 -3
  228. package/src/components/auth/invite-member-dialog.tsx +2 -1
  229. package/src/components/auth/user-menu.tsx +2 -1
  230. package/src/components/data-components/form/data-component-form.tsx +1 -0
  231. package/src/components/data-components/form/validation.ts +1 -1
  232. package/src/components/editors/monaco-editor.tsx +1 -0
  233. package/src/components/editors/prompt-editor.tsx +1 -0
  234. package/src/components/editors/standalone-json-editor.tsx +17 -10
  235. package/src/components/form/__tests__/json-schema-builder.test.ts +45 -1
  236. package/src/components/form/json-schema-builder.tsx +63 -14
  237. package/src/components/form/json-schema-input.tsx +21 -2
  238. package/src/features/agent/state/json-schema.ts +89 -79
  239. package/src/hooks/use-auth.ts +2 -2
  240. package/src/lib/auth-client.ts +28 -19
  241. package/src/lib/json-schema-validation.ts +1 -1
  242. package/tsconfig.json +1 -1
  243. package/.next/standalone/agents-manage-ui/.next/server/chunks/1483.js +0 -1
  244. package/.next/standalone/agents-manage-ui/.next/server/chunks/668.js +0 -1
  245. package/.next/standalone/agents-manage-ui/.next/server/chunks/759.js +0 -1
  246. package/.next/standalone/agents-manage-ui/.next/server/chunks/8914.js +0 -1
  247. package/.next/standalone/agents-manage-ui/.next/static/chunks/24409-6efce1a9265c903c.js +0 -1
  248. package/.next/standalone/agents-manage-ui/.next/static/chunks/25031-710037a2014fec61.js +0 -1
  249. package/.next/standalone/agents-manage-ui/.next/static/chunks/27689-2b788aa516f2b9b7.js +0 -1
  250. package/.next/standalone/agents-manage-ui/.next/static/chunks/34757-a60df3c38b92d431.js +0 -1
  251. package/.next/standalone/agents-manage-ui/.next/static/chunks/46028-ffafc731ff856011.js +0 -14
  252. package/.next/standalone/agents-manage-ui/.next/static/chunks/47873-0d732a0280826d36.js +0 -1
  253. package/.next/standalone/agents-manage-ui/.next/static/chunks/61921-a881cfb18bb014b9.js +0 -433
  254. package/.next/standalone/agents-manage-ui/.next/static/chunks/7833-dde5a08e7c491ac3.js +0 -1
  255. package/.next/standalone/agents-manage-ui/.next/static/chunks/85195-b8360aec2437259e.js +0 -1
  256. package/.next/standalone/agents-manage-ui/.next/static/chunks/90585-4f56b3245745ccf8.js +0 -2
  257. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-9489990bb2337498.js +0 -1
  258. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-b01a6b4da90e0853.js +0 -1
  259. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-7ed3d8291fcf3816.js +0 -1
  260. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-0dcb82d9293cd0fd.js +0 -1
  261. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-e475eab75c2c353b.js +0 -1
  262. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-6f40a07cd36f685e.js +0 -1
  263. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-10231b3b4e50a11d.js +0 -1
  264. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-0b0ec719d22fb0c5.js +0 -1
  265. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-301e47811bfc6cf3.js +0 -1
  266. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-c084ae61c1bf394a.js +0 -1
  267. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-20d3846a453a6b07.js +0 -2
  268. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-b05652b58dea8cb2.js +0 -1
  269. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/accept-invitation/[invitationId]/page-7e0f2009d365fcc2.js +0 -1
  270. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/login/page-083ffa642dc143ff.js +0 -1
  271. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/no-organization/page-e444fba84a7720f6.js +0 -1
  272. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/page-dc2b6b5329383e70.js +0 -1
  273. package/.next/standalone/agents-manage-ui/.next/static/css/c2930423d0452e91.css +0 -1
  274. /package/.next/standalone/agents-manage-ui/.next/static/{gX2xsxf6X62dI6X43HY77 → QhTg2JILSgeKD7HBk2S5E}/_buildManifest.js +0 -0
  275. /package/.next/standalone/agents-manage-ui/.next/static/{gX2xsxf6X62dI6X43HY77 → QhTg2JILSgeKD7HBk2S5E}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
 
3
- import type { Control, FieldPath, FieldValues } from 'react-hook-form';
3
+ import { type Control, type FieldPath, type FieldValues, useFormState } from 'react-hook-form';
4
4
  import { JsonSchemaBuilder } from '@/components/form/json-schema-builder';
5
5
  import { Switch } from '@/components/ui/switch';
6
6
  import { useAgentActions, useAgentStore } from '@/features/agent/state/use-agent-store';
@@ -16,6 +16,13 @@ interface JsonSchemaInputProps<T extends FieldValues> {
16
16
  description?: string;
17
17
  readOnly?: boolean;
18
18
  isRequired?: boolean;
19
+ hasInPreview?: boolean;
20
+ /**
21
+ * URIs that start with `json-schema-...` are validated against the JSON schema.
22
+ * In artifacts, we use custom JSON schemas with `inPreview` fields. To skip
23
+ * JSON schema validation, use a URI that starts with `custom-json-schema-...`.
24
+ */
25
+ uri?: `${string}json-schema-${string}.json`;
19
26
  }
20
27
 
21
28
  export function JsonSchemaInput<T extends FieldValues>({
@@ -27,9 +34,14 @@ export function JsonSchemaInput<T extends FieldValues>({
27
34
  description,
28
35
  readOnly,
29
36
  isRequired = false,
37
+ hasInPreview,
38
+ uri,
30
39
  }: JsonSchemaInputProps<T>) {
31
40
  const isJsonSchemaModeChecked = useAgentStore((state) => state.jsonSchemaMode);
32
41
  const { setJsonSchemaMode } = useAgentActions();
42
+ const formState = useFormState({ name });
43
+ const fieldState = control.getFieldState(name, formState);
44
+
33
45
  return (
34
46
  <FormFieldWrapper
35
47
  control={control}
@@ -51,9 +63,16 @@ export function JsonSchemaInput<T extends FieldValues>({
51
63
  onChange={field.onChange}
52
64
  readOnly={readOnly}
53
65
  disabled={disabled}
66
+ aria-invalid={!!fieldState.error}
67
+ uri={uri}
54
68
  />
55
69
  ) : (
56
- <JsonSchemaBuilder value={value} onChange={field.onChange} />
70
+ <JsonSchemaBuilder
71
+ value={value}
72
+ onChange={field.onChange}
73
+ hasInPreview={hasInPreview}
74
+ hasError={!!fieldState.error}
75
+ />
57
76
  )}
58
77
  <span className="absolute flex items-center end-0 -top-[2.5px] gap-2 text-sm font-medium">
59
78
  JSON
@@ -1,11 +1,15 @@
1
1
  import type { JSONSchema7 } from 'json-schema';
2
2
  import { nanoid } from 'nanoid';
3
- import { create } from 'zustand';
3
+ import { create, type StateCreator } from 'zustand';
4
4
  import { devtools } from 'zustand/middleware';
5
5
  import { useShallow } from 'zustand/react/shallow';
6
6
 
7
7
  const ROOT_ID = '__root__';
8
8
 
9
+ export interface JSONSchemaWithPreview extends JSONSchema7 {
10
+ inPreview?: boolean;
11
+ }
12
+
9
13
  type TypeValues = keyof typeof Types;
10
14
 
11
15
  interface NameAndDescription {
@@ -19,9 +23,11 @@ interface NameAndDescription {
19
23
  isRequired?: boolean;
20
24
  /** JSON Schema title field */
21
25
  title?: string;
26
+ /** @see https://docs.inkeep.com/visual-builder/structured-outputs/artifact-components#preview-fields */
27
+ isPreview?: boolean;
22
28
  }
23
29
 
24
- type EditableField =
30
+ export type EditableField =
25
31
  | FieldString
26
32
  | FieldNumber
27
33
  | FieldBoolean
@@ -57,38 +63,42 @@ interface FieldObject extends NameAndDescription {
57
63
  }
58
64
 
59
65
  type FieldPatch = Partial<
60
- Pick<NameAndDescription, 'name' | 'description' | 'isRequired' | 'title'>
66
+ Pick<NameAndDescription, 'name' | 'description' | 'isRequired' | 'title' | 'isPreview'>
61
67
  >;
62
68
 
63
- const applyCommonMetadata = (schema: JSONSchema7, field: NameAndDescription) => {
69
+ const applyCommonMetadata = (schema: JSONSchemaWithPreview, field: NameAndDescription) => {
70
+ const { hasInPreview } = jsonSchemaStore.getState();
71
+
64
72
  if (field.description) {
65
73
  schema.description = field.description;
66
74
  }
67
75
  if (field.title) {
68
76
  schema.title = field.title;
69
77
  }
78
+ if (hasInPreview && field.isPreview) {
79
+ schema.inPreview = true;
80
+ }
70
81
  return schema;
71
82
  };
72
83
 
73
- const fieldsToJsonSchema = (field: EditableField | undefined): JSONSchema7 => {
84
+ const fieldsToJsonSchema = (field: EditableField | undefined): JSONSchemaWithPreview => {
74
85
  if (!field) {
75
86
  return { type: 'string' };
76
87
  }
77
-
78
88
  switch (field.type) {
79
89
  case 'object': {
80
90
  const properties: Record<string, JSONSchema7> = {};
81
91
  const required: string[] = [];
82
92
 
83
93
  for (const property of field.properties ?? []) {
84
- if (!property || !property.name) continue;
94
+ if (!property.name) continue;
85
95
  properties[property.name] = fieldsToJsonSchema(property);
86
96
  if (property.isRequired) {
87
97
  required.push(property.name);
88
98
  }
89
99
  }
90
100
 
91
- const schema: JSONSchema7 = {
101
+ const schema: JSONSchemaWithPreview = {
92
102
  type: 'object',
93
103
  properties,
94
104
  additionalProperties: false,
@@ -101,7 +111,7 @@ const fieldsToJsonSchema = (field: EditableField | undefined): JSONSchema7 => {
101
111
  }
102
112
  case 'array': {
103
113
  const items = fieldsToJsonSchema(field.items);
104
- const schema: JSONSchema7 = {
114
+ const schema: JSONSchemaWithPreview = {
105
115
  type: 'array',
106
116
  items,
107
117
  };
@@ -109,7 +119,7 @@ const fieldsToJsonSchema = (field: EditableField | undefined): JSONSchema7 => {
109
119
  return schema;
110
120
  }
111
121
  case 'enum': {
112
- const schema: JSONSchema7 = {
122
+ const schema: JSONSchemaWithPreview = {
113
123
  type: 'string',
114
124
  enum: field.values,
115
125
  };
@@ -117,24 +127,18 @@ const fieldsToJsonSchema = (field: EditableField | undefined): JSONSchema7 => {
117
127
  return schema;
118
128
  }
119
129
  case 'number': {
120
- const schema: JSONSchema7 = {
121
- type: 'number',
122
- };
130
+ const schema: JSONSchemaWithPreview = { type: 'number' };
123
131
  applyCommonMetadata(schema, field);
124
132
  return schema;
125
133
  }
126
134
  case 'boolean': {
127
- const schema: JSONSchema7 = {
128
- type: 'boolean',
129
- };
135
+ const schema: JSONSchemaWithPreview = { type: 'boolean' };
130
136
  applyCommonMetadata(schema, field);
131
137
  return schema;
132
138
  }
133
139
  case 'string':
134
140
  default: {
135
- const schema: JSONSchema7 = {
136
- type: 'string',
137
- };
141
+ const schema: JSONSchemaWithPreview = { type: 'string' };
138
142
  applyCommonMetadata(schema, field);
139
143
  return schema;
140
144
  }
@@ -147,17 +151,19 @@ function convertJsonSchemaToFields({
147
151
  isRequired,
148
152
  id = ROOT_ID,
149
153
  }: {
150
- schema: JSONSchema7;
154
+ schema: JSONSchemaWithPreview;
151
155
  name?: string;
152
156
  isRequired?: boolean;
153
157
  id?: string;
154
158
  }): EditableField | undefined {
159
+ const { hasInPreview } = jsonSchemaStore.getState();
155
160
  const base: NameAndDescription = {
156
161
  id,
157
162
  ...(name && { name }),
158
163
  ...(schema.description && { description: schema.description }),
159
164
  ...(schema.title && { title: schema.title }),
160
165
  ...(isRequired && { isRequired: true }),
166
+ ...(hasInPreview && schema.inPreview && { isPreview: true }),
161
167
  };
162
168
 
163
169
  if (schema.type === 'object') {
@@ -411,7 +417,7 @@ const parseFieldsFromJson = (value: string): EditableField[] => {
411
417
  }
412
418
 
413
419
  try {
414
- const parsed = JSON.parse(value) as JSONSchema7;
420
+ const parsed = JSON.parse(value) as JSONSchemaWithPreview;
415
421
  const result = convertJsonSchemaToFields({ schema: parsed });
416
422
  if (!result) {
417
423
  return [];
@@ -535,10 +541,11 @@ const changeEditableFieldType = (field: EditableField, type: TypeValues): Editab
535
541
 
536
542
  interface JsonSchemaStateData {
537
543
  fields: EditableField[];
544
+ hasInPreview: boolean;
538
545
  }
539
546
 
540
547
  interface JsonSchemaActions {
541
- setFields: (fields: EditableField[]) => void;
548
+ setFields: (schemaJson: string, hasInPreview?: boolean) => void;
542
549
  updateField: (id: string, patch: FieldPatch) => void;
543
550
  changeType: (id: string, type: TypeValues) => void;
544
551
  addChild: (parentId?: string) => void;
@@ -550,64 +557,68 @@ interface JsonSchemaState extends JsonSchemaStateData {
550
557
  actions: JsonSchemaActions;
551
558
  }
552
559
 
553
- const jsonSchemaStore = create<JsonSchemaState>()(
554
- devtools((set) => ({
555
- fields: [],
556
- actions: {
557
- setFields(fields) {
558
- set({ fields });
559
- },
560
- updateField(id, patch) {
561
- set((state) => {
562
- const [fields, changed] = updateEditableFields(state.fields, id, (candidate) => ({
563
- ...candidate,
564
- ...patch,
565
- }));
566
- return changed ? { fields } : state;
567
- });
568
- },
569
- changeType(id, type) {
570
- set((state) => {
571
- const [fields, changed] = updateEditableFields(state.fields, id, (candidate) =>
572
- changeEditableFieldType(candidate, type)
573
- );
574
- return changed ? { fields } : state;
575
- });
576
- },
577
- addChild(parentId = ROOT_ID) {
578
- set((state) => {
579
- const child = createEditableField({
580
- type: 'string',
581
- id: `${parentId}.${nanoid()}`,
582
- });
583
- if (parentId === ROOT_ID) {
584
- return { fields: [...state.fields, child] };
585
- }
586
- const [fields, changed] = addChildToEditableTree(state.fields, parentId, child);
587
- return changed ? { fields } : state;
588
- });
589
- },
590
- removeField(id) {
591
- set((state) => {
592
- const filtered = state.fields.filter((field) => field.id !== id);
593
- if (filtered.length !== state.fields.length) {
594
- return { fields: filtered };
595
- }
596
- const [fields, changed] = removeEditableFieldFromTree(state.fields, id);
597
- return changed ? { fields } : state;
598
- });
599
- },
600
- updateEnumValues(id, values) {
601
- set((state) => {
602
- const [fields, changed] = updateEditableFields(state.fields, id, (candidate) =>
603
- candidate.type === 'enum' ? { ...candidate, values } : candidate
604
- );
605
- return changed ? { fields } : state;
560
+ const jsonSchemaState: StateCreator<JsonSchemaState> = (set) => ({
561
+ fields: [],
562
+ hasInPreview: false,
563
+ actions: {
564
+ setFields(schemaJson, hasInPreview) {
565
+ // Update preview mode before parsing the schema
566
+ set({ hasInPreview });
567
+ // Parse fields from the JSON schema using the updated `hasInPreview` state
568
+ set({ fields: parseFieldsFromJson(schemaJson) });
569
+ },
570
+ updateField(id, patch) {
571
+ set((state) => {
572
+ const [fields, changed] = updateEditableFields(state.fields, id, (candidate) => ({
573
+ ...candidate,
574
+ ...patch,
575
+ }));
576
+ return changed ? { fields } : state;
577
+ });
578
+ },
579
+ changeType(id, type) {
580
+ set((state) => {
581
+ const [fields, changed] = updateEditableFields(state.fields, id, (candidate) =>
582
+ changeEditableFieldType(candidate, type)
583
+ );
584
+ return changed ? { fields } : state;
585
+ });
586
+ },
587
+ addChild(parentId = ROOT_ID) {
588
+ set((state) => {
589
+ const child = createEditableField({
590
+ type: 'string',
591
+ id: `${parentId}.${nanoid()}`,
606
592
  });
607
- },
593
+ if (parentId === ROOT_ID) {
594
+ return { fields: [...state.fields, child] };
595
+ }
596
+ const [fields, changed] = addChildToEditableTree(state.fields, parentId, child);
597
+ return changed ? { fields } : state;
598
+ });
599
+ },
600
+ removeField(id) {
601
+ set((state) => {
602
+ const filtered = state.fields.filter((field) => field.id !== id);
603
+ if (filtered.length !== state.fields.length) {
604
+ return { fields: filtered };
605
+ }
606
+ const [fields, changed] = removeEditableFieldFromTree(state.fields, id);
607
+ return changed ? { fields } : state;
608
+ });
608
609
  },
609
- }))
610
- );
610
+ updateEnumValues(id, values) {
611
+ set((state) => {
612
+ const [fields, changed] = updateEditableFields(state.fields, id, (candidate) =>
613
+ candidate.type === 'enum' ? { ...candidate, values } : candidate
614
+ );
615
+ return changed ? { fields } : state;
616
+ });
617
+ },
618
+ },
619
+ });
620
+
621
+ const jsonSchemaStore = create<JsonSchemaState>()(devtools(jsonSchemaState));
611
622
 
612
623
  /**
613
624
  * Actions are functions that update values in your store.
@@ -632,7 +643,6 @@ export {
632
643
  Types,
633
644
  jsonSchemaStore,
634
645
  findFieldById,
635
- parseFieldsFromJson,
636
646
  convertJsonSchemaToFields,
637
647
  fieldsToJsonSchema,
638
648
  useJsonSchemaStore,
@@ -1,7 +1,7 @@
1
- import { authClient } from '@/lib/auth-client';
1
+ import { useAuthClient } from '@/lib/auth-client';
2
2
 
3
3
  export function useAuthSession() {
4
- const client = authClient;
4
+ const client = useAuthClient();
5
5
 
6
6
  const { data: session, isPending, error } = client.useSession();
7
7
 
@@ -2,24 +2,33 @@ import { ssoClient } from '@better-auth/sso/client';
2
2
  import { ac, adminRole, memberRole, ownerRole } from '@inkeep/agents-core/auth/permissions';
3
3
  import { organizationClient } from 'better-auth/client/plugins';
4
4
  import { createAuthClient } from 'better-auth/react';
5
- import { getManageApiUrl } from './api/api-config';
5
+ import { useMemo } from 'react';
6
+ import { useRuntimeConfig } from '@/contexts/runtime-config-context';
6
7
 
7
- export const authClient = createAuthClient({
8
- baseURL: getManageApiUrl(),
9
- fetchOptions: {
10
- credentials: 'include',
11
- },
12
- plugins: [
13
- ssoClient(),
14
- organizationClient({
15
- ac,
16
- roles: {
17
- member: memberRole,
18
- admin: adminRole,
19
- owner: ownerRole,
20
- },
21
- }),
22
- ],
23
- });
8
+ export function useAuthClient() {
9
+ const { PUBLIC_INKEEP_AGENTS_MANAGE_API_URL } = useRuntimeConfig();
24
10
 
25
- export type AuthClient = typeof authClient;
11
+ return useMemo(
12
+ () =>
13
+ createAuthClient({
14
+ baseURL: PUBLIC_INKEEP_AGENTS_MANAGE_API_URL,
15
+ fetchOptions: {
16
+ credentials: 'include',
17
+ },
18
+ plugins: [
19
+ ssoClient(),
20
+ organizationClient({
21
+ ac,
22
+ roles: {
23
+ member: memberRole,
24
+ admin: adminRole,
25
+ owner: ownerRole,
26
+ },
27
+ }),
28
+ ],
29
+ }),
30
+ [PUBLIC_INKEEP_AGENTS_MANAGE_API_URL]
31
+ );
32
+ }
33
+
34
+ export type AuthClient = ReturnType<typeof useAuthClient>;
@@ -115,7 +115,7 @@ function validateJsonSchema(schema: any): ValidationError[] {
115
115
  });
116
116
  }
117
117
 
118
- if (!schema.required || !Array.isArray(schema.required)) {
118
+ if (schema.required && !Array.isArray(schema.required)) {
119
119
  errors.push({
120
120
  path: 'required',
121
121
  message: 'Schema must have a "required" array (can be empty)',
package/tsconfig.json CHANGED
@@ -30,5 +30,5 @@
30
30
  ".next/types/**/*.ts",
31
31
  ".next/dev/types/**/*.ts"
32
32
  ],
33
- "exclude": ["node_modules", ".next", "cypress", "cypress.config.ts"]
33
+ "exclude": ["node_modules", ".next", "cypress"]
34
34
  }
@@ -1 +0,0 @@
1
- "use strict";exports.id=1483,exports.ids=[1483],exports.modules={1667:(a,b,c)=>{c.d(b,{C1:()=>x,bL:()=>v});var d=c(23328),e=c(87566),f=c(80680),g=c(13961),h=c(75477),i=c(16977),j=c(37625),k=c(36417),l=c(60628),m=c(45413),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},3042:(a,b,c)=>{c.d(b,{Y:()=>e});var d=c(65049);let e=(0,d.createServerReference)("78799596140fc70538ce79a1d887d032ffcde592cb",d.callServer,void 0,d.findSourceMapURL,"updateMCPTool")},4537:(a,b,c)=>{c.d(b,{MCPServerForm:()=>I});var d=c(45413),e=c(18526),f=c(21498),g=c(60223),h=c(23328),i=c(4068),j=c(41489),k=c(8997),l=c(93449),m=c(38953),n=c(74188),o=c(42241),p=c(39667),q=c(28598),r=c(17285),s=c(65049);let t=(0,s.createServerReference)("40481fc98175893585d73fe19b65c39aea8745bf76",s.callServer,void 0,s.findSourceMapURL,"detectOAuthServerAction");var u=c(60441),v=c(85089),w=c(3042),x=c(14260),y=c(19169),z=c(89773),A=c(79416),B=c(83942),C=c(23240);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:"code",className:"border-none px-2 text-[10px] text-muted-foreground",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(63307);let F=E.discriminatedUnion("type",[E.object({type:E.literal("all")}),E.object({type:E.literal("selective"),tools:E.array(E.string())})]),G=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(f.o7)}),toolsConfig:F.default({type:"all"})})}),credentialReferenceId:E.string().nullish(),imageUrl:E.string().optional()}),H={name:"",config:{type:"mcp",mcp:{server:{url:""},transport:{type:f.o7.streamableHttp},toolsConfig:{type:"all"}}},imageUrl:"",credentialReferenceId:"oauth"};function I({initialData:a,mode:b="create",tool:c,credentials:s,tenantId:y,projectId:z}){let A=(0,g.useRouter)(),[B,C]=(0,h.useState)(!1),[E,F]=(0,h.useState)(!1),I=(0,i.mN)({resolver:(0,e.u)(G),defaultValues:{...H,...a}}),{handleOAuthLogin:J}=(0,r.U)({tenantId:y,projectId:z}),{isSubmitting:K}=I.formState,L=async a=>{try{if("oauth"===a.credentialReferenceId){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:a.name,config:{type:"mcp",mcp:{server:{url:a.config.mcp.server.url},transport:{type:a.config.mcp.transport.type}}},credentialReferenceId:null,imageUrl:a.imageUrl},d=await (0,v.X)(y,z,c);J({toolId:d.id,mcpServerUrl:a.config.mcp.server.url,toolName:a.name});return}let d={...a,credentialReferenceId:"none"===a.credentialReferenceId?null:a.credentialReferenceId,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,d),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,{...d,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){F(!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{F(!1)}}};return(0,d.jsxs)(o.lG,{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:"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.zM,{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:E,onDelete:M})]})}},5415:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(82175).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},17285:(a,b,c)=>{c.d(b,{U:()=>n});var d=c(21498),e=c(60223),f=c(23328),g=c(41489),h=c(3763),i=c(64088),j=c(3042),k=c(69146),l=c(14260),m=c(82994);function n({tenantId:a,projectId:b,onFinish:c}){let n=(0,e.useRouter)(),{PUBLIC_INKEEP_AGENTS_MANAGE_API_URL:o}=(0,h.y)(),{openNangoConnectHeadless:p}=(0,m.$)(),q=(0,f.useRef)(new Map),r=(0,f.useCallback)(d=>new Promise((e,f)=>{let g=q.current.get(d);g&&(g(),q.current.delete(d));try{let g=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:o,tenantId:a,projectId:b,id:d}),h=window.open(g,"oauth-popup","width=600,height=700,scrollbars=yes,resizable=yes,status=yes,location=yes");if(!h){let a=Error(`Failed to open popup for ${d} - blocked by browser`);console.error(a.message),f(a);return}let i=!1,j=(g,h)=>{i||(i=!0,window.removeEventListener("message",k),l&&clearInterval(l),clearTimeout(m),q.current.delete(d),g?(c?c(d):n.push(`/${a}/projects/${b}/mcp-servers/${d}`),e()):f(h||Error("OAuth login failed")))},k=a=>{"oauth-success"===a.data.type?j(!0):"oauth-error"===a.data.type&&j(!1,Error(a.data.error||"OAuth login failed"))};window.addEventListener("message",k);let l=null,m=setTimeout(()=>{i||(l=setInterval(()=>{try{h.closed&&j(!0)}catch{}},1e3))},3e3);q.current.set(d,()=>{j(!1,Error("OAuth login cancelled"))})}catch(a){f(a instanceof Error?a:Error("OAuth login failed"))}}),[o,a,b,c,n]),s=(0,f.useCallback)(async({toolId:e,mcpServerUrl:f,toolName:g})=>{let h=await p({mcpServerUrl:f,providerUniqueKey:`${(0,d.K_)(g)}_${e}`,providerDisplayName:g}),i={id:(0,l.$)(),name:`${g} OAuth Credential`,type:d.Ns.nango,credentialStoreId:"nango-default",retrievalParams:{connectionId:h.connectionId,providerConfigKey:h.providerConfigKey,provider:"mcp-generic",authMode:"OAUTH2"}},m=await (0,k.U)(a,b,i);await (0,j.Y)(a,b,e,{credentialReferenceId:m.id}),c?c(e):n.push(`/${a}/projects/${b}/mcp-servers/${e}`)},[p,c,n,a,b]);return{handleOAuthLogin:(0,f.useCallback)(async({toolId:c,mcpServerUrl:e,toolName:f})=>{try{let g=await (0,i.S)(a,b),h=g.some(a=>a.type===d.Ns.nango&&a.available),j=g.some(a=>a.type===d.Ns.keychain&&a.available);if(h)await s({toolId:c,mcpServerUrl:e,toolName:f});else if(j)await r(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,s,r])}}},21706:(a,b,c)=>{c.d(b,{Wy:()=>k,XL:()=>i,YU:()=>j,iu:()=>g,xl:()=>h});var d=c(46649);c(75909);var e=c(55310),f=c(40555);async function g(a,b,c=1,d=50,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.J)(`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.J)(`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.J)(`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.J)(`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.J)(`tenants/${a}/projects/${b}/tools/${c}`,{method:"DELETE"})}(0,c(33341).D)([g,h,i,j,k]),(0,d.A)(g,"7c1cd3c27d9df7d3488f84261ff4a87d22f406d5dc",null),(0,d.A)(h,"709917c902c0542d5d2776b7532583a128db343f14",null),(0,d.A)(i,"70581c37ee014a8a824abe1396158b7de4f30f5684",null),(0,d.A)(j,"78799596140fc70538ce79a1d887d032ffcde592cb",null),(0,d.A)(k,"70ca34c8f4e7eb91870da034e12f2085899f08933c",null)},29439:(a,b,c)=>{c.d(b,{Q1:()=>i,cZ:()=>k,oU:()=>j});var d=c(46649);c(75909);var e=c(1933),f=c(65206),g=c(21706),h=c(90365);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(33341).D)([i,j,k]),(0,d.A)(i,"60d184b3738be82174c1ad7120a27ef8ec1d1edd48",null),(0,d.A)(j,"78dc6fb4908019f21ee78c2cf43d77847c6edcc374",null),(0,d.A)(k,"40481fc98175893585d73fe19b65c39aea8745bf76",null)},46672:(a,b,c)=>{c.d(b,{$Y:()=>g,GO:()=>i,K3:()=>h,h9:()=>k,nZ:()=>j});var d=c(61896);c(23956);var e=c(8489),f=c(74814);async function g(a,b,c=1,d=50){(0,f.M2)(a),(0,f.nt)(b);let h=new URLSearchParams({page:c.toString(),limit:d.toString()});return(await (0,e.J)(`tenants/${a}/projects/${b}/credentials?${h}`)).data}async function h(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`)).data}async function i(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials`,{method:"POST",body:JSON.stringify(c)})).data}async function j(a,b,c,d){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"PUT",body:JSON.stringify(d)})).data}async function k(a,b,c){(0,f.M2)(a),(0,f.nt)(b),await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}(0,c(23276).D)([g,h,i,j,k]),(0,d.A)(g,"78124ff32efa700d1f3e6a4e79682f81fe450fc623",null),(0,d.A)(h,"700286de748a55ddf449d3d3e2dfd22668f793cd9e",null),(0,d.A)(i,"70b06810025c754d315939b6b84b92dfae70319dbc",null),(0,d.A)(j,"7856c60c5abb980252ac3f61cb30504dbd13fc3239",null),(0,d.A)(k,"70a0a7baab60989c0670b421bd478bd7d505f4356d",null)},60441:(a,b,c)=>{c.d(b,{o:()=>e});var d=c(65049);let e=(0,d.createServerReference)("78dc6fb4908019f21ee78c2cf43d77847c6edcc374",d.callServer,void 0,d.findSourceMapURL,"deleteToolAction")},64088:(a,b,c)=>{c.d(b,{S:()=>e});var d=c(65049);let e=(0,d.createServerReference)("601531fcbd17f70f2b4608828e39c05769ad99bddf",d.callServer,void 0,d.findSourceMapURL,"listCredentialStores")},74188:(a,b,c)=>{c.d(b,{J:()=>h});var d=c(45413),e=c(5415),f=c(38953),g=c(42241);function h({itemName:a,isSubmitting:b,onDelete:c,customTitle:h,customDescription:i}){let j=async()=>{await c()};return(0,d.jsxs)(g.Cf,{children:[(0,d.jsx)(g.L3,{children:h||`Delete ${a||"this item"}`}),(0,d.jsx)(g.rr,{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"})]})]})}},83942:(a,b,c)=>{c.d(b,{S:()=>h});var d=c(45413),e=c(1667),f=c(89773),g=c(41394);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"})})})}},85089:(a,b,c)=>{c.d(b,{X:()=>e});var d=c(65049);let e=(0,d.createServerReference)("70581c37ee014a8a824abe1396158b7de4f30f5684",d.callServer,void 0,d.findSourceMapURL,"createMCPTool")},91868:(a,b,c)=>{c.d(b,{S:()=>g,U:()=>h});var d=c(46649);c(75909);var e=c(55310),f=c(40555);async function g(a,b){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`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.J)(`tenants/${a}/projects/${b}/credential-stores/${c}/credentials`,{method:"POST",body:JSON.stringify({key:d,value:g,metadata:h})})).data}(0,c(33341).D)([g,h]),(0,d.A)(g,"601531fcbd17f70f2b4608828e39c05769ad99bddf",null),(0,d.A)(h,"40483376d98e27aea1ca6c8f4b078cb46dcc4af03a",null)},93449:(a,b,c)=>{c.d(b,{U:()=>g});var d=c(45413),e=c(74777),f=c(70586);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))})]})})}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=668,exports.ids=[668],exports.modules={5415:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(82175).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},10920:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{ArtifactComponentForm:()=>y});var e=c(45413),f=c(18526),g=c(60223),h=c(23328),i=c(4068),j=c(41489),k=c(8997),l=c(73679),m=c(59944),n=c(38953),o=c(42241),p=c(39667),q=c(18666),r=c(20151),s=c(36520),t=c(41394),u=c(58445),v=c(79744),w=c(15682),x=a([m]);function y({id:a,tenantId:b,projectId:c,initialData:d}){let[x,y]=(0,h.useState)(!1),z=(0,i.mN)({resolver:(0,f.u)(w.z),defaultValues:(a=>{if(!a)return v.g;let b={...a};return b.props&&(b.props=(0,t.S_)(b.props)),b})(d)}),{isSubmitting:A}=z.formState,B=(0,g.useRouter)();(0,q.S)({form:z,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 (0,r.X)(b,c,e);if(!a.success)return void j.oR.error(a.error||"Failed to update artifact.");j.oR.success("Artifact updated.")}else{let a=await (0,s.o)(b,c,e);if(!a.success)return void j.oR.error(a.error||"Failed to create artifact");j.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.";j.oR.error(a)}};return(0,e.jsxs)(o.lG,{open:x,onOpenChange:y,children:[(0,e.jsx)(p.lV,{...z,children:(0,e.jsxs)("form",{onSubmit:z.handleSubmit(C),className:"space-y-8",children:[(0,e.jsx)(k.a,{control:z.control,name:"name",label:"Name",placeholder:"Document Artifact",isRequired:!0}),(0,e.jsx)(k.a,{control:z.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,e.jsx)(l.K,{control:z.control,name:"description",label:"Description",placeholder:"Structured factual information extracted from search results",className:"min-h-[80px]",isRequired:!0}),(0,e.jsx)(m.S,{control:z.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."}),(0,e.jsxs)("div",{className:"flex w-full justify-between",children:[(0,e.jsx)(n.$,{type:"submit",disabled:A,children:"Save"}),a&&(0,e.jsx)(o.zM,{asChild:!0,children:(0,e.jsx)(n.$,{type:"button",variant:"destructive-outline",children:"Delete Artifact"})})]})]})}),x&&a&&(0,e.jsx)(u.W,{artifactComponentId:a,artifactComponentName:z.getValues("name"),setIsOpen:y,redirectOnDelete:!0})]})}m=(x.then?(await x)():x)[0],d()}catch(a){d(a)}})},15682:(a,b,c)=>{c.d(b,{z:()=>g});var d=c(63307),e=c(56005),f=c(97744);let g=d.object({id:f.f,name:d.string().min(1,"Name is required."),description:d.string().min(1,"Description is required."),props:d.union([d.string(),d.null(),d.undefined()]).transform((a,b)=>{if(a&&""!==a&&null!==a)try{let c=JSON.parse(a),f=(0,e._O)(a);if(!f.isValid){let a=f.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:d.ZodIssueCode.custom,message:a}),d.NEVER}return c}catch(a){return b.addIssue({code:d.ZodIssueCode.custom,message:(0,e.SR)(a)}),d.NEVER}}).optional()})},20151:(a,b,c)=>{c.d(b,{X:()=>e});var d=c(65049);let e=(0,d.createServerReference)("703b044eeb381107b7d39402d59059d1cb109be0d4",d.callServer,void 0,d.findSourceMapURL,"updateArtifactComponentAction")},23723:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(82175).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"}]])},36520:(a,b,c)=>{c.d(b,{o:()=>e});var d=c(65049);let e=(0,d.createServerReference)("706f39955cdc298213574bda5816000947124caefb",d.callServer,void 0,d.findSourceMapURL,"createArtifactComponentAction")},55214:(a,b,c)=>{c.r(b),c.d(b,{"4002d1e81d5dbb98c8e820f569ec0d3459af6a7f89":()=>d.bW,"600037ab56c866f29f47ba4b4c050cb04610f5fc10":()=>p,"607bfa51de33aba39a6d1b9fcf0d7c74d6fc993766":()=>d.gL,"60861d40fd030b99d14bdd65cb828e52458b016680":()=>d.Dv,"60ee0dc26c2fef5d3e7230ed61e689b97111b30a7f":()=>d.qf,"703b044eeb381107b7d39402d59059d1cb109be0d4":()=>r,"706f39955cdc298213574bda5816000947124caefb":()=>q,"707d4c47831d4c9a0690037e28071936d3516ed976":()=>d.Tg,"708470f0fcba9491c7ed3c9d8df8e525c20463a226":()=>s});var d=c(89075),e=c(46649);c(75909);var f=c(65206),g=c(55310),h=c(40555),i=c(33341);async function j(a,b){return(0,h.M2)(a),(0,h.nt)(b),await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components`)}async function k(a,b,c){return(0,h.M2)(a),(0,h.nt)(b),(await (0,g.J)(`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.J)(`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.J)(`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.J)(`tenants/${a}/projects/${b}/artifact-components/${c}`,{method:"DELETE"})}(0,i.D)([j,k,l,m,n]),(0,e.A)(j,"60a4d83fb9bf5619c888ace4dcb97163bfd431cfb1",null),(0,e.A)(k,"70f601a89f334d5cb02c50ed23945c799588c2f93c",null),(0,e.A)(l,"709c842e02077efeefe4ff38aef3491f98eb077b03",null),(0,e.A)(m,"7024510da81385c90409e0c6c0e9011ccae9e06e0b",null),(0,e.A)(n,"70f6f5e192b9401fcdb9d8a68cf604798031ffd6dc",null);var o=c(90365);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,"600037ab56c866f29f47ba4b4c050cb04610f5fc10",null),(0,e.A)(q,"706f39955cdc298213574bda5816000947124caefb",null),(0,e.A)(r,"703b044eeb381107b7d39402d59059d1cb109be0d4",null),(0,e.A)(s,"708470f0fcba9491c7ed3c9d8df8e525c20463a226",null)},58445:(a,b,c)=>{c.d(b,{W:()=>k});var d=c(45413),e=c(60223),f=c(23328),g=c(41489),h=c(74188),i=c(65049);let j=(0,i.createServerReference)("708470f0fcba9491c7ed3c9d8df8e525c20463a226",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})}},62722:(a,b,c)=>{c.d(b,{ArtifactComponentForm:()=>d});let d=(0,c(16979).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")},67251:(a,b,c)=>{c.r(b),c.d(b,{default:()=>j});var d=c(19667),e=c(36873),f=c(68088),g=c(37230),h=c(78278),i=c(50818);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}`))})]})})}},79744:(a,b,c)=>{c.d(b,{g:()=>d});let d={id:"",name:"",description:"",props:void 0}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=759,exports.ids=[759],exports.modules={6228:(a,b,c)=>{c.r(b),c.d(b,{"40c4ab61ea3220efcbacd087bf2bf8b415a15a0e12":()=>d.vj,"6099db38787530d8ef0675b8fa0b844cb2cb99a59b":()=>d.xx,"60ceffc5d37d2e4abc1b52fa3ba60fbc87954ae6bf":()=>d.Sw,"60f67d1340538042392ac0141b662b8dec2fb96680":()=>d.gA,"70c120efb681475f044e72182a39cd8afbb692ddea":()=>d.vr});var d=c(9202)},29016:(a,b,c)=>{c.d(b,{H:()=>p});var d=c(63529),e=c(24888),f=c(63307),g=c(50493);let h=a=>Math.floor(a/1e6),i=f.union([f.string(),f.number(),f.boolean()]),j=a=>{try{if("true"===a)return i.parse(!0);if("false"===a)return i.parse(!1);let b=/^-?\d+(\.\d+)?$/.test(a)?Number(a):a;if("number"==typeof b)return i.parse(b);return i.parse(a)}catch(b){return console.warn(`Failed to parse filter value "${a}":`,b),i.parse(a)}},k=a=>parseInt(a.values?.[0]?.value??"0",10)||0,l=a=>Number(a.values?.[0]?.value??0)||0,m=(a,b)=>{let c=new Date(a);c.setHours(0,0,0,0);let d=new Date(b);d.setHours(0,0,0,0);let e=[];for(let a=new Date(c);a<=d;a.setDate(a.getDate()+1))e.push(`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`);return e};(0,e.Ay)(d.A,{retries:3,retryDelay:e.Ay.exponentialDelay});class n{async makeRequest(a){return(await d.A.post("/api/signoz",a,{timeout:3e4,headers:{"Content-Type":"application/json"}})).data}extractSeries(a,b){return a?.data?.result?.find(a=>a?.queryName===b)?.series??[]}async getConversationStats(a,b,c,d,e,f,g){try{return await this.getConversationStatsPaginated(a,b,c,d,e,f,g)}catch(a){return console.error("getConversationStats error:",a),{data:[],pagination:{page:e.page,limit:e.limit,total:0,totalPages:0,hasNextPage:!1,hasPreviousPage:!1}}}}async getConversationStatsPaginated(a,b,c,d,e,f,i){let{conversationIds:j,total:k}=await this.getPaginatedConversationIds(a,b,c,d,e,f,i);if(0===j.length)return{data:[],pagination:{page:e.page,limit:e.limit,total:k,totalPages:Math.ceil(k/e.limit),hasNextPage:e.page<Math.ceil(k/e.limit),hasPreviousPage:e.page>1}};let m=this.buildCombinedPayload(a,b,c,d,i,j),n=await this.makeRequest(m),o=this.extractSeries(n,g.XQ.TOOLS),p=this.extractSeries(n,g.XQ.TRANSFERS),q=this.extractSeries(n,g.XQ.DELEGATIONS),r=this.extractSeries(n,g.XQ.AI_CALLS),s=this.extractSeries(n,g.XQ.LAST_ACTIVITY),t=this.extractSeries(n,g.XQ.CONVERSATION_METADATA),u=this.extractSeries(n,g.XQ.SPANS_WITH_ERRORS),v=this.extractSeries(n,g.XQ.USER_MESSAGES),w=new Map;for(let a of t){let b=a.labels?.[g.SH.CONVERSATION_ID];b&&w.set(b,{tenantId:a.labels?.[g.SH.TENANT_ID]??g.PC,agentId:a.labels?.[g.SH.AGENT_ID]??g.PC,agentName:a.labels?.[g.SH.AGENT_NAME]??g.PC})}let x=new Map;for(let a of s){let b=a.labels?.[g.SH.CONVERSATION_ID];b&&x.set(b,l(a))}let y=new Map,z=new Map;for(let a of v){let b=a.labels?.[g.SH.CONVERSATION_ID],c=a.labels?.[g.SH.MESSAGE_CONTENT],d=l(a);b&&c&&(z.get(b)??z.set(b,[]).get(b))?.push({t:d,c:c})}for(let[a,b]of z){b.sort((a,b)=>a.t-b.t);let c=b[0];if(c){let b=c.c.length>100?`${c.c.slice(0,100)}...`:c.c;y.set(a,{content:b,timestamp:h(c.t)})}}let A=new Map(this.toConversationStats(o,p,q,r,w,u,y).map(a=>[a.conversationId,a])),B=j.map(a=>A.get(a)).filter(a=>void 0!==a);return B.sort((a,b)=>((a=0,b=0)=>b-a)(x.get(a.conversationId),x.get(b.conversationId))),{data:B,pagination:{page:e.page,limit:e.limit,total:k,totalPages:Math.ceil(k/e.limit),hasNextPage:e.page<Math.ceil(k/e.limit),hasPreviousPage:e.page>1}}}async getPaginatedConversationIds(a,b,c,d,e,f,h){let i=this.buildFilteredConversationIdsPayload(a,b,c,d,h,!!f?.trim()),j=await this.makeRequest(i),k=this.extractSeries(j,g.XQ.LAST_ACTIVITY),m=new Map;for(let a of k){let b=a.labels?.[g.SH.CONVERSATION_ID];b&&m.set(b,l(a))}let n=Array.from(m.keys());if(c?.spanName||c?.attributes?.length){let a=new Set(this.extractSeries(j,g.XQ.FILTERED_CONVERSATIONS).map(a=>a.labels?.[g.SH.CONVERSATION_ID]).filter(Boolean));n=n.filter(b=>a.has(b))}if(f?.trim()){let a=this.extractSeries(j,g.XQ.CONVERSATION_METADATA),b=new Map;for(let c of a){let a=c.labels?.[g.SH.CONVERSATION_ID],d=c.labels?.[g.SH.AGENT_ID];a&&b.set(a,{agentId:d??"",conversationId:a})}let c=this.extractSeries(j,g.XQ.USER_MESSAGES),d=new Map;for(let a of c){let b=a.labels?.[g.SH.CONVERSATION_ID],c=a.labels?.[g.SH.MESSAGE_CONTENT];b&&c&&(d.has(b)||d.set(b,c))}let e=f.toLowerCase().trim();n=n.filter(a=>{let c=b.get(a),f=d.get(a);return f?.toLowerCase().includes(e)||a.toLowerCase().includes(e)||c?.agentId.toLowerCase().includes(e)})}n.sort((a,b)=>{let c=m.get(a)??0;return(m.get(b)??0)-c});let o=n.length,p=(e.page-1)*e.limit;return{conversationIds:n.slice(p,p+e.limit),total:o}}async getAICallsBySubAgent(a,b,c,d,e){try{let f=await this.makeRequest(this.buildAgentModelBreakdownPayload(a,b,e)),h=this.extractSeries(f,"agentModelCalls"),i=new Map;for(let a of h){let b=a.labels?.[g.SH.AI_TELEMETRY_FUNCTION_ID]||g.PC,e=a.labels?.[g.SH.AGENT_ID]||g.PC,f=a.labels?.[g.SH.AI_MODEL_ID]||g.PC,h=k(a);if(!h||c&&"all"!==c&&e!==c||d&&"all"!==d&&f!==d)continue;let j=`${b}::${e}::${f}`,l=i.get(j)||{subAgentId:b,agentId:e,modelId:f,totalCalls:0};l.totalCalls+=h,i.set(j,l)}return[...i.values()].sort((a,b)=>b.totalCalls-a.totalCalls)}catch(a){return console.error("getAICallsByAgent error:",a),[]}}async getAICallsByModel(a,b,c,d){try{let e=await this.makeRequest(this.buildModelBreakdownPayload(a,b,d)),f=this.extractSeries(e,"modelCalls"),h=new Map;for(let a of f){let b=a.labels?.[g.SH.AI_MODEL_ID]||g.PC,d=a.labels?.[g.SH.AGENT_ID]||g.PC,e=k(a);e&&(c&&"all"!==c&&d!==c||h.set(b,(h.get(b)||0)+e))}return[...h].map(([a,b])=>({modelId:a,totalCalls:b})).sort((a,b)=>b.totalCalls-a.totalCalls)}catch(a){return console.error("getAICallsByModel error:",a),[]}}async getUniqueAgents(a,b,c){try{let d=await this.makeRequest(this.buildUniqueAgentsPayload(a,b,c)),e=this.extractSeries(d,"uniqueAgents").map(a=>a.labels?.[g.SH.AGENT_ID]).filter(a=>!!a&&a!==g.PC).sort();return[...new Set(e)]}catch(a){return console.error("getUniqueAgents error:",a),[]}}async getUniqueModels(a,b,c){try{let d=await this.makeRequest(this.buildUniqueModelsPayload(a,b,c)),e=this.extractSeries(d,"uniqueModels").map(a=>a.labels?.[g.SH.AI_MODEL_ID]).filter(a=>!!a&&a!==g.PC).sort();return[...new Set(e)]}catch(a){return console.error("getUniqueModels error:",a),[]}}async getConversationsPerDay(a,b,c,d){try{let e=await this.makeRequest(this.buildConversationMetadataPayload(a,b,c,d)),f=this.extractSeries(e,"conversationMetadata").length?this.extractSeries(await this.makeRequest(this.buildConversationActivityPayload(a,b,c,d)),"lastActivity"):[],g=new Map;for(let a of f){let b=h(l(a));if(!b)continue;let c=new Date(b),d=`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`;g.set(d,(g.get(d)||0)+1)}return m(a,b).map(a=>({date:a,count:g.get(a)||0}))}catch(c){return console.error("getConversationsPerDay error:",c),m(a,b).map(a=>({date:a,count:0}))}}async getAggregateStats(a,b,c,d,e){try{let f;if(c?.spanName||c?.attributes?.length){let e=this.buildFilteredConversationsPayload(a,b,c,d),h=await this.makeRequest(e);if(f=this.extractSeries(h,"filteredConversations").map(a=>a.labels?.[g.SH.CONVERSATION_ID]).filter(Boolean),0===f.length)return{totalToolCalls:0,totalTransfers:0,totalDelegations:0,totalConversations:0,totalAICalls:0}}let h=this.buildAggregateBadgesPayload(a,b,d,e,f),i=await this.makeRequest(h),j=this.extractSeries(i,"totalToolCalls"),l=this.extractSeries(i,"totalTransfers"),m=this.extractSeries(i,"totalDelegations"),n=this.extractSeries(i,"totalAICalls"),o=this.extractSeries(i,"totalConversations");return{totalToolCalls:k(j[0]||{values:[{value:"0"}]}),totalTransfers:k(l[0]||{values:[{value:"0"}]}),totalDelegations:k(m[0]||{values:[{value:"0"}]}),totalConversations:f?f.length:k(o[0]||{values:[{value:"0"}]}),totalAICalls:k(n[0]||{values:[{value:"0"}]})}}catch(a){return console.error("getAggregateStats error:",a),{totalToolCalls:0,totalTransfers:0,totalDelegations:0,totalConversations:0,totalAICalls:0}}}async getAvailableSpanNames(a,b,c,d){try{let e=[{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EXISTS,value:""}];c&&"all"!==c&&e.push({key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}),d&&e.push({key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d});let f={start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.LIST,builderQueries:{spanNames:{dataSource:g.YL.TRACES,queryName:g.XQ.SPAN_NAMES,aggregateOperator:g.qf.NOOP,aggregateAttribute:{},filters:{op:g.we.AND,items:e},selectColumns:[{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN}],expression:g.XQ.SPAN_NAMES,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,stepInterval:g.yZ.STEP_INTERVAL,limit:g.yZ.LIMIT_UNLIMITED,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],groupBy:g.yZ.EMPTY_GROUP_BY,offset:g.yZ.OFFSET}}},dataSource:g.YL.TRACES,projectId:d},h=await this.makeRequest(f),i=h?.data?.result?.find(a=>a?.queryName==="spanNames")?.list??[],j=new Set;for(let a of i){let b=a?.data?.name??a?.name;b&&j.add(b)}return[...j].sort()}catch(a){return console.error("getAvailableSpanNames error:",a),[]}}toConversationStats(a,b,c,d,e,f,h){let i=new Map,j=a=>{let b=i.get(a);if(b)return b;let c={totalToolCalls:0,toolsUsed:new Map,transfers:new Map,totalTransfers:0,delegations:new Map,totalDelegations:0,totalAICalls:0,totalErrors:0};return i.set(a,c),c};for(let b of a){let a=b.labels?.[g.SH.CONVERSATION_ID];if(!a)continue;let c=b.labels?.[g.SH.AI_TOOL_CALL_NAME];if(!c)continue;let d=k(b);if(!d)continue;let e=b.labels?.[g.SH.MCP_TOOL_DESCRIPTION]||"",f=j(a);f.totalToolCalls+=d;let h=f.toolsUsed.get(c)||{name:c,calls:0,description:e};h.calls+=d,f.toolsUsed.set(c,h)}for(let a of b){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=a.labels?.[g.SH.TRANSFER_FROM_SUB_AGENT_ID],d=a.labels?.[g.SH.TRANSFER_TO_SUB_AGENT_ID],e=k(a);if(!c||!d||!e)continue;let f=j(b);f.totalTransfers+=e;let h=`${c}→${d}`,i=f.transfers.get(h)||{from:c,to:d,count:0};i.count+=e,f.transfers.set(h,i)}for(let a of c){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=a.labels?.[g.SH.DELEGATION_FROM_SUB_AGENT_ID],d=a.labels?.[g.SH.DELEGATION_TO_SUB_AGENT_ID],e=k(a);if(!c||!d||!e)continue;let f=j(b);f.totalDelegations+=e;let h=`${c}→${d}`,i=f.delegations.get(h)||{from:c,to:d,count:0};i.count+=e,f.delegations.set(h,i)}for(let a of d){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=k(a);c&&(j(b).totalAICalls+=c)}let l=["execution_handler.execute","agent.load_tools","context.handle_context_resolution","context.resolve","agent.generate","context-resolver.resolve_single_fetch_definition","agent_session.generate_structured_update","agent_session.process_artifact","agent_session.generate_artifact_metadata","response.format_object_response","response.format_response","ai.toolCall"];for(let a of f){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=a.labels?.[g.SH.NAME]||"",d=k(a);d&&l.includes(c)&&(j(b).totalErrors+=d)}let m=[];for(let a of new Set([...i.keys(),...e.keys()])){let b=i.get(a)||j(a),c=e.get(a)||{tenantId:g.PC,agentId:g.PC,agentName:g.PC};m.push({conversationId:a,tenantId:c.tenantId,agentId:c.agentId,agentName:c.agentName||"",totalToolCalls:b.totalToolCalls,toolsUsed:[...b.toolsUsed.values()],transfers:[...b.transfers.values()],totalTransfers:b.totalTransfers,delegations:[...b.delegations.values()],totalDelegations:b.totalDelegations,totalAICalls:b.totalAICalls,totalErrors:b.totalErrors,hasErrors:b.totalErrors>0,firstUserMessage:h.get(a)?.content,startTime:h.get(a)?.timestamp})}return m}buildAgentModelBreakdownPayload(a,b,c){return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{agentModelCalls:{dataSource:g.YL.TRACES,queryName:g.XQ.AGENT_MODEL_CALLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:[{key:{key:g.SH.AI_OPERATION_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.yR.GENERATE_TEXT},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]]},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.AI_TELEMETRY_FUNCTION_ID,...g.A3.STRING_TAG},{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG}],expression:g.XQ.AGENT_MODEL_CALLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}}},dataSource:g.YL.TRACES,projectId:c}}buildModelBreakdownPayload(a,b,c){return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{modelCalls:{dataSource:g.YL.TRACES,queryName:g.XQ.MODEL_CALLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:[{key:{key:g.SH.AI_OPERATION_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.yR.GENERATE_TEXT},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]]},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG},{key:g.SH.AGENT_ID,...g.A3.STRING_TAG}],expression:g.XQ.MODEL_CALLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}}},dataSource:g.YL.TRACES,projectId:c}}buildConversationActivityPayload(a,b,c,d){let e=[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c&&"all"!==c?[{key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[],...d?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{lastActivity:{dataSource:g.YL.TRACES,queryName:g.XQ.LAST_ACTIVITY,aggregateOperator:g.qf.MIN,aggregateAttribute:{key:g.SH.TIMESTAMP,...g.A3.INT64_TAG_COLUMN},filters:{op:g.we.AND,items:e},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.LAST_ACTIVITY,reduceTo:g.U_.MIN,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}}},dataSource:g.YL.TRACES,projectId:d}}buildConversationMetadataPayload(a,b,c,d){let e=[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c&&"all"!==c?[{key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[],...d?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{conversationMetadata:{dataSource:g.YL.TRACES,queryName:g.XQ.CONVERSATION_METADATA,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:e},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},{key:g.SH.AGENT_NAME,...g.A3.STRING_TAG}],expression:g.XQ.CONVERSATION_METADATA,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}}},dataSource:g.YL.TRACES,projectId:d}}buildFilteredConversationIdsPayload(a,b,c,d,e,f){let h=()=>{let a=[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}];return e&&"all"!==e&&a.push({key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:e}),d&&a.push({key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}),a},i={lastActivity:{dataSource:g.YL.TRACES,queryName:g.XQ.LAST_ACTIVITY,aggregateOperator:g.qf.MIN,aggregateAttribute:{key:g.SH.TIMESTAMP,...g.A3.INT64_TAG_COLUMN},filters:{op:g.we.AND,items:h()},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.LAST_ACTIVITY,reduceTo:g.U_.MIN,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}};if(c?.spanName||c?.attributes?.length){let a=[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}];for(let b of(c.spanName&&a.push({key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:c.spanName}),c.attributes??[])){let c=b.operator??g.we.EQUALS,d=j(b.value),e=g.hL.STRING;if("boolean"==typeof d?e=g.hL.BOOL:"number"==typeof d&&(e=Number.isInteger(d)?g.hL.INT64:g.hL.FLOAT64),c===g.we.EXISTS||c===g.we.NOT_EXISTS){a.push({key:{key:b.key,...g.A3.STRING_TAG},op:c,value:""});continue}if(c!==g.we.LIKE&&c!==g.we.NOT_LIKE||"string"!=typeof d||d.includes("%")||(d=`%${d}%`),(e===g.hL.INT64||e===g.hL.FLOAT64)&&c===g.we.EQUALS){let c=e===g.hL.INT64?g.A3.INT64_TAG:g.A3.FLOAT64_TAG;a.push({key:{key:b.key,...c},op:g.we.GREATER_THAN_OR_EQUAL,value:d}),a.push({key:{key:b.key,...c},op:g.we.LESS_THAN_OR_EQUAL,value:d})}else{let f=e===g.hL.STRING?g.A3.STRING_TAG:e===g.hL.INT64?g.A3.INT64_TAG:e===g.hL.FLOAT64?g.A3.FLOAT64_TAG:g.A3.BOOL_TAG;a.push({key:{key:b.key,...f},op:c,value:d})}}d&&a.push({key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}),i.filteredConversations={dataSource:g.YL.TRACES,queryName:g.XQ.FILTERED_CONVERSATIONS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:a},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.FILTERED_CONVERSATIONS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}}if(f){let a=h();a.push({key:{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}),i.conversationMetadata={dataSource:g.YL.TRACES,queryName:g.XQ.CONVERSATION_METADATA,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:a},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},{key:g.SH.AGENT_NAME,...g.A3.STRING_TAG}],expression:g.XQ.CONVERSATION_METADATA,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED};let b=h();b.push({key:{key:g.SH.MESSAGE_CONTENT,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}),i.userMessages={dataSource:g.YL.TRACES,queryName:g.XQ.USER_MESSAGES,aggregateOperator:g.qf.MIN,aggregateAttribute:{key:g.SH.TIMESTAMP,...g.A3.INT64_TAG_COLUMN},filters:{op:g.we.AND,items:b},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.MESSAGE_CONTENT,...g.A3.STRING_TAG}],expression:g.XQ.USER_MESSAGES,reduceTo:g.U_.MIN,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.ASC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}}return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:i},dataSource:g.YL.TRACES,projectId:d}}buildFilteredConversationsPayload(a,b,c,d){let e=[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}];for(let a of(c.spanName&&e.push({key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:c.spanName}),c.attributes??[])){let b=a.operator??g.we.EQUALS,c=j(a.value),d="string";if("boolean"==typeof c?d="bool":"number"==typeof c&&(d=Number.isInteger(c)?"int64":"float64"),b===g.we.EXISTS||b===g.we.NOT_EXISTS){e.push({key:{key:a.key,...g.A3.STRING_TAG},op:b,value:""});continue}if(b!==g.we.LIKE&&b!==g.we.NOT_LIKE||"string"!=typeof c||c.includes("%")||(c=`%${c}%`),("int64"===d||"float64"===d)&&b===g.we.EQUALS){let b="int64"===d?g.A3.INT64_TAG:g.A3.FLOAT64_TAG;e.push({key:{key:a.key,...b},op:g.we.GREATER_THAN_OR_EQUAL,value:c}),e.push({key:{key:a.key,...b},op:g.we.LESS_THAN_OR_EQUAL,value:c})}else{let f="string"===d?g.A3.STRING_TAG:"int64"===d?g.A3.INT64_TAG:"float64"===d?g.A3.FLOAT64_TAG:g.A3.BOOL_TAG;e.push({key:{key:a.key,...f},op:b,value:c})}}return d&&e.push({key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}),{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{filteredConversations:{dataSource:g.YL.TRACES,queryName:g.XQ.FILTERED_CONVERSATIONS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:e},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.FILTERED_CONVERSATIONS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}}},dataSource:g.YL.TRACES,projectId:d}}buildAggregateBadgesPayload(a,b,c,d,e){let f,h=(f=[],c&&f.push({key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}),d&&f.push({key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}),f),i=e&&e.length>0?[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.IN,value:e}]:[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{totalToolCalls:{dataSource:g.YL.TRACES,queryName:"totalToolCalls",aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:[...h,{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},...i,{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.MCP}]},groupBy:g.yZ.EMPTY_GROUP_BY,expression:"totalToolCalls",reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED},totalTransfers:{dataSource:g.YL.TRACES,queryName:"totalTransfers",aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:[...h,{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.TRANSFER},...i]},groupBy:g.yZ.EMPTY_GROUP_BY,expression:"totalTransfers",reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED},totalDelegations:{dataSource:g.YL.TRACES,queryName:"totalDelegations",aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:[...h,{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.DELEGATION},...i]},groupBy:g.yZ.EMPTY_GROUP_BY,expression:"totalDelegations",reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED},totalAICalls:{dataSource:g.YL.TRACES,queryName:"totalAICalls",aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:[...h,{key:{key:g.SH.AI_OPERATION_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.yR.GENERATE_TEXT},...i]},groupBy:g.yZ.EMPTY_GROUP_BY,expression:"totalAICalls",reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED},totalConversations:{dataSource:g.YL.TRACES,queryName:"totalConversations",aggregateOperator:g.qf.COUNT_DISTINCT,aggregateAttribute:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},filters:{op:g.we.AND,items:[...h,...i,{key:{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}]},groupBy:g.yZ.EMPTY_GROUP_BY,expression:"totalConversations",reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}}},dataSource:g.YL.TRACES,projectId:c}}buildCombinedPayload(a,b,c,d,e,f){let h=a=>{let b=a;return d&&(b=[...b,{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}]),e&&(b=[...b,{key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:e}]),b=f&&f.length>0?[...b,{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.IN,value:f}]:[...b,{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}]};return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{tools:{dataSource:g.YL.TRACES,queryName:g.XQ.TOOLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:h([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.MCP}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.AI_TOOL_CALL_NAME,...g.A3.STRING_TAG}],expression:g.XQ.TOOLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED},transfers:{dataSource:g.YL.TRACES,queryName:g.XQ.TRANSFERS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:h([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.TRANSFER}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.TRANSFER_FROM_SUB_AGENT_ID,...g.A3.STRING_TAG},{key:g.SH.TRANSFER_TO_SUB_AGENT_ID,...g.A3.STRING_TAG}],expression:g.XQ.TRANSFERS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED},delegations:{dataSource:g.YL.TRACES,queryName:g.XQ.DELEGATIONS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:h([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.DELEGATION}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.DELEGATION_FROM_SUB_AGENT_ID,...g.A3.STRING_TAG},{key:g.SH.DELEGATION_TO_SUB_AGENT_ID,...g.A3.STRING_TAG}],expression:g.XQ.DELEGATIONS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED},conversationMetadata:{dataSource:g.YL.TRACES,queryName:g.XQ.CONVERSATION_METADATA,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:h([{key:{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},{key:g.SH.AGENT_NAME,...g.A3.STRING_TAG}],expression:g.XQ.CONVERSATION_METADATA,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED},aiCalls:{dataSource:g.YL.TRACES,queryName:g.XQ.AI_CALLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:h([{key:{key:g.SH.AI_OPERATION_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.yR.GENERATE_TEXT}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},{key:g.SH.AI_TELEMETRY_FUNCTION_ID,...g.A3.STRING_TAG}],expression:g.XQ.AI_CALLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED},lastActivity:{dataSource:g.YL.TRACES,queryName:g.XQ.LAST_ACTIVITY,aggregateOperator:g.qf.MIN,aggregateAttribute:{key:g.SH.TIMESTAMP,...g.A3.INT64_TAG_COLUMN},filters:{op:g.we.AND,items:h([])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.LAST_ACTIVITY,reduceTo:g.U_.MIN,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED},spansWithErrors:{dataSource:g.YL.TRACES,queryName:g.XQ.SPANS_WITH_ERRORS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:h([{key:{key:g.SH.HAS_ERROR,...g.A3.BOOL_TAG_COLUMN},op:g.we.EQUALS,value:!0}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN}],expression:g.XQ.SPANS_WITH_ERRORS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED},userMessages:{dataSource:g.YL.TRACES,queryName:g.XQ.USER_MESSAGES,aggregateOperator:g.qf.MIN,aggregateAttribute:{key:g.SH.TIMESTAMP,...g.A3.INT64_TAG_COLUMN},filters:{op:g.we.AND,items:h([{key:{key:g.SH.MESSAGE_CONTENT,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.MESSAGE_CONTENT,...g.A3.STRING_TAG}],expression:g.XQ.USER_MESSAGES,reduceTo:g.U_.MIN,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.ASC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}}},dataSource:g.YL.TRACES,projectId:d}}buildUniqueAgentsPayload(a,b,c){let d=[{key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.AGENT_ID,...g.A3.STRING_TAG},op:g.we.NOT_EQUALS,value:g.PC},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{uniqueAgents:{dataSource:g.YL.TRACES,queryName:g.XQ.UNIQUE_AGENTS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:d},groupBy:[{key:g.SH.AGENT_ID,...g.A3.STRING_TAG}],expression:g.XQ.UNIQUE_AGENTS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.AGENT_ID,order:g.SL.ASC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}}},dataSource:g.YL.TRACES,projectId:c}}buildUniqueModelsPayload(a,b,c){let d=[{key:{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG},op:g.we.NOT_EQUALS,value:g.PC},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{uniqueModels:{dataSource:g.YL.TRACES,queryName:g.XQ.UNIQUE_MODELS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:d},groupBy:[{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG}],expression:g.XQ.UNIQUE_MODELS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.AI_MODEL_ID,order:g.SL.ASC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_UNLIMITED}}},dataSource:g.YL.TRACES,projectId:c}}}let o=null;function p(){return o??=new n}},50493:(a,b,c)=>{c.d(b,{A3:()=>d.A3,Nv:()=>d.Nv,PC:()=>d.PC,SH:()=>d.SH,SL:()=>d.SL,U_:()=>d.U_,XQ:()=>d.XQ,YL:()=>d.YL,aR:()=>d.aR,cZ:()=>d.cZ,hL:()=>d.hL,qf:()=>d.qf,we:()=>d.we,yR:()=>d.yR,yZ:()=>d.yZ,zD:()=>d.zD});var d=c(21498)}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=8914,exports.ids=[8914],exports.modules={19777:(a,b,c)=>{c.d(b,{$Y:()=>g,GO:()=>i,K3:()=>h,h9:()=>k});var d=c(46649);c(75909);var e=c(55310),f=c(40555);async function g(a,b,c=1,d=50){(0,f.M2)(a),(0,f.nt)(b);let h=new URLSearchParams({page:c.toString(),limit:d.toString()});return(await (0,e.J)(`tenants/${a}/projects/${b}/credentials?${h}`)).data}async function h(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`)).data}async function i(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials`,{method:"POST",body:JSON.stringify(c)})).data}async function j(a,b,c,d){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"PUT",body:JSON.stringify(d)})).data}async function k(a,b,c){(0,f.M2)(a),(0,f.nt)(b),await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}(0,c(33341).D)([g,h,i,j,k]),(0,d.A)(g,"78124ff32efa700d1f3e6a4e79682f81fe450fc623",null),(0,d.A)(h,"700286de748a55ddf449d3d3e2dfd22668f793cd9e",null),(0,d.A)(i,"70b06810025c754d315939b6b84b92dfae70319dbc",null),(0,d.A)(j,"7856c60c5abb980252ac3f61cb30504dbd13fc3239",null),(0,d.A)(k,"70a0a7baab60989c0670b421bd478bd7d505f4356d",null)},45214:(a,b,c)=>{c.d(b,{U:()=>f});var d=c(46649);c(75909);var e=c(19777);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(33341).D)([f]),(0,d.A)(f,"7039089de85cc5406787448242f102bf41a08b1399",null)},47350:(a,b,c)=>{c.d(b,{u:()=>e});var d=c(65049);let e=(0,d.createServerReference)("40f60a669042e91da3cdb9a365b1070de69caf13b2",d.callServer,void 0,d.findSourceMapURL,"createProviderConnectSession")},69146:(a,b,c)=>{c.d(b,{U:()=>e});var d=c(65049);let e=(0,d.createServerReference)("7039089de85cc5406787448242f102bf41a08b1399",d.callServer,void 0,d.findSourceMapURL,"findOrCreateCredential")},82994:(a,b,c)=>{c.d(b,{$:()=>h});var d=c(4283),e=c(23328),f=c(3763),g=c(47350);function h(){let{PUBLIC_NANGO_SERVER_URL:a,PUBLIC_NANGO_CONNECT_BASE_URL:b}=(0,f.y)();return{openNangoConnect:(0,e.useCallback)(({sessionToken:c,onEvent:e,connectOptions:f})=>{let g=new d.Ay({host:a||void 0}).openConnectUI({baseURL:f?.baseURL||b||void 0,apiURL:f?.apiURL||a||void 0,onEvent:e,detectClosedAuthWindow:!0});return g.setSessionToken(c),g},[a,b]),openNangoConnectHeadless:(0,e.useCallback)(async({mcpServerUrl:b,providerUniqueKey:c,providerDisplayName:e})=>{let f=await (0,g.u)({providerName:"mcp-generic",uniqueKey:c,displayName:e}),h=new d.Ay({host:a||void 0,connectSessionToken:f});try{return await h.auth(c,{detectClosedAuthWindow:!0,params:{mcp_server_url:b}})}catch(a){if(a instanceof Error)throw Error(`Authentication failed: ${a.message}`);throw a}},[a])}}},94399:(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(46649);c(75909);var e=c(47868),f=c(81866);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(33341);let j=()=>{let a=process.env.NANGO_SECRET_KEY;if(!a)throw new g("NANGO_SECRET_KEY environment variable is required for Nango integration");try{return new e.CA({secretKey:a,host:process.env.NANGO_SERVER_URL||"https://api.nango.dev"})}catch(a){throw new g("Failed to initialize Nango client","new Nango",a)}};async function k(){let a=process.env.NANGO_SECRET_KEY;return!!(a&&""!==a.trim())}async function l(){try{let a=j();return(await a.listProviders({})).data}catch(a){console.error("Failed to fetch providers:",a),h(a,"Unable to retrieve available providers from Nango","listProviders")}}async function m(a){try{let b=j();return(await b.getProvider({provider:a})).data}catch(b){console.error(`Failed to fetch provider ${a}:`,b),h(b,`Provider '${a}' not found or inaccessible`,"getProvider")}}async function n(){try{let a=j();return(await a.listIntegrations()).configs}catch(a){console.error("Failed to fetch integrations:",a),h(a,"Unable to retrieve existing integrations","listIntegrations")}}async function o(a){try{let b=j(),c=(await b.getIntegration({uniqueKey:a},{include:["credentials"]})).data,d=!1;d=c.credentials?.type==="OAUTH2"||c.credentials?.type==="OAUTH1"||c.credentials?.type==="TBA"?!!(c.credentials?.client_id&&c.credentials?.client_secret):c.credentials?.type!=="APP"||!!(c.credentials?.app_id&&c.credentials?.app_link);let{credentials:e,...f}=c;return{...f,areCredentialsSet:d}}catch(b){if(b&&"object"==typeof b&&"status"in b&&404===b.status)return null;console.error(`Failed to fetch integration ${a}:`,b),h(b,`Unable to fetch integration with key '${a}'`,"getIntegration")}}async function p(a){try{let b=j();return(await b.createIntegration({provider:a.provider,unique_key:a.uniqueKey,display_name:a.displayName,credentials:a.credentials})).data}catch(b){console.error("Failed to create integration:",b),h(b,`Failed to create integration '${a.uniqueKey}' for provider '${a.provider}'`,"createIntegration")}}async function q({uniqueKey:a}){let b=process.env.NANGO_SECRET_KEY;if(!b)throw new g("NANGO_SECRET_KEY environment variable is required for Nango integration");let c=process.env.NANGO_SERVER_URL||"https://api.nango.dev",d=process.env.OAUTH_CLIENT_NAME||"Inkeep Agent Framework",e=process.env.OAUTH_CLIENT_URI||"https://inkeep.com",f=process.env.OAUTH_CLIENT_LOGO_URI||"https://inkeep.com/images/logos/inkeep-logo-blue.svg",h=await fetch(`${c}/integrations/${a}`,{method:"PATCH",headers:{Authorization:`Bearer ${b}`,"Content-Type":"application/json"},body:JSON.stringify({custom:{oauth_client_name:d,oauth_client_uri:e,oauth_client_logo_uri:f}})});if(!h.ok){let a=await h.json().catch(()=>({}));throw new g(`Failed to update integration: ${h.status} ${h.statusText}`,"updateMCPGenericIntegration",a)}return await h.json()}async function r(a){try{let a=j();return(await a.listConnections()).connections}catch(c){let b=a?` for integration '${a}'`:"";console.error(`Failed to fetch connections${b}:`,c),h(c,`Unable to retrieve connections${b}`,"listConnections")}}async function s({endUserId:a="test-tenant",endUserEmail:b="test@test-tenant.com",endUserDisplayName:c="Test User",organizationId:d=process.env.TENANT_ID||f.P3,organizationDisplayName:e="Test Organization",integrationId:g}){try{let f=j(),{data:h}=await f.createConnectSession({end_user:{id:a,email:b,display_name:c},organization:{id:d,display_name:e},allowed_integrations:[g]});return h}catch(a){console.error("Failed to create connect session:",a),h(a,`Unable to create connect session for integration '${g}'`,"createConnectSession")}}async function t({providerName:a,uniqueKey:b,displayName:c,credentials:d}){try{let e,f=null;try{f=await o(b)}catch(b){if(b instanceof g)throw b;console.debug(`Integration '${a}' not found, will create new one`)}if(f?.areCredentialsSet)e=f;else try{e=await p({provider:a,uniqueKey:b,displayName:c,credentials:d})}catch(b){h(b,`Failed to create integration for provider '${a}'`,"create")}if("mcp-generic"===a)try{await q({uniqueKey:e.unique_key})}catch(a){console.warn("Failed to update MCP generic integration:",a)}try{return(await s({integrationId:e.unique_key})).token}catch(a){h(a,`Failed to create connect session for integration '${e.unique_key}'`,"createConnectSession")}}catch(b){console.error("Unexpected error creating provider connect session:",b),h(b,`Unexpected error creating connect session for provider '${a}'`,"createProviderConnectSession")}}async function u({providerConfigKey:a,connectionId:b}){try{let c=j();return await c.getMetadata(a,b)}catch(a){if(a&&"object"==typeof a&&"status"in a&&404===a.status)return null;console.error("Failed to get connection metadata:",a),h(a,`Unable to retrieve metadata for connection '${b}'`,"getMetadata")}}async function v({providerConfigKey:a,connectionId:b,metadata:c}){try{let d=j();await d.setMetadata(a,b,c)}catch(a){console.error("Failed to set connection metadata:",a),h(a,`Unable to update metadata for connection '${b}'`,"setMetadata")}}(0,i.D)([k,l,m,n,o,q,r,t,u,v]),(0,d.A)(k,"004a0c56ff1c768ac0b5f5d2ce837886e6210492a0",null),(0,d.A)(l,"0034e6387f54d8e66e862d3e5b84a9f43c23da940d",null),(0,d.A)(m,"405511a58582f5d34d28738bed97438c748ae777fb",null),(0,d.A)(n,"009d0b39790c4fac9df126f7b59b4805dc8151004b",null),(0,d.A)(o,"401a69d91ed5457b624c2af77659738a3163929743",null),(0,d.A)(q,"408991c73b93d7c832aa05f6fa423a3494bef4e39e",null),(0,d.A)(r,"40a75f3e5e1d35ef8524e6cb949c7ec43de0c3b0b1",null),(0,d.A)(t,"40f60a669042e91da3cdb9a365b1070de69caf13b2",null),(0,d.A)(u,"4057f695a4f1faf960253f4ae2b5289e3c997908f1",null),(0,d.A)(v,"409250244a22b02bc5edb8441c96ba1cefd0cb80cc",null)}};