@inkeep/agents-manage-ui 0.37.1 → 0.37.2
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-path-routes-manifest.json +9 -8
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +3 -3
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/routes-manifest.json +8 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/[agentId]/page.js +18 -18
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/[agentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/[agentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +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.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page.js.nft.json +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.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/settings/page.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/settings/page.js.nft.json +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/settings/page_client-reference-manifest.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/_global-error/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.rsc +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_index.segment.rsc +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_full.segment.rsc +9 -9
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/accept-invitation/[invitationId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/accept-invitation/[invitationId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/accept-invitation/[invitationId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route.js +27 -27
- 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.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/index.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/index.rsc +10 -10
- package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/_full.segment.rsc +10 -10
- package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/_index.segment.rsc +9 -9
- package/.next/standalone/agents-manage-ui/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/login/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/login.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/login.rsc +10 -10
- package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/_full.segment.rsc +10 -10
- package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/_index.segment.rsc +9 -9
- package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/no-organization/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/no-organization/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/no-organization/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.rsc +10 -10
- package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/_full.segment.rsc +10 -10
- package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/_index.segment.rsc +9 -9
- package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/no-organization/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/no-organization.segments/no-organization.segment.rsc +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +9 -8
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1540.js +123 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1933.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2400.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2536.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/261.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3887.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4202.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4505.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5177.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5566.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5992.js +4 -4
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6146.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7043.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{9029.js → 7772.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8764.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8806.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8850.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{317.js → 971.js} +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9783.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/next-font-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/next-font-manifest.json +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 +2 -2
- 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/{86857-7d3767f77275d5e8.js → 17155-64aba7f2f6d2a140.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/18069-3d6556449e3f0143.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{95486-cd39c3e3f2ab58d6.js → 18926-46e8659b4d214824.js} +3 -3
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{30052-232fb7b4c27666bf.js → 30052-d159c046374f73b4.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{7204-125c85db2b2cad3c.js → 34861-742c6de195986e65.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/36971-2f156e5297f21513.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/41782-59817ce57fb17de0.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/51641-753873bd58a48d6a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/52317-2c5afa72f3669d12.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{49341-ac1af212e44d2fed.js → 57284-082de5d1a085fb62.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/66196-e4ab1d181ba28802.js +7 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/73501-e53648fe371f2d62.js +4 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/75292.81a0e2743f5c6f28.js +23 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{76640-4725198c0e423bb0.js → 76640-ddc1f4716b90640d.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/78900-8def9e87056eb203.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{95524-e2ce2ee3a7c25cb6.js → 85515-8df2d1a3bcdaf6ed.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/87382-18550693dead4923.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/99882-83624c1cc942d021.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/[agentId]/page-043386fe2e623b3a.js +433 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/layout-773f672bcc2ea9ba.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/loading-f82547ccc9c0b46e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/loading-3a6b9383a44410c9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-fdcc6b3751a29fcf.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-85d5b4e2dfae8259.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-e2985063e6938a11.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-3a6b9383a44410c9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-c6d140da8339e77a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-68c772fd8b992fba.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-b83f5e462873c36e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-3a6b9383a44410c9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-56242d7678abbbf7.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-9f728151953ff523.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-5c0b4d2469dcbd20.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-8f35a2b466713ae4.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-3a6b9383a44410c9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-2e0279438c7fe41e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-5dda7cc47529d6e2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-906ed37b2047e2ad.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-210d8a3be179bed5.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page-2571c74165d1d532.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-919a8b5e1fa74eda.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-6eea36395ef62014.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/layout-c74e57de88fdd57d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-766f45db7a2a1219.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-c8243bdd53920097.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-f82547ccc9c0b46e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-31e725bc1a4bad2f.js → page-e94464cfa0cdf444.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-0d72d2038540dc00.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/page-9405c473bfc06e17.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-668d9ac693dffb6a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-ea2139dc17923f1e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-51f41b6c534c6667.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/{page-fec7abe446607350.js → page-1b456e261cf70716.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/error-09ad1854570437eb.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-3a6b9383a44410c9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-8aeb3b4c16e4a5c5.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/settings/error-ba7b7b59382d29e9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/settings/loading-f82547ccc9c0b46e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/settings/page-5517b59dcdee6bc9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/accept-invitation/[invitationId]/page-2ae0b3bb0027ad7f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-6d4288ef114e41d8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/login/page-09027115c584270b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/no-organization/page-04209fa1f4777e27.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/not-found-a012e86545511b84.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/page-036a31ec32c3746d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-fed805da76c72ae7.js → webpack-8db984a9f7092e81.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/{c1722fab9560242a.css → 0a9944a7a6ea56ac.css} +1 -1
- package/.next/standalone/agents-manage-ui/package.json +1 -1
- package/.next/standalone/package.json +2 -1
- package/.next/standalone/packages/agents-core/package.json +2 -4
- package/package.json +4 -4
- package/src/app/[tenantId]/settings/error.tsx +24 -0
- package/src/app/[tenantId]/settings/loading.tsx +20 -0
- package/src/app/[tenantId]/settings/page.tsx +21 -0
- package/src/app/layout.tsx +32 -32
- package/src/components/agent/agent.tsx +13 -3
- package/src/components/agent/copilot/copilot-chat.tsx +54 -2
- package/src/components/agent/copilot/copilot-context.tsx +19 -0
- package/src/components/agent/node-library/copilot-trigger.tsx +4 -12
- package/src/components/auth/org-menu.tsx +84 -0
- package/src/components/layout/site-header.tsx +3 -1
- package/src/components/settings/settings-content.tsx +111 -0
- package/src/components/ui/breadcrumbs.tsx +20 -10
- package/src/hooks/use-copilot-token.ts +124 -0
- package/src/lib/actions/copilot-token.ts +94 -0
- package/src/lib/api/api-config.ts +20 -6
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1287.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2200.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2567.js +0 -123
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6654.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8245.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8308.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/918.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/11634-c0e5e3ea9f205dee.js +0 -4
- package/.next/standalone/agents-manage-ui/.next/static/chunks/15509-f1b15ac410141847.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/24409-8211918dce770db5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/36971-45344a8cf60c2a06.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/38745-cafd9125901a982c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/44290-c69db68642109f59.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/51641-8af7dec4c6b17e04.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/78549.818c5c45d5365f61.js +0 -23
- package/.next/standalone/agents-manage-ui/.next/static/chunks/80244-62a151932fce02b2.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/94027-fb6af3cb05aac14d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/[agentId]/page-ad6580cc262fba6f.js +0 -433
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/layout-3855e52eceb47f9b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/(with-react-flow-provider)/loading-b9116c2e45658fc9.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/loading-e2c5eb142afb5e3c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-872a8048384e6dd0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-4520980600a24d63.js +0 -7
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-ee3d34cdc7da9191.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-e2c5eb142afb5e3c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-07794e1722d97639.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-f12cc30f29d11f20.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-ba8dfc972e48a68c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-e2c5eb142afb5e3c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-a0ac4d5ed128c276.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-1bbbbc7e91d23f7f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-96ff9f3198291e74.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-6e9a68caab3baf7d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-e2c5eb142afb5e3c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-4440bdebd56c5132.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/page-80ad3822d15d82ac.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-496cf955c99d36ee.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-a6b9cc07d3eb0193.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/page-f6913f6c917be7f5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-9dac7f02424c5311.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-54c43c56d71de1e3.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/layout-ef56eeb79831206d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page-d3ae29fef0f480e0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-e4e85c0b458055fd.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-b9116c2e45658fc9.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-9bb91ff0011d1c23.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/page-a37d3d4d0b5860b4.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-98c8eaa879342a21.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/page-7456ccc1b9530a18.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-62b423fd2cb337e9.js +0 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/error-db6ca8ae065cd6b6.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-e2c5eb142afb5e3c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-937013c881aa5920.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/accept-invitation/[invitationId]/page-44583bd23cad6369.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-50cbc4067f3358f9.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/login/page-97ecd579548e7fb2.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/no-organization/page-939168973475fa19.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/not-found-f25a91ff0be3d6c8.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/page-8a726194df18e9b8.js +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{aSjolOlS9OrzduVayQBji → BteVn0RBeiPDAGVx52uWD}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{aSjolOlS9OrzduVayQBji → BteVn0RBeiPDAGVx52uWD}/_ssgManifest.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import Link from 'next/link';
|
|
4
|
-
import { useParams } from 'next/navigation';
|
|
4
|
+
import { useParams, usePathname } from 'next/navigation';
|
|
5
5
|
import { useMemo } from 'react';
|
|
6
6
|
import { useProject } from '@/contexts/project-context';
|
|
7
7
|
import { cn } from '@/lib/utils';
|
|
@@ -18,25 +18,35 @@ interface BreadcrumbsProps {
|
|
|
18
18
|
export function Breadcrumbs({ items }: BreadcrumbsProps) {
|
|
19
19
|
const project = useProject();
|
|
20
20
|
const { tenantId } = useParams<{ tenantId: string }>();
|
|
21
|
+
const pathname = usePathname();
|
|
21
22
|
|
|
22
23
|
const allItems = useMemo(() => {
|
|
23
|
-
const result: BreadcrumbItem[] = [
|
|
24
|
-
|
|
24
|
+
const result: BreadcrumbItem[] = [];
|
|
25
|
+
const isSettingsRoute = pathname?.includes('/settings');
|
|
26
|
+
|
|
27
|
+
if (!isSettingsRoute) {
|
|
28
|
+
result.push({
|
|
25
29
|
label: 'Projects',
|
|
26
30
|
href: `/${tenantId}/projects`,
|
|
27
|
-
},
|
|
28
|
-
];
|
|
29
|
-
if (project) {
|
|
30
|
-
result.push({
|
|
31
|
-
label: project.name,
|
|
32
|
-
href: `/${tenantId}/projects/${project.id}`,
|
|
33
31
|
});
|
|
32
|
+
|
|
33
|
+
if (project) {
|
|
34
|
+
result.push({
|
|
35
|
+
label: project.name,
|
|
36
|
+
href: `/${tenantId}/projects/${project.id}`,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
34
39
|
}
|
|
40
|
+
|
|
35
41
|
if (items) {
|
|
36
42
|
result.push(...items);
|
|
37
43
|
}
|
|
38
44
|
return result;
|
|
39
|
-
}, [items, tenantId, project]);
|
|
45
|
+
}, [items, tenantId, project, pathname]);
|
|
46
|
+
|
|
47
|
+
if (allItems.length === 0) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
40
50
|
|
|
41
51
|
return (
|
|
42
52
|
<nav className="text-sm text-muted-foreground" aria-label="Breadcrumb">
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { getCopilotTokenAction } from '@/lib/actions/copilot-token';
|
|
3
|
+
|
|
4
|
+
const MAX_RETRIES = 3;
|
|
5
|
+
const INITIAL_RETRY_DELAY_MS = 1000;
|
|
6
|
+
|
|
7
|
+
export interface UseCopilotTokenResult {
|
|
8
|
+
apiKey: string | null;
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
error: Error | null;
|
|
11
|
+
retryCount: number;
|
|
12
|
+
refresh: () => Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async function fetchWithRetry(
|
|
16
|
+
maxRetries: number,
|
|
17
|
+
onRetry?: (attempt: number, delay: number) => void
|
|
18
|
+
): Promise<{ apiKey: string; expiresAt: string }> {
|
|
19
|
+
let lastError: Error | null = null;
|
|
20
|
+
|
|
21
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
22
|
+
try {
|
|
23
|
+
const result = await getCopilotTokenAction();
|
|
24
|
+
|
|
25
|
+
if (result.success) {
|
|
26
|
+
return result.data;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Non-retryable errors (configuration issues)
|
|
30
|
+
if (result.code === 'configuration_error') {
|
|
31
|
+
throw new Error(result.error);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
lastError = new Error(result.error);
|
|
35
|
+
} catch (err) {
|
|
36
|
+
lastError = err instanceof Error ? err : new Error('Unknown error');
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Don't retry after the last attempt
|
|
40
|
+
if (attempt < maxRetries) {
|
|
41
|
+
const delay = INITIAL_RETRY_DELAY_MS * 2 ** attempt;
|
|
42
|
+
onRetry?.(attempt + 1, delay);
|
|
43
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
throw lastError || new Error('Failed to fetch copilot token after retries');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function useCopilotToken(): UseCopilotTokenResult {
|
|
51
|
+
const [apiKey, setApiKey] = useState<string | null>(null);
|
|
52
|
+
const [expiresAt, setExpiresAt] = useState<string | null>(null);
|
|
53
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
54
|
+
const [error, setError] = useState<Error | null>(null);
|
|
55
|
+
const [retryCount, setRetryCount] = useState(0);
|
|
56
|
+
const isMountedRef = useRef(true);
|
|
57
|
+
|
|
58
|
+
const fetchToken = useCallback(async () => {
|
|
59
|
+
try {
|
|
60
|
+
setIsLoading(true);
|
|
61
|
+
setError(null);
|
|
62
|
+
setRetryCount(0);
|
|
63
|
+
|
|
64
|
+
const data = await fetchWithRetry(MAX_RETRIES, (attempt, delay) => {
|
|
65
|
+
if (isMountedRef.current) {
|
|
66
|
+
setRetryCount(attempt);
|
|
67
|
+
console.log(`Copilot token fetch retry ${attempt}/${MAX_RETRIES} after ${delay}ms`);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
if (isMountedRef.current) {
|
|
72
|
+
setApiKey(data.apiKey);
|
|
73
|
+
setExpiresAt(data.expiresAt);
|
|
74
|
+
setError(null);
|
|
75
|
+
setRetryCount(0);
|
|
76
|
+
}
|
|
77
|
+
} catch (err) {
|
|
78
|
+
if (isMountedRef.current) {
|
|
79
|
+
const errorMessage = err instanceof Error ? err.message : 'Unknown error';
|
|
80
|
+
setError(new Error(errorMessage));
|
|
81
|
+
console.error('Copilot token fetch failed after all retries:', errorMessage);
|
|
82
|
+
}
|
|
83
|
+
} finally {
|
|
84
|
+
if (isMountedRef.current) {
|
|
85
|
+
setIsLoading(false);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}, []);
|
|
89
|
+
|
|
90
|
+
// Track mounted state
|
|
91
|
+
useEffect(() => {
|
|
92
|
+
isMountedRef.current = true;
|
|
93
|
+
return () => {
|
|
94
|
+
isMountedRef.current = false;
|
|
95
|
+
};
|
|
96
|
+
}, []);
|
|
97
|
+
|
|
98
|
+
// Initial fetch
|
|
99
|
+
useEffect(() => {
|
|
100
|
+
fetchToken();
|
|
101
|
+
}, [fetchToken]);
|
|
102
|
+
|
|
103
|
+
// Auto-refresh before expiry
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
if (!expiresAt) return;
|
|
106
|
+
|
|
107
|
+
const expiryTime = new Date(expiresAt).getTime();
|
|
108
|
+
const now = Date.now();
|
|
109
|
+
const timeUntilExpiry = expiryTime - now;
|
|
110
|
+
|
|
111
|
+
// Refresh 5 minutes before expiry (or immediately if already expired)
|
|
112
|
+
const refreshTime = Math.max(0, timeUntilExpiry - 5 * 60 * 1000);
|
|
113
|
+
|
|
114
|
+
const timer = setTimeout(() => {
|
|
115
|
+
console.log('Auto-refreshing copilot token before expiry...');
|
|
116
|
+
fetchToken();
|
|
117
|
+
}, refreshTime);
|
|
118
|
+
|
|
119
|
+
return () => clearTimeout(timer);
|
|
120
|
+
}, [expiresAt, fetchToken]);
|
|
121
|
+
|
|
122
|
+
return { apiKey, isLoading, error, retryCount, refresh: fetchToken };
|
|
123
|
+
}
|
|
124
|
+
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
'use server';
|
|
2
|
+
|
|
3
|
+
import { DEFAULT_INKEEP_AGENTS_MANAGE_API_URL } from '../runtime-config/defaults';
|
|
4
|
+
|
|
5
|
+
export type ActionResult<T = void> =
|
|
6
|
+
| {
|
|
7
|
+
success: true;
|
|
8
|
+
data: T;
|
|
9
|
+
}
|
|
10
|
+
| {
|
|
11
|
+
success: false;
|
|
12
|
+
error: string;
|
|
13
|
+
code?: string;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export interface CopilotTokenResponse {
|
|
17
|
+
apiKey: string;
|
|
18
|
+
expiresAt: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export async function getCopilotTokenAction(): Promise<ActionResult<CopilotTokenResponse>> {
|
|
22
|
+
const copilotApiKey = process.env.INKEEP_COPILOT_API_KEY;
|
|
23
|
+
const copilotTenantId = process.env.PUBLIC_INKEEP_COPILOT_TENANT_ID;
|
|
24
|
+
const copilotProjectId = process.env.PUBLIC_INKEEP_COPILOT_PROJECT_ID;
|
|
25
|
+
const copilotAgentId = process.env.PUBLIC_INKEEP_COPILOT_AGENT_ID;
|
|
26
|
+
const manageApiUrl =
|
|
27
|
+
process.env.INKEEP_AGENTS_MANAGE_API_URL ||
|
|
28
|
+
process.env.PUBLIC_INKEEP_AGENTS_MANAGE_API_URL ||
|
|
29
|
+
DEFAULT_INKEEP_AGENTS_MANAGE_API_URL;
|
|
30
|
+
|
|
31
|
+
if (!copilotApiKey) {
|
|
32
|
+
return {
|
|
33
|
+
success: false,
|
|
34
|
+
error: 'INKEEP_COPILOT_API_KEY is not configured',
|
|
35
|
+
code: 'configuration_error',
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (!copilotTenantId || !copilotProjectId || !copilotAgentId) {
|
|
40
|
+
return {
|
|
41
|
+
success: false,
|
|
42
|
+
error: 'Copilot tenant, project, or agent ID is not configured',
|
|
43
|
+
code: 'configuration_error',
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
try {
|
|
48
|
+
const response = await fetch(
|
|
49
|
+
`${manageApiUrl}/tenants/${copilotTenantId}/playground/token`,
|
|
50
|
+
{
|
|
51
|
+
method: 'POST',
|
|
52
|
+
headers: {
|
|
53
|
+
'Content-Type': 'application/json',
|
|
54
|
+
Authorization: `Bearer ${copilotApiKey}`,
|
|
55
|
+
},
|
|
56
|
+
body: JSON.stringify({
|
|
57
|
+
projectId: copilotProjectId,
|
|
58
|
+
agentId: copilotAgentId,
|
|
59
|
+
}),
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
if (!response.ok) {
|
|
64
|
+
let errorMessage = 'Failed to fetch copilot token';
|
|
65
|
+
try {
|
|
66
|
+
const errorData = await response.json();
|
|
67
|
+
errorMessage = errorData?.error?.message || errorData?.message || errorMessage;
|
|
68
|
+
} catch {
|
|
69
|
+
// Ignore JSON parse errors
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
success: false,
|
|
73
|
+
error: errorMessage,
|
|
74
|
+
code: 'api_error',
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const data = await response.json();
|
|
79
|
+
return {
|
|
80
|
+
success: true,
|
|
81
|
+
data: {
|
|
82
|
+
apiKey: data.apiKey,
|
|
83
|
+
expiresAt: data.expiresAt,
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
} catch (error) {
|
|
87
|
+
return {
|
|
88
|
+
success: false,
|
|
89
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
90
|
+
code: 'network_error',
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
@@ -57,12 +57,26 @@ async function makeApiRequestInternal<T>(
|
|
|
57
57
|
let cookieHeader: string | undefined;
|
|
58
58
|
if (typeof window === 'undefined') {
|
|
59
59
|
try {
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
// Try using headers() first - this forwards the raw Cookie header from the incoming request
|
|
61
|
+
const { headers } = await import('next/headers');
|
|
62
|
+
const headerStore = await headers();
|
|
63
|
+
const rawCookieHeader = headerStore.get('cookie');
|
|
64
|
+
|
|
65
|
+
if (rawCookieHeader) {
|
|
66
|
+
// Filter to only forward Better Auth cookies for security
|
|
67
|
+
const cookiePairs = rawCookieHeader.split(';').map(c => c.trim());
|
|
68
|
+
const authCookies = cookiePairs.filter(c => c.includes('better-auth'));
|
|
69
|
+
cookieHeader = authCookies.join('; ');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Fallback to cookies() if headers() didn't have the cookie
|
|
73
|
+
if (!cookieHeader) {
|
|
74
|
+
const { cookies } = await import('next/headers');
|
|
75
|
+
const cookieStore = await cookies();
|
|
76
|
+
const allCookies = cookieStore.getAll();
|
|
77
|
+
const authCookies = allCookies.filter((c) => c.name.includes('better-auth'));
|
|
78
|
+
cookieHeader = authCookies.map((c) => `${c.name}=${c.value}`).join('; ');
|
|
79
|
+
}
|
|
66
80
|
} catch {
|
|
67
81
|
// Not in a server component context, skip cookie forwarding
|
|
68
82
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=1287,exports.ids=[1287],exports.modules={14867:(a,b,c)=>{Promise.resolve().then(c.bind(c,98638)),Promise.resolve().then(c.bind(c,5881))},34771:(a,b,c)=>{"use strict";c.d(b,{ExternalAgentForm:()=>v});var d=c(45413),e=c(18526),f=c(6801),g=c(60223),h=c(4068),i=c(41489),j=c(8997),k=c(93449),l=c(73679),m=c(38953),n=c(39667),o=c(28598),p=c(45220),q=c(65049);let r=(0,q.createServerReference)("704ee1f1607fc19060167a871bcc56b1c493dd6078",q.callServer,void 0,q.findSourceMapURL,"createExternalAgent");var s=c(63307);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"})]})})}},45220:(a,b,c)=>{"use strict";c.d(b,{e:()=>e});var d=c(65049);let e=(0,d.createServerReference)("78923bd8c62b91c2349a2e4d07f2071ee5faf6a97c",d.callServer,void 0,d.findSourceMapURL,"updateExternalAgent")},46672:(a,b,c)=>{"use strict";c.d(b,{$Y:()=>g,GO:()=>i,K3:()=>h,h9:()=>k,nZ:()=>j});var d=c(61896);c(23956);var e=c(8489),f=c(74814);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.Js)(`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.Js)(`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.Js)(`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.Js)(`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.Js)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}(0,c(23276).D)([g,h,i,j,k]),(0,d.A)(g,"78552158d41b386537b466214388aea3ee1983a275",null),(0,d.A)(h,"70cee37d38816b743a00e9effea88bc0c3d8de102f",null),(0,d.A)(i,"7085181c02e43c5d730d1a12445ebb98450e68bda9",null),(0,d.A)(j,"7850b04c0af0f632c0deb999dbaae6ba1703b27755",null),(0,d.A)(k,"702be32799cf7e6168f6d55ff7501a92f0c7e7f6db",null)},54383:(a,b,c)=>{"use strict";c.d(b,{ProjectProvider:()=>e});var d=c(16979);(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")},55729:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j,dynamic:()=>i});var d=c(19667),e=c(16508),f=c(54383),g=c(9202),h=c(64392);let i="force-dynamic";async function j({children:a,params:b}){let{tenantId:c,projectId:i}=await b;try{let b=await (0,g.Sw)(c,i);return(0,d.jsx)(f.ProjectProvider,{value:b.data,children:a})}catch(a){return(0,d.jsx)(e.default,{error:(0,h.V)(a),context:"project"})}}},61723:(a,b,c)=>{Promise.resolve().then(c.bind(c,16508)),Promise.resolve().then(c.bind(c,54383))},74777:(a,b,c)=>{"use strict";c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(45413),e=c(27915),f=c(38455),g=c(89773),h=c(39210),i=c(41394);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"})})}},85180:(a,b,c)=>{"use strict";c.d(b,{ExternalAgentForm:()=>d});let d=(0,c(16979).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")},93449:(a,b,c)=>{"use strict";c.d(b,{U:()=>g});var d=c(45413),e=c(74777),f=c(70586);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))})]})})}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=2200,exports.ids=[2200],exports.modules={3480:(a,b,c)=>{c.d(b,{X:()=>e});var d=c(65049);let e=(0,d.createServerReference)("703f9d67ad6efe03be80097365285d281d754559fa",d.callServer,void 0,d.findSourceMapURL,"createMCPTool")},5415:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(82175).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},17285:(a,b,c)=>{c.d(b,{U:()=>n});var d=c(21498),e=c(60223),f=c(23328),g=c(41489),h=c(3763),i=c(75355),j=c(78329),k=c(76124),l=c(14260),m=c(82994);function n({tenantId:a,projectId:b,onFinish:c}){let n=(0,e.useRouter)(),{PUBLIC_INKEEP_AGENTS_MANAGE_API_URL:o}=(0,h.y)(),{openNangoConnectHeadless:p}=(0,m.$)(),q=(0,f.useRef)(new Map),r=(0,f.useCallback)((d,e)=>new Promise((f,g)=>{let h=q.current.get(d);h&&(h(),q.current.delete(d));try{let h=e??function({PUBLIC_INKEEP_AGENTS_MANAGE_API_URL:a,tenantId:b,projectId:c,id:d}){if(!b||"string"!=typeof b)throw Error("Invalid tenantId: must be a non-empty string");if(!d||"string"!=typeof d)throw Error("Invalid tool id: must be a non-empty string");if(!c||"string"!=typeof c)throw Error("Invalid projectId: must be a non-empty string");let e=/^[a-zA-Z0-9-_]+$/;if(!e.test(b))throw Error("Invalid tenantId format: only alphanumeric characters, hyphens, and underscores allowed");if(!e.test(d))throw Error("Invalid tool id format: only alphanumeric characters, hyphens, and underscores allowed");if(!e.test(c))throw Error("Invalid projectId format: only alphanumeric characters, hyphens, and underscores allowed");let f=`${a}/oauth/login?tenantId=${encodeURIComponent(b)}&projectId=${encodeURIComponent(c)}&toolId=${encodeURIComponent(d)}`;if(!f.startsWith(a))throw Error("Invalid OAuth URL generated");return f}({PUBLIC_INKEEP_AGENTS_MANAGE_API_URL:o,tenantId:a,projectId:b,id:d}),i=window.open(h,"oauth-popup","width=600,height=700,scrollbars=yes,resizable=yes,status=yes,location=yes");if(!i){let a=Error(`Failed to open popup for ${d} - blocked by browser`);console.error(a.message),g(a);return}let j=!1,k=(e,h)=>{j||(j=!0,window.removeEventListener("message",l),m&&clearInterval(m),clearTimeout(p),q.current.delete(d),e?(c?c(d):n.push(`/${a}/projects/${b}/mcp-servers/${d}`),f()):g(h||Error("OAuth login failed")))},l=a=>{"oauth-success"===a.data.type?k(!0):"oauth-error"===a.data.type&&k(!1,Error(a.data.error||"OAuth login failed"))};window.addEventListener("message",l);let m=null,p=setTimeout(()=>{j||(m=setInterval(()=>{try{i.closed&&k(!0)}catch{}},1e3))},3e3);q.current.set(d,()=>{k(!1,Error("OAuth login cancelled"))})}catch(a){g(a instanceof Error?a:Error("OAuth login failed"))}}),[o,a,b,c,n]),s=(0,f.useCallback)(async({toolId:e,mcpServerUrl:f,toolName:g})=>{let h=await p({mcpServerUrl:f,providerUniqueKey:`${(0,d.K_)(g)}_${e}`,providerDisplayName:g}),i={id:(0,l.$)(),name:`${g} OAuth Credential`,type:d.Ns.nango,credentialStoreId:"nango-default",retrievalParams:{connectionId:h.connectionId,providerConfigKey:h.providerConfigKey,provider:"mcp-generic",authMode:"OAUTH2"}},m=await (0,k.U)(a,b,i);await (0,j.Y)(a,b,e,{credentialReferenceId:m.id}),c?c(e):n.push(`/${a}/projects/${b}/mcp-servers/${e}`)},[p,c,n,a,b]);return{handleOAuthLogin:(0,f.useCallback)(async({toolId:c,mcpServerUrl:e,toolName:f,thirdPartyConnectAccountUrl:h})=>{if(h)return void await r(c,h);try{let g=await (0,i.S)(a,b),h=g.some(a=>a.type===d.Ns.nango&&a.available),j=g.some(a=>a.type===d.Ns.keychain&&a.available);if(h)await s({toolId:c,mcpServerUrl:e,toolName:f});else if(j)await r(c);else throw Error("No credential store available. Please configure Nango or Keychain.")}catch(b){let a=b instanceof Error?b:Error("OAuth login failed");throw g.oR.error(a.message),a}},[a,b,s,r])}}},21706:(a,b,c)=>{c.d(b,{Wy:()=>k,XL:()=>i,YU:()=>j,iu:()=>g,xl:()=>h});var d=c(46649);c(75909);var e=c(55310),f=c(40555);async function g(a,b,c=1,d=50,h){(0,f.M2)(a),(0,f.nt)(b);let i=new URLSearchParams({page:c.toString(),limit:d.toString()});return h&&i.append("status",h),(await (0,e.Js)(`tenants/${a}/projects/${b}/tools?${i}`)).data.filter(a=>a.config?.type==="mcp")}async function h(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.Js)(`tenants/${a}/projects/${b}/tools/${c}`)).data}async function i(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.Js)(`tenants/${a}/projects/${b}/tools`,{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.Js)(`tenants/${a}/projects/${b}/tools/${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.Js)(`tenants/${a}/projects/${b}/tools/${c}`,{method:"DELETE"})}(0,c(33341).D)([g,h,i,j,k]),(0,d.A)(g,"7cb78953e07512b946060fb7319c333eb4ac5b4b91",null),(0,d.A)(h,"700798a5bb323940b2f6cc4e3975c63bc02e896da2",null),(0,d.A)(i,"703f9d67ad6efe03be80097365285d281d754559fa",null),(0,d.A)(j,"7894c2581906101374480fe3623979b02ffb5aecad",null),(0,d.A)(k,"70b8013f8ea296620d3b6f344bd72cb78242568d94",null)},29439:(a,b,c)=>{c.d(b,{Q1:()=>i,cZ:()=>k,oU:()=>j});var d=c(46649);c(75909);var e=c(1933),f=c(65206),g=c(21706),h=c(90365);async function i(a,b){try{let c=await (0,g.iu)(a,b);return{success:!0,data:c}}catch(a){if(a instanceof h.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 j(a,b,c,d=!0){try{return await (0,g.Wy)(a,b,c),d&&(0,f.revalidatePath)(`/${a}/projects/${b}/mcp-servers`,"page"),{success:!0}}catch(a){if(a instanceof h.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 k(a){try{let b=await (0,e.Rt)({serverUrl:a});return{success:!0,data:b}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to detect OAuth support",code:"oauth_detection_failed"}}}(0,c(33341).D)([i,j,k]),(0,d.A)(i,"60182374a23dac3eb16070e1367d16a654cefdaedf",null),(0,d.A)(j,"788ae49dac811bdd61e5f9dc799ee4d0c456700f62",null),(0,d.A)(k,"40f21e5ead75c68be41f16742928c43e78ab7fd210",null)},46672:(a,b,c)=>{c.d(b,{$Y:()=>g,GO:()=>i,K3:()=>h,h9:()=>k,nZ:()=>j});var d=c(61896);c(23956);var e=c(8489),f=c(74814);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.Js)(`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.Js)(`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.Js)(`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.Js)(`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.Js)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}(0,c(23276).D)([g,h,i,j,k]),(0,d.A)(g,"78552158d41b386537b466214388aea3ee1983a275",null),(0,d.A)(h,"70cee37d38816b743a00e9effea88bc0c3d8de102f",null),(0,d.A)(i,"7085181c02e43c5d730d1a12445ebb98450e68bda9",null),(0,d.A)(j,"7850b04c0af0f632c0deb999dbaae6ba1703b27755",null),(0,d.A)(k,"702be32799cf7e6168f6d55ff7501a92f0c7e7f6db",null)},60943:(a,b,c)=>{c.d(b,{C1:()=>x,bL:()=>v});var d=c(23328),e=c(96547),f=c(37239),g=c(13961),h=c(26020),i=c(9776),j=c(18080),k=c(80563),l=c(26413),m=c(45413),n="Checkbox",[o,p]=(0,f.A)(n),[q,r]=o(n);function s(a){let{__scopeCheckbox:b,checked:c,children:e,defaultChecked:f,disabled:g,form:i,name:j,onCheckedChange:k,required:l,value:o="on",internal_do_not_use_render:p}=a,[r,s]=(0,h.i)({prop:c,defaultProp:f??!1,onChange:k,caller:n}),[t,u]=d.useState(null),[v,w]=d.useState(null),x=d.useRef(!1),y=!t||!!i||!!t.closest("form"),z={checked:r,disabled:g,setChecked:s,control:t,setControl:u,name:j,form:i,value:o,hasConsumerStoppedPropagationRef:x,required:l,defaultChecked:!A(f)&&f,isFormControl:y,bubbleInput:v,setBubbleInput:w};return(0,m.jsx)(q,{scope:b,...z,children:"function"==typeof p?p(z):e})}var t="CheckboxTrigger",u=d.forwardRef(({__scopeCheckbox:a,onKeyDown:b,onClick:c,...f},h)=>{let{control:i,value:j,disabled:k,checked:n,required:o,setControl:p,setChecked:q,hasConsumerStoppedPropagationRef:s,isFormControl:u,bubbleInput:v}=r(t,a),w=(0,e.s)(h,p),x=d.useRef(n);return d.useEffect(()=>{let a=i?.form;if(a){let b=()=>q(x.current);return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[i,q]),(0,m.jsx)(l.sG.button,{type:"button",role:"checkbox","aria-checked":A(n)?"mixed":n,"aria-required":o,"data-state":B(n),"data-disabled":k?"":void 0,disabled:k,value:j,...f,ref:w,onKeyDown:(0,g.mK)(b,a=>{"Enter"===a.key&&a.preventDefault()}),onClick:(0,g.mK)(c,a=>{q(a=>!!A(a)||!a),v&&u&&(s.current=a.isPropagationStopped(),s.current||a.stopPropagation())})})});u.displayName=t;var v=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,name:d,checked:e,defaultChecked:f,required:g,disabled:h,value:i,onCheckedChange:j,form:k,...l}=a;return(0,m.jsx)(s,{__scopeCheckbox:c,checked:e,defaultChecked:f,disabled:h,required:g,onCheckedChange:j,name:d,form:k,value:i,internal_do_not_use_render:({isFormControl:a})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(u,{...l,ref:b,__scopeCheckbox:c}),a&&(0,m.jsx)(z,{__scopeCheckbox:c})]})})});v.displayName=n;var w="CheckboxIndicator",x=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,forceMount:d,...e}=a,f=r(w,c);return(0,m.jsx)(k.C,{present:d||A(f.checked)||!0===f.checked,children:(0,m.jsx)(l.sG.span,{"data-state":B(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:b,style:{pointerEvents:"none",...a.style}})})});x.displayName=w;var y="CheckboxBubbleInput",z=d.forwardRef(({__scopeCheckbox:a,...b},c)=>{let{control:f,hasConsumerStoppedPropagationRef:g,checked:h,defaultChecked:k,required:n,disabled:o,name:p,value:q,form:s,bubbleInput:t,setBubbleInput:u}=r(y,a),v=(0,e.s)(c,u),w=(0,i.Z)(h),x=(0,j.X)(f);d.useEffect(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!g.current;if(w!==h&&a){let c=new Event("click",{bubbles:b});t.indeterminate=A(h),a.call(t,!A(h)&&h),t.dispatchEvent(c)}},[t,w,h,g]);let z=d.useRef(!A(h)&&h);return(0,m.jsx)(l.sG.input,{type:"checkbox","aria-hidden":!0,defaultChecked:k??z.current,required:n,disabled:o,name:p,value:q,form:s,...b,tabIndex:-1,ref:v,style:{...b.style,...x,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function A(a){return"indeterminate"===a}function B(a){return A(a)?"indeterminate":a?"checked":"unchecked"}z.displayName=y},74188:(a,b,c)=>{c.d(b,{J:()=>h});var d=c(45413),e=c(5415),f=c(38953),g=c(42241);function h({itemName:a,isSubmitting:b,onDelete:c,customTitle:h,customDescription:i}){let j=async()=>{await c()};return(0,d.jsxs)(g.DialogContent,{children:[(0,d.jsx)(g.DialogTitle,{children:h||`Delete ${a||"this item"}`}),(0,d.jsx)(g.DialogDescription,{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"})]})]})}},74777:(a,b,c)=>{c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(45413),e=c(27915),f=c(38455),g=c(89773),h=c(39210),i=c(41394);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"})})}},75355:(a,b,c)=>{c.d(b,{S:()=>e});var d=c(65049);let e=(0,d.createServerReference)("6005118ad1fb46e39ebcb9b4342f96e671ea7aa110",d.callServer,void 0,d.findSourceMapURL,"listCredentialStores")},77515:(a,b,c)=>{c.d(b,{o:()=>e});var d=c(65049);let e=(0,d.createServerReference)("788ae49dac811bdd61e5f9dc799ee4d0c456700f62",d.callServer,void 0,d.findSourceMapURL,"deleteToolAction")},78329:(a,b,c)=>{c.d(b,{Y:()=>e});var d=c(65049);let e=(0,d.createServerReference)("7894c2581906101374480fe3623979b02ffb5aecad",d.callServer,void 0,d.findSourceMapURL,"updateMCPTool")},83942:(a,b,c)=>{c.d(b,{S:()=>h});var d=c(45413),e=c(60943),f=c(89773),g=c(41394);function h({className:a,...b}){return(0,d.jsx)(e.bL,{"data-slot":"checkbox",className:(0,g.cn)("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-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,d.jsx)(e.C1,{"data-slot":"checkbox-indicator",className:"flex items-center justify-center text-current transition-none",children:(0,d.jsx)(f.A,{className:"size-3.5"})})})}},91868:(a,b,c)=>{c.d(b,{S:()=>g,U:()=>h});var d=c(46649);c(75909);var e=c(55310),f=c(40555);async function g(a,b){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.Js)(`tenants/${a}/projects/${b}/credential-stores`)).data}async function h({tenantId:a,projectId:b,storeId:c,key:d,value:g,metadata:h}){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.Js)(`tenants/${a}/projects/${b}/credential-stores/${c}/credentials`,{method:"POST",body:JSON.stringify({key:d,value:g,metadata:h})})).data}(0,c(33341).D)([g,h]),(0,d.A)(g,"6005118ad1fb46e39ebcb9b4342f96e671ea7aa110",null),(0,d.A)(h,"403b9b35e0d413485a868f6b038a111d4177ca2e4f",null)},93449:(a,b,c)=>{c.d(b,{U:()=>g});var d=c(45413),e=c(74777),f=c(70586);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))})]})})}},95800:(a,b,c)=>{c.d(b,{MCPServerForm:()=>I});var d=c(45413),e=c(18526),f=c(21498),g=c(60223),h=c(23328),i=c(4068),j=c(41489),k=c(8997),l=c(93449),m=c(38953),n=c(74188),o=c(42241),p=c(39667),q=c(28598),r=c(17285),s=c(65049);let t=(0,s.createServerReference)("40f21e5ead75c68be41f16742928c43e78ab7fd210",s.callServer,void 0,s.findSourceMapURL,"detectOAuthServerAction");var u=c(77515),v=c(3480),w=c(78329),x=c(14260),y=c(19169),z=c(89773),A=c(79416),B=c(83942),C=c(23240);function D({control:a,name:b,label:c,availableTools:e=[],description:f,disabled:g=!1}){let{field:{value:j,onChange:k},fieldState:{error:l}}=(0,i.as)({name:b,control:a}),n=(0,h.useMemo)(()=>"object"==typeof j&&null!==j&&"type"in j?"all"===j.type?{type:"all"}:"selective"===j.type&&Array.isArray(j.tools)?{type:"selective",tools:j.tools}:{type:"selective",tools:[]}:{type:"selective",tools:[]},[j]),o=()=>{k({type:"all"})},q=()=>{k({type:"selective",tools:[]})},r=(a,b)=>{if("all"===n.type){let c=e.map(a=>a.name).filter(b=>b!==a);k({type:"selective",tools:b?[...c,a]:c})}else k({type:"selective",tools:b?[...n.tools.filter(b=>b!==a),a]:n.tools.filter(b=>b!==a)})},s=()=>{switch(n.type){case"all":return e.length;case"selective":return n.tools.filter(a=>e.some(b=>b.name===a)).length;default:return 0}},t=s()===e.length;return(0,d.jsx)(p.zB,{control:a,name:b,render:()=>(0,d.jsxs)(p.eI,{children:[(0,d.jsxs)(p.lR,{children:[c,(0,d.jsx)(A.E,{variant:"code",className:"border-none px-2 text-[10px] text-muted-foreground",children:s()})]}),f&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:f}),(0,d.jsxs)("div",{className:"mt-2",children:[0===e.length&&(0,d.jsx)("div",{className:"text-sm text-muted-foreground border rounded-md p-3 py-2 bg-gray-100/80 dark:bg-sidebar",children:"No tools available from this server"}),e.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 justify-between py-3 px-6 rounded-t-lg border border-b-0",children:[(0,d.jsxs)("div",{className:"text-sm",children:[s()," ",(0,d.jsxs)("span",{className:"text-gray-400 dark:text-white/40",children:["/ ",e.length," tool",1===e.length?"":"s"]})]}),t?(0,d.jsxs)(m.$,{type:"button",variant:"outline",size:"sm",onClick:q,disabled:g,children:[(0,d.jsx)(y.A,{className:"w-4 h-4 text-muted-foreground"}),"Deselect all"]}):(0,d.jsxs)(m.$,{type:"button",variant:"outline",size:"sm",onClick:o,disabled:g,children:[(0,d.jsx)(z.A,{className:"w-4 h-4 text-muted-foreground"}),"Select all"]})]}),(0,d.jsx)("div",{className:"max-h-96 overflow-y-auto border rounded-lg rounded-t-none scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent",children:e.map(a=>{let b=(a=>{switch(n.type){case"all":return e.some(b=>b.name===a);case"selective":return n.tools.includes(a)&&e.some(b=>b.name===a);default:return!1}})(a.name);return(0,d.jsxs)("div",{className:"space-y-2 flex items-start gap-6 border-b last:border-b-0 py-4 px-6 relative",children:[(0,d.jsx)("div",{className:"flex items-center h-[22px]",children:(0,d.jsx)(B.S,{checked:b,disabled:g,className:"mb-0",onClick:()=>!g&&r(a.name,!b)})}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)(A.E,{variant:b?"primary":"code",className:`font-mono font-medium text-xs cursor-pointer transition-colors ${g?"opacity-50 cursor-not-allowed":""}`,onClick:()=>!g&&r(a.name,!b),children:a.name}),(0,d.jsxs)(C.Tooltip,{delayDuration:800,children:[(0,d.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,d.jsx)("p",{className:"text-sm text-muted-foreground line-clamp-1",children:a.description})}),(0,d.jsx)(C.TooltipContent,{side:"bottom",align:"start",children:a.description})]})]})]},a.name)})})]})]}),(0,d.jsx)(p.C5,{children:l?.message})]})})}var E=c(63307);let F=E.discriminatedUnion("type",[E.object({type:E.literal("all")}),E.object({type:E.literal("selective"),tools:E.array(E.string())})]),G=E.object({name:E.string().min(1,"Name is required."),config:E.object({type:E.literal("mcp"),mcp:E.object({server:E.object({url:E.string().url("Must be a valid URL.")}),transport:E.object({type:E.nativeEnum(f.o7)}),toolsConfig:F.default({type:"all"})})}),credentialReferenceId:E.string().nullish(),imageUrl:E.string().optional()}),H={name:"",config:{type:"mcp",mcp:{server:{url:""},transport:{type:f.o7.streamableHttp},toolsConfig:{type:"all"}}},imageUrl:"",credentialReferenceId:"oauth"};function I({initialData:a,mode:b="create",tool:c,credentials:s,tenantId:y,projectId:z}){let A=(0,g.useRouter)(),[B,C]=(0,h.useState)(!1),[E,F]=(0,h.useState)(!1),I=(0,i.mN)({resolver:(0,e.u)(G),defaultValues:{...H,...a}}),{handleOAuthLogin:J}=(0,r.U)({tenantId:y,projectId:z}),{isSubmitting:K}=I.formState,L=async a=>{try{if("oauth"===a.credentialReferenceId){let b=await t(a.config.mcp.server.url);if(!b.success)return void j.oR.error(b.error||"Failed to detect OAuth support");if(!b.data)return void j.oR.error("This MCP server does not support OAuth authentication. Please select a different credential.");let c={id:(0,x.$)(),name:a.name,config:{type:"mcp",mcp:{server:{url:a.config.mcp.server.url},transport:{type:a.config.mcp.transport.type}}},credentialReferenceId:null,imageUrl:a.imageUrl},d=await (0,v.X)(y,z,c);J({toolId:d.id,mcpServerUrl:a.config.mcp.server.url,toolName:a.name});return}let d={...a,credentialReferenceId:"none"===a.credentialReferenceId?null:a.credentialReferenceId,config:{...a.config,mcp:{...a.config.mcp,activeTools:(a=>{if("all"===a.type)return;let b=c?.availableTools?.map(a=>a.name)||[];return a.tools.filter(a=>b.includes(a))})(a.config.mcp.toolsConfig)}}};if("update"===b&&c)await (0,w.Y)(y,z,c.id,d),j.oR.success("MCP server updated successfully"),A.push(`/${y}/projects/${z}/mcp-servers/${c.id}`);else{let a=await (0,v.X)(y,z,{...d,id:(0,x.$)()});j.oR.success("MCP server created successfully"),A.push(`/${y}/projects/${z}/mcp-servers/${a.id}`)}}catch(a){console.error(`Failed to ${b} MCP tool:`,a),j.oR.error(`Failed to ${b} MCP server. Please try again.`)}},M=async()=>{if(c){F(!0);try{let a=await (0,u.o)(y,z,c.id,!1);a.success?(C(!1),j.oR.success("MCP server deleted."),A.push(`/${y}/projects/${z}/mcp-servers`)):j.oR.error(a.error||"Failed to delete MCP server.")}finally{F(!1)}}};return(0,d.jsxs)(o.Dialog,{open:B,onOpenChange:C,children:[(0,d.jsx)(p.lV,{...I,children:(0,d.jsxs)("form",{onSubmit:I.handleSubmit(L),className:"space-y-8",children:[(0,d.jsx)(k.a,{control:I.control,name:"name",label:"Name",placeholder:"MCP server",isRequired:!0}),(0,d.jsx)(k.a,{control:I.control,name:"config.mcp.server.url",label:"URL",placeholder:"https://api.example.com/mcp",isRequired:!0}),(0,d.jsx)(l.U,{control:I.control,selectTriggerClassName:"w-full",name:"config.mcp.transport.type",label:"Transport type",placeholder:"Select transport type",options:[{value:f.o7.streamableHttp,label:"Streamable HTTP"},{value:f.o7.sse,label:"Server-Sent Events (SSE)"}]}),(0,d.jsx)(k.a,{control:I.control,name:"imageUrl",label:"Image URL (optional)",placeholder:"https://example.com/icon.png or data:image/png;base64,..."}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(l.U,{control:I.control,selectTriggerClassName:"w-full",name:"credentialReferenceId",label:"Credential",placeholder:"Select a credential",options:[{value:"oauth",label:"OAuth"},{value:"none",label:"No Authentication"},...s.map(a=>({value:a.id,label:a.name}))]}),(0,d.jsx)(q.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:"OAuth"})," ",'to authenticate with the MCP server\'s OAuth flow, which will start after you click "Create".']}),(0,d.jsxs)("p",{children:["Select"," ",(0,d.jsx)("code",{className:"bg-background px-1.5 py-0.5 rounded border",children:"No Authentication"})," ","to skip authentication (i.e. none required or add a credential later)."]}),(0,d.jsx)("p",{children:"Or select from the existing credentials you have already created."})]})})]}),"update"===b&&(0,d.jsx)(D,{control:I.control,name:"config.mcp.toolsConfig",label:"Tools",availableTools:c?.availableTools||[],description:"Select which tools should be enabled for this MCP server"}),(0,d.jsxs)("div",{className:"flex w-full justify-between",children:[(0,d.jsx)(m.$,{type:"submit",disabled:K,children:"update"===b?"Save":"Create"}),"update"===b&&c&&(0,d.jsx)(o.DialogTrigger,{asChild:!0,children:(0,d.jsx)(m.$,{type:"button",variant:"destructive-outline",children:"Delete Server"})})]})]})}),B&&c&&(0,d.jsx)(n.J,{itemName:c.name||"this MCP server",isSubmitting:E,onDelete:M})]})}}};
|