@inkeep/agents-manage-ui 0.0.0-dev-20251021164445 → 0.0.0-dev-20251021181503
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 +219 -165
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +10 -6
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +9 -9
- package/.next/standalone/agents-manage-ui/.next/routes-manifest.json +38 -0
- 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.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- 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 +2 -2
- 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 +1 -1
- 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.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- 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 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js.nft.json +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js.nft.json +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page_client-reference-manifest.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page.js.nft.json +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js.nft.json +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -0
- 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.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- 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 +9 -9
- 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_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.js.nft.json +1 -1
- 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 +10 -6
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{7953.js → 1653.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1735.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2634.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2848.js +123 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{4414.js → 2912.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3086.js +196 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3468.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4629.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4944.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{9222.js → 5478.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5732.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5793.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6035.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{3291.js → 6060.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6565.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6721.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7013.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{9327.js → 7440.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7988.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7990.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8860.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9394.js +14 -1
- 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-7cdffb43af522e3b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{16631-e313c6f18339824b.js → 16631-6020bdaf3d69b1d9.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-bb4579d108ec132f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{50285-9138bb26e62daef6.js → 23610-476f03c272ca3950.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/24380.bf03581f9f4f3543.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/2450-e80bfc42611f5806.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/25672-93f2aa7eb2408291.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{4698.3051cd4ec04e2aa4.js → 4698.c8eaa281e28f5497.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{4875-306209ac5547e001.js → 4875-6cc31870e1b4f78e.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/50503-8147daf12b637511.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/54244-d5b0e0495a8ba6ff.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{74811-ceebff5ae7c61a66.js → 57812-14885c4aa73b748e.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{12397-bee57bbef5d5a7e3.js → 74216-541bdcf5750174cf.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{87193-3d26f0490b9b0a29.js → 76125-20d7ba477878f956.js} +3 -3
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{63076-75f725355363164e.js → 90777-529736d21bc531c4.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/92580-8da57347f4ec8f0d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/99458-561dd09c8e46e93b.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-670ed3b6247fd9d0.js → page-cf6d8b309524a6a4.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/{page-586222923f1e95ff.js → page-c4db7bcff51d7bcd.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-0198738719aade6d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-e2ef59e68782fef0.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-5a2f0b3eb7b9bede.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-62ac2a74e0e3c202.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-ee610980e823a381.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-9af2eed83637e3da.js → page-81fb8f0e0da184b2.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-a5dd61821ccc3368.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/{page-54bd64dd19bcd7c1.js → page-9b60c2a4d919b4b8.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-06480b4647090c3d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-8b956cdee22f9770.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-df1ac1dca5b29f1d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-c4a8e9a16d05a8a0.js → page-921320ba530d1773.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-bd0cead36aa29cda.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page-ec2d6dba69b9f4c6.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-a1f80beb45dc2276.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-6502a0a11215e5cf.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-00d3bd4e0e0283ca.js → page-c990397341b90672.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-4f8d9541b96da7d8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-9ebdf035f876d4f1.js → page-03c7faf211e2744e.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-12a8345548e2abc2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-535499d8ef464a34.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-e1b396ac418b8a24.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-fe6a59c18be829f1.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-53f9be3e392609d2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-e62e04f2573a78d7.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-d65a3369c23bc1a6.js → webpack-f5115703464e7f56.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/feeaa90d59b8c0fb.css +1 -0
- package/.next/standalone/agents-manage-ui/package.json +2 -2
- package/.next/standalone/packages/agents-core/package.json +1 -1
- package/package.json +5 -5
- package/src/app/[tenantId]/page.tsx +1 -1
- package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.tsx +21 -15
- package/src/app/[tenantId]/projects/[projectId]/agents/new/page.tsx +14 -10
- package/src/app/[tenantId]/projects/[projectId]/agents/page.tsx +1 -5
- package/src/app/[tenantId]/projects/[projectId]/api-keys/page.tsx +1 -5
- package/src/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.tsx +3 -9
- package/src/app/[tenantId]/projects/[projectId]/artifacts/new/page.tsx +3 -5
- package/src/app/[tenantId]/projects/[projectId]/artifacts/page.tsx +3 -5
- package/src/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.tsx +3 -9
- package/src/app/[tenantId]/projects/[projectId]/components/new/page.tsx +3 -5
- package/src/app/[tenantId]/projects/[projectId]/components/page.tsx +3 -5
- package/src/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.tsx +1 -7
- package/src/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.tsx +1 -3
- package/src/app/[tenantId]/projects/[projectId]/credentials/new/page.tsx +3 -4
- package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.tsx +3 -9
- package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.tsx +1 -3
- package/src/app/[tenantId]/projects/[projectId]/credentials/page.tsx +1 -3
- package/src/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.tsx +86 -0
- package/src/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.tsx +52 -0
- package/src/app/[tenantId]/projects/[projectId]/external-agents/new/page.tsx +43 -0
- package/src/app/[tenantId]/projects/[projectId]/external-agents/page.tsx +64 -0
- package/src/app/[tenantId]/projects/[projectId]/layout.tsx +4 -7
- package/src/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.tsx +3 -5
- package/src/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.tsx +3 -5
- package/src/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout.tsx +1 -4
- package/src/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.tsx +1 -3
- package/src/app/[tenantId]/projects/[projectId]/mcp-servers/page.tsx +1 -3
- package/src/app/[tenantId]/projects/[projectId]/settings/page.tsx +3 -8
- package/src/app/[tenantId]/projects/page.tsx +1 -1
- package/src/app/api/data-components/[dataComponentId]/generate-preview/route.ts +4 -7
- package/src/app/api/signoz/conversations/[conversationId]/route.ts +3 -6
- package/src/components/agent/agent.tsx +43 -1
- package/src/components/agent/configuration/node-types.tsx +18 -5
- package/src/components/agent/node-library/node-library.tsx +1 -1
- package/src/components/agent/nodes/external-agent-node.tsx +8 -12
- package/src/components/agent/nodes/{mcp-placeholder-node.tsx → placeholder-node.tsx} +8 -4
- package/src/components/agent/sidepane/nodes/external-agent-node-editor.tsx +72 -17
- package/src/components/agent/sidepane/nodes/external-agent-selector/external-agent-item.tsx +39 -0
- package/src/components/agent/sidepane/nodes/external-agent-selector/external-agent-selector.tsx +114 -0
- package/src/components/agent/sidepane/nodes/external-agent-selector/loading.tsx +26 -0
- package/src/components/agent/sidepane/nodes/sub-agent-node-editor.tsx +22 -4
- package/src/components/agent/sidepane/sidepane.tsx +9 -1
- package/src/components/credentials/credential-resources-list.tsx +146 -0
- package/src/components/credentials/views/credential-form-validation.ts +1 -0
- package/src/components/credentials/views/credential-form.tsx +96 -5
- package/src/components/credentials/views/edit-credential-form.tsx +4 -3
- package/src/components/credentials/views/new-credential-form.tsx +13 -0
- package/src/components/external-agents/external-agent-item.tsx +169 -0
- package/src/components/external-agents/external-agents-list.tsx +29 -0
- package/src/components/external-agents/form/external-agent-form.tsx +146 -0
- package/src/components/external-agents/form/validation.ts +10 -0
- package/src/components/external-agents/view-external-agent-details.tsx +129 -0
- package/src/components/sidebar-nav/sidebar-nav.tsx +6 -0
- package/src/features/agent/domain/deserialize.ts +144 -111
- package/src/features/agent/domain/serialize.ts +152 -78
- package/src/features/agent/state/use-agent-store.ts +27 -3
- package/src/hooks/use-node-editor.ts +18 -1
- package/src/lib/actions/agent-full.ts +1 -1
- package/src/lib/actions/external-agents.ts +73 -0
- package/src/lib/api/credentials.ts +2 -0
- package/src/lib/api/external-agents.ts +121 -0
- package/src/lib/types/agent-full.ts +4 -2
- package/src/lib/types/external-agents.ts +2 -0
- package/src/lib/utils/external-agent-utils.ts +33 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1042.js +0 -14
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1176.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4529.js +0 -123
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5333.js +0 -196
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6870.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/13328-851660ac17cd9821.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/20837-2dce45935d70f504.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/24380.e6f7d95645e17d66.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/300-efa35eafe593b090.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/50324-6c2b8627fccd09fe.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/61089-ddd70e2d283804f5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/86507-340cc6112e9218de.js +0 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/89441-916e04ec6f04b028.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-f07f6d11da5725a3.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-b136bb9a9b117810.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-efbbd62ebe386fbb.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-2ad8069946c69ed8.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-b274518e243d4b2b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-dbbbbe86b24c7fbe.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-56e1531226b4bde4.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-35b4a7d0a4152774.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-140e69cb775bd6fb.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-cd7a9453e707ee0c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-c42f1ec825bdc202.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-7057bfdd0c6cbd6a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-3b222f3ae3101ba8.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-625d0b8a1e577507.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-6c2aa64045d8e702.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-f3f27c9da18c75e1.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/86b7c14b860f21e3.css +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{-q1f8eaP93rBncFeN2wk_ → _hhV2vscjy4Dr-g-NJY1d}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{-q1f8eaP93rBncFeN2wk_ → _hhV2vscjy4Dr-g-NJY1d}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { generateId } from '@/lib/utils/id-utils';
|
|
2
1
|
import type { Edge, Node } from '@xyflow/react';
|
|
3
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
AgentToolConfigLookup,
|
|
4
|
+
SubAgentExternalAgentConfigLookup,
|
|
5
|
+
} from '@/components/agent/agent';
|
|
4
6
|
import type { AgentMetadata } from '@/components/agent/configuration/agent-types';
|
|
5
7
|
import type { A2AEdgeData } from '@/components/agent/configuration/edge-types';
|
|
6
8
|
import { EdgeType } from '@/components/agent/configuration/edge-types';
|
|
@@ -8,35 +10,16 @@ import { NodeType } from '@/components/agent/configuration/node-types';
|
|
|
8
10
|
import type { ArtifactComponent } from '@/lib/api/artifact-components';
|
|
9
11
|
import type { DataComponent } from '@/lib/api/data-components';
|
|
10
12
|
import type { FullAgentDefinition, InternalAgentDefinition } from '@/lib/types/agent-full';
|
|
13
|
+
import type { ExternalAgent } from '@/lib/types/external-agents';
|
|
14
|
+
import { generateId } from '@/lib/utils/id-utils';
|
|
11
15
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
name: string;
|
|
18
|
-
description: string;
|
|
19
|
-
baseUrl: string;
|
|
20
|
-
headers?: Record<string, string> | null;
|
|
21
|
-
type: 'external';
|
|
22
|
-
credentialReferenceId?: string | null;
|
|
16
|
+
export type ExtendedAgent = InternalAgentDefinition & {
|
|
17
|
+
dataComponents: string[];
|
|
18
|
+
artifactComponents: string[];
|
|
19
|
+
models?: AgentMetadata['models'];
|
|
20
|
+
type: 'internal';
|
|
23
21
|
};
|
|
24
22
|
|
|
25
|
-
export type ExtendedAgent =
|
|
26
|
-
| (InternalAgent & {
|
|
27
|
-
dataComponents: string[];
|
|
28
|
-
artifactComponents: string[];
|
|
29
|
-
models?: AgentMetadata['models'];
|
|
30
|
-
type: 'internal';
|
|
31
|
-
})
|
|
32
|
-
| ExternalAgent;
|
|
33
|
-
|
|
34
|
-
function isInternalAgent(
|
|
35
|
-
agent: ExtendedAgent | FullAgentDefinition['subAgents'][string]
|
|
36
|
-
): agent is InternalAgent {
|
|
37
|
-
return agent.type === 'internal' && 'canUse' in agent;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
23
|
// Note: Tools are now project-scoped, not part of FullAgentDefinition
|
|
41
24
|
|
|
42
25
|
/**
|
|
@@ -92,9 +75,11 @@ export function serializeAgentData(
|
|
|
92
75
|
metadata?: AgentMetadata,
|
|
93
76
|
dataComponentLookup?: Record<string, DataComponent>,
|
|
94
77
|
artifactComponentLookup?: Record<string, ArtifactComponent>,
|
|
95
|
-
agentToolConfigLookup?: AgentToolConfigLookup
|
|
78
|
+
agentToolConfigLookup?: AgentToolConfigLookup,
|
|
79
|
+
subAgentExternalAgentConfigLookup?: SubAgentExternalAgentConfigLookup
|
|
96
80
|
): FullAgentDefinition {
|
|
97
81
|
const subAgents: Record<string, ExtendedAgent> = {};
|
|
82
|
+
const externalAgents: Record<string, ExternalAgent> = {};
|
|
98
83
|
const functionTools: Record<string, any> = {};
|
|
99
84
|
const functions: Record<string, any> = {};
|
|
100
85
|
// Note: Tools are now project-scoped and not included in agent serialization
|
|
@@ -265,27 +250,26 @@ export function serializeAgentData(
|
|
|
265
250
|
|
|
266
251
|
subAgents[subAgentId] = agent;
|
|
267
252
|
} else if (node.type === NodeType.ExternalAgent) {
|
|
268
|
-
const
|
|
269
|
-
|
|
270
|
-
// Parse headers from JSON string to object
|
|
271
|
-
const parsedHeaders = safeJsonParse(node.data.headers as string);
|
|
253
|
+
const externalAgentId = (node.data.id as string) || node.id;
|
|
272
254
|
|
|
273
|
-
const
|
|
274
|
-
|
|
255
|
+
const externalAgent: ExternalAgent & {
|
|
256
|
+
tempHeaders: Record<string, string> | null;
|
|
257
|
+
relationshipId: string | null;
|
|
258
|
+
} = {
|
|
259
|
+
id: externalAgentId,
|
|
275
260
|
name: node.data.name as string,
|
|
276
261
|
description: (node.data.description as string) || '',
|
|
277
262
|
baseUrl: node.data.baseUrl as string,
|
|
278
|
-
|
|
279
|
-
|
|
263
|
+
createdAt: node.data.createdAt as string,
|
|
264
|
+
updatedAt: node.data.updatedAt as string,
|
|
280
265
|
credentialReferenceId: (node.data.credentialReferenceId as string) || null,
|
|
266
|
+
tempHeaders: (node.data as any).tempHeaders || null,
|
|
267
|
+
relationshipId: (node.data.relationshipId as string) || null,
|
|
281
268
|
};
|
|
282
269
|
|
|
283
|
-
|
|
284
|
-
defaultSubAgentId = subAgentId;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
subAgents[subAgentId] = agent;
|
|
270
|
+
externalAgents[externalAgentId] = externalAgent;
|
|
288
271
|
}
|
|
272
|
+
// External agent nodes are skipped - they are project-scoped resources
|
|
289
273
|
}
|
|
290
274
|
|
|
291
275
|
for (const edge of edges) {
|
|
@@ -294,35 +278,115 @@ export function serializeAgentData(
|
|
|
294
278
|
edge.type === EdgeType.A2AExternal ||
|
|
295
279
|
edge.type === EdgeType.SelfLoop
|
|
296
280
|
) {
|
|
297
|
-
// edge.source and edge.target are the ids of the nodes (since we allow editing the agent ids we need to use node ids since those are stable)
|
|
298
|
-
// we need to find the agents based on the node ids and then update the agents canTransferTo and canDelegateTo with the agent ids not the node ids
|
|
299
|
-
|
|
300
281
|
const sourceAgentNode = nodes.find((node) => node.id === edge.source);
|
|
301
282
|
const targetAgentNode = nodes.find((node) => node.id === edge.target);
|
|
302
283
|
|
|
303
284
|
const sourceSubAgentId = (sourceAgentNode?.data.id || sourceAgentNode?.id) as string;
|
|
304
285
|
const targetSubAgentId = (targetAgentNode?.data.id || targetAgentNode?.id) as string;
|
|
305
286
|
const sourceAgent: ExtendedAgent = subAgents[sourceSubAgentId];
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
287
|
+
|
|
288
|
+
const targetAgent: ExtendedAgent | undefined = subAgents[targetSubAgentId];
|
|
289
|
+
const targetExternalAgent: ExternalAgent | undefined = externalAgents[targetSubAgentId];
|
|
290
|
+
const isTargetExternal = targetExternalAgent !== undefined;
|
|
291
|
+
|
|
292
|
+
if (!sourceAgent || !(edge.data as any)?.relationships) {
|
|
293
|
+
continue;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
const relationships = (edge.data as any).relationships as A2AEdgeData['relationships'];
|
|
297
|
+
|
|
298
|
+
// Helper function to add relationship
|
|
299
|
+
const addRelationship = (
|
|
300
|
+
agent: ExtendedAgent,
|
|
301
|
+
relationshipType: 'canTransferTo' | 'canDelegateTo',
|
|
302
|
+
targetId: string,
|
|
303
|
+
isExternal: boolean = false,
|
|
304
|
+
headers?: Record<string, string>,
|
|
305
|
+
relationshipId?: string
|
|
306
|
+
) => {
|
|
307
|
+
if (relationshipType === 'canDelegateTo') {
|
|
308
|
+
if (!agent.canDelegateTo) {
|
|
309
|
+
agent.canDelegateTo = [];
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// External agents always use object format
|
|
313
|
+
if (isExternal) {
|
|
314
|
+
const existingIndex = agent.canDelegateTo.findIndex(
|
|
315
|
+
(item) =>
|
|
316
|
+
typeof item === 'object' &&
|
|
317
|
+
item.externalAgentId === targetId &&
|
|
318
|
+
item.subAgentExternalAgentRelationId === relationshipId
|
|
319
|
+
);
|
|
320
|
+
|
|
321
|
+
const relationshipData: any = {
|
|
322
|
+
externalAgentId: targetId,
|
|
323
|
+
headers: headers ?? null,
|
|
324
|
+
};
|
|
325
|
+
|
|
326
|
+
// Only include relationshipId if it's not null (schema expects optional, not nullable)
|
|
327
|
+
if (relationshipId) {
|
|
328
|
+
relationshipData.subAgentExternalAgentRelationId = relationshipId;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
if (existingIndex !== -1) {
|
|
332
|
+
// Update existing relationship
|
|
333
|
+
agent.canDelegateTo[existingIndex] = relationshipData;
|
|
334
|
+
} else {
|
|
335
|
+
// Add new relationship
|
|
336
|
+
agent.canDelegateTo.push(relationshipData);
|
|
337
|
+
}
|
|
338
|
+
} else {
|
|
339
|
+
// Internal agents use string format
|
|
340
|
+
if (!agent.canDelegateTo.includes(targetId)) {
|
|
341
|
+
agent.canDelegateTo.push(targetId);
|
|
322
342
|
}
|
|
323
343
|
}
|
|
324
|
-
}
|
|
344
|
+
} else {
|
|
345
|
+
if (!agent.canTransferTo) agent.canTransferTo = [];
|
|
346
|
+
if (!agent.canTransferTo.includes(targetId)) {
|
|
347
|
+
agent.canTransferTo.push(targetId);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
// Handle edges to external agents (only delegation is allowed)
|
|
353
|
+
if (isTargetExternal) {
|
|
354
|
+
if (relationships.delegateSourceToTarget) {
|
|
355
|
+
const tempHeaders = (targetExternalAgent as any).tempHeaders;
|
|
356
|
+
let externalAgentHeaders: Record<string, string> | undefined;
|
|
357
|
+
const relationshipId = (targetExternalAgent as any).relationshipId;
|
|
358
|
+
|
|
359
|
+
if (tempHeaders !== undefined) {
|
|
360
|
+
if (
|
|
361
|
+
typeof tempHeaders === 'object' &&
|
|
362
|
+
tempHeaders !== null &&
|
|
363
|
+
!Array.isArray(tempHeaders)
|
|
364
|
+
) {
|
|
365
|
+
externalAgentHeaders = tempHeaders;
|
|
366
|
+
}
|
|
367
|
+
} else {
|
|
368
|
+
const existingConfig = relationshipId
|
|
369
|
+
? subAgentExternalAgentConfigLookup?.[sourceSubAgentId]?.[relationshipId]
|
|
370
|
+
: null;
|
|
371
|
+
if (existingConfig?.headers) {
|
|
372
|
+
externalAgentHeaders = existingConfig.headers;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
addRelationship(
|
|
377
|
+
sourceAgent,
|
|
378
|
+
'canDelegateTo',
|
|
379
|
+
targetSubAgentId,
|
|
380
|
+
true, // isExternal
|
|
381
|
+
externalAgentHeaders,
|
|
382
|
+
relationshipId
|
|
383
|
+
);
|
|
384
|
+
}
|
|
385
|
+
continue;
|
|
386
|
+
}
|
|
325
387
|
|
|
388
|
+
// Handle edges between internal agents
|
|
389
|
+
if (targetAgent) {
|
|
326
390
|
// Process transfer relationships
|
|
327
391
|
if (relationships.transferSourceToTarget) {
|
|
328
392
|
addRelationship(sourceAgent, 'canTransferTo', targetSubAgentId);
|
|
@@ -458,9 +522,18 @@ export function validateSerializedData(
|
|
|
458
522
|
): StructuredValidationError[] {
|
|
459
523
|
const errors: StructuredValidationError[] = [];
|
|
460
524
|
|
|
525
|
+
if (!data.defaultSubAgentId) {
|
|
526
|
+
errors.push({
|
|
527
|
+
message: 'Default sub agent ID is required, please select a default sub agent.',
|
|
528
|
+
field: 'defaultSubAgentId',
|
|
529
|
+
code: 'required',
|
|
530
|
+
path: ['defaultSubAgentId'],
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
|
|
461
534
|
if (data.defaultSubAgentId && !data.subAgents[data.defaultSubAgentId]) {
|
|
462
535
|
errors.push({
|
|
463
|
-
message: `Default agent ID '${data.defaultSubAgentId}' not found in agents.`,
|
|
536
|
+
message: `Default sub agent ID '${data.defaultSubAgentId}' not found in sub agents.`,
|
|
464
537
|
field: 'defaultSubAgentId',
|
|
465
538
|
code: 'invalid_reference',
|
|
466
539
|
path: ['defaultSubAgentId'],
|
|
@@ -468,8 +541,8 @@ export function validateSerializedData(
|
|
|
468
541
|
}
|
|
469
542
|
|
|
470
543
|
for (const [subAgentId, agent] of Object.entries(data.subAgents)) {
|
|
471
|
-
//
|
|
472
|
-
if (
|
|
544
|
+
// All subAgents are internal agents (external agents are project-scoped)
|
|
545
|
+
if (agent.canUse) {
|
|
473
546
|
// Skip tool validation if tools data is not available (project-scoped)
|
|
474
547
|
const toolsData = (data as any).tools;
|
|
475
548
|
if (toolsData) {
|
|
@@ -487,7 +560,7 @@ export function validateSerializedData(
|
|
|
487
560
|
}
|
|
488
561
|
}
|
|
489
562
|
|
|
490
|
-
if (
|
|
563
|
+
if (agent.canUse) {
|
|
491
564
|
for (const canUseItem of agent.canUse) {
|
|
492
565
|
const toolId = canUseItem.toolId;
|
|
493
566
|
const toolType = (canUseItem as any).toolType;
|
|
@@ -552,19 +625,20 @@ export function validateSerializedData(
|
|
|
552
625
|
}
|
|
553
626
|
}
|
|
554
627
|
|
|
555
|
-
//
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
});
|
|
565
|
-
}
|
|
628
|
+
// Validate relationships (all subAgents are internal agents)
|
|
629
|
+
for (const targetId of agent.canTransferTo ?? []) {
|
|
630
|
+
if (!data.subAgents[targetId]) {
|
|
631
|
+
errors.push({
|
|
632
|
+
message: `Transfer target '${targetId}' not found in agents.`,
|
|
633
|
+
field: 'canTransferTo',
|
|
634
|
+
code: 'invalid_reference',
|
|
635
|
+
path: ['agents', subAgentId, 'canTransferTo'],
|
|
636
|
+
});
|
|
566
637
|
}
|
|
567
|
-
|
|
638
|
+
}
|
|
639
|
+
for (const targetId of agent.canDelegateTo ?? []) {
|
|
640
|
+
// String = internal subAgent
|
|
641
|
+
if (typeof targetId === 'string') {
|
|
568
642
|
if (!data.subAgents[targetId]) {
|
|
569
643
|
errors.push({
|
|
570
644
|
message: `Delegate target '${targetId}' not found in agents.`,
|
|
@@ -3,11 +3,15 @@ import { addEdge, applyEdgeChanges, applyNodeChanges } from '@xyflow/react';
|
|
|
3
3
|
import { create } from 'zustand';
|
|
4
4
|
import { devtools } from 'zustand/middleware';
|
|
5
5
|
import { useShallow } from 'zustand/react/shallow';
|
|
6
|
-
import type {
|
|
6
|
+
import type {
|
|
7
|
+
AgentToolConfigLookup,
|
|
8
|
+
SubAgentExternalAgentConfigLookup,
|
|
9
|
+
} from '@/components/agent/agent';
|
|
7
10
|
import type { AgentMetadata } from '@/components/agent/configuration/agent-types';
|
|
8
11
|
import { mcpNodeHandleId, NodeType } from '@/components/agent/configuration/node-types';
|
|
9
12
|
import type { ArtifactComponent } from '@/lib/api/artifact-components';
|
|
10
13
|
import type { DataComponent } from '@/lib/api/data-components';
|
|
14
|
+
import type { ExternalAgent } from '@/lib/types/external-agents';
|
|
11
15
|
import type { MCPTool } from '@/lib/types/tools';
|
|
12
16
|
import type { AgentErrorSummary } from '@/lib/utils/agent-error-parser';
|
|
13
17
|
|
|
@@ -20,7 +24,9 @@ type AgentStateData = {
|
|
|
20
24
|
dataComponentLookup: Record<string, DataComponent>;
|
|
21
25
|
artifactComponentLookup: Record<string, ArtifactComponent>;
|
|
22
26
|
toolLookup: Record<string, MCPTool>;
|
|
27
|
+
externalAgentLookup: Record<string, ExternalAgent>;
|
|
23
28
|
agentToolConfigLookup: AgentToolConfigLookup;
|
|
29
|
+
subAgentExternalAgentConfigLookup: SubAgentExternalAgentConfigLookup;
|
|
24
30
|
dirty: boolean;
|
|
25
31
|
history: HistoryEntry[];
|
|
26
32
|
future: HistoryEntry[];
|
|
@@ -36,13 +42,19 @@ type AgentActions = {
|
|
|
36
42
|
dataComponentLookup?: Record<string, DataComponent>,
|
|
37
43
|
artifactComponentLookup?: Record<string, ArtifactComponent>,
|
|
38
44
|
toolLookup?: Record<string, MCPTool>,
|
|
39
|
-
agentToolConfigLookup?: AgentToolConfigLookup
|
|
45
|
+
agentToolConfigLookup?: AgentToolConfigLookup,
|
|
46
|
+
externalAgentLookup?: Record<string, ExternalAgent>,
|
|
47
|
+
subAgentExternalAgentConfigLookup?: SubAgentExternalAgentConfigLookup
|
|
40
48
|
): void;
|
|
41
49
|
reset(): void;
|
|
42
50
|
setDataComponentLookup(dataComponentLookup: Record<string, DataComponent>): void;
|
|
43
51
|
setArtifactComponentLookup(artifactComponentLookup: Record<string, ArtifactComponent>): void;
|
|
44
52
|
setToolLookup(toolLookup: Record<string, MCPTool>): void;
|
|
45
53
|
setAgentToolConfigLookup(agentToolConfigLookup: AgentToolConfigLookup): void;
|
|
54
|
+
setExternalAgentLookup(externalAgentLookup: Record<string, ExternalAgent>): void;
|
|
55
|
+
setSubAgentExternalAgentConfigLookup(
|
|
56
|
+
subAgentExternalAgentConfigLookup: SubAgentExternalAgentConfigLookup
|
|
57
|
+
): void;
|
|
46
58
|
setNodes(updater: (prev: Node[]) => Node[]): void;
|
|
47
59
|
setEdges(updater: (prev: Edge[]) => Edge[]): void;
|
|
48
60
|
onNodesChange(changes: NodeChange[]): void;
|
|
@@ -88,6 +100,8 @@ const initialAgentState: AgentStateData = {
|
|
|
88
100
|
artifactComponentLookup: {},
|
|
89
101
|
toolLookup: {},
|
|
90
102
|
agentToolConfigLookup: {},
|
|
103
|
+
externalAgentLookup: {},
|
|
104
|
+
subAgentExternalAgentConfigLookup: {},
|
|
91
105
|
dirty: false,
|
|
92
106
|
history: [],
|
|
93
107
|
future: [],
|
|
@@ -107,7 +121,9 @@ export const agentStore = create<AgentState>()(
|
|
|
107
121
|
dataComponentLookup = {},
|
|
108
122
|
artifactComponentLookup = {},
|
|
109
123
|
toolLookup = {},
|
|
110
|
-
agentToolConfigLookup = {}
|
|
124
|
+
agentToolConfigLookup = {},
|
|
125
|
+
externalAgentLookup = {},
|
|
126
|
+
subAgentExternalAgentConfigLookup = {}
|
|
111
127
|
) {
|
|
112
128
|
set({
|
|
113
129
|
nodes,
|
|
@@ -117,6 +133,8 @@ export const agentStore = create<AgentState>()(
|
|
|
117
133
|
artifactComponentLookup,
|
|
118
134
|
toolLookup,
|
|
119
135
|
agentToolConfigLookup,
|
|
136
|
+
externalAgentLookup,
|
|
137
|
+
subAgentExternalAgentConfigLookup,
|
|
120
138
|
dirty: false,
|
|
121
139
|
history: [],
|
|
122
140
|
future: [],
|
|
@@ -139,6 +157,12 @@ export const agentStore = create<AgentState>()(
|
|
|
139
157
|
setAgentToolConfigLookup(agentToolConfigLookup) {
|
|
140
158
|
set({ agentToolConfigLookup });
|
|
141
159
|
},
|
|
160
|
+
setExternalAgentLookup(externalAgentLookup) {
|
|
161
|
+
set({ externalAgentLookup });
|
|
162
|
+
},
|
|
163
|
+
setSubAgentExternalAgentConfigLookup(subAgentExternalAgentConfigLookup) {
|
|
164
|
+
set({ subAgentExternalAgentConfigLookup });
|
|
165
|
+
},
|
|
142
166
|
setNodes(updater) {
|
|
143
167
|
set((state) => ({ nodes: updater(state.nodes) }));
|
|
144
168
|
},
|
|
@@ -9,9 +9,25 @@ interface UseNodeEditorOptions {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export function useNodeEditor({ selectedNodeId, errorHelpers }: UseNodeEditorOptions) {
|
|
12
|
-
const { updateNodeData } = useReactFlow();
|
|
12
|
+
const { updateNodeData, setNodes } = useReactFlow();
|
|
13
13
|
const { markUnsaved } = useAgentActions();
|
|
14
14
|
|
|
15
|
+
const updateDefaultSubAgent = useCallback(
|
|
16
|
+
(isDefault: boolean) => {
|
|
17
|
+
setNodes((nodes) =>
|
|
18
|
+
nodes.map((node) => {
|
|
19
|
+
if (node.id === selectedNodeId) {
|
|
20
|
+
return { ...node, data: { ...node.data, isDefault }, deletable: !isDefault };
|
|
21
|
+
} else if (isDefault && node.data.isDefault) {
|
|
22
|
+
return { ...node, data: { ...node.data, isDefault: false }, deletable: true };
|
|
23
|
+
}
|
|
24
|
+
return node;
|
|
25
|
+
})
|
|
26
|
+
);
|
|
27
|
+
},
|
|
28
|
+
[selectedNodeId, setNodes]
|
|
29
|
+
);
|
|
30
|
+
|
|
15
31
|
// Focus management for error fields
|
|
16
32
|
const fieldRefs = useRef<Record<string, HTMLElement>>({});
|
|
17
33
|
|
|
@@ -127,6 +143,7 @@ export function useNodeEditor({ selectedNodeId, errorHelpers }: UseNodeEditorOpt
|
|
|
127
143
|
updatePath,
|
|
128
144
|
updateNestedPath,
|
|
129
145
|
handleInputChange,
|
|
146
|
+
updateDefaultSubAgent,
|
|
130
147
|
|
|
131
148
|
// Error handling
|
|
132
149
|
getFieldError,
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server actions for external agent operations with path revalidation
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
'use server';
|
|
6
|
+
|
|
7
|
+
import { revalidatePath } from 'next/cache';
|
|
8
|
+
import { deleteExternalAgent, fetchExternalAgents } from '../api/external-agents';
|
|
9
|
+
import { ApiError } from '../types/errors';
|
|
10
|
+
import type { ExternalAgent } from '../types/external-agents';
|
|
11
|
+
import type { ActionResult } from './types';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Fetch all external agents for a project
|
|
15
|
+
*/
|
|
16
|
+
export async function fetchExternalAgentsAction(
|
|
17
|
+
tenantId: string,
|
|
18
|
+
projectId: string
|
|
19
|
+
): Promise<ActionResult<ExternalAgent[]>> {
|
|
20
|
+
try {
|
|
21
|
+
const externalAgents = await fetchExternalAgents(tenantId, projectId);
|
|
22
|
+
return {
|
|
23
|
+
success: true,
|
|
24
|
+
data: externalAgents,
|
|
25
|
+
};
|
|
26
|
+
} catch (error) {
|
|
27
|
+
if (error instanceof ApiError) {
|
|
28
|
+
return {
|
|
29
|
+
success: false,
|
|
30
|
+
error: error.message,
|
|
31
|
+
code: error.error.code,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
success: false,
|
|
37
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
38
|
+
code: 'unknown_error',
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Delete an external agent
|
|
45
|
+
*/
|
|
46
|
+
export async function deleteExternalAgentAction(
|
|
47
|
+
tenantId: string,
|
|
48
|
+
projectId: string,
|
|
49
|
+
externalAgentId: string
|
|
50
|
+
): Promise<ActionResult<void>> {
|
|
51
|
+
try {
|
|
52
|
+
await deleteExternalAgent(tenantId, projectId, externalAgentId);
|
|
53
|
+
revalidatePath(`/${tenantId}/projects/${projectId}/external-agents`);
|
|
54
|
+
revalidatePath(`/${tenantId}/projects/${projectId}/external-agents/${externalAgentId}`);
|
|
55
|
+
return {
|
|
56
|
+
success: true,
|
|
57
|
+
};
|
|
58
|
+
} catch (error) {
|
|
59
|
+
if (error instanceof ApiError) {
|
|
60
|
+
return {
|
|
61
|
+
success: false,
|
|
62
|
+
error: error.message,
|
|
63
|
+
code: error.error.code,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return {
|
|
68
|
+
success: false,
|
|
69
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
70
|
+
code: 'unknown_error',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import type {
|
|
4
4
|
CredentialReferenceApiInsert,
|
|
5
5
|
CredentialReferenceApiSelect,
|
|
6
|
+
ExternalAgentApiSelect,
|
|
6
7
|
McpTool,
|
|
7
8
|
} from '@inkeep/agents-core';
|
|
8
9
|
import type { ListResponse, SingleResponse } from '../types/response';
|
|
@@ -13,6 +14,7 @@ import { validateProjectId, validateTenantId } from './resource-validation';
|
|
|
13
14
|
// Re-export types from core package for convenience
|
|
14
15
|
export type Credential = CredentialReferenceApiSelect & {
|
|
15
16
|
tools?: McpTool[];
|
|
17
|
+
externalAgents?: ExternalAgentApiSelect[];
|
|
16
18
|
};
|
|
17
19
|
export type CreateCredentialRequest = CredentialReferenceApiInsert;
|
|
18
20
|
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
'use server';
|
|
2
|
+
|
|
3
|
+
import type { ExternalAgentApiInsert, ExternalAgentApiSelect } from '@inkeep/agents-core';
|
|
4
|
+
|
|
5
|
+
import type { ListResponse, SingleResponse } from '../types/response';
|
|
6
|
+
// Default configuration
|
|
7
|
+
import { makeManagementApiRequest } from './api-config';
|
|
8
|
+
import { validateProjectId, validateTenantId } from './resource-validation';
|
|
9
|
+
|
|
10
|
+
// Use Omit to make id optional for creation
|
|
11
|
+
type CreateExternalAgentRequest = Omit<ExternalAgentApiInsert, 'id'> & {
|
|
12
|
+
id?: string; // Make id optional for creation
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export type ExternalAgent = ExternalAgentApiSelect;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* List all external agents for the current project
|
|
19
|
+
*/
|
|
20
|
+
export async function fetchExternalAgents(
|
|
21
|
+
tenantId: string,
|
|
22
|
+
projectId: string,
|
|
23
|
+
page = 1,
|
|
24
|
+
pageSize = 50
|
|
25
|
+
): Promise<ExternalAgent[]> {
|
|
26
|
+
validateTenantId(tenantId);
|
|
27
|
+
validateProjectId(projectId);
|
|
28
|
+
|
|
29
|
+
const params = new URLSearchParams({
|
|
30
|
+
page: page.toString(),
|
|
31
|
+
limit: pageSize.toString(),
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const response = await makeManagementApiRequest<ListResponse<ExternalAgent>>(
|
|
35
|
+
`tenants/${tenantId}/projects/${projectId}/external-agents?${params}`
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
return response.data;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Get a single external agent by ID
|
|
43
|
+
*/
|
|
44
|
+
export async function fetchExternalAgent(
|
|
45
|
+
tenantId: string,
|
|
46
|
+
projectId: string,
|
|
47
|
+
id: string
|
|
48
|
+
): Promise<ExternalAgent> {
|
|
49
|
+
validateTenantId(tenantId);
|
|
50
|
+
validateProjectId(projectId);
|
|
51
|
+
|
|
52
|
+
const response = await makeManagementApiRequest<SingleResponse<ExternalAgent>>(
|
|
53
|
+
`tenants/${tenantId}/projects/${projectId}/external-agents/${id}`
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
return response.data;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Create a new external agent
|
|
61
|
+
*/
|
|
62
|
+
export async function createExternalAgent(
|
|
63
|
+
tenantId: string,
|
|
64
|
+
projectId: string,
|
|
65
|
+
data: CreateExternalAgentRequest
|
|
66
|
+
): Promise<ExternalAgent> {
|
|
67
|
+
validateTenantId(tenantId);
|
|
68
|
+
validateProjectId(projectId);
|
|
69
|
+
|
|
70
|
+
const response = await makeManagementApiRequest<SingleResponse<ExternalAgent>>(
|
|
71
|
+
`tenants/${tenantId}/projects/${projectId}/external-agents`,
|
|
72
|
+
{
|
|
73
|
+
method: 'POST',
|
|
74
|
+
body: JSON.stringify(data),
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
return response.data;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Update an existing external agent
|
|
83
|
+
*/
|
|
84
|
+
export async function updateExternalAgent(
|
|
85
|
+
tenantId: string,
|
|
86
|
+
projectId: string,
|
|
87
|
+
id: string,
|
|
88
|
+
data: Partial<CreateExternalAgentRequest>
|
|
89
|
+
): Promise<ExternalAgent> {
|
|
90
|
+
validateTenantId(tenantId);
|
|
91
|
+
validateProjectId(projectId);
|
|
92
|
+
|
|
93
|
+
const response = await makeManagementApiRequest<SingleResponse<ExternalAgent>>(
|
|
94
|
+
`tenants/${tenantId}/projects/${projectId}/external-agents/${id}`,
|
|
95
|
+
{
|
|
96
|
+
method: 'PUT',
|
|
97
|
+
body: JSON.stringify(data),
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
return response.data;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Delete an external agent
|
|
106
|
+
*/
|
|
107
|
+
export async function deleteExternalAgent(
|
|
108
|
+
tenantId: string,
|
|
109
|
+
projectId: string,
|
|
110
|
+
id: string
|
|
111
|
+
): Promise<void> {
|
|
112
|
+
validateTenantId(tenantId);
|
|
113
|
+
validateProjectId(projectId);
|
|
114
|
+
|
|
115
|
+
await makeManagementApiRequest<void>(
|
|
116
|
+
`tenants/${tenantId}/projects/${projectId}/external-agents/${id}`,
|
|
117
|
+
{
|
|
118
|
+
method: 'DELETE',
|
|
119
|
+
}
|
|
120
|
+
);
|
|
121
|
+
}
|
|
@@ -9,12 +9,13 @@ import { z } from 'zod';
|
|
|
9
9
|
|
|
10
10
|
// Import core types and schemas
|
|
11
11
|
import {
|
|
12
|
-
type AgentApiInsert,
|
|
13
|
-
AgentApiInsertSchema,
|
|
14
12
|
AgentAgentApiInsertSchema,
|
|
15
13
|
type AgentAgentInsert,
|
|
14
|
+
type AgentApiInsert,
|
|
15
|
+
AgentApiInsertSchema,
|
|
16
16
|
type FullAgentDefinition as CoreFullAgentDefinition,
|
|
17
17
|
ErrorResponseSchema,
|
|
18
|
+
type ExternalAgentApiInsert,
|
|
18
19
|
type ExternalAgentDefinition,
|
|
19
20
|
FullAgentDefinitionSchema,
|
|
20
21
|
type FunctionApiInsert,
|
|
@@ -31,6 +32,7 @@ import type { SingleResponse } from './response';
|
|
|
31
32
|
// Extend FullAgentDefinition with UI-specific lookup maps
|
|
32
33
|
export type FullAgentDefinition = CoreFullAgentDefinition & {
|
|
33
34
|
tools?: Record<string, ToolApiInsert>;
|
|
35
|
+
externalAgents?: Record<string, ExternalAgentApiInsert>;
|
|
34
36
|
functionTools?: Record<string, any>; // Function tools are agent-scoped
|
|
35
37
|
functions?: Record<string, FunctionApiInsert>;
|
|
36
38
|
};
|