@inkeep/agents-manage-ui 0.30.0 → 0.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
- package/.next/standalone/agents-manage-ui/.next/app-build-manifest.json +146 -146
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +5 -5
- 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 +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +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_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 +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 +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_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_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_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 +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 +1 -1
- 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 +1 -1
- 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 +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 +2 -2
- 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 +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 +8 -8
- package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/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_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1051.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2012.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{2427.js → 208.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/418.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4386.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4608.js +5 -5
- package/.next/standalone/agents-manage-ui/.next/server/chunks/493.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5206.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6685.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7166.js +123 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{618.js → 7185.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7306.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7586.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9887.js +12 -12
- 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/{32913-b68f414e3b3c0790.js → 18417-889badb50e89f506.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{23527.f70768e16484389f.js → 23527.a44ee54d28c80c9d.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{92288-ad4e1e33d8b16129.js → 29177-2e8bc35cfa8e85a1.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/30457-3c313bac7f8cfa6c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/38252-95ab90100c9977cf.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{43308.8c67c6ec961ed702.js → 43308.2bc3559d8989c0b8.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/60864-5a56298db0914e3d.js +4 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/63496-05fece77d55b446d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/65336-d517a782803f82bd.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7231-52871124dd13d0cc.js +123 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{8300-82af03d18fd042c8.js → 8300-d7a3c39e3a967cc3.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/96777-5f1577313988510b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/98428-d3f11b624797f527.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/98617-2ecd89a8d65683fa.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-495551cd910bd06a.js → page-bf3d6e9208c10c47.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/{page-b1492441859ee76e.js → page-18c62c993b74b713.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-c1137c654255649f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-464e6b3c1c143858.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/{page-45c2d6a4c6e06c63.js → page-5eb4e000e8f5282f.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/{page-1a67c3612f46fceb.js → page-a915375e7dfcb747.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/{page-47ae11a529351137.js → page-45496e9dc885096e.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-577543c7d1db732a.js → page-8181435b4b6f86d0.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-ef48b8508c4a9f07.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-936cffc5d2b96942.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-bb11506d781ef258.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-cb21405decefd467.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-5f8b30a4a2e74d5f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-e30449dd8705a9bd.js → page-94690f00fc35256a.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/{page-ac94e54545a636a8.js → page-c2353d575b17851a.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/{page-549e53b57febd300.js → page-04b33dd50985ac71.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-7ce46049f43ac89d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-9ab600987517aa6e.js → page-2dceb4e2ac2dd9a1.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-f76f97a38f3df5ef.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-9337cf462497d330.js → page-24689c6162ab0c80.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-65c117d1b9e4a573.js → page-fff0c1d675c192f4.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-f504c972f701e03b.js → page-5696b3f6cb5b6b9a.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/{page-281e7ac181a553a5.js → page-f2d3ab1b44246720.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-38b080eefd96c433.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-c95090e5caaefe10.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-2476dbb434604b2e.js → webpack-adb9582241b13ddf.js} +1 -1
- package/.next/standalone/agents-manage-ui/package.json +2 -1
- package/.next/standalone/packages/agents-core/package.json +1 -1
- package/package.json +5 -4
- package/src/components/agent/sidepane/edges/edge-editor.tsx +110 -26
- package/src/components/agent/sidepane/metadata/metadata-editor.tsx +3 -3
- package/src/components/agent/sidepane/nodes/model-section.tsx +3 -3
- package/src/components/projects/form/project-models-section.tsx +3 -3
- package/src/components/ui/radio-group.tsx +39 -0
- package/src/lib/utils/agent-error-parser.ts +1 -1
- package/src/lib/utils/cycle-detection.ts +70 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3026.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3802.js +0 -123
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4805.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/595.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7465.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/16631-8d275ca71102f283.js +0 -123
- package/.next/standalone/agents-manage-ui/.next/static/chunks/55743-a685c307050b5a7f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/60864-b5d5476b1699d327.js +0 -4
- package/.next/standalone/agents-manage-ui/.next/static/chunks/63496-f9d66fd67133f7a3.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/83986-c27d3523538c6544.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/84416-33eedbe868caf8dc.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/92140-a72a725fe1082cc9.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/9443-8b306589ad38c17c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/98617-4e5ba3d31dfd3a57.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-ac3a8ed7239ba32a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-27717b1379db4c13.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-9d1040cf5d02fd83.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-58fb7e9e1a9f7a21.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-57e9ece60d4f0ebc.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-d43b932af2c94979.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-fc861244355b3235.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-4da2460a9447a1ec.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-3723c664ea2121af.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-3cf2f3953b5e75b2.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-c12426a0042d74e6.js +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{AglP-oVd7dJ3L6FvFByxT → 8J6i2h2kYuG8UYXrNY4C8}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{AglP-oVd7dJ3L6FvFByxT → 8J6i2h2kYuG8UYXrNY4C8}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inkeep/agents-core",
|
|
3
|
-
"version": "0.30.
|
|
3
|
+
"version": "0.30.1",
|
|
4
4
|
"description": "Agents Core contains the database schema, types, and validation schemas for Inkeep Agent Framework, along with core components.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inkeep/agents-manage-ui",
|
|
3
|
-
"version": "0.30.
|
|
3
|
+
"version": "0.30.1",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"@radix-ui/react-dropdown-menu": "^2.1.15",
|
|
47
47
|
"@radix-ui/react-label": "^2.1.7",
|
|
48
48
|
"@radix-ui/react-popover": "^1.1.15",
|
|
49
|
+
"@radix-ui/react-radio-group": "^1.3.8",
|
|
49
50
|
"@radix-ui/react-scroll-area": "^1.2.9",
|
|
50
51
|
"@radix-ui/react-select": "^2.2.5",
|
|
51
52
|
"@radix-ui/react-separator": "^1.1.7",
|
|
@@ -89,9 +90,9 @@
|
|
|
89
90
|
"use-stick-to-bottom": "^1.1.1",
|
|
90
91
|
"zod": "^4.1.11",
|
|
91
92
|
"zustand": "^5.0.7",
|
|
92
|
-
"@inkeep/agents-core": "^0.30.
|
|
93
|
-
"@inkeep/agents-manage-api": "^0.30.
|
|
94
|
-
"@inkeep/agents-run-api": "^0.30.
|
|
93
|
+
"@inkeep/agents-core": "^0.30.1",
|
|
94
|
+
"@inkeep/agents-manage-api": "^0.30.1",
|
|
95
|
+
"@inkeep/agents-run-api": "^0.30.1"
|
|
95
96
|
},
|
|
96
97
|
"devDependencies": {
|
|
97
98
|
"start-server-and-test": "^2.1.2",
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { type Edge, useNodesData, useReactFlow } from '@xyflow/react';
|
|
2
2
|
import { Spline, Trash2 } from 'lucide-react';
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
|
+
import { toast } from 'sonner';
|
|
4
5
|
import { DashedSplineIcon } from '@/components/icons/dashed-spline';
|
|
5
6
|
import { Badge } from '@/components/ui/badge';
|
|
6
7
|
import { Button } from '@/components/ui/button';
|
|
7
8
|
import { Checkbox } from '@/components/ui/checkbox';
|
|
8
9
|
import { Label } from '@/components/ui/label';
|
|
10
|
+
import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';
|
|
9
11
|
import { Separator } from '@/components/ui/separator';
|
|
10
12
|
import { useAgentActions } from '@/features/agent/state/use-agent-store';
|
|
13
|
+
import { getCycleErrorMessage, wouldCreateCycle } from '@/lib/utils/cycle-detection';
|
|
11
14
|
import type { A2AEdgeData } from '../../configuration/edge-types';
|
|
12
15
|
|
|
13
16
|
type RelationshipOptionProps = {
|
|
@@ -42,6 +45,8 @@ type RelationshipSectionProps = {
|
|
|
42
45
|
options: Array<{ id: string; label: string | React.ReactNode }>;
|
|
43
46
|
onCheckedChange: (id: string, checked: boolean) => void;
|
|
44
47
|
checkedValues: A2AEdgeData['relationships'];
|
|
48
|
+
useRadio?: boolean;
|
|
49
|
+
onRadioChange?: (value: string) => void;
|
|
45
50
|
};
|
|
46
51
|
|
|
47
52
|
function RelationshipSection({
|
|
@@ -51,7 +56,16 @@ function RelationshipSection({
|
|
|
51
56
|
options,
|
|
52
57
|
onCheckedChange,
|
|
53
58
|
checkedValues,
|
|
59
|
+
useRadio = false,
|
|
60
|
+
onRadioChange,
|
|
54
61
|
}: RelationshipSectionProps) {
|
|
62
|
+
const getRadioValue = () => {
|
|
63
|
+
const checkedOption = options.find(
|
|
64
|
+
(opt) => checkedValues?.[opt.id as keyof A2AEdgeData['relationships']],
|
|
65
|
+
);
|
|
66
|
+
return checkedOption?.id || '';
|
|
67
|
+
};
|
|
68
|
+
|
|
55
69
|
return (
|
|
56
70
|
<div className="space-y-4">
|
|
57
71
|
<div className="space-y-2">
|
|
@@ -61,15 +75,30 @@ function RelationshipSection({
|
|
|
61
75
|
</div>
|
|
62
76
|
<p className="text-muted-foreground text-sm">{description}</p>
|
|
63
77
|
</div>
|
|
64
|
-
{
|
|
65
|
-
<
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
78
|
+
{useRadio && onRadioChange ? (
|
|
79
|
+
<RadioGroup value={getRadioValue()} onValueChange={onRadioChange}>
|
|
80
|
+
{options.map((option) => (
|
|
81
|
+
<div key={option.id} className="flex items-start gap-3">
|
|
82
|
+
<RadioGroupItem value={option.id} id={option.id} className="mt-[5px]" />
|
|
83
|
+
<div className="grid gap-2">
|
|
84
|
+
<Label htmlFor={option.id} className="font-normal">
|
|
85
|
+
{option.label}
|
|
86
|
+
</Label>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
))}
|
|
90
|
+
</RadioGroup>
|
|
91
|
+
) : (
|
|
92
|
+
options.map((option) => (
|
|
93
|
+
<RelationshipOption
|
|
94
|
+
key={option.id}
|
|
95
|
+
id={option.id}
|
|
96
|
+
label={option.label}
|
|
97
|
+
onCheckedChange={onCheckedChange}
|
|
98
|
+
checked={checkedValues?.[option.id as keyof A2AEdgeData['relationships']] || false}
|
|
99
|
+
/>
|
|
100
|
+
))
|
|
101
|
+
)}
|
|
73
102
|
</div>
|
|
74
103
|
);
|
|
75
104
|
}
|
|
@@ -79,7 +108,7 @@ interface EdgeEditorProps {
|
|
|
79
108
|
}
|
|
80
109
|
|
|
81
110
|
function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
|
|
82
|
-
const { updateEdgeData, setEdges, deleteElements } = useReactFlow();
|
|
111
|
+
const { updateEdgeData, setEdges, deleteElements, getEdges } = useReactFlow();
|
|
83
112
|
|
|
84
113
|
const deleteEdge = useCallback(() => {
|
|
85
114
|
deleteElements({ edges: [{ id: selectedEdge.id }] });
|
|
@@ -91,6 +120,43 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
|
|
|
91
120
|
|
|
92
121
|
const isSelfLoop = selectedEdge.source === selectedEdge.target;
|
|
93
122
|
|
|
123
|
+
const checkForCycle = (delegateId: string): boolean => {
|
|
124
|
+
const source = delegateId === 'delegateSourceToTarget' ? selectedEdge.source : selectedEdge.target;
|
|
125
|
+
const target = delegateId === 'delegateSourceToTarget' ? selectedEdge.target : selectedEdge.source;
|
|
126
|
+
|
|
127
|
+
const allEdges = getEdges();
|
|
128
|
+
const otherEdges = allEdges.filter((edge) => edge.id !== selectedEdge.id);
|
|
129
|
+
|
|
130
|
+
if (wouldCreateCycle(otherEdges, { source, target })) {
|
|
131
|
+
const sourceName = (sourceNode?.data.name as string) || (sourceNode?.data.id as string) || 'Sub Agent';
|
|
132
|
+
const targetName = (targetNode?.data.name as string) || (targetNode?.data.id as string) || 'Sub Agent';
|
|
133
|
+
const sourceLabel = delegateId === 'delegateSourceToTarget' ? sourceName : targetName;
|
|
134
|
+
const targetLabel = delegateId === 'delegateSourceToTarget' ? targetName : sourceName;
|
|
135
|
+
|
|
136
|
+
toast.error('Circular Delegation Detected', {
|
|
137
|
+
description: getCycleErrorMessage(sourceLabel, targetLabel),
|
|
138
|
+
});
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
return false;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
const updateRelationships = (newRelationships: A2AEdgeData['relationships']) => {
|
|
145
|
+
const hasAnyRelationship =
|
|
146
|
+
newRelationships.transferSourceToTarget ||
|
|
147
|
+
newRelationships.transferTargetToSource ||
|
|
148
|
+
newRelationships.delegateSourceToTarget ||
|
|
149
|
+
newRelationships.delegateTargetToSource;
|
|
150
|
+
|
|
151
|
+
markUnsaved();
|
|
152
|
+
|
|
153
|
+
if (!hasAnyRelationship) {
|
|
154
|
+
setEdges((edges) => edges.filter((edge) => edge.id !== selectedEdge.id));
|
|
155
|
+
} else {
|
|
156
|
+
updateEdgeData(selectedEdge.id, { relationships: newRelationships });
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
|
|
94
160
|
const handleCheckboxChange = (id: string, checked: boolean) => {
|
|
95
161
|
// Calculate the new relationships state
|
|
96
162
|
let newRelationships: A2AEdgeData['relationships'];
|
|
@@ -111,29 +177,45 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
|
|
|
111
177
|
...updates,
|
|
112
178
|
};
|
|
113
179
|
} else {
|
|
180
|
+
const updates: Partial<A2AEdgeData['relationships']> = { [id]: checked };
|
|
181
|
+
|
|
182
|
+
// Prevent two-way delegation: when enabling one delegation direction, disable the opposite
|
|
183
|
+
if (checked) {
|
|
184
|
+
if (id === 'delegateSourceToTarget') {
|
|
185
|
+
updates.delegateTargetToSource = false;
|
|
186
|
+
} else if (id === 'delegateTargetToSource') {
|
|
187
|
+
updates.delegateSourceToTarget = false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
114
191
|
newRelationships = {
|
|
115
192
|
...(selectedEdge.data?.relationships as A2AEdgeData['relationships']),
|
|
116
|
-
|
|
193
|
+
...updates,
|
|
117
194
|
};
|
|
118
195
|
}
|
|
119
196
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
newRelationships.transferTargetToSource ||
|
|
123
|
-
newRelationships.delegateSourceToTarget ||
|
|
124
|
-
newRelationships.delegateTargetToSource;
|
|
197
|
+
updateRelationships(newRelationships);
|
|
198
|
+
};
|
|
125
199
|
|
|
126
|
-
|
|
127
|
-
|
|
200
|
+
const handleDelegateRadioChange = (value: string) => {
|
|
201
|
+
if (value && checkForCycle(value)) return;
|
|
128
202
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
203
|
+
const newRelationships: A2AEdgeData['relationships'] = {
|
|
204
|
+
...(selectedEdge.data?.relationships as A2AEdgeData['relationships']),
|
|
205
|
+
delegateSourceToTarget: false,
|
|
206
|
+
delegateTargetToSource: false,
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
if (value) {
|
|
210
|
+
if (isSelfLoop && value === 'delegateSourceToTarget') {
|
|
211
|
+
newRelationships.delegateSourceToTarget = true;
|
|
212
|
+
newRelationships.delegateTargetToSource = true;
|
|
213
|
+
} else {
|
|
214
|
+
newRelationships[value as keyof A2AEdgeData['relationships']] = true;
|
|
215
|
+
}
|
|
136
216
|
}
|
|
217
|
+
|
|
218
|
+
updateRelationships(newRelationships);
|
|
137
219
|
};
|
|
138
220
|
|
|
139
221
|
const sourceName =
|
|
@@ -245,10 +327,12 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
|
|
|
245
327
|
<RelationshipSection
|
|
246
328
|
icon={<DashedSplineIcon className="w-4 h-4 text-muted-foreground" />}
|
|
247
329
|
title="Delegate relationships"
|
|
248
|
-
description="Delegate relationships are used to pass a task from one agent to another."
|
|
330
|
+
description="Delegate relationships are used to pass a task from one agent to another. Delegate relationships cannot be bi-directional."
|
|
249
331
|
options={delegateOptions}
|
|
250
332
|
onCheckedChange={handleCheckboxChange}
|
|
251
333
|
checkedValues={selectedEdge.data?.relationships as A2AEdgeData['relationships']}
|
|
334
|
+
useRadio={true}
|
|
335
|
+
onRadioChange={handleDelegateRadioChange}
|
|
252
336
|
/>
|
|
253
337
|
<Separator />
|
|
254
338
|
<div className="flex justify-end">
|
|
@@ -226,7 +226,7 @@ function MetadataEditor() {
|
|
|
226
226
|
value={models.base.providerOptions || ''}
|
|
227
227
|
placeholder={`{
|
|
228
228
|
"temperature": 0.7,
|
|
229
|
-
"
|
|
229
|
+
"maxOutputTokens": 2048
|
|
230
230
|
}`}
|
|
231
231
|
/>
|
|
232
232
|
)}
|
|
@@ -286,7 +286,7 @@ function MetadataEditor() {
|
|
|
286
286
|
value={models.structuredOutput.providerOptions || ''}
|
|
287
287
|
placeholder={`{
|
|
288
288
|
"temperature": 0.1,
|
|
289
|
-
"
|
|
289
|
+
"maxOutputTokens": 1024
|
|
290
290
|
}`}
|
|
291
291
|
/>
|
|
292
292
|
)}
|
|
@@ -345,7 +345,7 @@ function MetadataEditor() {
|
|
|
345
345
|
value={models.summarizer.providerOptions || ''}
|
|
346
346
|
placeholder={`{
|
|
347
347
|
"temperature": 0.3,
|
|
348
|
-
"
|
|
348
|
+
"maxOutputTokens": 1024
|
|
349
349
|
}`}
|
|
350
350
|
/>
|
|
351
351
|
)}
|
|
@@ -76,7 +76,7 @@ export function ModelSection({
|
|
|
76
76
|
value={models?.base?.providerOptions || ''}
|
|
77
77
|
placeholder={`{
|
|
78
78
|
"temperature": 0.7,
|
|
79
|
-
"
|
|
79
|
+
"maxOutputTokens": 2048
|
|
80
80
|
}`}
|
|
81
81
|
/>
|
|
82
82
|
)}
|
|
@@ -124,7 +124,7 @@ export function ModelSection({
|
|
|
124
124
|
value={models?.structuredOutput?.providerOptions || ''}
|
|
125
125
|
placeholder={`{
|
|
126
126
|
"temperature": 0.1,
|
|
127
|
-
"
|
|
127
|
+
"maxOutputTokens": 1024
|
|
128
128
|
}`}
|
|
129
129
|
/>
|
|
130
130
|
)}
|
|
@@ -172,7 +172,7 @@ export function ModelSection({
|
|
|
172
172
|
value={models?.summarizer?.providerOptions || ''}
|
|
173
173
|
placeholder={`{
|
|
174
174
|
"temperature": 0.3,
|
|
175
|
-
"
|
|
175
|
+
"maxOutputTokens": 1024
|
|
176
176
|
}`}
|
|
177
177
|
/>
|
|
178
178
|
)}
|
|
@@ -62,7 +62,7 @@ function BaseModelSection({ control }: { control: Control<ProjectFormData> }) {
|
|
|
62
62
|
}}
|
|
63
63
|
placeholder={`{
|
|
64
64
|
"temperature": 0.7,
|
|
65
|
-
"
|
|
65
|
+
"maxOutputTokens": 2048
|
|
66
66
|
}`}
|
|
67
67
|
/>
|
|
68
68
|
</div>
|
|
@@ -116,7 +116,7 @@ function StructuredOutputModelSection({ control }: { control: Control<ProjectFor
|
|
|
116
116
|
}}
|
|
117
117
|
placeholder={`{
|
|
118
118
|
"temperature": 0.1,
|
|
119
|
-
"
|
|
119
|
+
"maxOutputTokens": 1024
|
|
120
120
|
}`}
|
|
121
121
|
/>
|
|
122
122
|
</div>
|
|
@@ -170,7 +170,7 @@ function SummarizerModelSection({ control }: { control: Control<ProjectFormData>
|
|
|
170
170
|
}}
|
|
171
171
|
placeholder={`{
|
|
172
172
|
"temperature": 0.3,
|
|
173
|
-
"
|
|
173
|
+
"maxOutputTokens": 1024
|
|
174
174
|
}`}
|
|
175
175
|
/>
|
|
176
176
|
</div>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
|
|
4
|
+
import { Circle } from 'lucide-react';
|
|
5
|
+
import type * as React from 'react';
|
|
6
|
+
|
|
7
|
+
import { cn } from '@/lib/utils';
|
|
8
|
+
|
|
9
|
+
function RadioGroup({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {
|
|
10
|
+
return (
|
|
11
|
+
<RadioGroupPrimitive.Root
|
|
12
|
+
className={cn('grid gap-2', className)}
|
|
13
|
+
{...props}
|
|
14
|
+
/>
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function RadioGroupItem({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {
|
|
19
|
+
return (
|
|
20
|
+
<RadioGroupPrimitive.Item
|
|
21
|
+
data-slot="radio-item"
|
|
22
|
+
className={cn(
|
|
23
|
+
'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-full border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',
|
|
24
|
+
className
|
|
25
|
+
)}
|
|
26
|
+
{...props}
|
|
27
|
+
>
|
|
28
|
+
<RadioGroupPrimitive.Indicator
|
|
29
|
+
data-slot="radio-indicator"
|
|
30
|
+
className="flex items-center justify-center"
|
|
31
|
+
>
|
|
32
|
+
<Circle className="size-2.5 fill-current text-current" />
|
|
33
|
+
</RadioGroupPrimitive.Indicator>
|
|
34
|
+
</RadioGroupPrimitive.Item>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { RadioGroup, RadioGroupItem };
|
|
39
|
+
|
|
@@ -200,7 +200,7 @@ function getFieldDisplayName(field: string): string {
|
|
|
200
200
|
description: 'Description',
|
|
201
201
|
model: 'Model',
|
|
202
202
|
temperature: 'Temperature',
|
|
203
|
-
|
|
203
|
+
maxOutputTokens: 'Max output tokens',
|
|
204
204
|
systemPrompt: 'System prompt',
|
|
205
205
|
tools: 'Tools',
|
|
206
206
|
dataComponents: 'Components',
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { Edge } from '@xyflow/react';
|
|
2
|
+
import type { A2AEdgeData } from '@/components/agent/configuration/edge-types';
|
|
3
|
+
|
|
4
|
+
export type DelegationEdge = {
|
|
5
|
+
source: string;
|
|
6
|
+
target: string;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export function wouldCreateCycle(
|
|
10
|
+
edges: Edge[],
|
|
11
|
+
newDelegation: DelegationEdge
|
|
12
|
+
): boolean {
|
|
13
|
+
const graph = buildDelegationGraph(edges);
|
|
14
|
+
const sources = graph.get(newDelegation.source) || [];
|
|
15
|
+
graph.set(newDelegation.source, [...sources, newDelegation.target]);
|
|
16
|
+
return hasCycle(graph);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function buildDelegationGraph(edges: Edge[]): Map<string, string[]> {
|
|
20
|
+
const graph = new Map<string, string[]>();
|
|
21
|
+
|
|
22
|
+
for (const edge of edges) {
|
|
23
|
+
const relationships = edge.data?.relationships as A2AEdgeData['relationships'] | undefined;
|
|
24
|
+
if (!relationships) continue;
|
|
25
|
+
|
|
26
|
+
if (relationships.delegateSourceToTarget) {
|
|
27
|
+
const targets = graph.get(edge.source) || [];
|
|
28
|
+
graph.set(edge.source, [...targets, edge.target]);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (relationships.delegateTargetToSource) {
|
|
32
|
+
const sources = graph.get(edge.target) || [];
|
|
33
|
+
graph.set(edge.target, [...sources, edge.source]);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return graph;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function hasCycle(graph: Map<string, string[]>): boolean {
|
|
41
|
+
const visited = new Set<string>();
|
|
42
|
+
const stack = new Set<string>();
|
|
43
|
+
|
|
44
|
+
function dfs(node: string): boolean {
|
|
45
|
+
visited.add(node);
|
|
46
|
+
stack.add(node);
|
|
47
|
+
|
|
48
|
+
for (const neighbor of graph.get(node) || []) {
|
|
49
|
+
if (!visited.has(neighbor)) {
|
|
50
|
+
if (dfs(neighbor)) return true;
|
|
51
|
+
} else if (stack.has(neighbor)) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
stack.delete(node);
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
for (const node of graph.keys()) {
|
|
61
|
+
if (!visited.has(node) && dfs(node)) return true;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function getCycleErrorMessage(sourceAgent: string, targetAgent: string): string {
|
|
68
|
+
return `Cannot create delegation from "${sourceAgent}" to "${targetAgent}" as it would create a circular delegation chain. Circular delegations can cause infinite loops.`;
|
|
69
|
+
}
|
|
70
|
+
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=3026,exports.ids=[3026],exports.modules={4599:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{ArtifactComponentForm:()=>y});var e=c(59111),f=c(35197),g=c(485),h=c(14450),i=c(51820),j=c(68156),k=c(17130),l=c(16426),m=c(56019),n=c(2856),o=c(96032),p=c(93622),q=c(35283),r=c(15887),s=c(72290),t=c(42723),u=c(33305),v=c(68933),w=c(59245),x=a([m]);function y({id:a,tenantId:b,projectId:c,initialData:d}){let[x,y]=(0,h.useState)(!1),z=(0,i.mN)({resolver:(0,f.u)(w.z),defaultValues:(a=>{if(!a)return v.g;let b={...a};return b.props&&(b.props=(0,t.S_)(b.props)),b})(d)}),{isSubmitting:A}=z.formState,B=(0,g.useRouter)();(0,q.S)({form:z,nameField:"name",idField:"id",isEditing:!!a});let C=async d=>{try{let e={...d};if(void 0===e.props&&(e.props=null),a){let a=await (0,r.X)(b,c,e);if(!a.success)return void j.oR.error(a.error||"Failed to update artifact.");j.oR.success("Artifact updated.")}else{let a=await (0,s.o)(b,c,e);if(!a.success)return void j.oR.error(a.error||"Failed to create artifact");j.oR.success("Artifact created."),B.push(`/${b}/projects/${c}/artifacts`)}}catch(b){console.error("Error submitting artifact:",b);let a=b instanceof Error?b.message:"An unexpected error occurred.";j.oR.error(a)}};return(0,e.jsxs)(o.lG,{open:x,onOpenChange:y,children:[(0,e.jsx)(p.lV,{...z,children:(0,e.jsxs)("form",{onSubmit:z.handleSubmit(C),className:"space-y-8",children:[(0,e.jsx)(k.a,{control:z.control,name:"name",label:"Name",placeholder:"Document Artifact",isRequired:!0}),(0,e.jsx)(k.a,{control:z.control,name:"id",label:"Id",placeholder:"my-artifact",disabled:!!a,isRequired:!0,description:a?"":"Choose a unique identifier for this artifact. Using an existing id will replace that artifact."}),(0,e.jsx)(l.K,{control:z.control,name:"description",label:"Description",placeholder:"Structured factual information extracted from search results",className:"min-h-[80px]",isRequired:!0}),(0,e.jsx)(m.S,{control:z.control,name:"props",label:"Props (JSON schema with inPreview indicators)",placeholder:"Enter a valid JSON Schema with inPreview flags, or leave empty to save entire tool result...",description:"Optional: Define specific fields with inPreview flags, or leave empty to capture the complete tool response."}),(0,e.jsxs)("div",{className:"flex w-full justify-between",children:[(0,e.jsx)(n.$,{type:"submit",disabled:A,children:"Save"}),a&&(0,e.jsx)(o.zM,{asChild:!0,children:(0,e.jsx)(n.$,{type:"button",variant:"destructive-outline",children:"Delete Artifact"})})]})]})}),x&&a&&(0,e.jsx)(u.W,{artifactComponentId:a,artifactComponentName:z.getValues("name"),setIsOpen:y,redirectOnDelete:!0})]})}m=(x.then?(await x)():x)[0],d()}catch(a){d(a)}})},15887:(a,b,c)=>{c.d(b,{X:()=>e});var d=c(90147);let e=(0,d.createServerReference)("704bcec420635fc9b64942e5e3b3371d13f191b241",d.callServer,void 0,d.findSourceMapURL,"updateArtifactComponentAction")},16079:(a,b,c)=>{c.r(b),c.d(b,{"4031c5346ec11e5aaf071cd970f37270ef2b159aaa":()=>d.bW,"602bad7ca0a422923a3f02e0bbc99d3ab7352bad14":()=>p,"6045676ce53eed0abaf4c10a59090225d7c005ee87":()=>d.Dv,"606351316cc622de67c93aff0e389a49c319981874":()=>d.qf,"60f8e57176c716a3dcb8f4ca88f1fb2bc0593bed61":()=>d.gL,"7021d97d85b74f50bd4d298fc75fc082b636af05e7":()=>q,"704bcec420635fc9b64942e5e3b3371d13f191b241":()=>r,"70ac55c6f6ecf61c5d7c347613059bb0055ec865df":()=>s,"70dbdbf4d7504b4e4f8274567265c3f6ebc5d89de0":()=>d.Tg});var d=c(72025),e=c(29991);c(58415);var f=c(83248),g=c(8703),h=c(45796),i=c(33451);async function j(a,b){return(0,h.M2)(a),(0,h.nt)(b),await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components`)}async function k(a,b,c){return(0,h.M2)(a),(0,h.nt)(b),(await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c}`)).data}async function l(a,b,c){return(0,h.M2)(a),(0,h.nt)(b),(await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components`,{method:"POST",body:JSON.stringify(c)})).data}async function m(a,b,c){return(0,h.M2)(a),(0,h.nt)(b),(await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c.id}`,{method:"PUT",body:JSON.stringify(c)})).data}async function n(a,b,c){(0,h.M2)(a),(0,h.nt)(b),await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c}`,{method:"DELETE"})}(0,i.D)([j,k,l,m,n]),(0,e.A)(j,"60f97f424b2f642f315d1fa9428d918a774e91a384",null),(0,e.A)(k,"70a6c1d1ff7f48323cd7899efe0ba4498e206e1dc9",null),(0,e.A)(l,"708e9c41889d45012f8343c235c5fb537d94cde16f",null),(0,e.A)(m,"708d1d01119ef930070b205b058e7e1abc6b4b903a",null),(0,e.A)(n,"70561bdd1c580af7ba5d1151fe09248fb564205461",null);var o=c(36608);async function p(a,b){try{let c=await j(a,b);return{success:!0,data:c.data}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function q(a,b,c){try{let d=await l(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function r(a,b,c){try{let d=await m(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts`),(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts/${c.id}`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function s(a,b,c){try{return await n(a,b,c),(0,f.revalidatePath)(`/${a}/projects/${b}/artifacts`),{success:!0}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}(0,i.D)([p,q,r,s]),(0,e.A)(p,"602bad7ca0a422923a3f02e0bbc99d3ab7352bad14",null),(0,e.A)(q,"7021d97d85b74f50bd4d298fc75fc082b636af05e7",null),(0,e.A)(r,"704bcec420635fc9b64942e5e3b3371d13f191b241",null),(0,e.A)(s,"70ac55c6f6ecf61c5d7c347613059bb0055ec865df",null)},33305:(a,b,c)=>{c.d(b,{W:()=>k});var d=c(59111),e=c(485),f=c(14450),g=c(68156),h=c(93755),i=c(90147);let j=(0,i.createServerReference)("70ac55c6f6ecf61c5d7c347613059bb0055ec865df",i.callServer,void 0,i.findSourceMapURL,"deleteArtifactComponentAction");function k({artifactComponentId:a,artifactComponentName:b,setIsOpen:c,redirectOnDelete:i=!1}){let[k,l]=(0,f.useState)(!1),m=(0,e.useRouter)(),{tenantId:n,projectId:o}=(0,e.useParams)(),p=async()=>{l(!0);try{let b=await j(n,o,a);b.success?(c(!1),g.oR.success("Artifact deleted."),i&&m.push(`/${n}/projects/${o}/artifacts`)):g.oR.error(b.error)}finally{l(!1)}};return(0,d.jsx)(h.J,{itemName:b||"this artifact",isSubmitting:k,onDelete:p})}},44733:(a,b,c)=>{c.d(b,{ArtifactComponentForm:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call ArtifactComponentForm() from the server but ArtifactComponentForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/components/artifact-components/form/artifact-component-form.tsx","ArtifactComponentForm")},56019:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{S:()=>i});var e=c(59111),f=c(71771),g=c(76394),h=a([g]);function i({control:a,name:b,label:c="JSON Schema",placeholder:d,disabled:h,description:i,readOnly:j,isRequired:k=!1}){return(0,e.jsx)(f.u,{control:a,name:b,label:c,description:i,isRequired:k,children:a=>(0,e.jsx)(g.$,{placeholder:d,...a,value:a.value||"",onChange:a.onChange,readOnly:j,disabled:h})})}g=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},59245:(a,b,c)=>{c.d(b,{z:()=>g});var d=c(34576),e=c(80974),f=c(62503);let g=d.object({id:f.f,name:d.string().min(1,"Name is required."),description:d.string().min(1,"Description is required."),props:d.union([d.string(),d.null(),d.undefined()]).transform((a,b)=>{if(a&&""!==a&&null!==a)try{let c=JSON.parse(a),f=(0,e._O)(a);if(!f.isValid){let a=f.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:d.ZodIssueCode.custom,message:a}),d.NEVER}return c}catch(a){return b.addIssue({code:d.ZodIssueCode.custom,message:(0,e.SR)(a)}),d.NEVER}}).optional()})},62503:(a,b,c)=>{c.d(b,{f:()=>d});let d=c(34576).string().min(1,"Id is required.").max(64,"Id must be less than 64 characters.").regex(/^[a-zA-Z0-9_-]+$/,"Id must contain only alphanumeric characters, underscores, and dashes. No spaces allowed.")},68933:(a,b,c)=>{c.d(b,{g:()=>d});let d={id:"",name:"",description:"",props:void 0}},72290:(a,b,c)=>{c.d(b,{o:()=>e});var d=c(90147);let e=(0,d.createServerReference)("7021d97d85b74f50bd4d298fc75fc082b636af05e7",d.callServer,void 0,d.findSourceMapURL,"createArtifactComponentAction")},93056:(a,b,c)=>{c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(43461);function j(){return(0,d.jsx)(e.H,{breadcrumbs:[{label:"Artifacts"}],children:(0,d.jsxs)(f.D,{children:[(0,d.jsx)(g.zY,{title:"Artifacts",description:i.lh}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 md:gap-4",children:Array.from({length:6}).map((a,b)=>(0,d.jsx)(h.E,{className:"h-36 w-full rounded-lg"},`loading-artifact-${b}`))})]})})}},93755:(a,b,c)=>{c.d(b,{J:()=>h});var d=c(59111),e=c(53710),f=c(2856),g=c(96032);function h({itemName:a,isSubmitting:b,onDelete:c,customTitle:h,customDescription:i}){let j=async()=>{await c()};return(0,d.jsxs)(g.Cf,{children:[(0,d.jsx)(g.L3,{children:h||`Delete ${a||"this item"}`}),(0,d.jsx)(g.rr,{children:i||`Are you sure you want to delete ${a||"this item"}? This action cannot be undone.`}),(0,d.jsxs)(g.Es,{children:[(0,d.jsx)(g.HM,{asChild:!0,children:(0,d.jsx)(f.$,{variant:"outline",children:"Cancel"})}),(0,d.jsx)(f.$,{variant:"destructive",onClick:j,disabled:b,children:b?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.A,{className:"size-4 animate-spin"})," Deleting..."]}):"Delete"})]})]})}}};
|