@inkeep/agents-manage-ui 0.0.0-dev-20251021151132 → 0.0.0-dev-20251021180725

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 (200) hide show
  1. package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
  2. package/.next/standalone/agents-manage-ui/.next/app-build-manifest.json +113 -113
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +9 -9
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/agents-manage-ui/.next/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/[agentId]/page.js +2 -2
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js.nft.json +1 -1
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js.nft.json +1 -1
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +1 -1
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js.nft.json +1 -1
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js.nft.json +1 -1
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js.nft.json +1 -1
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js.nft.json +1 -1
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js.nft.json +1 -1
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js.nft.json +1 -1
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  76. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +3 -3
  79. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  80. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  82. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  83. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  85. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js.nft.json +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  88. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  89. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +8 -8
  92. package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-preview/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  96. package/.next/standalone/agents-manage-ui/.next/server/app/page.js.nft.json +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  98. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +9 -9
  99. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/server/chunks/{9960.js → 3717.js} +1 -1
  101. package/.next/standalone/agents-manage-ui/.next/server/chunks/5732.js +1 -1
  102. package/.next/standalone/agents-manage-ui/.next/server/chunks/5781.js +14 -1
  103. package/.next/standalone/agents-manage-ui/.next/server/chunks/5793.js +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/server/chunks/6035.js +1 -1
  105. package/.next/standalone/agents-manage-ui/.next/server/chunks/6358.js +1 -0
  106. package/.next/standalone/agents-manage-ui/.next/server/chunks/6818.js +1 -0
  107. package/.next/standalone/agents-manage-ui/.next/server/chunks/7711.js +1 -1
  108. package/.next/standalone/agents-manage-ui/.next/server/chunks/7988.js +2 -2
  109. package/.next/standalone/agents-manage-ui/.next/server/chunks/8162.js +1 -0
  110. package/.next/standalone/agents-manage-ui/.next/server/chunks/{8037.js → 891.js} +7 -7
  111. package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
  112. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  113. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  114. package/.next/standalone/agents-manage-ui/.next/server/pages-manifest.json +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  116. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  117. package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-5c45452d86333b49.js +1 -0
  118. package/.next/standalone/agents-manage-ui/.next/static/chunks/37191-b9540cf50a41d10d.js +1 -0
  119. package/.next/standalone/agents-manage-ui/.next/static/chunks/55744-14f65637fb7140bb.js +1 -0
  120. package/.next/standalone/agents-manage-ui/.next/static/chunks/63209-c85b701265732b38.js +1 -0
  121. package/.next/standalone/agents-manage-ui/.next/static/chunks/87817-86c2e7dd6f1d2a25.js +1 -0
  122. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-84b2aca5f9d0a652.js → page-559a0e2feb9d1b88.js} +1 -1
  123. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/{page-35a16e83bce9ee67.js → page-e4badb90e08fca0e.js} +1 -1
  124. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-fd4931a4dce7bbcc.js +1 -0
  125. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-e6a0d040757d714c.js +1 -0
  126. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-2ef30d1c4a08bf1c.js +1 -0
  127. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-2dc9232570ef8f79.js +1 -0
  128. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-4fd992b333ee8376.js +1 -0
  129. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-d4178e9e1916d13a.js +1 -0
  130. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-8030a774459e9505.js +1 -0
  131. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-cd615e6939889e58.js +1 -0
  132. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-e3410fb65d776373.js +1 -0
  133. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-122d64932f58f736.js +1 -0
  134. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-0a2a574c78526792.js +1 -0
  135. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-5ba2f6c4203af42f.js → page-8039ddab76f9faaf.js} +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-626d879ae1110842.js +1 -0
  137. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-b4b6fe9574e505ab.js → page-d174ad393f08c235.js} +1 -1
  138. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-1f9d80a294bf9dff.js → page-c378465695b7fcbd.js} +1 -1
  139. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-dcd91b35950fd044.js → page-8333b2227270a61e.js} +1 -1
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-dd16edcb356553d6.js +1 -0
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-7d8c096775d48dd2.js +1 -0
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-460655c327b24cc4.js +1 -0
  143. package/.next/standalone/agents-manage-ui/package.json +1 -1
  144. package/package.json +5 -5
  145. package/src/app/[tenantId]/page.tsx +1 -1
  146. package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.tsx +3 -5
  147. package/src/app/[tenantId]/projects/[projectId]/agents/new/page.tsx +1 -3
  148. package/src/app/[tenantId]/projects/[projectId]/agents/page.tsx +1 -5
  149. package/src/app/[tenantId]/projects/[projectId]/api-keys/page.tsx +1 -5
  150. package/src/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.tsx +3 -9
  151. package/src/app/[tenantId]/projects/[projectId]/artifacts/new/page.tsx +3 -5
  152. package/src/app/[tenantId]/projects/[projectId]/artifacts/page.tsx +3 -5
  153. package/src/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.tsx +3 -9
  154. package/src/app/[tenantId]/projects/[projectId]/components/new/page.tsx +3 -5
  155. package/src/app/[tenantId]/projects/[projectId]/components/page.tsx +3 -5
  156. package/src/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.tsx +1 -7
  157. package/src/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.tsx +1 -3
  158. package/src/app/[tenantId]/projects/[projectId]/credentials/new/page.tsx +3 -4
  159. package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.tsx +3 -9
  160. package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.tsx +1 -3
  161. package/src/app/[tenantId]/projects/[projectId]/credentials/page.tsx +1 -3
  162. package/src/app/[tenantId]/projects/[projectId]/layout.tsx +4 -7
  163. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.tsx +3 -5
  164. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.tsx +3 -5
  165. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout.tsx +1 -4
  166. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.tsx +1 -3
  167. package/src/app/[tenantId]/projects/[projectId]/mcp-servers/page.tsx +1 -3
  168. package/src/app/[tenantId]/projects/[projectId]/settings/page.tsx +3 -8
  169. package/src/app/[tenantId]/projects/page.tsx +1 -1
  170. package/src/app/api/data-components/[dataComponentId]/generate-preview/route.ts +4 -7
  171. package/src/app/api/signoz/conversations/[conversationId]/route.ts +3 -6
  172. package/src/components/agent/sidepane/metadata/metadata-editor.tsx +4 -4
  173. package/src/components/agent/sidepane/nodes/sub-agent-node-editor.tsx +22 -4
  174. package/src/features/agent/domain/serialize.ts +10 -1
  175. package/src/hooks/use-node-editor.ts +18 -1
  176. package/.next/standalone/agents-manage-ui/.next/server/chunks/5924.js +0 -1
  177. package/.next/standalone/agents-manage-ui/.next/server/chunks/9725.js +0 -1
  178. package/.next/standalone/agents-manage-ui/.next/server/chunks/9885.js +0 -14
  179. package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-aea5d7a32133141b.js +0 -1
  180. package/.next/standalone/agents-manage-ui/.next/static/chunks/2409-d2b6091b0c3f1f34.js +0 -1
  181. package/.next/standalone/agents-manage-ui/.next/static/chunks/5158-509dfce04d213988.js +0 -1
  182. package/.next/standalone/agents-manage-ui/.next/static/chunks/55189-174234e9a4fbcf28.js +0 -1
  183. package/.next/standalone/agents-manage-ui/.next/static/chunks/77274-cc1df1147e3140fe.js +0 -1
  184. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-26755ee2c76b64a1.js +0 -1
  185. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-e8c9246af030aa64.js +0 -1
  186. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-941a3dcdb9428014.js +0 -1
  187. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-33572153a910601f.js +0 -1
  188. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-ef1350736d347054.js +0 -1
  189. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-08441e533e409c7a.js +0 -1
  190. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-972cdfeb0eccfb7f.js +0 -1
  191. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-65ed5f7c5e206fb5.js +0 -1
  192. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-845ed1d7c0eb3258.js +0 -1
  193. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-80f49c321aa09470.js +0 -1
  194. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-f3bc4eeb59bcf18d.js +0 -1
  195. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-bf29be40231abfc3.js +0 -1
  196. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-24ba320e6e9973a0.js +0 -1
  197. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-5a35a1d03b93e56f.js +0 -1
  198. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-e46b903804fe0222.js +0 -1
  199. /package/.next/standalone/agents-manage-ui/.next/static/{ghv4zFb7VUijXBqjAtiFU → XDBVQcoBx1lmqIF-dFkO9}/_buildManifest.js +0 -0
  200. /package/.next/standalone/agents-manage-ui/.next/static/{ghv4zFb7VUijXBqjAtiFU → XDBVQcoBx1lmqIF-dFkO9}/_ssgManifest.js +0 -0
@@ -12,11 +12,9 @@ import { fetchArtifactComponents } from '@/lib/api/artifact-components';
12
12
 
13
13
  export const dynamic = 'force-dynamic';
14
14
 
15
- interface ArtifactComponentsPageProps {
16
- params: Promise<{ tenantId: string; projectId: string }>;
17
- }
18
-
19
- async function ArtifactComponentsPage({ params }: ArtifactComponentsPageProps) {
15
+ async function ArtifactComponentsPage({
16
+ params,
17
+ }: PageProps<'/[tenantId]/projects/[projectId]/artifacts'>) {
20
18
  const { tenantId, projectId } = await params;
21
19
 
22
20
  let artifacts: Awaited<ReturnType<typeof fetchArtifactComponents>>;
@@ -6,15 +6,9 @@ import { fetchDataComponent } from '@/lib/api/data-components';
6
6
 
7
7
  export const dynamic = 'force-dynamic';
8
8
 
9
- interface DataComponentPageProps {
10
- params: Promise<{
11
- tenantId: string;
12
- projectId: string;
13
- dataComponentId: string;
14
- }>;
15
- }
16
-
17
- export default async function DataComponentPage({ params }: DataComponentPageProps) {
9
+ export default async function DataComponentPage({
10
+ params,
11
+ }: PageProps<'/[tenantId]/projects/[projectId]/components/[dataComponentId]'>) {
18
12
  const { tenantId, projectId, dataComponentId } = await params;
19
13
 
20
14
  let dataComponent: Awaited<ReturnType<typeof fetchDataComponent>>;
@@ -2,11 +2,9 @@ import { DataComponentForm } from '@/components/data-components/form/data-compon
2
2
  import { BodyTemplate } from '@/components/layout/body-template';
3
3
  import { MainContent } from '@/components/layout/main-content';
4
4
 
5
- interface NewDataComponentPageProps {
6
- params: Promise<{ tenantId: string; projectId: string }>;
7
- }
8
-
9
- async function NewDataComponentPage({ params }: NewDataComponentPageProps) {
5
+ async function NewDataComponentPage({
6
+ params,
7
+ }: PageProps<'/[tenantId]/projects/[projectId]/components/new'>) {
10
8
  const { tenantId, projectId } = await params;
11
9
  return (
12
10
  <BodyTemplate
@@ -12,11 +12,9 @@ import { fetchDataComponents } from '@/lib/api/data-components';
12
12
 
13
13
  export const dynamic = 'force-dynamic';
14
14
 
15
- interface DataComponentsPageProps {
16
- params: Promise<{ tenantId: string; projectId: string }>;
17
- }
18
-
19
- async function DataComponentsPage({ params }: DataComponentsPageProps) {
15
+ async function DataComponentsPage({
16
+ params,
17
+ }: PageProps<'/[tenantId]/projects/[projectId]/components'>) {
20
18
  const { tenantId, projectId } = await params;
21
19
 
22
20
  let dataComponents: Awaited<ReturnType<typeof fetchDataComponents>>;
@@ -26,13 +26,7 @@ async function credentialToFormData(credential: Credential): Promise<EditCredent
26
26
 
27
27
  async function EditCredentialsPage({
28
28
  params,
29
- }: {
30
- params: Promise<{
31
- tenantId: string;
32
- projectId: string;
33
- credentialId: string;
34
- }>;
35
- }) {
29
+ }: PageProps<'/[tenantId]/projects/[projectId]/credentials/[credentialId]'>) {
36
30
  const { tenantId, projectId, credentialId } = await params;
37
31
 
38
32
  let credential: Credential;
@@ -4,9 +4,7 @@ import { MainContent } from '@/components/layout/main-content';
4
4
 
5
5
  async function NewBearerCredentialsPage({
6
6
  params,
7
- }: {
8
- params: Promise<{ tenantId: string; projectId: string }>;
9
- }) {
7
+ }: PageProps<'/[tenantId]/projects/[projectId]/credentials/new/bearer'>) {
10
8
  const { tenantId, projectId } = await params;
11
9
  return (
12
10
  <BodyTemplate
@@ -26,9 +26,7 @@ interface CredentialOption {
26
26
 
27
27
  async function NewCredentialsPage({
28
28
  params,
29
- }: {
30
- params: Promise<{ tenantId: string; projectId: string }>;
31
- }) {
29
+ }: PageProps<'/[tenantId]/projects/[projectId]/credentials/new'>) {
32
30
  const { tenantId, projectId } = await params;
33
31
 
34
32
  const credentialStoresStatus = await listCredentialStores(tenantId, projectId);
@@ -86,7 +84,8 @@ async function NewCredentialsPage({
86
84
  <div className="text-muted-foreground text-sm font-normal space-y-2">
87
85
  <p className="mb-8">Create credentials for your MCP servers.</p>
88
86
  <p>
89
- Nango Store is recommended to create credentials. Otherwise, make sure Keychain Store is available.
87
+ Nango Store is recommended to create credentials. Otherwise, make sure Keychain Store is
88
+ available.
90
89
  <ExternalLink href={`${DOCS_BASE_URL}/get-started/credentials`}>
91
90
  Learn more
92
91
  </ExternalLink>
@@ -16,15 +16,9 @@ import { createProviderConnectSession } from '@/lib/mcp-tools/nango';
16
16
  import { NangoError } from '@/lib/mcp-tools/nango-types';
17
17
  import { findOrCreateCredential } from '@/lib/utils/credentials-utils';
18
18
 
19
- interface ProviderSetupPageProps {
20
- params: Promise<{
21
- providerId: string;
22
- tenantId: string;
23
- projectId: string;
24
- }>;
25
- }
26
-
27
- function ProviderSetupPage({ params }: ProviderSetupPageProps) {
19
+ function ProviderSetupPage({
20
+ params,
21
+ }: PageProps<'/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]'>) {
28
22
  const router = useRouter();
29
23
  const { providers, loading: providersLoading } = useNangoProviders();
30
24
  const [loading, setLoading] = useState(false);
@@ -27,9 +27,7 @@ function filterSupportedProviders(providers: ApiProvider[]): ApiProvider[] {
27
27
 
28
28
  async function ProvidersPage({
29
29
  params,
30
- }: {
31
- params: Promise<{ tenantId: string; projectId: string }>;
32
- }) {
30
+ }: PageProps<'/[tenantId]/projects/[projectId]/credentials/new/providers'>) {
33
31
  const { tenantId, projectId } = await params;
34
32
  let providers: ApiProvider[];
35
33
  let error = null;
@@ -17,9 +17,7 @@ const credentialDescription =
17
17
 
18
18
  async function CredentialsPage({
19
19
  params,
20
- }: {
21
- params: Promise<{ tenantId: string; projectId: string }>;
22
- }) {
20
+ }: PageProps<'/[tenantId]/projects/[projectId]/credentials'>) {
23
21
  const { tenantId, projectId } = await params;
24
22
 
25
23
  let credentials: Awaited<ReturnType<typeof fetchCredentials>>;
@@ -1,15 +1,12 @@
1
- import type { ReactNode } from 'react';
2
1
  import FullPageError from '@/components/errors/full-page-error';
3
2
  import { fetchProject } from '@/lib/api/projects';
4
3
 
5
4
  export const dynamic = 'force-dynamic';
6
5
 
7
- interface ProjectLayoutProps {
8
- children: ReactNode;
9
- params: Promise<{ tenantId: string; projectId: string }>;
10
- }
11
-
12
- export default async function ProjectLayout({ children, params }: ProjectLayoutProps) {
6
+ export default async function ProjectLayout({
7
+ children,
8
+ params,
9
+ }: LayoutProps<'/[tenantId]/projects/[projectId]'>) {
13
10
  const { tenantId, projectId } = await params;
14
11
 
15
12
  try {
@@ -8,11 +8,9 @@ import { type Credential, fetchCredentials } from '@/lib/api/credentials';
8
8
  import { fetchMCPTool } from '@/lib/api/tools';
9
9
  import type { MCPTool } from '@/lib/types/tools';
10
10
 
11
- interface EditMCPPageProps {
12
- params: Promise<{ mcpServerId: string; tenantId: string; projectId: string }>;
13
- }
14
-
15
- async function EditMCPPage({ params }: EditMCPPageProps) {
11
+ async function EditMCPPage({
12
+ params,
13
+ }: PageProps<'/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit'>) {
16
14
  const { mcpServerId, tenantId, projectId } = await params;
17
15
 
18
16
  // Fetch both in parallel with individual error handling
@@ -4,11 +4,9 @@ import { MainContent } from '@/components/layout/main-content';
4
4
  import { ViewMCPServerDetails } from '@/components/mcp-servers/view-mcp-server-details';
5
5
  import { fetchMCPTool } from '@/lib/api/tools';
6
6
 
7
- interface MCPPageProps {
8
- params: Promise<{ mcpServerId: string; tenantId: string; projectId: string }>;
9
- }
10
-
11
- async function MCPPage({ params }: MCPPageProps) {
7
+ async function MCPPage({
8
+ params,
9
+ }: PageProps<'/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]'>) {
12
10
  const { mcpServerId, tenantId, projectId } = await params;
13
11
 
14
12
  let tool: Awaited<ReturnType<typeof fetchMCPTool>>;
@@ -4,10 +4,7 @@ import { MainContent } from '@/components/layout/main-content';
4
4
  export default async function NewMCPServerLayout({
5
5
  children,
6
6
  params,
7
- }: {
8
- children: React.ReactNode;
9
- params: Promise<{ tenantId: string; projectId: string }>;
10
- }) {
7
+ }: LayoutProps<'/[tenantId]/projects/[projectId]/mcp-servers/new'>) {
11
8
  const { tenantId, projectId } = await params;
12
9
  return (
13
10
  <BodyTemplate
@@ -3,9 +3,7 @@ import { type Credential, fetchCredentials } from '@/lib/api/credentials';
3
3
 
4
4
  async function NewMCPServerPage({
5
5
  params,
6
- }: {
7
- params: Promise<{ tenantId: string; projectId: string }>;
8
- }) {
6
+ }: PageProps<'/[tenantId]/projects/[projectId]/mcp-servers/new'>) {
9
7
  const { tenantId, projectId } = await params;
10
8
  let credentials: Credential[] = [];
11
9
  try {
@@ -13,9 +13,7 @@ const mcpServerDescription = 'Create MCP servers that agents can use to access e
13
13
 
14
14
  async function MCPServersPage({
15
15
  params,
16
- }: {
17
- params: Promise<{ tenantId: string; projectId: string }>;
18
- }) {
16
+ }: PageProps<'/[tenantId]/projects/[projectId]/mcp-servers'>) {
19
17
  const { tenantId, projectId } = await params;
20
18
 
21
19
  let tools: Awaited<ReturnType<typeof fetchMCPTools>>;
@@ -7,14 +7,9 @@ import { fetchProject } from '@/lib/api/projects';
7
7
 
8
8
  export const dynamic = 'force-dynamic';
9
9
 
10
- interface SettingsPageProps {
11
- params: Promise<{
12
- tenantId: string;
13
- projectId: string;
14
- }>;
15
- }
16
-
17
- export default async function SettingsPage({ params }: SettingsPageProps) {
10
+ export default async function SettingsPage({
11
+ params,
12
+ }: PageProps<'/[tenantId]/projects/[projectId]/settings'>) {
18
13
  const { tenantId, projectId } = await params;
19
14
 
20
15
  let projectData: Awaited<ReturnType<typeof fetchProject>>;
@@ -10,7 +10,7 @@ import { Button } from '@/components/ui/button';
10
10
  import { emptyStateProjectDescription, projectDescription } from '@/constants/page-descriptions';
11
11
  import { fetchProjects } from '@/lib/api/projects';
12
12
 
13
- async function ProjectsPage({ params }: { params: Promise<{ tenantId: string }> }) {
13
+ async function ProjectsPage({ params }: PageProps<'/[tenantId]/projects'>) {
14
14
  const { tenantId } = await params;
15
15
 
16
16
  let projects: Awaited<ReturnType<typeof fetchProjects>>;
@@ -1,12 +1,9 @@
1
1
  import type { NextRequest } from 'next/server';
2
2
 
3
- interface RouteContext {
4
- params: Promise<{
5
- dataComponentId: string;
6
- }>;
7
- }
8
-
9
- export async function POST(request: NextRequest, context: RouteContext) {
3
+ export async function POST(
4
+ request: NextRequest,
5
+ context: RouteContext<'/api/data-components/[dataComponentId]/generate-preview'>
6
+ ) {
10
7
  try {
11
8
  const { dataComponentId } = await context.params;
12
9
  const body = await request.json();
@@ -851,10 +851,9 @@ function buildConversationListPayload(
851
851
 
852
852
  export async function GET(
853
853
  _req: NextRequest,
854
- context: { params: Promise<{ conversationId: string }> }
854
+ context: RouteContext<'/api/signoz/conversations/[conversationId]'>
855
855
  ) {
856
- const params = await context.params;
857
- const { conversationId } = params;
856
+ const { conversationId } = await context.params;
858
857
  if (!conversationId) {
859
858
  return NextResponse.json({ error: 'Conversation ID is required' }, { status: 400 });
860
859
  }
@@ -1287,9 +1286,7 @@ export async function GET(
1287
1286
  timestamp: span.timestamp,
1288
1287
  status: hasError ? ACTIVITY_STATUS.ERROR : ACTIVITY_STATUS.SUCCESS,
1289
1288
  subAgentName: getString(span, SPAN_KEYS.ARTIFACT_SUB_AGENT_ID, '') || 'Unknown Agent',
1290
- result: hasError
1291
- ? 'Artifact processing failed'
1292
- : 'Artifact processed successfully',
1289
+ result: hasError ? 'Artifact processing failed' : 'Artifact processed successfully',
1293
1290
  artifactId: getString(span, SPAN_KEYS.ARTIFACT_ID, '') || undefined,
1294
1291
  artifactType: artifactType || undefined,
1295
1292
  artifactName: artifactName || undefined,
@@ -459,7 +459,7 @@ function MetadataEditor() {
459
459
  <Checkbox
460
460
  id="event-based-updates"
461
461
  className="bg-background"
462
- checked={!!statusUpdates?.numEvents}
462
+ checked={statusUpdates && 'numEvents' in statusUpdates}
463
463
  onCheckedChange={(checked) => {
464
464
  if (checked) {
465
465
  updateMetadata('statusUpdates', {
@@ -480,7 +480,7 @@ function MetadataEditor() {
480
480
  <Checkbox
481
481
  id="time-based-updates"
482
482
  className="bg-background"
483
- checked={!!statusUpdates?.timeInSeconds}
483
+ checked={statusUpdates && 'timeInSeconds' in statusUpdates}
484
484
  onCheckedChange={(checked) => {
485
485
  if (checked) {
486
486
  updateMetadata('statusUpdates', {
@@ -499,7 +499,7 @@ function MetadataEditor() {
499
499
  </div>
500
500
  </div>
501
501
 
502
- {statusUpdates?.numEvents && (
502
+ {statusUpdates && 'numEvents' in statusUpdates && (
503
503
  <div className="space-y-2">
504
504
  <Label htmlFor="num-events">Number of events</Label>
505
505
  <Input
@@ -524,7 +524,7 @@ function MetadataEditor() {
524
524
  </div>
525
525
  )}
526
526
 
527
- {statusUpdates?.timeInSeconds && (
527
+ {statusUpdates && 'timeInSeconds' in statusUpdates && (
528
528
  <div className="space-y-2">
529
529
  <Label htmlFor="time-in-seconds">Time interval (seconds)</Label>
530
530
  <Input
@@ -1,6 +1,7 @@
1
1
  import type { Node } from '@xyflow/react';
2
2
  import { useParams } from 'next/navigation';
3
3
  import { useCallback } from 'react';
4
+ import { Checkbox } from '@/components/ui/checkbox';
4
5
  import {
5
6
  getExecutionLimitInheritanceStatus,
6
7
  InheritanceIndicator,
@@ -64,14 +65,16 @@ export function SubAgentNodeEditor({
64
65
  }>();
65
66
  const selectedDataComponents = selectedNode.data?.dataComponents || [];
66
67
  const selectedArtifactComponents = selectedNode.data?.artifactComponents || [];
68
+ const isDefaultSubAgent = selectedNode.data?.isDefault || false;
67
69
 
68
70
  const { project } = useProjectData();
69
71
  const metadata = useAgentStore((state) => state.metadata);
70
72
 
71
- const { updatePath, updateNestedPath, getFieldError, setFieldRef } = useNodeEditor({
72
- selectedNodeId: selectedNode.id,
73
- errorHelpers,
74
- });
73
+ const { updatePath, updateNestedPath, getFieldError, setFieldRef, updateDefaultSubAgent } =
74
+ useNodeEditor({
75
+ selectedNodeId: selectedNode.id,
76
+ errorHelpers,
77
+ });
75
78
 
76
79
  const updateModelPath = useCallback(
77
80
  (path: string, value: any) => {
@@ -146,6 +149,21 @@ export function SubAgentNodeEditor({
146
149
  <p className="text-sm text-red-600">{getFieldError('prompt')}</p>
147
150
  )}
148
151
  </div>
152
+ <div className="space-y-2">
153
+ <div className="flex items-center space-x-2">
154
+ <Checkbox
155
+ id="is-default-sub-agent"
156
+ checked={isDefaultSubAgent}
157
+ onCheckedChange={(checked) => {
158
+ updateDefaultSubAgent(checked === true);
159
+ }}
160
+ />
161
+ <Label htmlFor="is-default-sub-agent">Is default sub agent</Label>
162
+ </div>
163
+ <p className="text-xs text-muted-foreground">
164
+ The default sub agent is the initial entry point for conversations.
165
+ </p>
166
+ </div>
149
167
  <Separator />
150
168
  <ModelSection
151
169
  models={selectedNode.data.models}
@@ -458,9 +458,18 @@ export function validateSerializedData(
458
458
  ): StructuredValidationError[] {
459
459
  const errors: StructuredValidationError[] = [];
460
460
 
461
+ if (!data.defaultSubAgentId) {
462
+ errors.push({
463
+ message: 'Default sub agent ID is required, please select a default sub agent.',
464
+ field: 'defaultSubAgentId',
465
+ code: 'required',
466
+ path: ['defaultSubAgentId'],
467
+ });
468
+ }
469
+
461
470
  if (data.defaultSubAgentId && !data.subAgents[data.defaultSubAgentId]) {
462
471
  errors.push({
463
- message: `Default agent ID '${data.defaultSubAgentId}' not found in agents.`,
472
+ message: `Default sub agent ID '${data.defaultSubAgentId}' not found in sub agents.`,
464
473
  field: 'defaultSubAgentId',
465
474
  code: 'invalid_reference',
466
475
  path: ['defaultSubAgentId'],
@@ -9,9 +9,25 @@ interface UseNodeEditorOptions {
9
9
  }
10
10
 
11
11
  export function useNodeEditor({ selectedNodeId, errorHelpers }: UseNodeEditorOptions) {
12
- const { updateNodeData } = useReactFlow();
12
+ const { updateNodeData, setNodes } = useReactFlow();
13
13
  const { markUnsaved } = useAgentActions();
14
14
 
15
+ const updateDefaultSubAgent = useCallback(
16
+ (isDefault: boolean) => {
17
+ setNodes((nodes) =>
18
+ nodes.map((node) => {
19
+ if (node.id === selectedNodeId) {
20
+ return { ...node, data: { ...node.data, isDefault }, deletable: !isDefault };
21
+ } else if (isDefault && node.data.isDefault) {
22
+ return { ...node, data: { ...node.data, isDefault: false }, deletable: true };
23
+ }
24
+ return node;
25
+ })
26
+ );
27
+ },
28
+ [selectedNodeId, setNodes]
29
+ );
30
+
15
31
  // Focus management for error fields
16
32
  const fieldRefs = useRef<Record<string, HTMLElement>>({});
17
33
 
@@ -127,6 +143,7 @@ export function useNodeEditor({ selectedNodeId, errorHelpers }: UseNodeEditorOpt
127
143
  updatePath,
128
144
  updateNestedPath,
129
145
  handleInputChange,
146
+ updateDefaultSubAgent,
130
147
 
131
148
  // Error handling
132
149
  getFieldError,
@@ -1 +0,0 @@
1
- "use strict";exports.id=5924,exports.ids=[5924],exports.modules={12777:(a,b,c)=>{c.d(b,{ArtifactComponentForm:()=>A});var d=c(59111),e=c(6614),f=c(485),g=c(14450),h=c(75823),i=c(68156),j=c(17130),k=c(16426),l=c(56019),m=c(2856),n=c(96032),o=c(93622),p=c(35283),q=c(90147);let r=(0,q.createServerReference)("707733a47959d0c30938073978429814b186c5edbf",q.callServer,void 0,q.findSourceMapURL,"updateArtifactComponentAction"),s=(0,q.createServerReference)("70c9e1b17024b7afcb44388d36adf9e6cd0a8be917",q.callServer,void 0,q.findSourceMapURL,"createArtifactComponentAction");var t=c(42723),u=c(83624);let v={id:"",name:"",description:"",props:void 0};var w=c(34576),x=c(80974),y=c(62503);let z=w.object({id:y.f,name:w.string().min(1,"Name is required."),description:w.string().min(1,"Description is required."),props:w.union([w.string(),w.null(),w.undefined()]).transform((a,b)=>{if(a&&""!==a&&null!==a)try{let c=JSON.parse(a),d=(0,x._O)(a);if(!d.isValid){let a=d.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:w.ZodIssueCode.custom,message:a}),w.NEVER}return c}catch(a){return b.addIssue({code:w.ZodIssueCode.custom,message:(0,x.SR)(a)}),w.NEVER}}).optional()});function A({id:a,tenantId:b,projectId:c,initialData:q}){let[w,x]=(0,g.useState)(!1),y=(0,h.mN)({resolver:(0,e.u)(z),defaultValues:(a=>{if(!a)return v;let b={...a};return b.props&&(b.props=(0,t.S_)(b.props)),b})(q)}),{isSubmitting:A}=y.formState,B=(0,f.useRouter)();(0,p.S)({form:y,nameField:"name",idField:"id",isEditing:!!a});let C=async d=>{try{let e={...d};if(void 0===e.props&&(e.props=null),a){let a=await r(b,c,e);if(!a.success)return void i.oR.error(a.error||"Failed to update artifact.");i.oR.success("Artifact updated.")}else{let a=await s(b,c,e);if(!a.success)return void i.oR.error(a.error||"Failed to create artifact");i.oR.success("Artifact created."),B.push(`/${b}/projects/${c}/artifacts`)}}catch(b){console.error("Error submitting artifact:",b);let a=b instanceof Error?b.message:"An unexpected error occurred.";i.oR.error(a)}};return(0,d.jsxs)(n.lG,{open:w,onOpenChange:x,children:[(0,d.jsx)(o.lV,{...y,children:(0,d.jsxs)("form",{onSubmit:y.handleSubmit(C),className:"space-y-8",children:[(0,d.jsx)(j.a,{control:y.control,name:"name",label:"Name",placeholder:"Document Artifact",isRequired:!0}),(0,d.jsx)(j.a,{control:y.control,name:"id",label:"Id",placeholder:"my-artifact",disabled:!!a,isRequired:!0,description:a?"":"Choose a unique identifier for this artifact. Using an existing id will replace that artifact."}),(0,d.jsx)(k.K,{control:y.control,name:"description",label:"Description",placeholder:"Structured factual information extracted from search results",className:"min-h-[80px]",isRequired:!0}),(0,d.jsx)(l.S,{control:y.control,name:"props",label:"Props (JSON schema with inPreview indicators)",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,d.jsxs)("div",{className:"flex w-full justify-between",children:[(0,d.jsx)(m.$,{type:"submit",disabled:A,children:"Save"}),a&&(0,d.jsx)(n.zM,{asChild:!0,children:(0,d.jsx)(m.$,{type:"button",variant:"secondary",children:"Delete Artifact"})})]})]})}),w&&a&&(0,d.jsx)(u.W,{artifactComponentId:a,artifactComponentName:y.getValues("name"),setIsOpen:x,redirectOnDelete:!0})]})}},29160:(a,b,c)=>{c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(72669),e=c(45907),f=c(54637);let g="force-dynamic";async function h({children:a,params:b}){let{tenantId:c,projectId:g}=await b;try{await (0,f.Sw)(c,g)}catch(a){return(0,d.jsx)(e.default,{error:a,context:"project"})}return(0,d.jsx)(d.Fragment,{children:a})}},39878:(a,b,c)=>{c.d(b,{$:()=>i});var d=c(59111),e=c(2856),f=c(80974),g=c(42723),h=c(67466);function i(a){return(0,d.jsxs)("div",{"data-slot":"json-editor",className:`space-y-3 relative overflow-hidden p-1 ${a.className||""}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 absolute top-3 right-3 z-10",children:[!a.value?.trim()&&(0,d.jsx)(e.$,{type:"button",onClick:()=>{let b=(0,f.Qj)();a.onChange(b)},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",children:"Template"}),(0,d.jsx)(e.$,{type:"button",onClick:()=>{let b=a.value;if(b?.trim()){let c=(0,g.IB)(b);a.onChange(c)}},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",disabled:!a.value?.trim(),children:"Format"})]}),(0,d.jsx)(h.i,{value:a.value||"",onChange:a.onChange,placeholder:a.placeholder,disabled:a.disabled,readOnly:a.readOnly})]})}},44733:(a,b,c)=>{c.d(b,{ArtifactComponentForm:()=>d});let d=(0,c(60241).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")},56019:(a,b,c)=>{c.d(b,{S:()=>g});var d=c(59111),e=c(71771),f=c(39878);function g({control:a,name:b,label:c="JSON Schema",placeholder:g,disabled:h,description:i,readOnly:j,isRequired:k=!1}){return(0,d.jsx)(e.u,{control:a,name:b,label:c,description:i,isRequired:k,children:a=>(0,d.jsx)(f.$,{placeholder:g,...a,onChange:a.onChange,readOnly:j,disabled:h})})}},62196:(a,b,c)=>{c.r(b),c.d(b,{"406ce0fbdad32563714d1efc390fb0440bbc65e910":()=>d.bW,"604f696e1c8057b7d9964aae719dbaa3ede35cb607":()=>p,"6050fc38aeb97743746073cde5dcdc376651f1297f":()=>d.qf,"60874ec7ee3dbb55f034aac5d4ff14fb2152d89a08":()=>d.Dv,"609274bde4ed0eaa8c5f2d1e5f50acf5830f5c8595":()=>d.gL,"704c7fce0059860591c6478d45c13743e56c1fc471":()=>s,"707733a47959d0c30938073978429814b186c5edbf":()=>r,"709f0c303ea068f069cbe0986a9d0702bf6c0fe1f9":()=>d.Tg,"70c9e1b17024b7afcb44388d36adf9e6cd0a8be917":()=>q});var d=c(72025),e=c(29991);c(58415);var f=c(83248),g=c(8703),h=c(45796),i=c(33451);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,"608b1eb14cc4462599bff1eb7d884acbde8a6946e4",null),(0,e.A)(k,"7068ebd92e8526289542704942c69463ded9f0011b",null),(0,e.A)(l,"700512b2261f49323d087b55108c926febef23a34d",null),(0,e.A)(m,"7030175dcc3509ae6e876e2d459c543715b7ac726f",null),(0,e.A)(n,"70d4d2eb1cb0ce81bf804b0f8036c1f94cc81d0ffb",null);var o=c(36608);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,"604f696e1c8057b7d9964aae719dbaa3ede35cb607",null),(0,e.A)(q,"70c9e1b17024b7afcb44388d36adf9e6cd0a8be917",null),(0,e.A)(r,"707733a47959d0c30938073978429814b186c5edbf",null),(0,e.A)(s,"704c7fce0059860591c6478d45c13743e56c1fc471",null)},62503:(a,b,c)=>{c.d(b,{f:()=>d});let d=c(34576).string().min(1,"Id is required.").max(64,"Id must be less than 64 characters.").regex(/^[a-zA-Z0-9_-]+$/,"Id must contain only alphanumeric characters, underscores, and dashes. No spaces allowed.")},80974:(a,b,c)=>{c.d(b,{Qj:()=>k,SR:()=>l,_O:()=>j});var d=c(7352),e=c(43381);let f=d.ZU.Object({type:d.ZU.Union([d.ZU.Literal("string"),d.ZU.Literal("number"),d.ZU.Literal("integer"),d.ZU.Literal("boolean"),d.ZU.Literal("array"),d.ZU.Literal("object"),d.ZU.Literal("null")]),description:d.ZU.String({minLength:1}),format:d.ZU.Optional(d.ZU.String()),pattern:d.ZU.Optional(d.ZU.String()),minimum:d.ZU.Optional(d.ZU.Number()),maximum:d.ZU.Optional(d.ZU.Number()),minLength:d.ZU.Optional(d.ZU.Number()),maxLength:d.ZU.Optional(d.ZU.Number()),items:d.ZU.Optional(d.ZU.Any()),properties:d.ZU.Optional(d.ZU.Any()),enum:d.ZU.Optional(d.ZU.Array(d.ZU.Any())),const:d.ZU.Optional(d.ZU.Any()),default:d.ZU.Optional(d.ZU.Any())}),g=d.ZU.Object({type:d.ZU.Literal("object"),properties:d.ZU.Record(d.ZU.String(),f),required:d.ZU.Array(d.ZU.String(),{minItems:1}),additionalProperties:d.ZU.Optional(d.ZU.Boolean()),description:d.ZU.Optional(d.ZU.String())}),h=e.gv.Compile(f),i=e.gv.Compile(g);function j(a){let b=[],{parsed:c,errors:d}=function(a){let b=[],c=null;if(!a?.trim())return{parsed:null,errors:b};try{c=JSON.parse(a)}catch(a){b.push({path:"root",message:a instanceof Error?a.message:"Invalid JSON syntax",type:"syntax"})}return{parsed:c,errors:b}}(a);if(d.length>0)return{isValid:!1,errors:d,warnings:b};if(!c)return{isValid:!0,errors:[],warnings:["Empty schema provided"]};let e=[...function(a){let b=[];return a&&"object"==typeof a?!i.Check(a)&&(a.type&&"object"===a.type||b.push({path:"type",message:'Schema must have type: "object" for LLM compatibility',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties||b.push({path:"properties",message:'Schema must have a "properties" object',type:"schema"}),a.required&&Array.isArray(a.required)||b.push({path:"required",message:'Schema must have a "required" array (can be empty)',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{h.Check(c)||[...h.Errors(c)].forEach(c=>{let d=c.message;"/description"===c.path?d='Each property must have a "description" for LLM compatibility':"/type"===c.path&&(d='Each property must have a valid "type"'),b.push({path:`properties.${a}${c.path}`,message:d,type:"/description"===c.path?"llm_requirement":"schema"})})})):b.push({path:"root",message:"Schema must be an object",type:"schema"}),b}(c),...function(a){let b=[];return a&&"object"==typeof a&&(a.required&&Array.isArray(a.required)&&a.properties&&a.required.forEach(c=>{a.properties[c]||b.push({path:"required",message:`Required property "${c}" must exist in properties`,type:"schema"})}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{c.description&&"string"==typeof c.description&&0!==c.description.trim().length||b.push({path:`properties.${a}.description`,message:"Each property must have a non-empty description for LLM compatibility",type:"llm_requirement"})})),b}(c)];return{isValid:0===e.length,errors:e,warnings:b}}function k(){return JSON.stringify({type:"object",properties:{example_property:{type:"string",description:"Description of what this property represents"}},required:["example_property"]},null,2)}function l(a){if(a instanceof SyntaxError){let b=a.message.toLowerCase();return b.includes("unexpected end of json input")?"Incomplete JSON - missing closing brackets or quotes":b.includes("unexpected token")?"Invalid character in JSON - check for missing commas, quotes, or brackets":b.includes("expected property name")||b.includes("expected ':' after property name")?"Property names must be in double quotes":b.includes("duplicate keys")?"Duplicate property names are not allowed":"Invalid JSON syntax - check structure and formatting"}return"Unable to parse JSON"}},83624:(a,b,c)=>{c.d(b,{W:()=>k});var d=c(59111),e=c(485),f=c(14450),g=c(68156),h=c(93755),i=c(90147);let j=(0,i.createServerReference)("704c7fce0059860591c6478d45c13743e56c1fc471",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})}},93056:(a,b,c)=>{c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(43461);function j(){return(0,d.jsx)(e.H,{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}`))})]})})}},93755:(a,b,c)=>{c.d(b,{J:()=>h});var d=c(59111),e=c(53710),f=c(2856),g=c(96032);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"})]})]})}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=9725,exports.ids=[9725],exports.modules={5294:(a,b,c)=>{c.d(b,{$Y:()=>g,GO:()=>i,K3:()=>h,h9:()=>k});var d=c(29991);c(58415);var e=c(8703),f=c(45796);async function g(a,b,c=1,d=50){(0,f.M2)(a),(0,f.nt)(b);let h=new URLSearchParams({page:c.toString(),limit:d.toString()});return(await (0,e.J)(`tenants/${a}/projects/${b}/credentials?${h}`)).data}async function h(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`)).data}async function i(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials`,{method:"POST",body:JSON.stringify(c)})).data}async function j(a,b,c,d){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"PUT",body:JSON.stringify(d)})).data}async function k(a,b,c){(0,f.M2)(a),(0,f.nt)(b),await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}(0,c(33451).D)([g,h,i,j,k]),(0,d.A)(g,"78a0a40785bc9d9651cab20c1b84dceba7bb83d6c8",null),(0,d.A)(h,"70b0ee170f63fbda2e3d777d75b180df99e610dcb2",null),(0,d.A)(i,"70a4adc178a1cb9b61d2341d7702c81aa479290a28",null),(0,d.A)(j,"78b4990ab6362ecc73683c4a7966e14b1d4956051d",null),(0,d.A)(k,"70165b4d4ae294a956ee1288f986050f8fa0680827",null)},19329:(a,b,c)=>{c.d(b,{U:()=>f});var d=c(29991);c(58415);var e=c(5294);async function f(a,b,c){try{let d=await (0,e.K3)(a,b,c.id);if(d)return d}catch{}try{return await (0,e.GO)(a,b,c)}catch(a){throw console.error("Failed to save credential to database:",a),Error(`Failed to save credential '${c.id}' to database`)}}(0,c(33451).D)([f]),(0,d.A)(f,"70d27c996154600cf0c5e4f5620e8e2063c04ff213",null)},21395:(a,b,c)=>{c.d(b,{RN:()=>t,Ak:()=>q,uP:()=>u,tN:()=>r,Mj:()=>p,tQ:()=>o,pv:()=>n,Mb:()=>m,H6:()=>v,EN:()=>l,P:()=>w});var d=c(29991);c(58415);var e=c(47990),f=c(69973),g=c(67417);class h extends Error{constructor(a,b,c){super(a),this.operation=b,this.cause=c,this.name="NangoError"}}function i(a,b,c){if(a instanceof h)throw a;throw new h(b,c,a)}var j=c(33451);let k=()=>{let a=process.env.NANGO_SECRET_KEY;if(!a)throw new h("NANGO_SECRET_KEY environment variable is required for Nango integration");try{return new f.CA({secretKey:a,host:process.env.NANGO_SERVER_URL||process.env.PUBLIC_NANGO_SERVER_URL||g.ko})}catch(a){throw new h("Failed to initialize Nango client","new Nango",a)}};async function l(){let a=process.env.NANGO_SECRET_KEY;return!!(a&&""!==a.trim())}async function m(){try{let a=k();return(await a.listProviders({})).data}catch(a){console.error("Failed to fetch providers:",a),i(a,"Unable to retrieve available providers from Nango","listProviders")}}async function n(a){try{let b=k();return(await b.getProvider({provider:a})).data}catch(b){console.error(`Failed to fetch provider ${a}:`,b),i(b,`Provider '${a}' not found or inaccessible`,"getProvider")}}async function o(){try{let a=k();return(await a.listIntegrations()).configs}catch(a){console.error("Failed to fetch integrations:",a),i(a,"Unable to retrieve existing integrations","listIntegrations")}}async function p(a){try{let b=k(),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),i(b,`Unable to fetch integration with key '${a}'`,"getIntegration")}}async function q(a){try{let b=k();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),i(b,`Failed to create integration '${a.uniqueKey}' for provider '${a.provider}'`,"createIntegration")}}async function r(a){try{let a=k();return(await a.listConnections()).connections}catch(c){let b=a?` for integration '${a}'`:"";console.error(`Failed to fetch connections${b}:`,c),i(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||g.P3,organizationDisplayName:e="Test Organization",integrationId:f}){try{let g=k(),{data:h}=await g.createConnectSession({end_user:{id:a,email:b,display_name:c},organization:{id:d,display_name:e},allowed_integrations:[f]});return h}catch(a){console.error("Failed to create connect session:",a),i(a,`Unable to create connect session for integration '${f}'`,"createConnectSession")}}async function t({name:a,apiKeyToSet:b,metadata:c}){let d=(0,e.K_)(a);try{let e;try{e=await q({provider:"private-api-bearer",uniqueKey:d,displayName:a})}catch(a){if(a instanceof h&&a.cause&&"object"==typeof a.cause&&"status"in a.cause&&400===a.cause.status){let b=await p(d);b?e=b:i(a,"Integration creation failed for unexpected reasons","create")}else i(a,`Failed to create or retrieve integration '${d}'`,"create")}try{let a=`${process.env.NANGO_SERVER_URL||process.env.PUBLIC_NANGO_SERVER_URL||g.ko}/connections`,f={provider_config_key:e.unique_key,connection_id:d,metadata:c,credentials:{type:"API_KEY",apiKey:b}},i=await fetch(a,{method:"POST",headers:{Authorization:`Bearer ${process.env.NANGO_SECRET_KEY}`,"Content-Type":"application/json"},body:JSON.stringify(f)});if(!i.ok)throw new h(`Failed to import connection: HTTP ${i.status} - ${i.statusText}`,"importConnection")}catch(a){i(a,"Failed to import API key connection to Nango","importConnection")}try{await w({providerConfigKey:e.unique_key,connectionId:d,metadata:c})}catch(a){console.warn(`Failed to set metadata for connection ${d}:`,a)}return{integration:e}}catch(b){console.error("Unexpected error creating API key credential:",b),i(b,`Unexpected error creating API key credential '${a}'`,"createNangoApiKeyConnection")}}async function u({providerName:a,uniqueKey:b,displayName:c,credentials:d}){try{let e,f=null;try{f=await p(b)}catch(b){if(b instanceof h)throw b;console.debug(`Integration '${a}' not found, will create new one`)}if(f?.areCredentialsSet)e=f;else try{e=await q({provider:a,uniqueKey:b,displayName:c,credentials:d})}catch(b){i(b,`Failed to create integration for provider '${a}'`,"create")}try{return(await s({integrationId:e.unique_key})).token}catch(a){i(a,`Failed to create connect session for integration '${e.unique_key}'`,"createConnectSession")}}catch(b){console.error("Unexpected error creating provider connect session:",b),i(b,`Unexpected error creating connect session for provider '${a}'`,"createProviderConnectSession")}}async function v({providerConfigKey:a,connectionId:b}){try{let c=k();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),i(a,`Unable to retrieve metadata for connection '${b}'`,"getMetadata")}}async function w({providerConfigKey:a,connectionId:b,metadata:c}){try{let d=k();await d.setMetadata(a,b,c)}catch(a){console.error("Failed to set connection metadata:",a),i(a,`Unable to update metadata for connection '${b}'`,"setMetadata")}}(0,j.D)([l,m,n,o,p,q,r,t,u,v,w]),(0,d.A)(l,"00561ae5946aa2cbbc27b735f3cbf1a3a9b867d7fe",null),(0,d.A)(m,"006d599e0ad215addd1f278130de0f7d58641b628e",null),(0,d.A)(n,"40dcbfc75ae34b0a0f9bdf8eace5807ebfc9c04653",null),(0,d.A)(o,"0097a38eacca3b7eae6533740052db292d80066fc7",null),(0,d.A)(p,"40ecbe49b7801005fdd72769726e15a5265a6379c2",null),(0,d.A)(q,"40c67177250d181dbbff8a7a215dc5cd202e033e89",null),(0,d.A)(r,"40e8b6b334b5e9624fa3491d791f0e2ecceab174fb",null),(0,d.A)(t,"4083cee54ef1f113cb5f02350fccbe2d8656d4a32c",null),(0,d.A)(u,"406eb51cb5e286574ef60a1d815ab043e72cef982e",null),(0,d.A)(v,"401310b061571c1d18ad81e64c36ff989c0d8d65cc",null),(0,d.A)(w,"4084e5ee0884f22d6868ba160dbbb32348de439a31",null)},94291:(a,b,c)=>{c.d(b,{U:()=>e});var d=c(90147);let e=(0,d.createServerReference)("70d27c996154600cf0c5e4f5620e8e2063c04ff213",d.callServer,void 0,d.findSourceMapURL,"findOrCreateCredential")}};
@@ -1,14 +0,0 @@
1
- "use strict";exports.id=9885,exports.ids=[9885],exports.modules={29160:(a,b,c)=>{c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(72669),e=c(45907),f=c(54637);let g="force-dynamic";async function h({children:a,params:b}){let{tenantId:c,projectId:g}=await b;try{await (0,f.Sw)(c,g)}catch(a){return(0,d.jsx)(e.default,{error:a,context:"project"})}return(0,d.jsx)(d.Fragment,{children:a})}},34035:(a,b,c)=>{c.d(b,{u:()=>k});var d=c(59111),e=c(485),f=c(14450),g=c(68156),h=c(93755),i=c(90147);let j=(0,i.createServerReference)("707f1dbacc74016feeffb9bda5fdc83308ae1adffb",i.callServer,void 0,i.findSourceMapURL,"deleteDataComponentAction");function k({dataComponentId:a,dataComponentName:b,setIsOpen:c,redirectOnDelete:i=!1}){let{tenantId:k,projectId:l}=(0,e.useParams)(),m=(0,e.useRouter)(),[n,o]=(0,f.useState)(!1),p=async()=>{o(!0);try{let b=await j(k,l,a);b.success?(c(!1),g.oR.success("Component deleted."),i&&m.push(`/${k}/projects/${l}/components`)):g.oR.error(b.error)}finally{o(!1)}};return(0,d.jsx)(h.J,{itemName:b||"this component",isSubmitting:n,onDelete:p})}},39878:(a,b,c)=>{c.d(b,{$:()=>i});var d=c(59111),e=c(2856),f=c(80974),g=c(42723),h=c(67466);function i(a){return(0,d.jsxs)("div",{"data-slot":"json-editor",className:`space-y-3 relative overflow-hidden p-1 ${a.className||""}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 absolute top-3 right-3 z-10",children:[!a.value?.trim()&&(0,d.jsx)(e.$,{type:"button",onClick:()=>{let b=(0,f.Qj)();a.onChange(b)},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",children:"Template"}),(0,d.jsx)(e.$,{type:"button",onClick:()=>{let b=a.value;if(b?.trim()){let c=(0,g.IB)(b);a.onChange(c)}},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",disabled:!a.value?.trim(),children:"Format"})]}),(0,d.jsx)(h.i,{value:a.value||"",onChange:a.onChange,placeholder:a.placeholder,disabled:a.disabled,readOnly:a.readOnly})]})}},40029:(a,b,c)=>{c.d(b,{EN:()=>i,Z3:()=>g,df:()=>j,nD:()=>k,sO:()=>h});var d=c(29991);c(58415);var e=c(8703),f=c(45796);async function g(a,b){(0,f.M2)(a),(0,f.nt)(b);let c=await (0,e.J)(`tenants/${a}/projects/${b}/data-components`);return{...c,data:c.data.map(a=>({...a,props:a.props||{}}))}}async function h(a,b,c){(0,f.M2)(a),(0,f.nt)(b);let d=await (0,e.J)(`tenants/${a}/projects/${b}/data-components/${c}`);return{...d.data,props:d.data.props||{}}}async function i(a,b,c){(0,f.M2)(a),(0,f.nt)(b);let d=await (0,e.J)(`tenants/${a}/projects/${b}/data-components`,{method:"POST",body:JSON.stringify(c)});return{...d.data,props:d.data.props||{}}}async function j(a,b,c){(0,f.M2)(a),(0,f.nt)(b);let d=await (0,e.J)(`tenants/${a}/projects/${b}/data-components/${c.id}`,{method:"PUT",body:JSON.stringify(c)});return{...d.data,props:d.data.props||{}}}async function k(a,b,c){(0,f.M2)(a),(0,f.nt)(b),await (0,e.J)(`tenants/${a}/projects/${b}/data-components/${c}`,{method:"DELETE"})}(0,c(33451).D)([g,h,i,j,k]),(0,d.A)(g,"60415c1b101cabc53e5c192b81c55bb9b3ea9ca73a",null),(0,d.A)(h,"708628f0eabba5394da722a6ead917ecb365c851a9",null),(0,d.A)(i,"70f5033b99aebf86999e7ded51087598146c502818",null),(0,d.A)(j,"703a451884929360ea359733343091ba65f25fab1d",null),(0,d.A)(k,"7029408cf7cd960d2214813c941cb4c79dda3f4cd8",null)},54257:(a,b,c)=>{c.d(b,{s:()=>m});var d=c(59111),e=c(92707),f=c(14450),g=c(44451),h=c(18061),i=c(57904);let{AlertCircle:j}=e,k=String.raw;function l({error:a}){let b=String(a),c=b.split("\n"),e=c[0]||b,f=c.slice(1).join("\n");return(0,d.jsxs)(i.Fc,{variant:"destructive",className:"max-w-full",children:[(0,d.jsx)(j,{className:"h-4 w-4"}),(0,d.jsx)(i.XL,{className:"font-semibold text-sm",children:f}),(0,d.jsx)(i.TN,{className:"mt-2 space-y-2",children:(0,d.jsx)("div",{className:"font-mono text-xs break-words",children:e})})]})}function m({code:a,props:b}){let c=(0,f.useMemo)(()=>((a,b)=>{let c=a.match(/(?:export\s+(?:default\s+)?)?(?:function\s+(\w+)|const\s+(\w+)\s*=\s*(?:\(.*\)\s*=>|\(\)))/),d=c?.[1]||c?.[2]||"App";return k`
2
- import { ErrorBoundary } from "react-error-boundary";
3
-
4
- ${a}
5
-
6
- export default function App() {
7
- const props = ${JSON.stringify(b)};
8
- return (
9
- <ErrorBoundary fallbackRender={fallbackRender}>
10
- <${d} {...props} />
11
- </ErrorBoundary>
12
- );
13
- }`})(a,b),[a,b]),i=(0,f.useMemo)(()=>({fallbackRender:l,import:{"lucide-react":e,"react-error-boundary":g}}),[]),{element:j}=(0,h.CL)({code:c,scope:i});return(0,d.jsx)("div",{children:j})}},56008:(a,b,c)=>{c.d(b,{Fs:()=>j,Hn:()=>h,Qs:()=>i,bO:()=>k});var d=c(29991);c(58415);var e=c(83248),f=c(40029),g=c(36608);async function h(a,b){try{let c=await (0,f.Z3)(a,b);return{success:!0,data:c.data}}catch(a){if(a instanceof g.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 i(a,b,c){try{let d=await (0,f.EN)(a,b,c);return(0,e.revalidatePath)(`/${a}/projects/${b}/components`),{success:!0,data:d}}catch(a){if(a instanceof g.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){try{let d=await (0,f.df)(a,b,c);return(0,e.revalidatePath)(`/${a}/projects/${b}/components`),(0,e.revalidatePath)(`/${a}/projects/${b}/components/${c.id}`),{success:!0,data:d}}catch(a){if(a instanceof g.h)return{success:!1,error:a.error.message??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,b,c){try{return await (0,f.nD)(a,b,c),(0,e.revalidatePath)(`/${a}/projects/${b}/components`),{success:!0}}catch(a){if(a instanceof g.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,c(33451).D)([h,i,j,k]),(0,d.A)(h,"6081ae9a4e1dfa4bed817440d4c198b1239fa3904f",null),(0,d.A)(i,"705ab52eacb5e4f0e6eadb674db1c98437ccd7c59b",null),(0,d.A)(j,"70eb0a236a843950f7e630eb4741ec691a60dea7af",null),(0,d.A)(k,"707f1dbacc74016feeffb9bda5fdc83308ae1adffb",null)},56019:(a,b,c)=>{c.d(b,{S:()=>g});var d=c(59111),e=c(71771),f=c(39878);function g({control:a,name:b,label:c="JSON Schema",placeholder:g,disabled:h,description:i,readOnly:j,isRequired:k=!1}){return(0,d.jsx)(e.u,{control:a,name:b,label:c,description:i,isRequired:k,children:a=>(0,d.jsx)(f.$,{placeholder:g,...a,onChange:a.onChange,readOnly:j,disabled:h})})}},57904:(a,b,c)=>{c.d(b,{Fc:()=>h,TN:()=>j,XL:()=>i});var d=c(59111),e=c(53433),f=c(42723);let g=(0,e.F)("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90",warning:"text-amber-700 bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-amber-700/90 *:data-[slot=alert-description]:dark:text-amber-300/90 dark:text-amber-300 bg-amber-50 border-amber-200 dark:bg-amber-950/40 dark:border-amber-700"}},defaultVariants:{variant:"default"}});function h({className:a,variant:b,...c}){return(0,d.jsx)("div",{"data-slot":"alert",role:"alert",className:(0,f.cn)(g({variant:b}),a),...c})}function i({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"alert-title",className:(0,f.cn)("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",a),...b})}function j({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"alert-description",className:(0,f.cn)("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",a),...b})}},62503:(a,b,c)=>{c.d(b,{f:()=>d});let d=c(34576).string().min(1,"Id is required.").max(64,"Id must be less than 64 characters.").regex(/^[a-zA-Z0-9_-]+$/,"Id must contain only alphanumeric characters, underscores, and dashes. No spaces allowed.")},71534:(a,b,c)=>{c.d(b,{BT:()=>i,Wu:()=>j,ZB:()=>h,Zp:()=>f,aR:()=>g,wL:()=>k});var d=c(59111),e=c(42723);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card",className:(0,e.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...b})}function g({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:(0,e.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",a),...b})}function h({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:(0,e.cn)("leading-none font-semibold",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:(0,e.cn)("text-muted-foreground text-sm",a),...b})}function j({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:(0,e.cn)("px-6",a),...b})}function k({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-footer",className:(0,e.cn)("flex items-center px-6 [.border-t]:pt-6",a),...b})}},75347:(a,b,c)=>{c.d(b,{DataComponentForm:()=>Z});var d=c(59111),e=c(6614),f=c(485),g=c(14450),h=c(75823),i=c(68156),j=c(17130),k=c(16426),l=c(56019),m=c(2856),n=c(96032),o=c(60848),p=c(93622),q=c(35283),r=c(90147);let s=(0,r.createServerReference)("70eb0a236a843950f7e630eb4741ec691a60dea7af",r.callServer,void 0,r.findSourceMapURL,"updateDataComponentAction"),t=(0,r.createServerReference)("705ab52eacb5e4f0e6eadb674db1c98437ccd7c59b",r.callServer,void 0,r.findSourceMapURL,"createDataComponentAction");var u=c(42723),v=c(34035),w=c(53710),x=c(89565),y=c(27218),z=c(3905),A=c(58616),B=c(85660),C=c(51023),D=c(75726),E=c(76469);function F(a){let{resolvedTheme:b}=(0,E.D)(),{language:c="jsx",className:e,value:f,onChange:g,placeholder:h,disabled:i,readOnly:j,...k}=a,l=[(0,B.Q2)({jsx:"jsx"===c||"tsx"===c,typescript:"typescript"===c||"tsx"===c})];return(0,d.jsx)(D.Ay,{...k,value:f||"",onChange:a=>g(a),extensions:l,theme:"dark"===b?C.nQ:C.Bs,placeholder:h||"Enter code...",editable:!i&&!j,basicSetup:{lineNumbers:!1,foldGutter:!0,dropCursor:!1,allowMultipleSelections:!1,bracketMatching:!0,closeBrackets:!0,autocompletion:!0},"data-disabled":i?"":void 0,"data-read-only":j?"":void 0,className:(0,u.cn)("h-full [&>.cm-editor]:max-h-[inherit] [&_.cm-gutters]:!bg-transparent [&>.cm-editor]:!bg-transparent dark:[&>.cm-editor]:!bg-input/30 [&>.cm-editor]:!outline-none [&>.cm-editor]:rounded-[7px] [&>.cm-editor]:px-3 [&>.cm-editor]:py-2 leading-2 text-xs font-mono rounded-md border border-input shadow-xs transition-[color,box-shadow] data-disabled:cursor-not-allowed data-disabled:opacity-50 data-disabled:bg-muted data-invalid:border-destructive has-[.cm-focused]:border-ring has-[.cm-focused]:ring-ring/50 has-[.cm-focused]:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e)})}var G=c(67466),H=c(71534),I=c(35229),J=c(34740),K=c(39729),L=c(14875);let M=L.bL,N=g.forwardRef(({className:a,...b},c)=>(0,d.jsx)(L.B8,{ref:c,className:(0,u.cn)("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",a),...b}));N.displayName=L.B8.displayName;let O=g.forwardRef(({className:a,...b},c)=>(0,d.jsx)(L.l9,{ref:c,className:(0,u.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",a),...b}));O.displayName=L.l9.displayName;let P=g.forwardRef(({className:a,...b},c)=>(0,d.jsx)(L.UC,{ref:c,className:(0,u.cn)("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",a),...b}));P.displayName=L.UC.displayName;var Q=c(32442);let R=(0,r.createServerReference)("703a451884929360ea359733343091ba65f25fab1d",r.callServer,void 0,r.findSourceMapURL,"updateDataComponent");var S=c(54257);function T({tenantId:a,projectId:b,dataComponentId:c,existingPreview:e,onPreviewChanged:f}){let[h,j]=(0,g.useState)(e||null),[k,l]=(0,g.useState)(!1),[n,o]=(0,g.useState)(!1),[p,q]=(0,g.useState)(""),[r,s]=(0,g.useState)(!!e),[t,u]=(0,g.useState)(!!e),[v,B]=(0,g.useState)(""),[C,D]=(0,g.useState)(!1),E=async d=>{l(!0),j(null),q(""),s(!1),u(!1);try{let e=await fetch(`/api/data-components/${c}/generate-preview`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tenantId:a,projectId:b,instructions:d||void 0,existingCode:d?h?.code:void 0})});if(!e.ok)throw Error("Failed to generate preview");if(!e.body)throw Error("No response body");let g=e.body.getReader(),k=new TextDecoder,l="",m=null;for(;;){let{done:a,value:b}=await g.read();if(a)break;let c=k.decode(b,{stream:!0}),d=(l+=c).split("\n");for(let a of(l=d.pop()||"",d))if(a.trim())try{let b=JSON.parse(a);m=b,b.code&&q(b.code)}catch(b){console.warn("Failed to parse line:",a,b)}}if(m)j(m),s(!0),f?.(m),i.oR.success("Preview generated successfully");else throw Error("No valid preview generated")}catch(a){console.error("Failed to generate preview:",a),i.oR.error("Failed to generate preview"),s(!0)}finally{l(!1)}},L=async()=>{o(!0);try{await R(a,b,{id:c,preview:null}),j(null),u(!1),f?.(null),i.oR.success("Preview deleted")}catch(a){console.error("Error deleting preview:",a),i.oR.error("Failed to delete preview")}finally{o(!1)}},T=null!==h&&(h.code?.trim().length??0)>0,U=(0,g.useMemo)(()=>h?.data?JSON.stringify(h.data,null,2):"{}",[h?.data]),V=(0,g.useMemo)(()=>h?.code||"",[h?.code]),W=(0,g.useMemo)(()=>h?.data||{},[h?.data]),X=(0,g.useCallback)(a=>{if(h)try{let b=JSON.parse(a),c={...h,data:b};j(c),f?.(c)}catch{}},[h,f]);return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Component Preview"}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generate a React/Tailwind component based on your schema"})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[!T&&(0,d.jsx)(m.$,{onClick:()=>E(),disabled:k,className:"gap-2",children:k?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(w.A,{className:"h-4 w-4 animate-spin"}),"Generating..."]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(x.A,{className:"h-4 w-4"}),"Generate"]})}),T&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(K.AM,{open:C,onOpenChange:D,children:[(0,d.jsx)(K.Wv,{asChild:!0,children:(0,d.jsx)(m.$,{variant:"outline",disabled:n||k,className:"gap-2",children:k?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(w.A,{className:"h-4 w-4 animate-spin"}),"Regenerating..."]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(y.A,{className:"h-4 w-4"}),"Regenerate"]})})}),(0,d.jsx)(K.hl,{className:"w-96",children:(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"font-medium text-sm mb-2",children:"Modify Component"}),(0,d.jsx)(J.J,{htmlFor:"instructions",className:"text-xs text-muted-foreground",children:"Describe what you'd like to change (optional)"}),(0,d.jsx)(Q.T,{id:"instructions",placeholder:"e.g. Make it more compact, add a border, use different icons...",value:v,onChange:a=>B(a.target.value),className:"mt-2 min-h-[100px]"})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(m.$,{size:"sm",onClick:async()=>{D(!1),await E(v||void 0),B("")},disabled:k,className:"flex-1",children:v?"Apply Changes":"Regenerate"}),(0,d.jsx)(m.$,{size:"sm",variant:"outline",onClick:()=>{D(!1),B("")},children:"Cancel"})]})]})})]}),t&&(0,d.jsx)(m.$,{variant:"destructive",onClick:L,disabled:n||k,size:"icon",title:"Delete preview",children:n?(0,d.jsx)(w.A,{className:"h-4 w-4 animate-spin"}):(0,d.jsx)(z.A,{className:"h-4 w-4"})})]})]})]}),k&&p&&(0,d.jsx)(A.jH,{isAnimating:!0,className:"[&_[data-code-block-header=true]]:hidden [&_pre]:bg-muted/40!",children:`\`\`\`jsx
14
- ${p}\`\`\``}),k&&!p&&(0,d.jsx)(H.Zp,{className:"p-6",children:(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center space-y-4",children:[(0,d.jsx)(w.A,{className:"h-8 w-8 animate-spin text-primary"}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Generating component preview..."})]})}),T&&!k&&r&&h&&(0,d.jsxs)(M,{defaultValue:"preview",className:"w-full",children:[(0,d.jsxs)(N,{children:[(0,d.jsx)(O,{value:"preview",children:"Preview"}),(0,d.jsx)(O,{value:"code",children:"Code"}),(0,d.jsx)(O,{value:"data",children:"Sample Data"})]}),(0,d.jsx)(P,{value:"preview",children:(0,d.jsx)(H.Zp,{className:"p-6",children:(0,d.jsx)(S.s,{code:V,props:W})})}),(0,d.jsx)(P,{value:"code",children:(0,d.jsx)(F,{value:V,onChange:a=>{if(!h)return;let b={...h,code:a};j(b),f?.(b)},language:"jsx",className:"max-h-[500px]"})}),(0,d.jsx)(P,{value:"data",children:(0,d.jsx)(G.i,{value:U,onChange:X,className:"max-h-[500px]"})})]}),!T&&!k&&!r&&(0,d.jsx)(I.n,{children:(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"No preview generated"})})]})}let U={id:"",name:"",description:"",props:""};var V=c(34576),W=c(80974),X=c(62503);let Y=V.object({id:X.f,name:V.string().min(1,"Name is required."),description:V.string().min(1,"Description is required."),props:V.string().min(1,"Props schema is required.").transform((a,b)=>{try{let c=JSON.parse(a),d=(0,W._O)(a);if(!d.isValid){let a=d.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:V.ZodIssueCode.custom,message:a}),V.NEVER}return c}catch(a){return b.addIssue({code:V.ZodIssueCode.custom,message:(0,W.SR)(a)}),V.NEVER}}).optional(),preview:V.object({code:V.string(),data:V.record(V.string(),V.unknown())}).nullable().optional()});function Z({tenantId:a,projectId:b,id:c,initialData:r}){let[w,x]=(0,g.useState)(!1),y=(0,h.mN)({resolver:(0,e.u)(Y),defaultValues:(a=>{if(!a)return U;let b={...a};return b.props&&(b.props=(0,u.S_)(b.props)),b})(r)}),{isSubmitting:z}=y.formState,A=(0,f.useRouter)();(0,q.S)({form:y,nameField:"name",idField:"id",isEditing:!!c});let B=async d=>{try{let e={...d};if(c){let c=await s(a,b,e);if(!c.success)return void i.oR.error(c.error||"Failed to update component");i.oR.success("Component updated")}else{let c=await t(a,b,e);if(!c.success)return void i.oR.error(c.error||"Failed to create component");i.oR.success("Component created"),A.push(`/${a}/projects/${b}/components`)}}catch(b){console.error("Error submitting component:",b);let a=b instanceof Error?b.message:"An unexpected error occurred";i.oR.error(a)}};return(0,d.jsxs)(n.lG,{open:w,onOpenChange:x,children:[(0,d.jsx)(p.lV,{...y,children:(0,d.jsxs)("form",{onSubmit:y.handleSubmit(B),className:"space-y-8",children:[(0,d.jsx)(j.a,{control:y.control,name:"name",label:"Name",placeholder:"ListOrders",description:(0,d.jsxs)(d.Fragment,{children:["This name is used to identify the component in chat widget integration."," ",(0,d.jsx)(o.G,{href:"https://docs.inkeep.com/typescript-sdk/structured-outputs/data-components#frontend-integration",target:"_blank",children:"Learn more"})]}),isRequired:!0}),(0,d.jsx)(j.a,{control:y.control,name:"id",label:"Id",placeholder:"my-data-component",disabled:!!c,description:c?"":"Choose a unique identifier for this component. Using an existing id will replace that component.",isRequired:!0}),(0,d.jsx)(k.K,{control:y.control,name:"description",label:"Description",placeholder:"Display a list of user orders with interactive options",className:"min-h-[80px]",isRequired:!0}),(0,d.jsx)(l.S,{control:y.control,name:"props",label:"Props (JSON schema)",placeholder:"Enter a valid JSON Schema...",isRequired:!0}),c&&(0,d.jsx)(T,{tenantId:a,projectId:b,dataComponentId:c,existingPreview:r?.preview||null,onPreviewChanged:a=>{y.setValue("preview",a)}}),(0,d.jsxs)("div",{className:"flex w-full justify-between",children:[(0,d.jsx)(m.$,{type:"submit",disabled:z,children:"Save"}),c&&(0,d.jsx)(n.zM,{asChild:!0,children:(0,d.jsx)(m.$,{type:"button",variant:"secondary",children:"Delete Component"})})]})]})}),w&&c&&(0,d.jsx)(v.u,{dataComponentId:c,dataComponentName:y.getValues("name"),setIsOpen:x,redirectOnDelete:!0})]})}},80974:(a,b,c)=>{c.d(b,{Qj:()=>k,SR:()=>l,_O:()=>j});var d=c(7352),e=c(43381);let f=d.ZU.Object({type:d.ZU.Union([d.ZU.Literal("string"),d.ZU.Literal("number"),d.ZU.Literal("integer"),d.ZU.Literal("boolean"),d.ZU.Literal("array"),d.ZU.Literal("object"),d.ZU.Literal("null")]),description:d.ZU.String({minLength:1}),format:d.ZU.Optional(d.ZU.String()),pattern:d.ZU.Optional(d.ZU.String()),minimum:d.ZU.Optional(d.ZU.Number()),maximum:d.ZU.Optional(d.ZU.Number()),minLength:d.ZU.Optional(d.ZU.Number()),maxLength:d.ZU.Optional(d.ZU.Number()),items:d.ZU.Optional(d.ZU.Any()),properties:d.ZU.Optional(d.ZU.Any()),enum:d.ZU.Optional(d.ZU.Array(d.ZU.Any())),const:d.ZU.Optional(d.ZU.Any()),default:d.ZU.Optional(d.ZU.Any())}),g=d.ZU.Object({type:d.ZU.Literal("object"),properties:d.ZU.Record(d.ZU.String(),f),required:d.ZU.Array(d.ZU.String(),{minItems:1}),additionalProperties:d.ZU.Optional(d.ZU.Boolean()),description:d.ZU.Optional(d.ZU.String())}),h=e.gv.Compile(f),i=e.gv.Compile(g);function j(a){let b=[],{parsed:c,errors:d}=function(a){let b=[],c=null;if(!a?.trim())return{parsed:null,errors:b};try{c=JSON.parse(a)}catch(a){b.push({path:"root",message:a instanceof Error?a.message:"Invalid JSON syntax",type:"syntax"})}return{parsed:c,errors:b}}(a);if(d.length>0)return{isValid:!1,errors:d,warnings:b};if(!c)return{isValid:!0,errors:[],warnings:["Empty schema provided"]};let e=[...function(a){let b=[];return a&&"object"==typeof a?!i.Check(a)&&(a.type&&"object"===a.type||b.push({path:"type",message:'Schema must have type: "object" for LLM compatibility',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties||b.push({path:"properties",message:'Schema must have a "properties" object',type:"schema"}),a.required&&Array.isArray(a.required)||b.push({path:"required",message:'Schema must have a "required" array (can be empty)',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{h.Check(c)||[...h.Errors(c)].forEach(c=>{let d=c.message;"/description"===c.path?d='Each property must have a "description" for LLM compatibility':"/type"===c.path&&(d='Each property must have a valid "type"'),b.push({path:`properties.${a}${c.path}`,message:d,type:"/description"===c.path?"llm_requirement":"schema"})})})):b.push({path:"root",message:"Schema must be an object",type:"schema"}),b}(c),...function(a){let b=[];return a&&"object"==typeof a&&(a.required&&Array.isArray(a.required)&&a.properties&&a.required.forEach(c=>{a.properties[c]||b.push({path:"required",message:`Required property "${c}" must exist in properties`,type:"schema"})}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{c.description&&"string"==typeof c.description&&0!==c.description.trim().length||b.push({path:`properties.${a}.description`,message:"Each property must have a non-empty description for LLM compatibility",type:"llm_requirement"})})),b}(c)];return{isValid:0===e.length,errors:e,warnings:b}}function k(){return JSON.stringify({type:"object",properties:{example_property:{type:"string",description:"Description of what this property represents"}},required:["example_property"]},null,2)}function l(a){if(a instanceof SyntaxError){let b=a.message.toLowerCase();return b.includes("unexpected end of json input")?"Incomplete JSON - missing closing brackets or quotes":b.includes("unexpected token")?"Invalid character in JSON - check for missing commas, quotes, or brackets":b.includes("expected property name")||b.includes("expected ':' after property name")?"Property names must be in double quotes":b.includes("duplicate keys")?"Duplicate property names are not allowed":"Invalid JSON syntax - check structure and formatting"}return"Unable to parse JSON"}},92107:(a,b,c)=>{c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(43461);function j(){return(0,d.jsx)(e.H,{breadcrumbs:[{label:"Components"}],children:(0,d.jsxs)(f.D,{children:[(0,d.jsx)(g.zY,{title:"Components",description:i.yr}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 md:gap-4",children:Array.from({length:6}).map((a,b)=>(0,d.jsx)(h.E,{className:"h-36 w-full rounded-lg"},`loading-skeleton-${b}`))})]})})}},93755:(a,b,c)=>{c.d(b,{J:()=>h});var d=c(59111),e=c(53710),f=c(2856),g=c(96032);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"})]})]})}},98261:(a,b,c)=>{c.d(b,{DataComponentForm:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call DataComponentForm() from the server but DataComponentForm 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/data-components/form/data-component-form.tsx","DataComponentForm")}};