@inkeep/agents-manage-ui 0.26.1 → 0.27.0
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.
- package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
- package/.next/standalone/agents-manage-ui/.next/app-build-manifest.json +199 -199
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +7 -7
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +15 -15
- package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +8 -8
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +10 -10
- package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-preview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +7 -7
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{4376.js → 1483.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1566.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{7165.js → 2160.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3067.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3468.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4558.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4608.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4629.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4775.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5392.js +14 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5458.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5732.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5787.js +196 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5793.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6737.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7010.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7565.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7916.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-4a1d4c948fa31107.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{31030-5934019cfc8cb254.js → 14187-cc3fd1c90d38ddef.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/16631-1b7fdb4431f30490.js +123 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{21078.054dafe1b55fb320.js → 21078.32b5d97ee64dda4b.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{23113.3fede21b6eaf9227.js → 23113.536c8c9bea4a8c7b.js} +4 -4
- package/.next/standalone/agents-manage-ui/.next/static/chunks/2416-cfff29b28c217ccf.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/25200-2b76cc18361fa58b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{95926-f6acf9933512734b.js → 27747-c0d04833f4851356.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{47199-6dbd2190fc527d1a.js → 32072-8fc2be06163181ac.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/44341-459871afa12cd37c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{47065.0698d6a9ad9c4eca.js → 47065.2f3b7f0aaf81f83f.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/56167-267033876431fab5.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/71546-840d5584b7894bd0.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/77700-160a2e85ffa6dbc3.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{88831-cc7c54f946c90858.js → 88831-184f3ffcba8295bb.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{89814.bd648f5875e206d6.js → 89814.9992418c03ef6af2.js} +4 -4
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{9521.a325d7b909bdaf88.js → 9521.354c888ed22abb07.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-b7141ed5f8a77eb9.js → page-1231e77e66beb21b.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/{page-f9134d7a48cd0972.js → page-5672e24d1d31274b.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-3799960632279030.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/{page-d5bc2158bed826dc.js → page-e81c4e25a6617c58.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-40fcdfec6b0447d2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-4f8e61428f394910.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-43dd4a3ae38c8eb1.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-16e165f559ef3131.js → page-c22b10f1cadf9d10.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-fa5a254c8a76eaa2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-984321197f47e001.js → page-6aaf894e2e480bb8.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-93c4cdb48ccffc01.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-1a56e7ec8b9b2289.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-4391c292624d801b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-67505a9888f7c31c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-679cd6ca7dadaf0c.js → page-29b9c253151304c4.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-b7010b52a1a58cb4.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-9d93fc373fba9f35.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-b56c24923670119d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-6b298f2c1917edee.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-0da1362bb966d879.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-baee0631b8f2d789.js → page-aecbdd4d66a32efb.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-97ad4c58ba209b90.js → page-8f10eb8d6c489191.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-22de5b7b4e6aaf93.js → page-b50af7f7fc063f80.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-7abd4edcd4a9ae2c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-a8555bbb118f5e6e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-4385ee094122399e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/{page-4f5f509425b1d0ea.js → page-d1c4fe8a8b28a743.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-2c79d0ac495bebf8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{d834c995-f79913da716f009c.js → d834c995-8cb74a5eed854312.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-c7f22f43be63d6fd.js → webpack-1185dbe047280553.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/931594c58db54400.css +1 -0
- package/.next/standalone/agents-manage-ui/package.json +1 -1
- package/.next/standalone/packages/agents-core/package.json +2 -1
- package/package.json +4 -4
- package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.tsx +1 -0
- package/src/app/[tenantId]/projects/[projectId]/agents/new/page.tsx +2 -3
- package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.tsx +4 -4
- package/src/components/agent/agent.tsx +53 -1
- package/src/components/agent/configuration/edge-types.tsx +2 -0
- package/src/components/agent/configuration/node-types.tsx +34 -2
- package/src/components/agent/node-library/node-library.tsx +1 -0
- package/src/components/agent/nodes/placeholder-node.tsx +5 -2
- package/src/components/agent/nodes/team-agent-node.tsx +60 -0
- package/src/components/agent/sidepane/nodes/function-tool-node-editor.tsx +28 -25
- package/src/components/agent/sidepane/nodes/team-agent-node-editor.tsx +159 -0
- package/src/components/agent/sidepane/nodes/team-agent-selector/loading.tsx +26 -0
- package/src/components/agent/sidepane/nodes/team-agent-selector/team-agent-item.tsx +38 -0
- package/src/components/agent/sidepane/nodes/team-agent-selector/team-agent-selector.tsx +110 -0
- package/src/components/agent/sidepane/sidepane.tsx +23 -1
- package/src/components/api-keys/api-key-display.tsx +1 -1
- package/src/components/api-keys/form/api-key-form.tsx +1 -1
- package/src/components/api-keys/form/api-key-update-form.tsx +1 -1
- package/src/components/artifact-components/form/artifact-component-form.tsx +1 -1
- package/src/components/credentials/views/edit-credential-form.tsx +1 -1
- package/src/components/credentials/views/generic-auth-form.tsx +6 -5
- package/src/components/credentials/views/nango-providers-grid.tsx +1 -13
- package/src/components/data-components/form/data-component-form.tsx +1 -1
- package/src/components/data-components/preview/component-preview-generator.tsx +70 -53
- package/src/components/mcp-servers/form/mcp-server-form.tsx +1 -1
- package/src/components/ui/sidebar.tsx +1 -1
- package/src/features/agent/domain/deserialize.ts +55 -2
- package/src/features/agent/domain/serialize.ts +153 -13
- package/src/lib/actions/agent-full.ts +24 -0
- package/src/lib/api/agent-full-client.ts +18 -0
- package/src/lib/types/agent-full.ts +2 -0
- package/src/lib/types/team-agents.ts +5 -0
- package/src/lib/utils/team-agent-utils.ts +32 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/122.js +0 -196
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3086.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3137.js +0 -14
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6109.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/653.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7537.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-41037a3262960f92.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/16631-f92fdc7f74df3e1e.js +0 -123
- package/.next/standalone/agents-manage-ui/.next/static/chunks/16887-528540c5b265fc13.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/2173-e5e0c4f24a8e0c46.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/27854-c9d9d59f8de29ed4.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/37775-7406a92cbd39daef.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/50127-83157505921c89db.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/8515-8a6bb9b1af63dc60.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-b0b409e0d879bf3c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-8141ebc086c4e8cc.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-172f0be9de89cc0f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-30e656b3c0eb6c84.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-ebb650d4f36d73c4.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-2bd7c36e74bc6c4a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-9430afc1b74ecef2.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-a63d4b5df3460d68.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-6da4e0dc3c76645f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-6572a90cd3cb51bb.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-33a0e22b08c72216.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-1d139f2e776d666e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-097db4d419336446.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-69e44e2331b90339.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-9d4fe2c46f1ea437.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-2b07e2fff50589f3.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-2b47946997ff7507.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-ce49c29e3bf4049e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/40728d39bb342f02.css +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{7r2zCPzpVSsXFd1vvyJK8 → Bj-8vYnHAeOR5g8hC8_xi}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{7r2zCPzpVSsXFd1vvyJK8 → Bj-8vYnHAeOR5g8hC8_xi}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { type Node, useReactFlow } from '@xyflow/react';
|
|
2
|
+
import { useParams } from 'next/navigation';
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
|
+
import { toast } from 'sonner';
|
|
5
|
+
import { fetchAgents } from '@/lib/api/agent-full-client';
|
|
6
|
+
import type { Agent } from '@/lib/types/agent-full';
|
|
7
|
+
import { NodeType } from '../../../configuration/node-types';
|
|
8
|
+
import { EmptyState } from '../empty-state';
|
|
9
|
+
import { TeamAgentSelectorLoading } from './loading';
|
|
10
|
+
import { TeamAgentItem } from './team-agent-item';
|
|
11
|
+
|
|
12
|
+
interface TeamAgentSelectorState {
|
|
13
|
+
agents: Agent[];
|
|
14
|
+
isLoading: boolean;
|
|
15
|
+
error: string | null;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const useFetchAvailableAgents = (): TeamAgentSelectorState => {
|
|
19
|
+
const [agents, setAgents] = useState<Agent[]>([]);
|
|
20
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
21
|
+
const [error, setError] = useState<string | null>(null);
|
|
22
|
+
const { tenantId, projectId, agentId } = useParams<{
|
|
23
|
+
tenantId: string;
|
|
24
|
+
projectId: string;
|
|
25
|
+
agentId: string;
|
|
26
|
+
}>();
|
|
27
|
+
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
const loadAgents = async () => {
|
|
30
|
+
try {
|
|
31
|
+
setIsLoading(true);
|
|
32
|
+
setError(null);
|
|
33
|
+
const response = await fetchAgents(tenantId, projectId);
|
|
34
|
+
// Filter out the current agent to prevent self-selection
|
|
35
|
+
const filteredAgents = agentId
|
|
36
|
+
? response.data.filter((agent) => agent.id !== agentId)
|
|
37
|
+
: response.data;
|
|
38
|
+
setAgents(filteredAgents);
|
|
39
|
+
} catch (err) {
|
|
40
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to load agents';
|
|
41
|
+
setError(errorMessage);
|
|
42
|
+
toast.error(errorMessage);
|
|
43
|
+
} finally {
|
|
44
|
+
setIsLoading(false);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
loadAgents();
|
|
49
|
+
}, [tenantId, projectId, agentId]);
|
|
50
|
+
|
|
51
|
+
return { agents, isLoading, error };
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export function TeamAgentSelector({ selectedNode }: { selectedNode: Node }) {
|
|
55
|
+
const { updateNode } = useReactFlow();
|
|
56
|
+
const { tenantId, projectId } = useParams<{
|
|
57
|
+
tenantId: string;
|
|
58
|
+
projectId: string;
|
|
59
|
+
}>();
|
|
60
|
+
const { agents, isLoading, error } = useFetchAvailableAgents();
|
|
61
|
+
|
|
62
|
+
const handleSelect = (agent: Agent) => {
|
|
63
|
+
updateNode(selectedNode.id, {
|
|
64
|
+
type: NodeType.TeamAgent,
|
|
65
|
+
data: {
|
|
66
|
+
id: agent.id,
|
|
67
|
+
name: agent.name,
|
|
68
|
+
description: agent.description,
|
|
69
|
+
relationshipId: null, // Will be set after saving to database
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
if (isLoading) {
|
|
75
|
+
return <TeamAgentSelectorLoading title="Select team agent" />;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (error) {
|
|
79
|
+
return (
|
|
80
|
+
<EmptyState
|
|
81
|
+
message="Something went wrong."
|
|
82
|
+
actionText="Create agent"
|
|
83
|
+
actionHref={`/${tenantId}/projects/${projectId}/agents/new`}
|
|
84
|
+
/>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (!agents?.length) {
|
|
89
|
+
return (
|
|
90
|
+
<EmptyState
|
|
91
|
+
message="No agents found."
|
|
92
|
+
actionText="Create agent"
|
|
93
|
+
actionHref={`/${tenantId}/projects/${projectId}/agents/new`}
|
|
94
|
+
/>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return (
|
|
99
|
+
<div>
|
|
100
|
+
<div className="space-y-2">
|
|
101
|
+
<h3 className="text-sm font-medium mb-2">Select team agent</h3>
|
|
102
|
+
<div className="flex flex-col gap-2 min-w-0 min-h-0">
|
|
103
|
+
{agents.map((agent: Agent) => (
|
|
104
|
+
<TeamAgentItem key={agent.id} agent={agent} onClick={handleSelect} />
|
|
105
|
+
))}
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
);
|
|
110
|
+
}
|
|
@@ -7,7 +7,11 @@ import type { ArtifactComponent } from '@/lib/api/artifact-components';
|
|
|
7
7
|
import type { Credential } from '@/lib/api/credentials';
|
|
8
8
|
import type { DataComponent } from '@/lib/api/data-components';
|
|
9
9
|
import { SidePane as SidePaneLayout } from '../../layout/sidepane';
|
|
10
|
-
import type {
|
|
10
|
+
import type {
|
|
11
|
+
AgentToolConfigLookup,
|
|
12
|
+
SubAgentExternalAgentConfigLookup,
|
|
13
|
+
SubAgentTeamAgentConfigLookup,
|
|
14
|
+
} from '../agent';
|
|
11
15
|
import { edgeTypeMap } from '../configuration/edge-types';
|
|
12
16
|
import {
|
|
13
17
|
type AgentNodeData,
|
|
@@ -16,6 +20,7 @@ import {
|
|
|
16
20
|
type MCPNodeData,
|
|
17
21
|
NodeType,
|
|
18
22
|
nodeTypeMap,
|
|
23
|
+
type TeamAgentNodeData,
|
|
19
24
|
} from '../configuration/node-types';
|
|
20
25
|
import EdgeEditor from './edges/edge-editor';
|
|
21
26
|
import { EditorLoadingSkeleton } from './editor-loading-skeleton';
|
|
@@ -27,6 +32,8 @@ import { FunctionToolNodeEditor } from './nodes/function-tool-node-editor';
|
|
|
27
32
|
import { MCPServerNodeEditor } from './nodes/mcp-node-editor';
|
|
28
33
|
import { MCPSelector } from './nodes/mcp-selector/mcp-selector';
|
|
29
34
|
import { SubAgentNodeEditor } from './nodes/sub-agent-node-editor';
|
|
35
|
+
import { TeamAgentNodeEditor } from './nodes/team-agent-node-editor';
|
|
36
|
+
import { TeamAgentSelector } from './nodes/team-agent-selector/team-agent-selector';
|
|
30
37
|
|
|
31
38
|
interface SidePaneProps {
|
|
32
39
|
selectedNodeId: string | null;
|
|
@@ -38,6 +45,7 @@ interface SidePaneProps {
|
|
|
38
45
|
artifactComponentLookup: Record<string, ArtifactComponent>;
|
|
39
46
|
agentToolConfigLookup: AgentToolConfigLookup;
|
|
40
47
|
subAgentExternalAgentConfigLookup: SubAgentExternalAgentConfigLookup;
|
|
48
|
+
subAgentTeamAgentConfigLookup: SubAgentTeamAgentConfigLookup;
|
|
41
49
|
credentialLookup: Record<string, Credential>;
|
|
42
50
|
}
|
|
43
51
|
|
|
@@ -51,6 +59,7 @@ export function SidePane({
|
|
|
51
59
|
artifactComponentLookup,
|
|
52
60
|
agentToolConfigLookup,
|
|
53
61
|
subAgentExternalAgentConfigLookup,
|
|
62
|
+
subAgentTeamAgentConfigLookup,
|
|
54
63
|
credentialLookup,
|
|
55
64
|
}: SidePaneProps) {
|
|
56
65
|
const selectedNode = useNodesData(selectedNodeId || '');
|
|
@@ -125,6 +134,18 @@ export function SidePane({
|
|
|
125
134
|
case NodeType.ExternalAgentPlaceholder: {
|
|
126
135
|
return <ExternalAgentSelector selectedNode={selectedNode as Node} />;
|
|
127
136
|
}
|
|
137
|
+
case NodeType.TeamAgent: {
|
|
138
|
+
return (
|
|
139
|
+
<TeamAgentNodeEditor
|
|
140
|
+
selectedNode={selectedNode as Node<TeamAgentNodeData>}
|
|
141
|
+
subAgentTeamAgentConfigLookup={subAgentTeamAgentConfigLookup}
|
|
142
|
+
errorHelpers={errorHelpers}
|
|
143
|
+
/>
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
case NodeType.TeamAgentPlaceholder: {
|
|
147
|
+
return <TeamAgentSelector selectedNode={selectedNode as Node} />;
|
|
148
|
+
}
|
|
128
149
|
case NodeType.MCPPlaceholder: {
|
|
129
150
|
return <MCPSelector selectedNode={selectedNode as Node} />;
|
|
130
151
|
}
|
|
@@ -162,6 +183,7 @@ export function SidePane({
|
|
|
162
183
|
agentToolConfigLookup,
|
|
163
184
|
credentialLookup,
|
|
164
185
|
subAgentExternalAgentConfigLookup,
|
|
186
|
+
subAgentTeamAgentConfigLookup,
|
|
165
187
|
]);
|
|
166
188
|
|
|
167
189
|
const showBackButton = useMemo(() => {
|
|
@@ -38,7 +38,7 @@ export function ApiKeyDisplay({ apiKey, open, onClose }: ApiKeyDisplayProps) {
|
|
|
38
38
|
</AlertDialogHeader>
|
|
39
39
|
{apiKey && (
|
|
40
40
|
<div className="min-w-0">
|
|
41
|
-
<div className="space-y-
|
|
41
|
+
<div className="space-y-8">
|
|
42
42
|
<div className="min-w-0">
|
|
43
43
|
<div className="flex items-center justify-between mb-2">
|
|
44
44
|
<div className="text-sm font-medium">API Key</div>
|
|
@@ -95,7 +95,7 @@ export function ApiKeyForm({
|
|
|
95
95
|
|
|
96
96
|
return (
|
|
97
97
|
<Form {...form}>
|
|
98
|
-
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-
|
|
98
|
+
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
|
|
99
99
|
<GenericInput
|
|
100
100
|
control={form.control}
|
|
101
101
|
name="name"
|
|
@@ -122,7 +122,7 @@ export function ApiKeyUpdateForm({
|
|
|
122
122
|
|
|
123
123
|
return (
|
|
124
124
|
<Form {...form}>
|
|
125
|
-
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-
|
|
125
|
+
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
|
|
126
126
|
<GenericInput
|
|
127
127
|
control={form.control}
|
|
128
128
|
name="name"
|
|
@@ -140,7 +140,7 @@ export function ArtifactComponentForm({
|
|
|
140
140
|
</Button>
|
|
141
141
|
{id && (
|
|
142
142
|
<DialogTrigger asChild>
|
|
143
|
-
<Button type="button" variant="
|
|
143
|
+
<Button type="button" variant="destructive-outline">
|
|
144
144
|
Delete Artifact
|
|
145
145
|
</Button>
|
|
146
146
|
</DialogTrigger>
|
|
@@ -113,7 +113,7 @@ export function GenericAuthForm({
|
|
|
113
113
|
|
|
114
114
|
const renderField = (field: FieldConfig) => {
|
|
115
115
|
const isPrivateKey = field.key === 'private_key';
|
|
116
|
-
const label =
|
|
116
|
+
const label = field.label;
|
|
117
117
|
|
|
118
118
|
if (field.component === 'textarea') {
|
|
119
119
|
return (
|
|
@@ -122,6 +122,7 @@ export function GenericAuthForm({
|
|
|
122
122
|
control={form.control}
|
|
123
123
|
name={field.key}
|
|
124
124
|
label={label}
|
|
125
|
+
isRequired={field.required}
|
|
125
126
|
placeholder={field.placeholder}
|
|
126
127
|
className={isPrivateKey ? 'font-mono text-sm min-h-[120px]' : 'min-h-[80px]'}
|
|
127
128
|
/>
|
|
@@ -136,6 +137,7 @@ export function GenericAuthForm({
|
|
|
136
137
|
control={form.control}
|
|
137
138
|
name={field.key}
|
|
138
139
|
label={label}
|
|
140
|
+
isRequired={field.required}
|
|
139
141
|
type={field.type}
|
|
140
142
|
placeholder={field.placeholder}
|
|
141
143
|
disabled={loading}
|
|
@@ -146,7 +148,7 @@ export function GenericAuthForm({
|
|
|
146
148
|
};
|
|
147
149
|
|
|
148
150
|
const renderSection = (section: FormSection, index: number) => (
|
|
149
|
-
<div key={index} className="space-y-
|
|
151
|
+
<div key={index} className="space-y-8">
|
|
150
152
|
{section.title && (
|
|
151
153
|
<div>
|
|
152
154
|
<h3 className="text-lg font-medium">{section.title}</h3>
|
|
@@ -155,7 +157,6 @@ export function GenericAuthForm({
|
|
|
155
157
|
)}
|
|
156
158
|
</div>
|
|
157
159
|
)}
|
|
158
|
-
|
|
159
160
|
{section.fields.map(renderField)}
|
|
160
161
|
</div>
|
|
161
162
|
);
|
|
@@ -175,10 +176,10 @@ export function GenericAuthForm({
|
|
|
175
176
|
</div>
|
|
176
177
|
|
|
177
178
|
<Form {...form}>
|
|
178
|
-
<form onSubmit={form.handleSubmit(handleSubmit)} className="space-y-
|
|
179
|
+
<form onSubmit={form.handleSubmit(handleSubmit)} className="space-y-8">
|
|
179
180
|
{formConfig.sections.map(renderSection)}
|
|
180
181
|
|
|
181
|
-
<div className="flex gap-3
|
|
182
|
+
<div className="flex gap-3">
|
|
182
183
|
<Button type="submit" disabled={loading}>
|
|
183
184
|
{loading ? 'Creating Credential...' : 'Create Credential'}
|
|
184
185
|
</Button>
|
|
@@ -15,10 +15,9 @@ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/comp
|
|
|
15
15
|
|
|
16
16
|
interface NangoProvidersGridProps {
|
|
17
17
|
providers: ApiProvider[];
|
|
18
|
-
error: string | null;
|
|
19
18
|
}
|
|
20
19
|
|
|
21
|
-
export function NangoProvidersGrid({ providers
|
|
20
|
+
export function NangoProvidersGrid({ providers }: NangoProvidersGridProps) {
|
|
22
21
|
const [searchQuery, setSearchQuery] = useState('');
|
|
23
22
|
const { tenantId, projectId } = useParams<{
|
|
24
23
|
tenantId: string;
|
|
@@ -85,17 +84,6 @@ export function NangoProvidersGrid({ providers, error }: NangoProvidersGridProps
|
|
|
85
84
|
return providersWithSearchText.filter((provider) => provider.searchText.includes(query));
|
|
86
85
|
}, [providersWithSearchText, searchQuery]);
|
|
87
86
|
|
|
88
|
-
if (error) {
|
|
89
|
-
return (
|
|
90
|
-
<div className="text-center p-8">
|
|
91
|
-
<p className="text-destructive">{error}</p>
|
|
92
|
-
<Button variant="outline" onClick={() => window.location.reload()} className="mt-4">
|
|
93
|
-
Try Again
|
|
94
|
-
</Button>
|
|
95
|
-
</div>
|
|
96
|
-
);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
87
|
return (
|
|
100
88
|
<div className="space-y-6">
|
|
101
89
|
{/* Search bar */}
|
|
@@ -16,6 +16,15 @@ import { Textarea } from '@/components/ui/textarea';
|
|
|
16
16
|
import { updateDataComponent } from '@/lib/api/data-components';
|
|
17
17
|
import { DynamicComponentRenderer } from './dynamic-component-renderer';
|
|
18
18
|
|
|
19
|
+
const StyledTabsTrigger = (props: React.ComponentProps<typeof TabsTrigger>) => {
|
|
20
|
+
return (
|
|
21
|
+
<TabsTrigger
|
|
22
|
+
{...props}
|
|
23
|
+
className="bg-transparent data-[state=active]:border-primary dark:data-[state=active]:border-primary h-full rounded-none border-0 border-b-2 border-transparent data-[state=active]:shadow-none data-[state=active]:text-primary data-[state=active]:bg-transparent uppercase font-mono text-xs mt-0.5 pt-2"
|
|
24
|
+
/>
|
|
25
|
+
);
|
|
26
|
+
};
|
|
27
|
+
|
|
19
28
|
interface ComponentPreviewGeneratorProps {
|
|
20
29
|
tenantId: string;
|
|
21
30
|
projectId: string;
|
|
@@ -166,15 +175,20 @@ export function ComponentPreviewGenerator({
|
|
|
166
175
|
return (
|
|
167
176
|
<div className="space-y-4">
|
|
168
177
|
<div className="flex items-center justify-between">
|
|
169
|
-
<div>
|
|
170
|
-
<h3 className="text-
|
|
178
|
+
<div className="space-y-2">
|
|
179
|
+
<h3 className="text-md font-medium">Component Preview</h3>
|
|
171
180
|
<p className="text-sm text-muted-foreground">
|
|
172
|
-
Generate a React/Tailwind component based on your schema
|
|
181
|
+
Generate a React/Tailwind component based on your schema.
|
|
173
182
|
</p>
|
|
174
183
|
</div>
|
|
175
184
|
<div className="flex gap-2">
|
|
176
185
|
{!hasPreview && (
|
|
177
|
-
<Button
|
|
186
|
+
<Button
|
|
187
|
+
onClick={() => generatePreview()}
|
|
188
|
+
disabled={isGenerating}
|
|
189
|
+
size="sm"
|
|
190
|
+
className="gap-2"
|
|
191
|
+
>
|
|
178
192
|
{isGenerating ? (
|
|
179
193
|
<>
|
|
180
194
|
<Loader2 className="h-4 w-4 animate-spin" />
|
|
@@ -192,7 +206,12 @@ export function ComponentPreviewGenerator({
|
|
|
192
206
|
<>
|
|
193
207
|
<Popover open={isPopoverOpen} onOpenChange={setIsPopoverOpen}>
|
|
194
208
|
<PopoverTrigger asChild>
|
|
195
|
-
<Button
|
|
209
|
+
<Button
|
|
210
|
+
variant="outline"
|
|
211
|
+
size="sm"
|
|
212
|
+
disabled={isDeleting || isGenerating}
|
|
213
|
+
className="gap-2 font-mono uppercase"
|
|
214
|
+
>
|
|
196
215
|
{isGenerating ? (
|
|
197
216
|
<>
|
|
198
217
|
<Loader2 className="h-4 w-4 animate-spin" />
|
|
@@ -221,28 +240,27 @@ export function ComponentPreviewGenerator({
|
|
|
221
240
|
className="mt-2 min-h-[100px]"
|
|
222
241
|
/>
|
|
223
242
|
</div>
|
|
224
|
-
<div className="flex gap-2">
|
|
243
|
+
<div className="flex justify-end gap-2">
|
|
225
244
|
<Button
|
|
226
245
|
size="sm"
|
|
227
|
-
|
|
246
|
+
variant="outline"
|
|
247
|
+
onClick={() => {
|
|
228
248
|
setIsPopoverOpen(false);
|
|
229
|
-
await generatePreview(regenerateInstructions || undefined);
|
|
230
249
|
setRegenerateInstructions('');
|
|
231
250
|
}}
|
|
232
|
-
disabled={isGenerating}
|
|
233
|
-
className="flex-1"
|
|
234
251
|
>
|
|
235
|
-
|
|
252
|
+
Cancel
|
|
236
253
|
</Button>
|
|
237
254
|
<Button
|
|
238
255
|
size="sm"
|
|
239
|
-
|
|
240
|
-
onClick={() => {
|
|
256
|
+
onClick={async () => {
|
|
241
257
|
setIsPopoverOpen(false);
|
|
258
|
+
await generatePreview(regenerateInstructions || undefined);
|
|
242
259
|
setRegenerateInstructions('');
|
|
243
260
|
}}
|
|
261
|
+
disabled={isGenerating}
|
|
244
262
|
>
|
|
245
|
-
|
|
263
|
+
{regenerateInstructions ? 'Apply Changes' : 'Regenerate'}
|
|
246
264
|
</Button>
|
|
247
265
|
</div>
|
|
248
266
|
</div>
|
|
@@ -267,58 +285,57 @@ export function ComponentPreviewGenerator({
|
|
|
267
285
|
)}
|
|
268
286
|
</div>
|
|
269
287
|
</div>
|
|
270
|
-
|
|
271
288
|
{isGenerating && streamingCode && (
|
|
272
289
|
<Streamdown
|
|
273
290
|
isAnimating
|
|
274
291
|
className="[&_[data-code-block-header=true]]:hidden [&_pre]:bg-muted/40!"
|
|
275
292
|
>{`\`\`\`jsx\n${streamingCode}\`\`\``}</Streamdown>
|
|
276
293
|
)}
|
|
277
|
-
|
|
278
294
|
{isGenerating && !streamingCode && (
|
|
279
295
|
<Card className="p-6">
|
|
280
|
-
<div className="flex flex-
|
|
281
|
-
<Loader2 className="h-
|
|
282
|
-
<p className="text-sm text-muted-foreground">Generating component preview...</p>
|
|
296
|
+
<div className="flex flex-row items-center justify-center gap-2">
|
|
297
|
+
<Loader2 className="h-4 w-4 animate-spin text-muted-foreground/50" />
|
|
298
|
+
<p className="text-sm text-muted-foreground/70">Generating component preview...</p>
|
|
283
299
|
</div>
|
|
284
300
|
</Card>
|
|
285
301
|
)}
|
|
286
|
-
|
|
287
302
|
{hasPreview && !isGenerating && isComplete && preview && (
|
|
288
|
-
<
|
|
289
|
-
<
|
|
290
|
-
<
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
<Card className="p-6">
|
|
296
|
-
<DynamicComponentRenderer code={previewCode} props={previewData} />
|
|
297
|
-
</Card>
|
|
298
|
-
</TabsContent>
|
|
299
|
-
<TabsContent value="code">
|
|
300
|
-
<CodeEditor
|
|
301
|
-
value={previewCode}
|
|
302
|
-
onChange={(newCode) => {
|
|
303
|
-
if (!preview) return;
|
|
304
|
-
const updatedPreview = { ...preview, code: newCode };
|
|
305
|
-
setPreview(updatedPreview);
|
|
306
|
-
onPreviewChanged?.(updatedPreview);
|
|
307
|
-
}}
|
|
308
|
-
language="jsx"
|
|
309
|
-
className="max-h-[500px]"
|
|
310
|
-
/>
|
|
311
|
-
</TabsContent>
|
|
312
|
-
<TabsContent value="data">
|
|
313
|
-
<JsonEditor
|
|
314
|
-
value={stringifiedData}
|
|
315
|
-
onChange={handleDataChange}
|
|
316
|
-
className="max-h-[500px]"
|
|
317
|
-
/>
|
|
318
|
-
</TabsContent>
|
|
319
|
-
</Tabs>
|
|
320
|
-
)}
|
|
303
|
+
<Card className="px-2 py-4 pt-0">
|
|
304
|
+
<Tabs defaultValue="preview" className="w-full">
|
|
305
|
+
<TabsList className="bg-transparent relative rounded-none border-b p-0 w-full justify-start gap-2">
|
|
306
|
+
<StyledTabsTrigger value="preview">Preview</StyledTabsTrigger>
|
|
307
|
+
<StyledTabsTrigger value="code">Code</StyledTabsTrigger>
|
|
308
|
+
<StyledTabsTrigger value="data">Sample Data</StyledTabsTrigger>
|
|
309
|
+
</TabsList>
|
|
321
310
|
|
|
311
|
+
<TabsContent value="preview">
|
|
312
|
+
<div className="p-4">
|
|
313
|
+
<DynamicComponentRenderer code={previewCode} props={previewData} />
|
|
314
|
+
</div>
|
|
315
|
+
</TabsContent>
|
|
316
|
+
<TabsContent value="code">
|
|
317
|
+
<CodeEditor
|
|
318
|
+
value={previewCode}
|
|
319
|
+
onChange={(newCode) => {
|
|
320
|
+
if (!preview) return;
|
|
321
|
+
const updatedPreview = { ...preview, code: newCode };
|
|
322
|
+
setPreview(updatedPreview);
|
|
323
|
+
onPreviewChanged?.(updatedPreview);
|
|
324
|
+
}}
|
|
325
|
+
language="jsx"
|
|
326
|
+
className="max-h-[500px] border-0 shadow-none"
|
|
327
|
+
/>
|
|
328
|
+
</TabsContent>
|
|
329
|
+
<TabsContent value="data">
|
|
330
|
+
<JsonEditor
|
|
331
|
+
value={stringifiedData}
|
|
332
|
+
onChange={handleDataChange}
|
|
333
|
+
className="max-h-[500px] border-0 shadow-none"
|
|
334
|
+
/>
|
|
335
|
+
</TabsContent>
|
|
336
|
+
</Tabs>
|
|
337
|
+
</Card>
|
|
338
|
+
)}
|
|
322
339
|
{!hasPreview && !isGenerating && !isComplete && (
|
|
323
340
|
<InfoCard>
|
|
324
341
|
<p className="text-sm text-muted-foreground">No preview generated</p>
|
|
@@ -272,7 +272,7 @@ export function MCPServerForm({
|
|
|
272
272
|
</Button>
|
|
273
273
|
{mode === 'update' && tool && (
|
|
274
274
|
<DialogTrigger asChild>
|
|
275
|
-
<Button type="button" variant="
|
|
275
|
+
<Button type="button" variant="destructive-outline">
|
|
276
276
|
Delete Server
|
|
277
277
|
</Button>
|
|
278
278
|
</DialogTrigger>
|
|
@@ -356,7 +356,7 @@ function SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {
|
|
|
356
356
|
data-slot="sidebar-content"
|
|
357
357
|
data-sidebar="content"
|
|
358
358
|
className={cn(
|
|
359
|
-
'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',
|
|
359
|
+
'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent',
|
|
360
360
|
className
|
|
361
361
|
)}
|
|
362
362
|
{...props}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { generateId } from '@/lib/utils/id-utils';
|
|
2
1
|
import type { Edge, Node } from '@xyflow/react';
|
|
3
2
|
import * as dagre from 'dagre';
|
|
4
3
|
import { EdgeType } from '@/components/agent/configuration/edge-types';
|
|
@@ -9,9 +8,11 @@ import {
|
|
|
9
8
|
functionToolNodeHandleId,
|
|
10
9
|
mcpNodeHandleId,
|
|
11
10
|
NodeType,
|
|
11
|
+
teamAgentNodeTargetHandleId,
|
|
12
12
|
} from '@/components/agent/configuration/node-types';
|
|
13
13
|
import type { FullAgentDefinition } from '@/lib/types/agent-full';
|
|
14
14
|
import { formatJsonField } from '@/lib/utils';
|
|
15
|
+
import { generateId } from '@/lib/utils/id-utils';
|
|
15
16
|
|
|
16
17
|
interface TransformResult {
|
|
17
18
|
nodes: Node[];
|
|
@@ -101,6 +102,7 @@ export function deserializeAgentData(data: FullAgentDefinition): TransformResult
|
|
|
101
102
|
const nodes: Node[] = [];
|
|
102
103
|
const edges: Edge[] = [];
|
|
103
104
|
const createdExternalAgentNodes = new Set<string>();
|
|
105
|
+
const createdTeamAgentNodes = new Set<string>();
|
|
104
106
|
|
|
105
107
|
const subAgentIds: string[] = Object.keys(data.subAgents);
|
|
106
108
|
for (const subAgentId of subAgentIds) {
|
|
@@ -319,12 +321,14 @@ export function deserializeAgentData(data: FullAgentDefinition): TransformResult
|
|
|
319
321
|
for (const targetSubAgent of sourceAgent.canDelegateTo) {
|
|
320
322
|
let targetSubAgentId: string;
|
|
321
323
|
let isTargetExternal: boolean;
|
|
324
|
+
let isTargetTeamAgent: boolean;
|
|
322
325
|
let headers: Record<string, string> | undefined;
|
|
323
326
|
let relationshipId: string | undefined;
|
|
324
327
|
|
|
325
328
|
if (typeof targetSubAgent === 'object' && 'externalAgentId' in targetSubAgent) {
|
|
326
329
|
targetSubAgentId = targetSubAgent.externalAgentId;
|
|
327
330
|
isTargetExternal = true;
|
|
331
|
+
isTargetTeamAgent = false;
|
|
328
332
|
headers = targetSubAgent.headers ?? undefined;
|
|
329
333
|
relationshipId = targetSubAgent.subAgentExternalAgentRelationId;
|
|
330
334
|
|
|
@@ -370,12 +374,61 @@ export function deserializeAgentData(data: FullAgentDefinition): TransformResult
|
|
|
370
374
|
},
|
|
371
375
|
};
|
|
372
376
|
edges.push(edge);
|
|
377
|
+
} else if (typeof targetSubAgent === 'object' && 'agentId' in targetSubAgent) {
|
|
378
|
+
// Handle team agent delegation
|
|
379
|
+
targetSubAgentId = targetSubAgent.agentId;
|
|
380
|
+
isTargetExternal = false;
|
|
381
|
+
isTargetTeamAgent = true;
|
|
382
|
+
headers = targetSubAgent.headers ?? undefined;
|
|
383
|
+
relationshipId = targetSubAgent.subAgentTeamAgentRelationId;
|
|
384
|
+
|
|
385
|
+
// Create team agent node if it doesn't exist
|
|
386
|
+
if (!createdTeamAgentNodes.has(targetSubAgentId)) {
|
|
387
|
+
const teamAgent = data.teamAgents?.[targetSubAgentId];
|
|
388
|
+
if (teamAgent) {
|
|
389
|
+
const teamAgentNode: Node = {
|
|
390
|
+
id: targetSubAgentId,
|
|
391
|
+
type: NodeType.TeamAgent,
|
|
392
|
+
position: { x: 0, y: 0 },
|
|
393
|
+
data: {
|
|
394
|
+
id: targetSubAgentId,
|
|
395
|
+
name: teamAgent.name,
|
|
396
|
+
description: teamAgent.description,
|
|
397
|
+
relationshipId,
|
|
398
|
+
tempHeaders: headers,
|
|
399
|
+
},
|
|
400
|
+
};
|
|
401
|
+
nodes.push(teamAgentNode);
|
|
402
|
+
createdTeamAgentNodes.add(targetSubAgentId);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
// Create edge from source agent to team agent
|
|
407
|
+
const edge: Edge = {
|
|
408
|
+
id: `edge-${sourceSubAgentId}-${targetSubAgentId}`,
|
|
409
|
+
type: EdgeType.A2ATeam, // Use same edge type as external agents
|
|
410
|
+
source: sourceSubAgentId,
|
|
411
|
+
sourceHandle: agentNodeSourceHandleId,
|
|
412
|
+
target: targetSubAgentId,
|
|
413
|
+
targetHandle: teamAgentNodeTargetHandleId,
|
|
414
|
+
selected: false,
|
|
415
|
+
data: {
|
|
416
|
+
relationships: {
|
|
417
|
+
transferTargetToSource: false,
|
|
418
|
+
transferSourceToTarget: false,
|
|
419
|
+
delegateTargetToSource: false,
|
|
420
|
+
delegateSourceToTarget: true,
|
|
421
|
+
},
|
|
422
|
+
},
|
|
423
|
+
};
|
|
424
|
+
edges.push(edge);
|
|
373
425
|
} else {
|
|
374
426
|
targetSubAgentId = targetSubAgent;
|
|
375
427
|
isTargetExternal = false;
|
|
428
|
+
isTargetTeamAgent = false;
|
|
376
429
|
}
|
|
377
430
|
|
|
378
|
-
if (!isTargetExternal && data.subAgents[targetSubAgentId]) {
|
|
431
|
+
if (!isTargetExternal && !isTargetTeamAgent && data.subAgents[targetSubAgentId]) {
|
|
379
432
|
// Special handling for self-referencing edges
|
|
380
433
|
const isSelfReference = sourceSubAgentId === targetSubAgentId;
|
|
381
434
|
const pairKey = isSelfReference
|