@inkeep/agents-manage-ui 0.29.11 → 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 +131 -131
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +7 -7
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +15 -15
- 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 +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_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 +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_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 +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 +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 +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 +7 -7
- 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/208.js +1 -0
- 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/4629.js +1 -1
- 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/5450.js +7 -7
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{3738.js → 6685.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6915.js +1 -1
- 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/7990.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-manifest.json +5 -5
- 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-3e425f7d09c51541.js → 13328-589690cae0c51138.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{59789-dea8ca5029246fe2.js → 18417-889badb50e89f506.js} +1 -1
- 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/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-d2edf6977169afcd.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/{93721-d6b13a7c6e1b73d7.js → 98428-d3f11b624797f527.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-067f67beb8f72ffe.js → page-bf3d6e9208c10c47.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/{page-8538f99e815560f1.js → page-18c62c993b74b713.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/{page-7ff711f0f03db1d6.js → page-c1137c654255649f.js} +1 -1
- 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-332726a07f3652bd.js → page-5eb4e000e8f5282f.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/{page-12241592072bf78e.js → page-a915375e7dfcb747.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/{page-adacc13813f3516a.js → page-45496e9dc885096e.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-b9c5a45fed7d90c6.js → page-8181435b4b6f86d0.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/{page-05f7e4c2bed4dcca.js → page-ef48b8508c4a9f07.js} +1 -1
- 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-94690f00fc35256a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/{page-bb9f5dbff37d1a61.js → page-c2353d575b17851a.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/{page-e7d75d20ead8bcb9.js → page-04b33dd50985ac71.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/{page-6021547395e16839.js → page-7ce46049f43ac89d.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-b49a81e7faace378.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-1f465c288972a7c5.js → page-24689c6162ab0c80.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-1ffb13926bccc524.js → page-fff0c1d675c192f4.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-ea89e6ce2e0f1bb7.js → page-5696b3f6cb5b6b9a.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/{page-0858a90ea4eaeeec.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/package.json +2 -1
- package/.next/standalone/package.json +8 -8
- 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/1026.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3440.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/7882.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9415.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/5822-36ae5cbfd8972658.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/58544-b3c9fb62efc27e15.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/83463-ae4972fe9797846b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/84884-ee2796dd0d9c4c4c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-8156d2b93d29332a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-68fb73b77dc7c643.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-a901f20df950b72d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-f2c578f35187addb.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-f65e30459cbcbb40.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-1eb9663a0efef165.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-23ff38da8e8034d1.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-af689271025c9a10.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-0e7131100ff5888c.js +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{aAf3IZvh4KCdY8JWKhRNk → 8J6i2h2kYuG8UYXrNY4C8}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{aAf3IZvh4KCdY8JWKhRNk → 8J6i2h2kYuG8UYXrNY4C8}/_ssgManifest.js +0 -0
|
@@ -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=1026,exports.ids=[1026],exports.modules={5294:(a,b,c)=>{c.d(b,{$Y:()=>g,GO:()=>i,K3:()=>h,h9:()=>k});var d=c(29991);c(58415);var e=c(8703),f=c(45796);async function g(a,b,c=1,d=50){(0,f.M2)(a),(0,f.nt)(b);let h=new URLSearchParams({page:c.toString(),limit:d.toString()});return(await (0,e.J)(`tenants/${a}/projects/${b}/credentials?${h}`)).data}async function h(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`)).data}async function i(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials`,{method:"POST",body:JSON.stringify(c)})).data}async function j(a,b,c,d){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"PUT",body:JSON.stringify(d)})).data}async function k(a,b,c){(0,f.M2)(a),(0,f.nt)(b),await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}(0,c(33451).D)([g,h,i,j,k]),(0,d.A)(g,"78dbbaf22d0fe29e905fcbe5b93c74e3eff23653c6",null),(0,d.A)(h,"706b876b92afbfaff4ba07bb705e50bbcd0d1e40ce",null),(0,d.A)(i,"708aa055b9eacd158f99d215f764023f79e98a9789",null),(0,d.A)(j,"78e7347575f5f69232ff0a9637a028add4ce192395",null),(0,d.A)(k,"70e71f9720028dd3f627e97a23ac1676cc44f80c28",null)},19329:(a,b,c)=>{c.d(b,{U:()=>f});var d=c(29991);c(58415);var e=c(5294);async function f(a,b,c){try{let d=await (0,e.K3)(a,b,c.id);if(d)return d}catch{}try{return await (0,e.GO)(a,b,c)}catch(a){throw console.error("Failed to save credential to database:",a),Error(`Failed to save credential '${c.id}' to database`)}}(0,c(33451).D)([f]),(0,d.A)(f,"708ff1a564f669ab1d5f88f7451b92ff40097ea1bf",null)},21395:(a,b,c)=>{c.d(b,{Ak:()=>p,uP:()=>t,tN:()=>r,Mj:()=>o,tQ:()=>n,pv:()=>m,Mb:()=>l,H6:()=>u,EN:()=>k,P:()=>v,Jg:()=>q});var d=c(29991);c(58415);var e=c(47084),f=c(67417);class g extends Error{constructor(a,b,c){super(a),this.operation=b,this.cause=c,this.name="NangoError"}}function h(a,b,c){if(a instanceof g)throw a;throw new g(b,c,a)}var i=c(33451);let j=()=>{let a=process.env.NANGO_SECRET_KEY;if(!a)throw new g("NANGO_SECRET_KEY environment variable is required for Nango integration");try{return new e.CA({secretKey:a,host:process.env.NANGO_SERVER_URL||"https://api.nango.dev"})}catch(a){throw new g("Failed to initialize Nango client","new Nango",a)}};async function k(){let a=process.env.NANGO_SECRET_KEY;return!!(a&&""!==a.trim())}async function l(){try{let a=j();return(await a.listProviders({})).data}catch(a){console.error("Failed to fetch providers:",a),h(a,"Unable to retrieve available providers from Nango","listProviders")}}async function m(a){try{let b=j();return(await b.getProvider({provider:a})).data}catch(b){console.error(`Failed to fetch provider ${a}:`,b),h(b,`Provider '${a}' not found or inaccessible`,"getProvider")}}async function n(){try{let a=j();return(await a.listIntegrations()).configs}catch(a){console.error("Failed to fetch integrations:",a),h(a,"Unable to retrieve existing integrations","listIntegrations")}}async function o(a){try{let b=j(),c=(await b.getIntegration({uniqueKey:a},{include:["credentials"]})).data,d=!1;d=c.credentials?.type==="OAUTH2"||c.credentials?.type==="OAUTH1"||c.credentials?.type==="TBA"?!!(c.credentials?.client_id&&c.credentials?.client_secret):c.credentials?.type!=="APP"||!!(c.credentials?.app_id&&c.credentials?.app_link);let{credentials:e,...f}=c;return{...f,areCredentialsSet:d}}catch(b){if(b&&"object"==typeof b&&"status"in b&&404===b.status)return null;console.error(`Failed to fetch integration ${a}:`,b),h(b,`Unable to fetch integration with key '${a}'`,"getIntegration")}}async function p(a){try{let b=j();return(await b.createIntegration({provider:a.provider,unique_key:a.uniqueKey,display_name:a.displayName,credentials:a.credentials})).data}catch(b){console.error("Failed to create integration:",b),h(b,`Failed to create integration '${a.uniqueKey}' for provider '${a.provider}'`,"createIntegration")}}async function q({uniqueKey:a}){let b=process.env.NANGO_SECRET_KEY;if(!b)throw new g("NANGO_SECRET_KEY environment variable is required for Nango integration");let c=process.env.NANGO_SERVER_URL||"https://api.nango.dev",d=process.env.OAUTH_CLIENT_NAME||"Inkeep Agent Framework",e=process.env.OAUTH_CLIENT_URI||"https://inkeep.com",f=process.env.OAUTH_CLIENT_LOGO_URI||"https://inkeep.com/images/logos/inkeep-logo-blue.svg",h=await fetch(`${c}/integrations/${a}`,{method:"PATCH",headers:{Authorization:`Bearer ${b}`,"Content-Type":"application/json"},body:JSON.stringify({custom:{oauth_client_name:d,oauth_client_uri:e,oauth_client_logo_uri:f}})});if(!h.ok){let a=await h.json().catch(()=>({}));throw new g(`Failed to update integration: ${h.status} ${h.statusText}`,"updateMCPGenericIntegration",a)}return await h.json()}async function r(a){try{let a=j();return(await a.listConnections()).connections}catch(c){let b=a?` for integration '${a}'`:"";console.error(`Failed to fetch connections${b}:`,c),h(c,`Unable to retrieve connections${b}`,"listConnections")}}async function s({endUserId:a="test-tenant",endUserEmail:b="test@test-tenant.com",endUserDisplayName:c="Test User",organizationId:d=process.env.TENANT_ID||f.P3,organizationDisplayName:e="Test Organization",integrationId:g}){try{let f=j(),{data:h}=await f.createConnectSession({end_user:{id:a,email:b,display_name:c},organization:{id:d,display_name:e},allowed_integrations:[g]});return h}catch(a){console.error("Failed to create connect session:",a),h(a,`Unable to create connect session for integration '${g}'`,"createConnectSession")}}async function t({providerName:a,uniqueKey:b,displayName:c,credentials:d}){try{let e,f=null;try{f=await o(b)}catch(b){if(b instanceof g)throw b;console.debug(`Integration '${a}' not found, will create new one`)}if(f?.areCredentialsSet)e=f;else try{e=await p({provider:a,uniqueKey:b,displayName:c,credentials:d})}catch(b){h(b,`Failed to create integration for provider '${a}'`,"create")}if("mcp-generic"===a)try{await q({uniqueKey:e.unique_key})}catch(a){console.warn("Failed to update MCP generic integration:",a)}try{return(await s({integrationId:e.unique_key})).token}catch(a){h(a,`Failed to create connect session for integration '${e.unique_key}'`,"createConnectSession")}}catch(b){console.error("Unexpected error creating provider connect session:",b),h(b,`Unexpected error creating connect session for provider '${a}'`,"createProviderConnectSession")}}async function u({providerConfigKey:a,connectionId:b}){try{let c=j();return await c.getMetadata(a,b)}catch(a){if(a&&"object"==typeof a&&"status"in a&&404===a.status)return null;console.error("Failed to get connection metadata:",a),h(a,`Unable to retrieve metadata for connection '${b}'`,"getMetadata")}}async function v({providerConfigKey:a,connectionId:b,metadata:c}){try{let d=j();await d.setMetadata(a,b,c)}catch(a){console.error("Failed to set connection metadata:",a),h(a,`Unable to update metadata for connection '${b}'`,"setMetadata")}}(0,i.D)([k,l,m,n,o,p,q,r,t,u,v]),(0,d.A)(k,"00df96f624eb1a84bd667d8cc741ca95c91162f40c",null),(0,d.A)(l,"000e1a7f5eb5750122fa8f7cfb7ee450b98bb51795",null),(0,d.A)(m,"40e200fe770b977ffbf2d6fcc080b9195813199b02",null),(0,d.A)(n,"00565e32ec77b8c2e225f5ac9306c105cd691958bf",null),(0,d.A)(o,"401a15beec760d80d56f8454ede50f1a23bf0501aa",null),(0,d.A)(p,"40e1a2ec39d0ed8e79816aafb6c79546483d0f6dc2",null),(0,d.A)(q,"4061ebe36696e4a450300be6e1676304bd331d1d13",null),(0,d.A)(r,"403dd2433ad96279ef94784d0ee4ba8bdbcdafb46b",null),(0,d.A)(t,"40c2dc256fe7dbd597c12f3752d68bdeee11690aa0",null),(0,d.A)(u,"4017a595b7672880987470a5f932c11ccb79240160",null),(0,d.A)(v,"40e711bbf8e3f610fe1bc9baa54051399a0bf6247e",null)},25623:(a,b,c)=>{c.d(b,{$:()=>h});var d=c(11253),e=c(14450),f=c(59072),g=c(59142);function h(){let{PUBLIC_NANGO_SERVER_URL:a,PUBLIC_NANGO_CONNECT_BASE_URL:b}=(0,f.y)();return{openNangoConnect:(0,e.useCallback)(({sessionToken:c,onEvent:e,connectOptions:f})=>{let g=new d.Ay({host:a||void 0}).openConnectUI({baseURL:f?.baseURL||b||void 0,apiURL:f?.apiURL||a||void 0,onEvent:e,detectClosedAuthWindow:!0});return g.setSessionToken(c),g},[a,b]),openNangoConnectHeadless:(0,e.useCallback)(async({mcpServerUrl:b,providerUniqueKey:c,providerDisplayName:e})=>{let f=await (0,g.u)({providerName:"mcp-generic",uniqueKey:c,displayName:e}),h=new d.Ay({host:a||void 0,connectSessionToken:f});try{return await h.auth(c,{detectClosedAuthWindow:!0,params:{mcp_server_url:b}})}catch(a){if(a instanceof Error)throw Error(`Authentication failed: ${a.message}`);throw a}},[a])}}},59142:(a,b,c)=>{c.d(b,{u:()=>e});var d=c(90147);let e=(0,d.createServerReference)("40c2dc256fe7dbd597c12f3752d68bdeee11690aa0",d.callServer,void 0,d.findSourceMapURL,"createProviderConnectSession")},92558:(a,b,c)=>{c.d(b,{U:()=>e});var d=c(90147);let e=(0,d.createServerReference)("708ff1a564f669ab1d5f88f7451b92ff40097ea1bf",d.callServer,void 0,d.findSourceMapURL,"findOrCreateCredential")}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=3440,exports.ids=[3440],exports.modules={3687:(a,b,c)=>{"use strict";c.d(b,{E:()=>f});var d=c(72669),e=c(64585);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"skeleton",className:(0,e.cn)("bg-accent animate-pulse rounded-md",a),...b})}},8003:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(43461);function j(){return(0,d.jsx)(e.H,{children:(0,d.jsxs)(f.D,{children:[(0,d.jsx)(g.zY,{title:"Projects",description:i.od}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 md:gap-4",children:Array.from({length:6}).map((a,b)=>(0,d.jsx)(h.E,{className:"h-36 w-full rounded-lg"},`loading-skeleton-${b}`))})]})})}},12075:(a,b,c)=>{"use strict";c.d(b,{e:()=>e});var d=c(90147);let e=(0,d.createServerReference)("78c4f89c251ee1604b454c16956624c2aa0072e85b",d.callServer,void 0,d.findSourceMapURL,"updateExternalAgent")},13907:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(59111),e=c(43433);function f({error:a,reset:b}){return(0,d.jsx)(e.default,{error:a,title:"Something went wrong.",description:"An unexpected error occurred. Please try again.",reset:b})}},17932:(a,b,c)=>{"use strict";c.d(b,{H:()=>j});var d=c(72669);function e({children:a}){return(0,d.jsx)("div",{className:"flex flex-1 flex-col overflow-y-auto scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent h-full w-full min-h-0 bg-muted/20 dark:bg-background",children:(0,d.jsx)("div",{className:"@container/main min-h-0 flex flex-1 flex-col",children:a})})}var f=c(88746),g=c(97633),h=c(80248);function i({breadcrumbs:a}){return(0,d.jsx)("header",{className:"flex h-(--header-height) shrink-0 items-center gap-2 border-b transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-(--header-height) bg-muted/20 dark:bg-background rounded-t-[14px]",children:(0,d.jsxs)("div",{className:"flex w-full items-center gap-1 px-4 lg:gap-2 lg:px-6",children:[(0,d.jsx)(h.SidebarTrigger,{className:"-ml-1 text-muted-foreground hover:text-foreground hover:bg-accent dark:text-muted-foreground dark:hover:text-foreground dark:hover:bg-accent/50"}),(0,d.jsx)(g.Separator,{orientation:"vertical",className:"mx-2 data-[orientation=vertical]:h-4"}),(0,d.jsx)(f.Breadcrumbs,{items:a})]})})}function j({children:a,breadcrumbs:b}){return(0,d.jsxs)("div",{className:"h-[calc(100vh-16px)] flex flex-col overflow-hidden",children:[(0,d.jsx)(i,{breadcrumbs:b}),(0,d.jsx)(e,{children:a})]})}},19499:(a,b,c)=>{"use strict";c.d(b,{ExternalAgentForm:()=>v});var d=c(59111),e=c(35197),f=c(6461),g=c(485),h=c(51820),i=c(68156),j=c(17130),k=c(55124),l=c(16426),m=c(2856),n=c(93622),o=c(35229),p=c(12075),q=c(90147);let r=(0,q.createServerReference)("70a52baf466a53769981956ff3ac65c2dff88b3169",q.callServer,void 0,q.findSourceMapURL,"createExternalAgent");var s=c(34576);let t=s.object({name:s.string().min(1,"Name is required."),description:s.string().optional(),baseUrl:s.string().url("Must be a valid URL."),credentialReferenceId:s.string().nullish()}),u={name:"",description:"",baseUrl:"",credentialReferenceId:"none"};function v({initialData:a,mode:b="create",externalAgent:c,credentials:q,tenantId:s,projectId:v}){let w=(0,g.useRouter)(),x=(0,h.mN)({resolver:(0,e.u)(t),defaultValues:{...u,...a}}),{isSubmitting:y}=x.formState,z=async a=>{try{let d={...a,description:a.description||"",credentialReferenceId:"none"===a.credentialReferenceId?null:a.credentialReferenceId};if("update"===b&&c)await (0,p.e)(s,v,c.id,d),i.oR.success("External agent updated successfully"),w.push(`/${s}/projects/${v}/external-agents/${c.id}`);else{let a=await r(s,v,{...d,id:(0,f.Ak)()});i.oR.success("External agent created successfully"),w.push(`/${s}/projects/${v}/external-agents/${a.id}`)}}catch(a){console.error(`Failed to ${b} external agent:`,a),i.oR.error(`Failed to ${b} external agent. Please try again.`)}};return(0,d.jsx)(n.lV,{...x,children:(0,d.jsxs)("form",{onSubmit:x.handleSubmit(z),className:"space-y-8",children:[(0,d.jsx)(j.a,{control:x.control,name:"name",label:"Name",placeholder:"My External Agent",isRequired:!0}),(0,d.jsx)(l.K,{control:x.control,name:"description",label:"Description (optional)",placeholder:"A brief description of what this external agent does..."}),(0,d.jsx)(j.a,{control:x.control,name:"baseUrl",label:"Base URL",placeholder:"https://api.example.com",isRequired:!0}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(k.U,{control:x.control,selectTriggerClassName:"w-full",name:"credentialReferenceId",label:"Credential",placeholder:"Select a credential",options:[{value:"none",label:"No Authentication"},...q.map(a=>({value:a.id,label:a.id}))]}),(0,d.jsx)(o.n,{title:"How this works",children:(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("p",{children:["Select"," ",(0,d.jsx)("code",{className:"bg-background px-1.5 py-0.5 rounded border",children:"No Authentication"})," ","if the external agent does not require authentication, or if you want to add a credential later."]}),(0,d.jsx)("p",{children:"Otherwise, select from the existing credentials you have already created. The credential will be used when communicating with this external agent."})]})})]}),(0,d.jsx)(m.$,{type:"submit",disabled:y,children:"update"===b?"Save":"Create"})]})})}},20828:(a,b,c)=>{Promise.resolve().then(c.bind(c,75125))},27159:(a,b,c)=>{"use strict";c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(59111),e=c(29477),f=c(67048),g=c(39108),h=c(25773),i=c(42723);function j({...a}){return(0,d.jsx)(e.bL,{"data-slot":"select",...a})}function k({...a}){return(0,d.jsx)(e.WT,{"data-slot":"select-value",...a})}function l({className:a,size:b="default",children:c,...g}){return(0,d.jsxs)(e.l9,{"data-slot":"select-trigger","data-size":b,className:(0,i.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 font-normal normal-case",a),...g,children:[c,(0,d.jsx)(e.In,{asChild:!0,children:(0,d.jsx)(f.A,{className:"size-4 opacity-50"})})]})}function m({className:a,children:b,position:c="popper",...f}){return(0,d.jsx)(e.ZL,{children:(0,d.jsxs)(e.UC,{"data-slot":"select-content",className:(0,i.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent rounded-md border shadow-md","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:c,...f,children:[(0,d.jsx)(o,{}),(0,d.jsx)(e.LM,{className:(0,i.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:b}),(0,d.jsx)(p,{})]})})}function n({className:a,children:b,...c}){return(0,d.jsxs)(e.q7,{"data-slot":"select-item",className:(0,i.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",a),...c,children:[(0,d.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,d.jsx)(e.VF,{children:(0,d.jsx)(g.A,{className:"size-4"})})}),(0,d.jsx)(e.p4,{children:b})]})}function o({className:a,...b}){return(0,d.jsx)(e.PP,{"data-slot":"select-scroll-up-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(h.A,{className:"size-4"})})}function p({className:a,...b}){return(0,d.jsx)(e.wn,{"data-slot":"select-scroll-down-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(f.A,{className:"size-4"})})}},29160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,dynamic:()=>h});var d=c(72669),e=c(45907),f=c(54637),g=c(81438);let h="force-dynamic";async function i({children:a,params:b}){let{tenantId:c,projectId:h}=await b;try{let b=await (0,f.Sw)(c,h);return(0,d.jsx)(g.ProjectProvider,{value:b.data,children:a})}catch(a){return(0,d.jsx)(e.default,{error:a,context:"project"})}}},39885:(a,b,c)=>{"use strict";c.d(b,{DE:()=>f,RR:()=>h,gp:()=>g,zY:()=>j});var d=c(72669),e=c(64585);function f({className:a,children:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("flex flex-row gap-0 p-0 flex-nowrap items-center justify-between mb-8",a),...c,children:b})}function g({className:a,children:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("flex flex-col gap-2 p-0 flex-nowrap items-stretch justify-start",a),...c,children:b})}function h({className:a,children:b,...c}){return(0,d.jsx)("h3",{className:(0,e.cn)("text-xl font-light",a),...c,children:b})}function i({className:a,children:b,...c}){return(0,d.jsx)("p",{className:(0,e.cn)("text-muted-foreground text-sm font-normal",a),...c,children:b})}function j({title:a,description:b,action:c,className:e}){return(0,d.jsxs)(f,{className:e,children:[(0,d.jsxs)(g,{children:[(0,d.jsx)(h,{children:a}),b&&(0,d.jsx)(i,{children:b})]}),c]})}},43461:(a,b,c)=>{"use strict";c.d(b,{CU:()=>j,M0:()=>l,_g:()=>i,iO:()=>f,lh:()=>g,od:()=>k,yr:()=>h});var d=c(72669),e=c(64422);let f="https://docs.inkeep.com",g=(0,d.jsxs)(d.Fragment,{children:["Artifacts automatically capture and store source information from tool and agent interactions, providing a record of where data originates.","\n",(0,d.jsx)(e.G,{href:`${f}/visual-builder/artifact-components`,children:"Learn more"})]}),h=(0,d.jsxs)(d.Fragment,{children:["Components are structured components that agents can use to display rich data.","\n",(0,d.jsx)(e.G,{href:`${f}/visual-builder/data-components`,children:"Learn more"})]}),i=(0,d.jsxs)(d.Fragment,{children:["Agents are visual representations of the data flow between sub agents and tools.","\n",(0,d.jsx)(e.G,{href:`${f}/visual-builder/agent`,children:"Learn more"})]}),j=(0,d.jsxs)(d.Fragment,{children:["API keys are use to authenticate against the Inkeep Agents Run API. They are associated with an agent and can be used to chat with the agent programmatically.","\n"]}),k=(0,d.jsx)(d.Fragment,{children:"Projects help you organize your agents, tools, and configurations."}),l=(0,d.jsxs)(d.Fragment,{children:[k," Create your first project to get started.","\n",(0,d.jsx)(e.G,{href:`${f}/`,children:"Check out the docs"})]})},55124:(a,b,c)=>{"use strict";c.d(b,{U:()=>g});var d=c(59111),e=c(27159),f=c(71771);function g({control:a,name:b,label:c,placeholder:g,options:h,disabled:i=!1,selectTriggerClassName:j,description:k,isRequired:l=!1}){return(0,d.jsx)(f.u,{control:a,name:b,label:c,description:k,isRequired:l,children:a=>(0,d.jsxs)(e.l6,{onValueChange:a.onChange,defaultValue:a.value,disabled:i,children:[(0,d.jsx)(e.bq,{disabled:i,className:j,children:(0,d.jsx)(e.yv,{placeholder:g})}),(0,d.jsx)(e.gC,{children:h.map(a=>(0,d.jsx)(e.eb,{value:a.value,disabled:a.disabled,children:a.label},a.value))})]})})}},60115:(a,b,c)=>{"use strict";c.d(b,{ExternalAgentForm:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call ExternalAgentForm() from the server but ExternalAgentForm 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/external-agents/form/external-agent-form.tsx","ExternalAgentForm")},61552:(a,b,c)=>{Promise.resolve().then(c.bind(c,45907)),Promise.resolve().then(c.bind(c,81438))},61927:(a,b,c)=>{Promise.resolve().then(c.bind(c,88746)),Promise.resolve().then(c.bind(c,97633)),Promise.resolve().then(c.bind(c,80248)),Promise.resolve().then(c.t.bind(c,93520,23))},64422:(a,b,c)=>{"use strict";c.d(b,{G:()=>i});var d=c(72669),e=c(24598),f=c(93520),g=c.n(f),h=c(64585);function i({href:a,children:b,className:c,iconClassName:f,...i}){return(0,d.jsxs)(g(),{href:a,target:"_blank",rel:"noreferrer noopener",className:(0,h.cn)("text-sm text-muted-foreground underline underline-offset-2 inline-flex items-center gap-1 hover:text-primary ml-1 group/link font-mono uppercase transition-colors",c),...i,children:[b,(0,d.jsx)(e.A,{className:(0,h.cn)("size-3.5 text-muted-foreground opacity-60 group-hover/link:text-primary",f)})]})}},64585:(a,b,c)=>{"use strict";c.d(b,{BL:()=>g,cn:()=>f});var d=c(99613),e=c(81533);function f(...a){return(0,e.QP)((0,d.$)(a))}function g(a){return a?a.reduce((a,b)=>(a[b.id]=b,a),{}):{}}},75125:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/error.tsx","default")},78972:(a,b,c)=>{Promise.resolve().then(c.bind(c,13907))},81097:(a,b,c)=>{"use strict";c.d(b,{$Y:()=>g,GO:()=>i,K3:()=>h,h9:()=>k,nZ:()=>j});var d=c(1274);c(2082);var e=c(53842),f=c(41979);async function g(a,b,c=1,d=50){(0,f.M2)(a),(0,f.nt)(b);let h=new URLSearchParams({page:c.toString(),limit:d.toString()});return(await (0,e.J)(`tenants/${a}/projects/${b}/credentials?${h}`)).data}async function h(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`)).data}async function i(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials`,{method:"POST",body:JSON.stringify(c)})).data}async function j(a,b,c,d){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"PUT",body:JSON.stringify(d)})).data}async function k(a,b,c){(0,f.M2)(a),(0,f.nt)(b),await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}(0,c(95454).D)([g,h,i,j,k]),(0,d.A)(g,"78dbbaf22d0fe29e905fcbe5b93c74e3eff23653c6",null),(0,d.A)(h,"706b876b92afbfaff4ba07bb705e50bbcd0d1e40ce",null),(0,d.A)(i,"708aa055b9eacd158f99d215f764023f79e98a9789",null),(0,d.A)(j,"78e7347575f5f69232ff0a9637a028add4ce192395",null),(0,d.A)(k,"70e71f9720028dd3f627e97a23ac1676cc44f80c28",null)},81438:(a,b,c)=>{"use strict";c.d(b,{ProjectProvider:()=>e});var d=c(60241);(0,d.registerClientReference)(function(){throw Error("Attempted to call ProjectContext() from the server but ProjectContext 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/contexts/project-context.tsx","ProjectContext");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call ProjectProvider() from the server but ProjectProvider 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/contexts/project-context.tsx","ProjectProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call useProject() from the server but useProject 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/contexts/project-context.tsx","useProject")},88746:(a,b,c)=>{"use strict";c.d(b,{Breadcrumbs:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call Breadcrumbs() from the server but Breadcrumbs 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/ui/breadcrumbs.tsx","Breadcrumbs")},92191:(a,b,c)=>{Promise.resolve().then(c.bind(c,23348)),Promise.resolve().then(c.bind(c,24003)),Promise.resolve().then(c.bind(c,19603)),Promise.resolve().then(c.t.bind(c,61678,23))},96400:(a,b,c)=>{Promise.resolve().then(c.bind(c,43433)),Promise.resolve().then(c.bind(c,58860))},96737:(a,b,c)=>{"use strict";c.d(b,{D:()=>g});var d=c(72669),e=c(89864),f=c(64585);let g=(0,e.forwardRef)(({children:a,className:b,...c},e)=>(0,d.jsx)("div",{ref:e,className:(0,f.cn)("p-6",b),...c,children:a}));g.displayName="MainContent"},97633:(a,b,c)=>{"use strict";c.d(b,{Separator:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call Separator() from the server but Separator 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/ui/separator.tsx","Separator")}};
|