@inkeep/agents-manage-ui 0.22.3 → 0.22.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) 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 +176 -166
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +6 -6
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +7 -7
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +12 -12
  7. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +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_client-reference-manifest.js +1 -1
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  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_client-reference-manifest.js +1 -1
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +1 -1
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +1 -1
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +1 -1
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +1 -1
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  74. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
  75. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  78. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +6 -6
  80. package/.next/standalone/agents-manage-ui/.next/server/chunks/1670.js +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/chunks/175.js +1 -1
  82. package/.next/standalone/agents-manage-ui/.next/server/chunks/207.js +1 -0
  83. package/.next/standalone/agents-manage-ui/.next/server/chunks/2153.js +1 -1
  84. package/.next/standalone/agents-manage-ui/.next/server/chunks/2496.js +184 -0
  85. package/.next/standalone/agents-manage-ui/.next/server/chunks/3205.js +1 -0
  86. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  87. package/.next/standalone/agents-manage-ui/.next/server/chunks/6212.js +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/chunks/6494.js +1 -0
  89. package/.next/standalone/agents-manage-ui/.next/server/chunks/7457.js +2 -2
  90. package/.next/standalone/agents-manage-ui/.next/server/chunks/7641.js +1 -0
  91. package/.next/standalone/agents-manage-ui/.next/server/chunks/8275.js +1 -1
  92. package/.next/standalone/agents-manage-ui/.next/server/chunks/8982.js +1 -1
  93. package/.next/standalone/agents-manage-ui/.next/server/edge-runtime-webpack.js +2 -0
  94. package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +28 -2
  96. package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  98. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  101. package/.next/standalone/agents-manage-ui/.next/server/src/middleware.js +14 -0
  102. package/.next/standalone/agents-manage-ui/.next/static/chunks/13162.51bfeffa888e765d.js +1 -0
  103. package/.next/standalone/agents-manage-ui/.next/static/chunks/2100.0cc29b56dc39a91c.js +93 -0
  104. package/.next/standalone/agents-manage-ui/.next/static/chunks/{21078.db6a097e0944219f.js → 21078.a7d987aaf4965f33.js} +1 -1
  105. package/.next/standalone/agents-manage-ui/.next/static/chunks/26917.cd86a6e50adbcaf7.js +1 -0
  106. package/.next/standalone/agents-manage-ui/.next/static/chunks/331.4a73e2854eaaf329.js +1 -0
  107. package/.next/standalone/agents-manage-ui/.next/static/chunks/47065.981fe771a3ebbc89.js +55 -0
  108. package/.next/standalone/agents-manage-ui/.next/static/chunks/{48da6a00.4291466416c0a466.js → 48da6a00.6d972ca63d2c3e83.js} +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/static/chunks/53779.3c6baf4968503ed4.js +1 -0
  110. package/.next/standalone/agents-manage-ui/.next/static/chunks/54855.9990b0a1efe89008.js +1 -0
  111. package/.next/standalone/agents-manage-ui/.next/static/chunks/{71558-09e7e3d1322b0bd1.js → 71558-78422b7aaa85fd6c.js} +1 -1
  112. package/.next/standalone/agents-manage-ui/.next/static/chunks/7190-fd3c76249a4dd920.js +1 -0
  113. package/.next/standalone/agents-manage-ui/.next/static/chunks/72963-d8f87b0ac91409cd.js +1 -0
  114. package/.next/standalone/agents-manage-ui/.next/static/chunks/73974.646f6f06a0fb78fb.js +62 -0
  115. package/.next/standalone/agents-manage-ui/.next/static/chunks/78225-259f39396b8ad0f3.js +1 -0
  116. package/.next/standalone/agents-manage-ui/.next/static/chunks/{89814.9c8e7e476bf1798d.js → 89814.587633678bc1263b.js} +2 -2
  117. package/.next/standalone/agents-manage-ui/.next/static/chunks/93453.066f92e65561f306.js +59 -0
  118. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/loading-e1f169e1ecbf908b.js +1 -0
  119. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/loading-e1f169e1ecbf908b.js +1 -0
  120. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/{page-30250ffa231b377c.js → page-e003706d61e1eafe.js} +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-ef99f039107dd345.js +1 -0
  122. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/{page-307ffafed40f4069.js → page-afdaf855aec8af05.js} +1 -1
  123. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/{page-307ffafed40f4069.js → page-afdaf855aec8af05.js} +1 -1
  124. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-bc4833a45b33a47d.js +1 -0
  125. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-ef06eff512088fdf.js +1 -0
  126. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-ef06eff512088fdf.js +1 -0
  127. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-78b8833482d1f877.js +1 -0
  128. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-a2772a4b6f4e0249.js +1 -0
  129. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-4864c8674778ee06.js +1 -0
  130. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-b40d929333c3ce65.js +1 -0
  131. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-9d1905ada8938af6.js +1 -0
  132. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-e1f169e1ecbf908b.js +1 -0
  133. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-7e3bb93e78b43ec7.js → page-89cef449fcf9ef7d.js} +1 -1
  134. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-069621ec5b0970e5.js +1 -0
  135. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-1d17d906388bbd8c.js → page-1273d3fada0586f8.js} +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-b23914a33d42bd42.js +1 -0
  137. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-c605715de4c89b47.js +1 -0
  138. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-c0ecff8c2b6e0bcc.js +1 -0
  139. package/.next/standalone/agents-manage-ui/.next/static/chunks/main-f6a588d23fbb5abc.js +1 -0
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-eac97a6e1c9c9ceb.js → webpack-59bf208cf832faea.js} +1 -1
  141. package/.next/standalone/agents-manage-ui/.next/static/css/a813c86aed230074.css +1 -0
  142. package/.next/standalone/agents-manage-ui/package.json +1 -1
  143. package/.next/standalone/package.json +3 -2
  144. package/.next/standalone/packages/agents-core/package.json +1 -1
  145. package/package.json +4 -4
  146. package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/loading.tsx +2 -26
  147. package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.tsx +1 -1
  148. package/src/app/[tenantId]/projects/[projectId]/agents/new/loading.tsx +5 -0
  149. package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.tsx +0 -1
  150. package/src/app/api/signoz/route.ts +0 -2
  151. package/src/app/utils/active-tools.ts +0 -2
  152. package/src/app/utils/format-date.ts +0 -2
  153. package/src/components/agent/agent-loading-skeleton.tsx +26 -0
  154. package/src/components/agent/agent.tsx +21 -39
  155. package/src/components/agent/configuration/model-options.tsx +11 -8
  156. package/src/components/agent/edges/self-loop-edge.tsx +0 -1
  157. package/src/components/agent/nodes/function-tool-node.tsx +0 -1
  158. package/src/components/agent/nodes/mcp-node.tsx +0 -1
  159. package/src/components/agent/playground/chat-widget.tsx +0 -1
  160. package/src/components/agent/playground/ikp-message.tsx +0 -3
  161. package/src/components/agent/sidepane/edges/edge-editor.tsx +0 -3
  162. package/src/components/agent/sidepane/editor-loading-skeleton.tsx +40 -0
  163. package/src/components/agent/sidepane/nodes/function-tool-node-editor.tsx +0 -1
  164. package/src/components/agent/sidepane/nodes/mcp-node-editor.tsx +0 -1
  165. package/src/components/agent/sidepane/nodes/sub-agent-node-editor.tsx +0 -2
  166. package/src/components/agent/sidepane/sidepane.tsx +14 -4
  167. package/src/components/artifact-components/form/validation.ts +0 -2
  168. package/src/components/credentials/views/edit-credential-form.tsx +0 -2
  169. package/src/components/credentials/views/generic-auth-form.tsx +0 -1
  170. package/src/components/data-components/form/validation.ts +0 -1
  171. package/src/components/form/prompt-editor.tsx +0 -4
  172. package/src/components/mcp-servers/mcp-tool-image.tsx +0 -1
  173. package/src/components/projects/form/project-form.tsx +0 -4
  174. package/src/components/projects/form/project-models-section.tsx +0 -2
  175. package/src/components/projects/form/project-stopwhen-section.tsx +0 -1
  176. package/src/components/traces/conversation-stats/conversation-list-item.tsx +0 -1
  177. package/src/components/traces/editors/json-editor-with-copy.tsx +0 -3
  178. package/src/components/traces/timeline/span-attributes.tsx +0 -1
  179. package/src/components/traces/timeline/timeline-wrapper.tsx +0 -2
  180. package/src/components/traces/traces-overview.tsx +0 -3
  181. package/src/components/ui/card-grid.tsx +0 -1
  182. package/src/components/ui/chart.tsx +0 -1
  183. package/src/components/ui/inheritance-indicator.tsx +0 -3
  184. package/src/components/ui/item-card-grid.tsx +0 -1
  185. package/src/features/agent/domain/deserialize.ts +0 -5
  186. package/src/features/agent/domain/serialize.ts +0 -8
  187. package/src/features/agent/state/use-agent-store.ts +32 -26
  188. package/src/hooks/use-chat-activities-polling.ts +0 -2
  189. package/src/hooks/use-node-editor.ts +0 -1
  190. package/src/hooks/use-oauth-login.ts +0 -1
  191. package/src/hooks/use-side-pane.ts +5 -2
  192. package/src/hooks/use-traces-query-state.ts +0 -1
  193. package/src/lib/api/api-config.ts +0 -1
  194. package/src/lib/api/artifact-components.ts +0 -4
  195. package/src/lib/api/projects.ts +0 -4
  196. package/src/lib/api/signoz-sql.ts +0 -1
  197. package/src/lib/api/signoz-stats.ts +0 -1
  198. package/src/lib/json-schema-validation.ts +0 -5
  199. package/src/lib/mcp-tools/nango-types.ts +0 -1
  200. package/src/lib/mcp-tools/nango.ts +0 -8
  201. package/src/lib/utils/agent-error-parser.ts +0 -2
  202. package/src/lib/utils/credentials-utils.ts +0 -1
  203. package/src/lib/utils/mcp-urls.ts +0 -2
  204. package/src/middleware.ts +18 -0
  205. package/.next/standalone/agents-manage-ui/.next/server/chunks/4059.js +0 -1
  206. package/.next/standalone/agents-manage-ui/.next/server/chunks/428.js +0 -1
  207. package/.next/standalone/agents-manage-ui/.next/server/chunks/7320.js +0 -1
  208. package/.next/standalone/agents-manage-ui/.next/server/chunks/7504.js +0 -184
  209. package/.next/standalone/agents-manage-ui/.next/server/chunks/7521.js +0 -1
  210. package/.next/standalone/agents-manage-ui/.next/static/chunks/13162.49a473711bfc9106.js +0 -1
  211. package/.next/standalone/agents-manage-ui/.next/static/chunks/2100.6da5ac53af6a50b9.js +0 -93
  212. package/.next/standalone/agents-manage-ui/.next/static/chunks/26917.44af95c2220d2d7a.js +0 -1
  213. package/.next/standalone/agents-manage-ui/.next/static/chunks/331.4164e5bbbf2109c5.js +0 -1
  214. package/.next/standalone/agents-manage-ui/.next/static/chunks/47065.a2df61ae309c6b30.js +0 -55
  215. package/.next/standalone/agents-manage-ui/.next/static/chunks/53779.d1ecdd05fd8620ac.js +0 -1
  216. package/.next/standalone/agents-manage-ui/.next/static/chunks/54848-b8b349adf584e69d.js +0 -1
  217. package/.next/standalone/agents-manage-ui/.next/static/chunks/54855.ac5c4000030e49f3.js +0 -1
  218. package/.next/standalone/agents-manage-ui/.next/static/chunks/7190-aa6560bbe61271d7.js +0 -1
  219. package/.next/standalone/agents-manage-ui/.next/static/chunks/73974.c41c4a27e5a42554.js +0 -62
  220. package/.next/standalone/agents-manage-ui/.next/static/chunks/78225-21eddae3f1b5ec1f.js +0 -1
  221. package/.next/standalone/agents-manage-ui/.next/static/chunks/93453.a61a7f6334280207.js +0 -59
  222. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/loading-721e10fd249e4b77.js +0 -1
  223. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-437cdd3080259f1e.js +0 -1
  224. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-32b8fcfa86abe256.js +0 -1
  225. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-12d4291fe72e0026.js +0 -1
  226. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-12d4291fe72e0026.js +0 -1
  227. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-d1d7693e125ff510.js +0 -1
  228. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-33822c38f99da934.js +0 -1
  229. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-a740a126e11feafe.js +0 -1
  230. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-90d0b130845acb11.js +0 -1
  231. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-a1407ebc77250007.js +0 -1
  232. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-721e10fd249e4b77.js +0 -1
  233. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-cb8ce7a25d839cad.js +0 -1
  234. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-6d8b3ec5cc084fc6.js +0 -1
  235. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-e4b74625b57c57d8.js +0 -1
  236. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-322a4f6225bcc7e2.js +0 -1
  237. package/.next/standalone/agents-manage-ui/.next/static/chunks/main-2ddea5276081c6f7.js +0 -1
  238. package/.next/standalone/agents-manage-ui/.next/static/css/42e93c4387888412.css +0 -1
  239. /package/.next/standalone/agents-manage-ui/.next/static/{NLgskf8DwJF0IXIIw2oaS → D8h6pxVIqA0GQjbq_VQqo}/_buildManifest.js +0 -0
  240. /package/.next/standalone/agents-manage-ui/.next/static/{NLgskf8DwJF0IXIIw2oaS → D8h6pxVIqA0GQjbq_VQqo}/_ssgManifest.js +0 -0
@@ -164,7 +164,6 @@ export function deserializeAgentData(data: FullAgentDefinition): TransformResult
164
164
  ? { stepCountIs: internalAgent.stopWhen.stepCountIs }
165
165
  : undefined,
166
166
  type: agent.type,
167
- // Convert canUse back to tools, selectedTools, headers for UI
168
167
  tools: internalAgent.canUse ? internalAgent.canUse.map((item) => item.toolId) : [],
169
168
  selectedTools: internalAgent.canUse
170
169
  ? internalAgent.canUse.reduce(
@@ -201,17 +200,14 @@ export function deserializeAgentData(data: FullAgentDefinition): TransformResult
201
200
  nodes.push(agentNode);
202
201
  }
203
202
 
204
- // Create tool nodes from canUse items (using tools and functions lookups)
205
203
  for (const subAgentId of subAgentIds) {
206
204
  const agent = data.subAgents[subAgentId];
207
- // Check if agent has canUse property (internal agents)
208
205
  if ('canUse' in agent && agent.canUse && agent.canUse.length > 0) {
209
206
  for (const canUseItem of agent.canUse) {
210
207
  const toolId = canUseItem.toolId;
211
208
  const toolNodeId = nanoid();
212
209
  const relationshipId = canUseItem.agentToolRelationId;
213
210
 
214
- // Get tool details from lookup
215
211
  const tool = data.tools?.[toolId] || data.functionTools?.[toolId];
216
212
 
217
213
  // Determine node type based on tool type
@@ -277,7 +273,6 @@ export function deserializeAgentData(data: FullAgentDefinition): TransformResult
277
273
  for (const sourceSubAgentId of subAgentIds) {
278
274
  const sourceAgent = data.subAgents[sourceSubAgentId];
279
275
 
280
- // Check if agent has relationship properties (internal agents only)
281
276
  if ('canTransferTo' in sourceAgent && sourceAgent.canTransferTo) {
282
277
  for (const targetSubAgentId of sourceAgent.canTransferTo) {
283
278
  if (data.subAgents[targetSubAgentId]) {
@@ -31,7 +31,6 @@ export type ExtendedAgent =
31
31
  })
32
32
  | ExternalAgent;
33
33
 
34
- // Type guard to check if an agent is an internal agent
35
34
  function isInternalAgent(
36
35
  agent: ExtendedAgent | FullAgentDefinition['subAgents'][string]
37
36
  ): agent is InternalAgent {
@@ -121,7 +120,6 @@ export function serializeAgentData(
121
120
 
122
121
  const stopWhen = (node.data as any).stopWhen;
123
122
 
124
- // Build canUse array from edges connecting this agent to tool nodes (MCP and Function)
125
123
  const canUse: Array<{
126
124
  toolId: string;
127
125
  toolSelection?: string[] | null;
@@ -143,11 +141,9 @@ export function serializeAgentData(
143
141
  const toolId = (mcpNode.data as any).toolId;
144
142
 
145
143
  if (toolId) {
146
- // Get selected tools from MCP node's tempSelectedTools
147
144
  const tempSelectedTools = (mcpNode.data as any).tempSelectedTools;
148
145
  let toolSelection: string[] | null = null;
149
146
 
150
- // Get the relationshipId from the MCP node first
151
147
  const relationshipId = (mcpNode.data as any).relationshipId;
152
148
 
153
149
  if (tempSelectedTools !== undefined) {
@@ -217,10 +213,8 @@ export function serializeAgentData(
217
213
  const functionToolId = nodeData.functionToolId || nodeData.toolId || functionToolNode.id;
218
214
  const relationshipId = nodeData.relationshipId;
219
215
 
220
- // Get the function ID from the node data (should reference existing function)
221
216
  const functionId = nodeData.functionId || functionToolId;
222
217
 
223
- // Create function tool entry
224
218
  const functionToolData = {
225
219
  id: functionToolId,
226
220
  name: nodeData.name || '',
@@ -493,7 +487,6 @@ export function validateSerializedData(
493
487
  }
494
488
  }
495
489
 
496
- // Validate function tools for internal agents (check canUse array for function tools)
497
490
  if (isInternalAgent(agent) && agent.canUse) {
498
491
  for (const canUseItem of agent.canUse) {
499
492
  const toolId = canUseItem.toolId;
@@ -519,7 +512,6 @@ export function validateSerializedData(
519
512
  // Use the node map to get the React Flow node ID if available
520
513
  const nodeId = functionToolNodeMap?.get(toolId) || toolId;
521
514
 
522
- // Validate required fields for function tools
523
515
  if (!functionTool.name || String(functionTool.name).trim() === '') {
524
516
  errors.push({
525
517
  message: 'Function tool name is required',
@@ -38,6 +38,7 @@ type AgentActions = {
38
38
  toolLookup?: Record<string, MCPTool>,
39
39
  agentToolConfigLookup?: AgentToolConfigLookup
40
40
  ): void;
41
+ reset(): void;
41
42
  setDataComponentLookup(dataComponentLookup: Record<string, DataComponent>): void;
42
43
  setArtifactComponentLookup(artifactComponentLookup: Record<string, ArtifactComponent>): void;
43
44
  setToolLookup(toolLookup: Record<string, MCPTool>): void;
@@ -67,32 +68,36 @@ type AgentState = AgentStateData & {
67
68
  actions: AgentActions;
68
69
  };
69
70
 
71
+ const initialAgentState: AgentStateData = {
72
+ nodes: [],
73
+ edges: [],
74
+ metadata: {
75
+ id: undefined,
76
+ name: '',
77
+ description: '',
78
+ contextConfig: {
79
+ contextVariables: '',
80
+ headersSchema: '',
81
+ },
82
+ models: undefined,
83
+ stopWhen: undefined,
84
+ prompt: undefined,
85
+ statusUpdates: undefined,
86
+ },
87
+ dataComponentLookup: {},
88
+ artifactComponentLookup: {},
89
+ toolLookup: {},
90
+ agentToolConfigLookup: {},
91
+ dirty: false,
92
+ history: [],
93
+ future: [],
94
+ errors: null,
95
+ showErrors: false,
96
+ };
97
+
70
98
  export const agentStore = create<AgentState>()(
71
99
  devtools((set, get) => ({
72
- nodes: [],
73
- edges: [],
74
- metadata: {
75
- id: undefined,
76
- name: '',
77
- description: '',
78
- contextConfig: {
79
- contextVariables: '',
80
- headersSchema: '',
81
- },
82
- models: undefined,
83
- stopWhen: undefined,
84
- prompt: undefined,
85
- statusUpdates: undefined,
86
- },
87
- dataComponentLookup: {},
88
- artifactComponentLookup: {},
89
- toolLookup: {},
90
- agentToolConfigLookup: {},
91
- dirty: false,
92
- history: [],
93
- future: [],
94
- errors: null,
95
- showErrors: false,
100
+ ...initialAgentState,
96
101
  // Separate "namespace" for actions
97
102
  actions: {
98
103
  setInitial(
@@ -119,6 +124,9 @@ export const agentStore = create<AgentState>()(
119
124
  showErrors: false,
120
125
  });
121
126
  },
127
+ reset() {
128
+ set(initialAgentState);
129
+ },
122
130
  setDataComponentLookup(dataComponentLookup) {
123
131
  set({ dataComponentLookup });
124
132
  },
@@ -144,7 +152,6 @@ export const agentStore = create<AgentState>()(
144
152
  }));
145
153
  },
146
154
  onNodesChange(changes) {
147
- // Check if any change type would modify the agent (not just selection changes)
148
155
  const hasModifyingChange = changes.some(
149
156
  // Don't trigger `position` as modified change, since when the nodes are repositioned,
150
157
  // they'll be re-laid out during the initial load anyway
@@ -158,7 +165,6 @@ export const agentStore = create<AgentState>()(
158
165
  }));
159
166
  },
160
167
  onEdgesChange(changes) {
161
- // Check if any change type would modify the agent (not just selection changes)
162
168
  const hasModifyingChange = changes.some(
163
169
  (change) => change.type === 'remove' || change.type === 'add' || change.type === 'replace'
164
170
  );
@@ -33,7 +33,6 @@ export const useChatActivitiesPolling = ({
33
33
  try {
34
34
  setError(null);
35
35
 
36
- // Create new abort controller for this request
37
36
  abortControllerRef.current = new AbortController();
38
37
  const currentConversationId = conversationId; // Capture current ID
39
38
 
@@ -63,7 +62,6 @@ export const useChatActivitiesPolling = ({
63
62
 
64
63
  const data: ConversationDetail = await response.json();
65
64
 
66
- // Validate that the response is still for the current conversation
67
65
  if (isComponentMountedRef.current && currentConversationId === conversationId) {
68
66
  // Only update state if data actually changed (by checking activity count)
69
67
  const newCount = data.activities?.length || 0;
@@ -107,7 +107,6 @@ export function useNodeEditor({ selectedNodeId, errorHelpers }: UseNodeEditorOpt
107
107
  const finalKey = nestedPath[nestedPath.length - 1];
108
108
  if (value === undefined || value === null || value === '') {
109
109
  delete current[finalKey];
110
- // Check if the parent object becomes empty after deletion
111
110
  if (Object.keys(updatedParent).length === 0) {
112
111
  updateField(parentField, null);
113
112
  return;
@@ -25,7 +25,6 @@ export function useOAuthLogin({ tenantId, projectId, onFinish, onError }: UseOAu
25
25
  activeAttempts.delete(toolId);
26
26
  }
27
27
  try {
28
- // Get the OAuth URL and open in popup window
29
28
  const oauthUrl = getOAuthLoginUrl({
30
29
  PUBLIC_INKEEP_AGENTS_MANAGE_API_URL,
31
30
  tenantId,
@@ -1,10 +1,13 @@
1
1
  import { parseAsString, parseAsStringLiteral, useQueryStates } from 'nuqs';
2
2
 
3
- const paneType = ['agent', 'node', 'edge'] as const;
3
+ export const PANE_TYPES = ['agent', 'node', 'edge'] as const;
4
+ export type PaneType = (typeof PANE_TYPES)[number];
5
+
6
+ export const DEFAULT_NEW_AGENT_PANE: PaneType = 'agent';
4
7
 
5
8
  export function useSidePane() {
6
9
  const [queryState, setQueryState] = useQueryStates({
7
- pane: parseAsStringLiteral(paneType),
10
+ pane: parseAsStringLiteral(PANE_TYPES),
8
11
  nodeId: parseAsString,
9
12
  edgeId: parseAsString,
10
13
  });
@@ -46,7 +46,6 @@ export function useTracesQueryState() {
46
46
  // Span filtering
47
47
  spanName: parseAsString.withDefault(''),
48
48
  spanAttributes: parseAsJson((value: unknown): SpanAttribute[] => {
49
- // Validate that the parsed JSON is an array of SpanAttribute objects
50
49
  if (!Array.isArray(value)) return [];
51
50
 
52
51
  return value.filter(
@@ -66,7 +66,6 @@ async function makeApiRequestInternal<T>(
66
66
  );
67
67
  }
68
68
 
69
- // Check if there's actually content to parse
70
69
  const contentType = response.headers.get('content-type');
71
70
  const hasJsonContent = contentType?.includes('application/json');
72
71
 
@@ -35,7 +35,6 @@ export async function fetchArtifactComponents(
35
35
  `tenants/${tenantId}/projects/${projectId}/artifact-components`
36
36
  );
37
37
 
38
- // Return the response as-is, preserving null/undefined props
39
38
  return response;
40
39
  }
41
40
 
@@ -54,7 +53,6 @@ export async function fetchArtifactComponent(
54
53
  `tenants/${tenantId}/projects/${projectId}/artifact-components/${artifactComponentId}`
55
54
  );
56
55
 
57
- // Return the response as-is, preserving null/undefined props
58
56
  return response.data;
59
57
  }
60
58
 
@@ -77,7 +75,6 @@ export async function createArtifactComponent(
77
75
  }
78
76
  );
79
77
 
80
- // Return the response as-is, preserving null/undefined props
81
78
  return response.data;
82
79
  }
83
80
 
@@ -100,7 +97,6 @@ export async function updateArtifactComponent(
100
97
  }
101
98
  );
102
99
 
103
- // Return the response as-is, preserving null/undefined props
104
100
  return response.data;
105
101
  }
106
102
 
@@ -13,7 +13,6 @@ export async function fetchProjects(tenantId: string): Promise<ListResponse<Proj
13
13
  `tenants/${tenantId}/projects`
14
14
  );
15
15
 
16
- // Map backend 'id' field to 'projectId' for frontend consistency
17
16
  if (response.data) {
18
17
  response.data = response.data.map((project: any) => ({
19
18
  ...project,
@@ -34,7 +33,6 @@ export async function fetchProject(
34
33
  `tenants/${tenantId}/projects/${projectId}`
35
34
  );
36
35
 
37
- // Map backend 'id' field to 'projectId' for frontend consistency
38
36
  if (response.data) {
39
37
  response.data = {
40
38
  ...response.data,
@@ -59,7 +57,6 @@ export async function createProject(
59
57
  }
60
58
  );
61
59
 
62
- // Map backend 'id' field to 'projectId' for frontend consistency
63
60
  if (response.data) {
64
61
  response.data = {
65
62
  ...response.data,
@@ -84,7 +81,6 @@ export async function updateProject(
84
81
  body: JSON.stringify(project),
85
82
  }
86
83
  );
87
- // Map backend 'id' field to 'projectId' for frontend consistency
88
84
  if (response.data) {
89
85
  response.data = {
90
86
  ...response.data,
@@ -123,7 +123,6 @@ export async function fetchAllSpanAttributes_SQL(
123
123
  }
124
124
 
125
125
  for (const r of rows) {
126
- // Build the span.data bag from the projected JSON maps
127
126
  const attrsString = JSON.parse(r.attributes_string_json || '{}');
128
127
  const attrsNum = JSON.parse(r.attributes_number_json || '{}');
129
128
  const attrsBool = JSON.parse(r.attributes_bool_json || '{}');
@@ -103,7 +103,6 @@ const asTypedFilterValue = (v: string): FilterValue => {
103
103
  return FilterValueSchema.parse(numericValue);
104
104
  }
105
105
 
106
- // Return as validated string
107
106
  return FilterValueSchema.parse(v);
108
107
  } catch (error) {
109
108
  // If validation fails, log the error and return the original string
@@ -97,7 +97,6 @@ function validateJsonSchema(schema: any): ValidationError[] {
97
97
  return errors;
98
98
  }
99
99
 
100
- // Check if it's a valid object schema
101
100
  if (!objectValidator.Check(schema)) {
102
101
  // Check individual properties for better error messages
103
102
  if (!schema.type || schema.type !== 'object') {
@@ -124,7 +123,6 @@ function validateJsonSchema(schema: any): ValidationError[] {
124
123
  });
125
124
  }
126
125
 
127
- // Validate each property
128
126
  if (schema.properties && typeof schema.properties === 'object') {
129
127
  Object.entries(schema.properties).forEach(([propertyName, propertySchema]) => {
130
128
  if (!propertyValidator.Check(propertySchema)) {
@@ -205,7 +203,6 @@ function validateLlmRequirements(schema: any): ValidationError[] {
205
203
  export function validateJsonSchemaForLlm(jsonString: string): ValidationResult {
206
204
  const warnings: string[] = [];
207
205
 
208
- // Step 1: Validate JSON syntax
209
206
  const { parsed, errors: syntaxErrors } = validateJsonSyntax(jsonString);
210
207
 
211
208
  if (syntaxErrors.length > 0) {
@@ -224,10 +221,8 @@ export function validateJsonSchemaForLlm(jsonString: string): ValidationResult {
224
221
  };
225
222
  }
226
223
 
227
- // Step 2: Validate JSON Schema structure
228
224
  const schemaErrors = validateJsonSchema(parsed);
229
225
 
230
- // Step 3: Validate LLM-specific requirements
231
226
  const llmErrors = validateLlmRequirements(parsed);
232
227
 
233
228
  const allErrors = [...schemaErrors, ...llmErrors];
@@ -10,7 +10,6 @@ export class NangoError extends Error {
10
10
  }
11
11
  }
12
12
 
13
- // Helper to wrap errors, preserving existing NangoErrors
14
13
  export function wrapNangoError(error: unknown, message: string, operation?: string): never {
15
14
  if (error instanceof NangoError) {
16
15
  throw error;
@@ -131,7 +131,6 @@ export async function fetchNangoIntegration(
131
131
  areCredentialsSet,
132
132
  };
133
133
  } catch (error) {
134
- // Check if this is a 404 (integration not found) - return null for this case
135
134
  if (error && typeof error === 'object' && 'status' in error && error.status === 404) {
136
135
  return null;
137
136
  }
@@ -245,7 +244,6 @@ export async function createNangoApiKeyConnection({
245
244
  const idFromName = generateIdFromName(name);
246
245
 
247
246
  try {
248
- // Step 1: Ensure Nango integration exists
249
247
  let integration: ApiPublicIntegration;
250
248
 
251
249
  /*
@@ -291,7 +289,6 @@ export async function createNangoApiKeyConnection({
291
289
  }
292
290
  }
293
291
 
294
- // Step 2: Import the connection to Nango
295
292
  try {
296
293
  const importConnectionUrl = `${process.env.NANGO_SERVER_URL || process.env.PUBLIC_NANGO_SERVER_URL || DEFAULT_NANGO_SERVER_URL}/connections`;
297
294
 
@@ -326,7 +323,6 @@ export async function createNangoApiKeyConnection({
326
323
  wrapNangoError(error, `Failed to import API key connection to Nango`, 'importConnection');
327
324
  }
328
325
 
329
- // Step 3: Set metadata (Nango workaround)
330
326
  try {
331
327
  await setNangoConnectionMetadata({
332
328
  providerConfigKey: integration.unique_key,
@@ -359,7 +355,6 @@ export async function createProviderConnectSession({
359
355
  credentials?: ApiPublicIntegrationCredentials;
360
356
  }): Promise<string> {
361
357
  try {
362
- // Step 1: Check for existing integration
363
358
  let integration: ApiPublicIntegration;
364
359
  let existingIntegration: (ApiPublicIntegration & { areCredentialsSet: boolean }) | null = null;
365
360
 
@@ -373,7 +368,6 @@ export async function createProviderConnectSession({
373
368
  console.debug(`Integration '${providerName}' not found, will create new one`);
374
369
  }
375
370
 
376
- // Step 2: Use existing or create new integration
377
371
  if (existingIntegration?.areCredentialsSet) {
378
372
  integration = existingIntegration;
379
373
  } else {
@@ -393,7 +387,6 @@ export async function createProviderConnectSession({
393
387
  }
394
388
  }
395
389
 
396
- // Step 3: Create connect session
397
390
  try {
398
391
  const connectSession = await createNangoConnectSession({
399
392
  integrationId: integration.unique_key,
@@ -432,7 +425,6 @@ export async function getNangoConnectionMetadata({
432
425
  const metadata = await nango.getMetadata(providerConfigKey, connectionId);
433
426
  return metadata as Record<string, string>;
434
427
  } catch (error) {
435
- // Check if this is a 404 (connection not found) - return null for this case
436
428
  if (error && typeof error === 'object' && 'status' in error && error.status === 404) {
437
429
  return null;
438
430
  }
@@ -128,7 +128,6 @@ function processValidationError(
128
128
  field = error.path.join('.') || 'configuration';
129
129
  }
130
130
 
131
- // Create user-friendly message
132
131
  const message = createUserFriendlyMessage(error, field, type, nodeType);
133
132
 
134
133
  return {
@@ -176,7 +175,6 @@ function createUserFriendlyMessage(
176
175
  return `${entityType} ${fieldName} has an invalid value. Please select a valid option`;
177
176
 
178
177
  case 'invalid_union':
179
- // Check if this is an agent type discrimination error
180
178
  if (field.includes('type') || error.message.includes('discriminator')) {
181
179
  return `${entityType} type must be specified as either 'internal' or 'external'`;
182
180
  }
@@ -21,7 +21,6 @@ export async function findOrCreateCredential(
21
21
  // Credential not found, continue with creation
22
22
  }
23
23
 
24
- // Create new credential
25
24
  try {
26
25
  return await createCredential(tenantId, projectId, credentialData);
27
26
  } catch (error) {
@@ -18,7 +18,6 @@ export function getOAuthLoginUrl({
18
18
  projectId: string;
19
19
  id: string;
20
20
  }): string {
21
- // Validate input parameters
22
21
  if (!tenantId || typeof tenantId !== 'string') {
23
22
  throw new Error('Invalid tenantId: must be a non-empty string');
24
23
  }
@@ -31,7 +30,6 @@ export function getOAuthLoginUrl({
31
30
  throw new Error('Invalid projectId: must be a non-empty string');
32
31
  }
33
32
 
34
- // Validate format - only allow alphanumeric, hyphens, and underscores
35
33
  const validFormat = /^[a-zA-Z0-9-_]+$/;
36
34
 
37
35
  if (!validFormat.test(tenantId)) {
@@ -0,0 +1,18 @@
1
+ import { type NextRequest, NextResponse } from 'next/server';
2
+ import { DEFAULT_NEW_AGENT_PANE } from './hooks/use-side-pane';
3
+
4
+ export function middleware(request: NextRequest) {
5
+ const { pathname, searchParams } = request.nextUrl;
6
+
7
+ if (pathname.endsWith('/agents/new') && !searchParams.has('pane')) {
8
+ const url = request.nextUrl.clone();
9
+ url.searchParams.set('pane', DEFAULT_NEW_AGENT_PANE);
10
+ return NextResponse.redirect(url);
11
+ }
12
+
13
+ return NextResponse.next();
14
+ }
15
+
16
+ export const config = {
17
+ matcher: '/:tenantId/projects/:projectId/agents/new',
18
+ };
@@ -1 +0,0 @@
1
- exports.id=4059,exports.ids=[4059],exports.modules={5294:(a,b,c)=>{"use strict";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,"78034756f4ec8aa876e941bcfdc2f371a0870ea192",null),(0,d.A)(h,"70ddf2f5d96171b566556bc0d8c0a0b98de9de49cd",null),(0,d.A)(i,"7012bf643c0bc6fc45635396e11e564ea8c175b4f6",null),(0,d.A)(j,"7805e67728afc4f6bf24a199667199982ffca13f86",null),(0,d.A)(k,"70ea5b93e8548a4d0858490efa5005a734a9d79dfd",null)},19329:(a,b,c)=>{"use strict";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,"70db7738dcd861ffec2e98db67f3eeff1e8aebd02a",null)},21395:(a,b,c)=>{"use strict";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(56129),f=c(55797),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,credentials:b}){try{let c,d=null;try{d=await p(a)}catch(b){if(b instanceof h)throw b;console.debug(`Integration '${a}' not found, will create new one`)}if(d?.areCredentialsSet)c=d;else try{c=await q({provider:a,uniqueKey:a,displayName:a,credentials:b})}catch(b){i(b,`Failed to create integration for provider '${a}'`,"create")}try{return(await s({integrationId:c.unique_key})).token}catch(a){i(a,`Failed to create connect session for integration '${c.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,"0040f074773de3a61b7ff48925482b2ab524da127c",null),(0,d.A)(m,"00439388fdd59f19d5f6164f04c633b1f1ae8eca69",null),(0,d.A)(n,"405e97c41170041ef77ecfb929b18534f9dac46029",null),(0,d.A)(o,"00def7dbf0977cba61bea796011ad9878cf7c7d94d",null),(0,d.A)(p,"40b0b94413092ec75f0f59d5c4de3928776f5e7b7d",null),(0,d.A)(q,"40b03880ae621977ab319dd598eb89c94527fcf280",null),(0,d.A)(r,"407f43af8eea24e489cd28ebbd15adccc47063f734",null),(0,d.A)(t,"408584e1776042556d64e0ff93475de01b6b2c376d",null),(0,d.A)(u,"40c5a0cedb359a0a6515b7ad0c1be9e734c8814640",null),(0,d.A)(v,"40f2cdb535107b73833f061a0e417d5721212052e3",null),(0,d.A)(w,"4045ddb374a4eaed667e59877bf6ef44270a1528d7",null)},22427:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(59111),e=c(43433);function f(){return(0,d.jsx)(e.A,{description:"Something went wrong."})}},25600:(a,b,c)=>{Promise.resolve().then(c.bind(c,22427))},35304:(a,b,c)=>{"use strict";c.d(b,{U:()=>e});var d=c(90147);let e=(0,d.createServerReference)("70db7738dcd861ffec2e98db67f3eeff1e8aebd02a",d.callServer,void 0,d.findSourceMapURL,"findOrCreateCredential")},62048:(a,b,c)=>{Promise.resolve().then(c.bind(c,80969))},72602:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"403d2b1c2f00727550e81685e755e5b3ef7a64857c":()=>d.vj,"60d982af1b4e05dbbae266793fae8d8af9845e896a":()=>d.gA,"60f27e0464c44a11c13619e2a94b25820c58c35299":()=>d.xx,"60ff889785d83049ca3729d06b08f3613a1ee19dc1":()=>d.Sw,"70549adf92ea3d2a9e84a140af92d4da1afcf30c1f":()=>d.vr});var d=c(54637)},80969:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/credentials/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/credentials/error.tsx","default")}};
@@ -1 +0,0 @@
1
- exports.id=428,exports.ids=[428],exports.modules={437:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(89892).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},3339:(a,b,c)=>{Promise.resolve().then(c.bind(c,7838))},7838:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/artifacts/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/artifacts/error.tsx","default")},8636:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx","default")},12938:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"403b960274132dca648bb98f2359d2022b16ca1f8b":()=>d.bW,"60389a5c095bdbd65d2a9ddbccc51de77c01523588":()=>d.Dv,"603915dcfdbcb6c01baf0e3eb54f9eba9125d6e518":()=>p,"606778af7882431b69e79f9e48719115329cf7a5a7":()=>d.qf,"60de3b418f019d2c7bd347d2f646771c6cb5823c24":()=>d.gL,"70045ede779069d271c93b4548571ff8fe96ec300d":()=>q,"703562af0a49c0d1c9240b7fb09ecbabf36529908d":()=>d.Tg,"70bdbbbc1812f9dd6cd1c3c4e0f5d2e809a4d65eb4":()=>s,"70ea5ada1005f5d59531877d59e1d7c5f6b59c12cd":()=>r});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,"6001b8bcaba61db2c7d7461fea2d466f8aec76c4f7",null),(0,e.A)(k,"7063166401afee6905a7b226a6782dba7f1dbde98d",null),(0,e.A)(l,"7019cd4d55921fae3b41ea7a52c36ca5f69af3c38f",null),(0,e.A)(m,"707dd1f8744bd68e2fd9faed170e5e55d4d9bbea75",null),(0,e.A)(n,"70b5d49869e0babb2daa956463acf2ddf3625bc956",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`),(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts/${c}`),{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,"603915dcfdbcb6c01baf0e3eb54f9eba9125d6e518",null),(0,e.A)(q,"70045ede779069d271c93b4548571ff8fe96ec300d",null),(0,e.A)(r,"70ea5ada1005f5d59531877d59e1d7c5f6b59c12cd",null),(0,e.A)(s,"70bdbbbc1812f9dd6cd1c3c4e0f5d2e809a4d65eb4",null)},29160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(72669),e=c(95460),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){(0,e.notFound)()}return(0,d.jsx)(d.Fragment,{children:a})}},35859:(a,b,c)=>{Promise.resolve().then(c.bind(c,8636))},37830:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(59111),e=c(437),f=c(485);c(14450);var g=c(2856);function h(){let a=(0,f.useParams)(),b=(0,f.useRouter)(),c=a.tenantId,h=a.projectId;return(0,d.jsx)("div",{className:"flex min-h-[400px] flex-col items-center justify-center p-8",children:(0,d.jsxs)("div",{className:"text-center max-w-md",children:[(0,d.jsx)("div",{className:"mb-4 flex justify-center",children:(0,d.jsx)(e.A,{className:"h-12 w-12 text-muted-foreground"})}),(0,d.jsx)("h1",{className:"text-2xl font-semibold mb-2",children:"Project Not Found"}),(0,d.jsxs)("p",{className:"text-muted-foreground mb-6",children:['The project "',h,"\" does not exist or you don't have access to it."]}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground mb-6",children:"Redirecting to projects list in 3 seconds..."}),(0,d.jsx)(g.$,{onClick:()=>b.push(`/${c}/projects`),variant:"default",children:"Go to Projects List"})]})})}},39878:(a,b,c)=>{"use strict";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})]})}},39939:(a,b,c)=>{"use strict";c.d(b,{ArtifactComponentForm:()=>x});var d=c(59111),e=c(6614),f=c(485),g=c(75823),h=c(68156),i=c(17130),j=c(16426),k=c(56019),l=c(2856),m=c(93622),n=c(35283),o=c(90147);let p=(0,o.createServerReference)("70ea5ada1005f5d59531877d59e1d7c5f6b59c12cd",o.callServer,void 0,o.findSourceMapURL,"updateArtifactComponentAction"),q=(0,o.createServerReference)("70045ede779069d271c93b4548571ff8fe96ec300d",o.callServer,void 0,o.findSourceMapURL,"createArtifactComponentAction");var r=c(42723);let s={id:"",name:"",description:"",props:void 0};var t=c(34576),u=c(80974),v=c(62503);let w=t.object({id:v.f,name:t.string().min(1,"Name is required."),description:t.string().min(1,"Description is required."),props:t.union([t.string(),t.null(),t.undefined()]).transform((a,b)=>{if(a&&""!==a&&null!==a)try{let c=JSON.parse(a),d=(0,u._O)(a);if(!d.isValid){let a=d.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:t.ZodIssueCode.custom,message:a}),t.NEVER}return c}catch(a){return b.addIssue({code:t.ZodIssueCode.custom,message:(0,u.SR)(a)}),t.NEVER}}).optional()});function x({id:a,tenantId:b,projectId:c,initialData:o}){let t=(0,g.mN)({resolver:(0,e.u)(w),defaultValues:(a=>{if(!a)return s;let b={...a};return b.props&&(b.props=(0,r.S_)(b.props)),b})(o)}),{isSubmitting:u}=t.formState,v=(0,f.useRouter)();(0,n.S)({form:t,nameField:"name",idField:"id",isEditing:!!a});let x=async d=>{try{let e={...d};if(void 0===e.props&&(e.props=null),a){let a=await p(b,c,e);if(!a.success)return void h.oR.error(a.error||"Failed to update artifact.");h.oR.success("Artifact updated.")}else{let a=await q(b,c,e);if(!a.success)return void h.oR.error(a.error||"Failed to create artifact");h.oR.success("Artifact created."),v.push(`/${b}/projects/${c}/artifacts`)}}catch(b){console.error("Error submitting artifact:",b);let a=b instanceof Error?b.message:"An unexpected error occurred.";h.oR.error(a)}};return(0,d.jsx)(m.lV,{...t,children:(0,d.jsxs)("form",{onSubmit:t.handleSubmit(x),className:"space-y-8",children:[(0,d.jsx)(i.a,{control:t.control,name:"name",label:"Name",placeholder:"Document Artifact",isRequired:!0}),(0,d.jsx)(i.a,{control:t.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)(j.K,{control:t.control,name:"description",label:"Description",placeholder:"Structured factual information extracted from search results",className:"min-h-[80px]",isRequired:!0}),(0,d.jsx)(k.S,{control:t.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.jsx)(l.$,{type:"submit",disabled:u,children:"Save"})]})})}},44733:(a,b,c)=>{"use strict";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")},45622:()=>{},56019:(a,b,c)=>{"use strict";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})})}},59567:(a,b,c)=>{Promise.resolve().then(c.bind(c,44733)),Promise.resolve().then(c.bind(c,97633)),Promise.resolve().then(c.bind(c,80248)),Promise.resolve().then(c.t.bind(c,93520,23))},62503:(a,b,c)=>{"use strict";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.")},67815:(a,b,c)=>{Promise.resolve().then(c.bind(c,39939)),Promise.resolve().then(c.bind(c,24003)),Promise.resolve().then(c.bind(c,19603)),Promise.resolve().then(c.t.bind(c,61678,23))},79363:(a,b,c)=>{Promise.resolve().then(c.bind(c,82408))},80974:(a,b,c)=>{"use strict";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"}},82408:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(59111),e=c(43433);function f(){return(0,d.jsx)(e.A,{description:"Something went wrong."})}},92478:()=>{},93056:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(43461);function j(){return(0,d.jsx)(e.H,{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}`))})]})})}},96107:(a,b,c)=>{Promise.resolve().then(c.bind(c,37830))}};
@@ -1 +0,0 @@
1
- exports.id=7320,exports.ids=[7320],exports.modules={437:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(89892).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},8636:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx","default")},24670:(a,b,c)=>{"use strict";c.d(b,{DataComponentForm:()=>y});var d=c(59111),e=c(6614),f=c(485),g=c(75823),h=c(68156),i=c(17130),j=c(16426),k=c(56019),l=c(2856),m=c(60848),n=c(93622),o=c(35283),p=c(90147);let q=(0,p.createServerReference)("702474bf16d75ca7f0bdf94c2c9b505f973f9d7959",p.callServer,void 0,p.findSourceMapURL,"updateDataComponentAction"),r=(0,p.createServerReference)("70f4a95ee9257c41e2b902231349472def7fd674d3",p.callServer,void 0,p.findSourceMapURL,"createDataComponentAction");var s=c(42723);let t={id:"",name:"",description:"",props:""};var u=c(34576),v=c(80974),w=c(62503);let x=u.object({id:w.f,name:u.string().min(1,"Name is required."),description:u.string().min(1,"Description is required."),props:u.string().min(1,"Props schema is required.").transform((a,b)=>{try{let c=JSON.parse(a),d=(0,v._O)(a);if(!d.isValid){let a=d.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:u.ZodIssueCode.custom,message:a}),u.NEVER}return c}catch(a){return b.addIssue({code:u.ZodIssueCode.custom,message:(0,v.SR)(a)}),u.NEVER}}).optional()});function y({tenantId:a,projectId:b,id:c,initialData:p}){let u=(0,g.mN)({resolver:(0,e.u)(x),defaultValues:(a=>{if(!a)return t;let b={...a};return b.props&&(b.props=(0,s.S_)(b.props)),b})(p)}),{isSubmitting:v}=u.formState,w=(0,f.useRouter)();(0,o.S)({form:u,nameField:"name",idField:"id",isEditing:!!c});let y=async d=>{try{let e={...d};if(c){let c=await q(a,b,e);if(!c.success)return void h.oR.error(c.error||"Failed to update component");h.oR.success("Component updated")}else{let c=await r(a,b,e);if(!c.success)return void h.oR.error(c.error||"Failed to create component");h.oR.success("Component created"),w.push(`/${a}/projects/${b}/components`)}}catch(b){console.error("Error submitting component:",b);let a=b instanceof Error?b.message:"An unexpected error occurred";h.oR.error(a)}};return(0,d.jsx)(n.lV,{...u,children:(0,d.jsxs)("form",{onSubmit:u.handleSubmit(y),className:"space-y-8",children:[(0,d.jsx)(i.a,{control:u.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)(m.G,{href:"https://docs.inkeep.com/typescript-sdk/structured-outputs/data-components#frontend-integration",target:"_blank",children:"Learn more"})]}),isRequired:!0}),(0,d.jsx)(i.a,{control:u.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)(j.K,{control:u.control,name:"description",label:"Description",placeholder:"Display a list of user orders with interactive options",className:"min-h-[80px]",isRequired:!0}),(0,d.jsx)(k.S,{control:u.control,name:"props",label:"Props (JSON schema)",placeholder:"Enter a valid JSON Schema...",isRequired:!0}),(0,d.jsx)(l.$,{type:"submit",disabled:v,children:"Save"})]})})}},29160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(72669),e=c(95460),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){(0,e.notFound)()}return(0,d.jsx)(d.Fragment,{children:a})}},35859:(a,b,c)=>{Promise.resolve().then(c.bind(c,8636))},37830:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(59111),e=c(437),f=c(485);c(14450);var g=c(2856);function h(){let a=(0,f.useParams)(),b=(0,f.useRouter)(),c=a.tenantId,h=a.projectId;return(0,d.jsx)("div",{className:"flex min-h-[400px] flex-col items-center justify-center p-8",children:(0,d.jsxs)("div",{className:"text-center max-w-md",children:[(0,d.jsx)("div",{className:"mb-4 flex justify-center",children:(0,d.jsx)(e.A,{className:"h-12 w-12 text-muted-foreground"})}),(0,d.jsx)("h1",{className:"text-2xl font-semibold mb-2",children:"Project Not Found"}),(0,d.jsxs)("p",{className:"text-muted-foreground mb-6",children:['The project "',h,"\" does not exist or you don't have access to it."]}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground mb-6",children:"Redirecting to projects list in 3 seconds..."}),(0,d.jsx)(g.$,{onClick:()=>b.push(`/${c}/projects`),variant:"default",children:"Go to Projects List"})]})})}},39878:(a,b,c)=>{"use strict";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})]})}},41325:(a,b,c)=>{Promise.resolve().then(c.bind(c,24670)),Promise.resolve().then(c.bind(c,24003)),Promise.resolve().then(c.bind(c,19603)),Promise.resolve().then(c.t.bind(c,61678,23))},45622:()=>{},53261:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/components/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/components/error.tsx","default")},56019:(a,b,c)=>{"use strict";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})})}},62503:(a,b,c)=>{"use strict";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.")},71708:(a,b,c)=>{Promise.resolve().then(c.bind(c,81331))},77709:(a,b,c)=>{Promise.resolve().then(c.bind(c,98261)),Promise.resolve().then(c.bind(c,97633)),Promise.resolve().then(c.bind(c,80248)),Promise.resolve().then(c.t.bind(c,93520,23))},80974:(a,b,c)=>{"use strict";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"}},81331:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(59111),e=c(43433);function f(){return(0,d.jsx)(e.A,{description:"Something went wrong."})}},81597:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"403b960274132dca648bb98f2359d2022b16ca1f8b":()=>d.bW,"60389a5c095bdbd65d2a9ddbccc51de77c01523588":()=>d.Dv,"606778af7882431b69e79f9e48719115329cf7a5a7":()=>d.qf,"60a1a1c391183937e9eaeec8d57fadc209da58e255":()=>p,"60de3b418f019d2c7bd347d2f646771c6cb5823c24":()=>d.gL,"702474bf16d75ca7f0bdf94c2c9b505f973f9d7959":()=>r,"703562af0a49c0d1c9240b7fb09ecbabf36529908d":()=>d.Tg,"70e8f4bb5ae28f0c6f0e4276a64d8ed34c6d76eae4":()=>s,"70f4a95ee9257c41e2b902231349472def7fd674d3":()=>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){(0,h.M2)(a),(0,h.nt)(b);let c=await (0,g.J)(`tenants/${a}/projects/${b}/data-components`);return{...c,data:c.data.map(a=>({...a,props:a.props||{}}))}}async function k(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/data-components/${c}`);return{...d.data,props:d.data.props||{}}}async function l(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/data-components`,{method:"POST",body:JSON.stringify(c)});return{...d.data,props:d.data.props||{}}}async function m(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/data-components/${c.id}`,{method:"PUT",body:JSON.stringify(c)});return{...d.data,props:d.data.props||{}}}async function n(a,b,c){(0,h.M2)(a),(0,h.nt)(b),await (0,g.J)(`tenants/${a}/projects/${b}/data-components/${c}`,{method:"DELETE"})}(0,i.D)([j,k,l,m,n]),(0,e.A)(j,"60b8c337448c3f21b493b46d6ffc5f21fd2dd7abc6",null),(0,e.A)(k,"70b51981f9cb3131b59a569673a9527c8413e4ad21",null),(0,e.A)(l,"70196338ee640f7c091da986d9aacc509086b6f3df",null),(0,e.A)(m,"7010d28df30c4548be32960fc7ec29b2c06a5712d1",null),(0,e.A)(n,"70868797934c30aff8834c0daf2228d471f8ff9b87",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}/components`),{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}/components`),(0,f.revalidatePath)(`/${a}/projects/${b}/components/${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}/components`),(0,f.revalidatePath)(`/${a}/projects/${b}/components/${c}`),{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,"60a1a1c391183937e9eaeec8d57fadc209da58e255",null),(0,e.A)(q,"70f4a95ee9257c41e2b902231349472def7fd674d3",null),(0,e.A)(r,"702474bf16d75ca7f0bdf94c2c9b505f973f9d7959",null),(0,e.A)(s,"70e8f4bb5ae28f0c6f0e4276a64d8ed34c6d76eae4",null)},85276:(a,b,c)=>{Promise.resolve().then(c.bind(c,53261))},92107:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(43461);function j(){return(0,d.jsx)(e.H,{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}`))})]})})}},92478:()=>{},96107:(a,b,c)=>{Promise.resolve().then(c.bind(c,37830))},98261:(a,b,c)=>{"use strict";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")}};