@inkeep/agents-manage-ui 0.31.3 → 0.31.5
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 +306 -296
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +12 -12
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +13 -13
- package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +3 -12
- 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.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_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 +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_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_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_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 +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/external-agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
- package/.next/standalone/agents-manage-ui/.next/server/app/api/data-components/[dataComponentId]/generate-render/route.js +3 -3
- 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 +12 -12
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2049.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2099.js +74 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2323.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2793.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/305.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3200.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/341.js +363 -5
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3690.js +7 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4021.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4057.js +123 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4356.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4796.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{1047.js → 5196.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5245.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5316.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{8746.js → 7111.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7172.js +6 -6
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7189.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7497.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8359.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8528.js +4199 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8704.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9542.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9920.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/10385-946772d92562cc46.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/19268-4c91d996ccccbc45.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/29129.2b3aec21f9892b9e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/31321-6bee6bed0133919f.js +197 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/32208-f38882ee4a65aead.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{32848-e368b492419ae6e4.js → 32848-5655a92b337e6346.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/37226-af0e272517d004df.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/42658-cba95733d43d6b98.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{42966-c45601890893f4fe.js → 43883-4a0edc82a64d282e.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/4601-be81d9f529ebb629.js +4 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/4653-1381428fd8730f4b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/59759-e6f640c461b88e97.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/65665-00887d4d2c362ca2.js +123 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/66900-9ff0cc0605ec2039.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/73629-c59d321deb96b18e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/73744-ed53b2a1b7396fba.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7965-be321dadb7ef1e3d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/85145-85cfc74451117fee.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/85210-7e4bb57822963370.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/87799-f447ef2b59041d68.js +21 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/88437-fd412d0ffdabf6e2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{98749-e87db9b701dfca1b.js → 88686-b22f308e913d4f41.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/91783-163c98dc7933ec82.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/94068-5dbdc1cec3d0e76a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/96365-e0704ccf63dd8e5f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/97635-cc97848f52f745fa.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/98522-61e930eb8a6e224a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/{page-f6cc5e8cb929a001.js → page-1f31688fce0917bc.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-8296ff2eda140634.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-01e59bf5f6eaead3.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-6f65a239fe71b9c5.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-c96b767cd2c08987.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-53ca13b5fd5588f4.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-55e4707de826834a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-50b0ddb443385e48.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-e6a747906fbdc69f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-7d8cb84d49138273.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-cc9303ede377e6ce.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-cb46465d1fb2f943.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-698071004a83bc24.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-7d2f690193dfd95a.js → page-0182a99880cd90af.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-81e8876fcc1fc5f5.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/{page-c15ae98c8da775e7.js → page-71a32195e25c4f20.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-f23e8dea759257d1.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-189528b620a028cf.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-e46c63b98994b120.js → page-23eddac39107b793.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-8eaebbb202d06dd8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-ea9205bdc1280d44.js → page-1c4d4ba958f21e95.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-a0b6ba494236ccd8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-9bc104b66c945584.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/{page-ff6bb6ad21bedf2e.js → page-1ca030e6ca5874c2.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/{page-915bc11a351377b6.js → page-e0b199dd271e9637.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-77c9f08e7c6a02be.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-57524fbbc0767395.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-593b875127a14dd7.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/webpack-69817cbefeb8c044.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/css/448757355dabf3ee.css +1 -0
- package/.next/standalone/agents-manage-ui/package.json +3 -2
- package/.next/standalone/packages/agents-core/package.json +1 -1
- package/package.json +6 -5
- package/src/components/agent/ship/api-guide.tsx +53 -0
- package/src/components/agent/ship/chat-ui-guide/chat-ui-code.tsx +101 -0
- package/src/components/agent/ship/chat-ui-guide/chat-ui-guide.tsx +93 -0
- package/src/components/agent/ship/chat-ui-guide/chat-ui-preview-form.tsx +83 -0
- package/src/components/agent/ship/chat-ui-guide/chat-ui-preview.tsx +105 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/index.ts +7 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/js-chat-button.ts +10 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/js-embedded-chat.ts +22 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/js-script-tag.ts +9 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/js-sidebar-chat.ts +25 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/react-component.ts +10 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/react-install.ts +5 -0
- package/src/components/agent/ship/chat-ui-guide/snippets/react-sidebar-component.ts +17 -0
- package/src/components/agent/ship/guide-header.tsx +30 -0
- package/src/components/agent/ship/mcp-guide/mcp-guide.tsx +96 -0
- package/src/components/agent/ship/mcp-guide/snippets/claude-code.ts +16 -0
- package/src/components/agent/ship/mcp-guide/snippets/cursor.ts +27 -0
- package/src/components/agent/ship/mcp-guide/snippets/index.ts +4 -0
- package/src/components/agent/ship/mcp-guide/snippets/vscode.ts +27 -0
- package/src/components/agent/ship/mcp-guide/snippets/windsurf.ts +25 -0
- package/src/components/agent/ship/node-js-guide.tsx +67 -0
- package/src/components/agent/ship/sdk-guide.tsx +102 -0
- package/src/components/agent/ship/ship-modal.tsx +143 -0
- package/src/components/agent/ship/utils.ts +25 -0
- package/src/components/agent/toolbar/toolbar.tsx +2 -0
- package/src/components/data-components/render/component-render-generator.tsx +9 -12
- package/src/components/icons/claude.tsx +21 -0
- package/src/components/icons/cursor.tsx +15 -0
- package/src/components/icons/vercel.tsx +14 -0
- package/src/components/icons/vs-code.tsx +24 -0
- package/src/components/icons/windsurf.tsx +15 -0
- package/src/components/traces/conversation-stats/conversation-stats-card.tsx +3 -1
- package/src/components/traces/traces-overview.tsx +3 -34
- package/src/components/ui/color-picker.tsx +47 -0
- package/src/components/ui/dialog.tsx +38 -10
- package/src/components/ui/tabs.tsx +29 -9
- package/src/hooks/use-traces.ts +18 -26
- package/src/lib/api/signoz-stats.ts +964 -322
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3058.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3411.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/44.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4475.js +0 -74
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5226.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6563.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/824.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8717.js +0 -7
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9682.js +0 -123
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9839.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/15856-09dd885eb1330cba.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/1721-4d8716eb27abc2c8.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/20693-1b34b01549c71fcd.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/21009-32af3656c7538d1b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/22205-1bace94483c408ae.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/26959-ac6be17f7b14778b.js +0 -4
- package/.next/standalone/agents-manage-ui/.next/static/chunks/3090-bbe5765d804ebb36.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/37058-88c6556ebedb9d47.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/37226-a04406434cd8bb5f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/39411-b45d75fa377f778e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/47380-98ba7170ef8d47cd.js +0 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/50118.0a75e445f38b54be.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/54339.3d0067056dcd81a1.js +0 -21
- package/.next/standalone/agents-manage-ui/.next/static/chunks/55157-25e4c0b9f9d95f2c.js +0 -123
- package/.next/standalone/agents-manage-ui/.next/static/chunks/5571-7243ce6d41b18de5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/56117-a96a6a5a77f14ba0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/56162-970c1b81558d4bca.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/71398-3fbf54b6c8e25975.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/71839-e9ba4ed0b3ce7668.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/72678-92694f0704111218.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/78155-b4ada7f3606c9500.js +0 -197
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7965-6ec8bb2f6ab4a57f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/81385-bf660a5d2d61583a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/85210-a48f33a97c42ba99.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/9766-12c570d61ec6ab54.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/98117-23cc4134c1bc5526.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-f6909ef0e36e83d3.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-5bcce50a7369027d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-4f8f822dc984bab5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-70474b3352e20230.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-eee56fb9e68a5469.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-27c9783b1054af7c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-62cc5c4e7273743e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-1d870519af1de14f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-afeb3a9ba10e2b48.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-ef0bcfa10d3230f0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-e88938c222a3c078.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-4cd4c039950c1e8a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/[externalAgentId]/edit/page-efe109da0842b109.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/new/page-87aaa592263ff249.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/external-agents/page-657f23ce4544afe0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-98c1cab8f9fe9c9f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-235dc834e8662b78.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/page-79f7660553bed38e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-ace899bb92548a8f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-ca8fd5c9aa128707.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-82ddcfd4e4184e13.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/webpack-314a6b9a2162cc11.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/79e788a7e7a93a1e.css +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{2KQOZYEPBYWDWg3EXfAQ- → Zw-_W6mUE-0gHQmRnvFFs}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{2KQOZYEPBYWDWg3EXfAQ- → Zw-_W6mUE-0gHQmRnvFFs}/_ssgManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/chunks/{21f4193d.7ccc1aebbebe4f76.js → 21f4193d-7ccc1aebbebe4f76.js} +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/chunks/{9f915ca0.83c49af9bcc715c2.js → 9f915ca0-83c49af9bcc715c2.js} +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/chunks/{acf92edd.26fc0407d83498c7.js → acf92edd-26fc0407d83498c7.js} +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { useParams } from 'next/navigation';
|
|
2
|
+
import { Streamdown } from 'streamdown';
|
|
3
|
+
import { DOCS_BASE_URL } from '@/constants/page-descriptions';
|
|
4
|
+
import { useRuntimeConfig } from '@/contexts/runtime-config-context';
|
|
5
|
+
import { DocsLink, Header } from './guide-header';
|
|
6
|
+
|
|
7
|
+
export function NodeJsGuide() {
|
|
8
|
+
const { PUBLIC_INKEEP_AGENTS_RUN_API_URL } = useRuntimeConfig();
|
|
9
|
+
const apiUrl = `${PUBLIC_INKEEP_AGENTS_RUN_API_URL}/api/chat`;
|
|
10
|
+
const { agentId } = useParams();
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<div>
|
|
14
|
+
<Header.Container>
|
|
15
|
+
<Header.Title title="Node.js Backend" />
|
|
16
|
+
<DocsLink href={`${DOCS_BASE_URL}/talk-to-your-agents/chat-api`} />
|
|
17
|
+
</Header.Container>
|
|
18
|
+
<Streamdown>
|
|
19
|
+
{`Example Next.js API route (\`app/api/chat/route.ts\`):
|
|
20
|
+
|
|
21
|
+
\`\`\`typescript
|
|
22
|
+
export async function POST(req: Request) {
|
|
23
|
+
const { messages, conversationId } = await req.json();
|
|
24
|
+
|
|
25
|
+
const response = await fetch('${apiUrl}', {
|
|
26
|
+
method: 'POST',
|
|
27
|
+
headers: {
|
|
28
|
+
'Authorization': \`Bearer \${process.env.INKEEP_AGENT_API_KEY}\`,
|
|
29
|
+
'Content-Type': 'application/json',
|
|
30
|
+
'x-emit-operations': 'true',
|
|
31
|
+
},
|
|
32
|
+
body: JSON.stringify({
|
|
33
|
+
messages,
|
|
34
|
+
conversationId,
|
|
35
|
+
}),
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
return new Response(response.body, {
|
|
39
|
+
headers: {
|
|
40
|
+
'Content-Type': 'text/event-stream',
|
|
41
|
+
'Cache-Control': 'no-cache',
|
|
42
|
+
'Connection': 'keep-alive',
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
\`\`\`
|
|
47
|
+
|
|
48
|
+
Example response (Server-Sent Events stream):
|
|
49
|
+
|
|
50
|
+
\`\`\`bash
|
|
51
|
+
data: {"type":"data-operation","data":{"type":"agent_initializing","details":{"sessionId":"chatds-12345678910111","agentId":"${agentId}"}}}
|
|
52
|
+
|
|
53
|
+
data: {"type":"text-start","id":"1234567891011-abcdefghi"}
|
|
54
|
+
|
|
55
|
+
data: {"type":"text-delta","id":"1234567891011-abcdefghi","delta":"I answer"}
|
|
56
|
+
|
|
57
|
+
data: {"type":"text-delta","id":"1234567891011-abcdefghi","delta":" technical questions"}
|
|
58
|
+
|
|
59
|
+
data: {"type":"text-end","id":"1234567891011-abcdefghi"}
|
|
60
|
+
|
|
61
|
+
data: [DONE]
|
|
62
|
+
\`\`\`
|
|
63
|
+
`}
|
|
64
|
+
</Streamdown>
|
|
65
|
+
</div>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Streamdown } from 'streamdown';
|
|
2
|
+
import { DOCS_BASE_URL } from '@/constants/page-descriptions';
|
|
3
|
+
import { useRuntimeConfig } from '@/contexts/runtime-config-context';
|
|
4
|
+
import { DocsLink, Header } from './guide-header';
|
|
5
|
+
|
|
6
|
+
export function SdkGuide() {
|
|
7
|
+
const { PUBLIC_INKEEP_AGENTS_RUN_API_URL } = useRuntimeConfig();
|
|
8
|
+
const apiUrl = `${PUBLIC_INKEEP_AGENTS_RUN_API_URL}/api/chat`;
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<div>
|
|
12
|
+
<Header.Container>
|
|
13
|
+
<Header.Title title="Vercel SDK" />
|
|
14
|
+
<DocsLink href={`${DOCS_BASE_URL}/talk-to-your-agents/vercel-ai-sdk/use-chat`} />
|
|
15
|
+
</Header.Container>
|
|
16
|
+
<Streamdown>
|
|
17
|
+
{`Install the package:
|
|
18
|
+
|
|
19
|
+
\`\`\`bash
|
|
20
|
+
npm install ai @ai-sdk/react
|
|
21
|
+
\`\`\`
|
|
22
|
+
|
|
23
|
+
Example Next.js implementation using Vercel AI SDK:
|
|
24
|
+
|
|
25
|
+
\`\`\`tsx
|
|
26
|
+
"use client";
|
|
27
|
+
|
|
28
|
+
import { useChat } from "@ai-sdk/react";
|
|
29
|
+
import { DefaultChatTransport } from "ai";
|
|
30
|
+
import { useState } from "react";
|
|
31
|
+
|
|
32
|
+
export default function Page() {
|
|
33
|
+
const { messages, sendMessage } = useChat({
|
|
34
|
+
transport: new DefaultChatTransport({
|
|
35
|
+
api: "${apiUrl}",
|
|
36
|
+
headers: {
|
|
37
|
+
Authorization: "Bearer INKEEP_AGENT_API_KEY",
|
|
38
|
+
},
|
|
39
|
+
}),
|
|
40
|
+
});
|
|
41
|
+
const [input, setInput] = useState("");
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
<div className="max-w-2xl mx-auto p-4">
|
|
45
|
+
<div className="space-y-4 mb-4">
|
|
46
|
+
{messages.map((message) => (
|
|
47
|
+
<div key={message.id} className="border rounded p-3">
|
|
48
|
+
<div className="font-semibold mb-2">
|
|
49
|
+
{message.role === "user" ? "👤 User" : "🤖 Assistant"}
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<div className="space-y-2">
|
|
53
|
+
{message.parts.map((part, partIndex) => {
|
|
54
|
+
const partKey = \`\${message.id}-\${part.type}-\${partIndex}\`;
|
|
55
|
+
|
|
56
|
+
if (part.type === "text") {
|
|
57
|
+
return (
|
|
58
|
+
<div key={partKey} className="whitespace-pre-wrap">
|
|
59
|
+
{part.text}
|
|
60
|
+
</div>
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return null;
|
|
65
|
+
})}
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
))}
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<form
|
|
72
|
+
onSubmit={(e) => {
|
|
73
|
+
e.preventDefault();
|
|
74
|
+
if (input.trim()) {
|
|
75
|
+
sendMessage({ text: input });
|
|
76
|
+
setInput("");
|
|
77
|
+
}
|
|
78
|
+
}}
|
|
79
|
+
className="flex gap-2"
|
|
80
|
+
>
|
|
81
|
+
<input
|
|
82
|
+
value={input}
|
|
83
|
+
onChange={(e) => setInput(e.target.value)}
|
|
84
|
+
placeholder="Type your message..."
|
|
85
|
+
className="flex-1 p-2 border rounded"
|
|
86
|
+
/>
|
|
87
|
+
<button
|
|
88
|
+
type="submit"
|
|
89
|
+
className="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600"
|
|
90
|
+
>
|
|
91
|
+
Send
|
|
92
|
+
</button>
|
|
93
|
+
</form>
|
|
94
|
+
</div>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
\`\`\`
|
|
98
|
+
`}
|
|
99
|
+
</Streamdown>
|
|
100
|
+
</div>
|
|
101
|
+
);
|
|
102
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Hexagon,
|
|
3
|
+
Key,
|
|
4
|
+
type LucideProps,
|
|
5
|
+
MessagesSquare,
|
|
6
|
+
RocketIcon,
|
|
7
|
+
SquareTerminal,
|
|
8
|
+
X,
|
|
9
|
+
} from 'lucide-react';
|
|
10
|
+
import Link from 'next/link';
|
|
11
|
+
import { useParams } from 'next/navigation';
|
|
12
|
+
import type { ComponentType } from 'react';
|
|
13
|
+
import { MCPIcon } from '@/components/icons/mcp-icon';
|
|
14
|
+
import { VercelIcon } from '@/components/icons/vercel';
|
|
15
|
+
import { Button } from '@/components/ui/button';
|
|
16
|
+
import {
|
|
17
|
+
Dialog,
|
|
18
|
+
DialogClose,
|
|
19
|
+
DialogContent,
|
|
20
|
+
DialogDescription,
|
|
21
|
+
DialogHeader,
|
|
22
|
+
DialogTitle,
|
|
23
|
+
DialogTrigger,
|
|
24
|
+
} from '@/components/ui/dialog';
|
|
25
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
|
|
26
|
+
import { ApiGuide } from './api-guide';
|
|
27
|
+
import { ChatUIGuide } from './chat-ui-guide/chat-ui-guide';
|
|
28
|
+
import { McpGuide } from './mcp-guide/mcp-guide';
|
|
29
|
+
import { NodeJsGuide } from './node-js-guide';
|
|
30
|
+
import { SdkGuide } from './sdk-guide';
|
|
31
|
+
|
|
32
|
+
const TAB_VALUES = {
|
|
33
|
+
CHAT_UI: 'chat-ui',
|
|
34
|
+
MCP_SERVER: 'mcp-server',
|
|
35
|
+
SDK: 'sdk',
|
|
36
|
+
NODE_JS: 'node-js',
|
|
37
|
+
API: 'api',
|
|
38
|
+
} as const;
|
|
39
|
+
|
|
40
|
+
type TabValue = (typeof TAB_VALUES)[keyof typeof TAB_VALUES];
|
|
41
|
+
|
|
42
|
+
type TabItem = {
|
|
43
|
+
label: string;
|
|
44
|
+
value: TabValue;
|
|
45
|
+
IconComponent?: React.ComponentType<LucideProps>;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const shipModalTabComponents: Record<TabValue, ComponentType> = {
|
|
49
|
+
[TAB_VALUES.CHAT_UI]: ChatUIGuide,
|
|
50
|
+
[TAB_VALUES.MCP_SERVER]: McpGuide,
|
|
51
|
+
[TAB_VALUES.SDK]: SdkGuide,
|
|
52
|
+
[TAB_VALUES.NODE_JS]: NodeJsGuide,
|
|
53
|
+
[TAB_VALUES.API]: ApiGuide,
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const shipModalTabItems: TabItem[] = [
|
|
57
|
+
{
|
|
58
|
+
label: 'Chat UI',
|
|
59
|
+
value: TAB_VALUES.CHAT_UI,
|
|
60
|
+
IconComponent: MessagesSquare,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
label: 'MCP Server',
|
|
64
|
+
value: TAB_VALUES.MCP_SERVER,
|
|
65
|
+
IconComponent: MCPIcon,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
label: 'Vercel SDK',
|
|
69
|
+
value: TAB_VALUES.SDK,
|
|
70
|
+
IconComponent: VercelIcon,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
label: 'Node JS',
|
|
74
|
+
value: TAB_VALUES.NODE_JS,
|
|
75
|
+
IconComponent: Hexagon,
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
label: 'REST API',
|
|
79
|
+
value: TAB_VALUES.API,
|
|
80
|
+
IconComponent: SquareTerminal,
|
|
81
|
+
},
|
|
82
|
+
];
|
|
83
|
+
|
|
84
|
+
export function ShipModal() {
|
|
85
|
+
const params = useParams();
|
|
86
|
+
const { tenantId, projectId } = params;
|
|
87
|
+
return (
|
|
88
|
+
<Dialog>
|
|
89
|
+
<DialogTrigger asChild>
|
|
90
|
+
<Button variant="outline">
|
|
91
|
+
<RocketIcon className="size-4" />
|
|
92
|
+
Ship
|
|
93
|
+
</Button>
|
|
94
|
+
</DialogTrigger>
|
|
95
|
+
<DialogContent className="max-w-full! w-7xl" position="top" showCloseButton={false}>
|
|
96
|
+
<DialogHeader>
|
|
97
|
+
<div className="flex items-center justify-between w-full gap-2">
|
|
98
|
+
<DialogTitle>Talk to your agent</DialogTitle>
|
|
99
|
+
<div className="flex items-center gap-2">
|
|
100
|
+
<Button asChild variant="outline" size="sm">
|
|
101
|
+
<Link
|
|
102
|
+
href={`/${tenantId}/projects/${projectId}/api-keys`}
|
|
103
|
+
target="_blank"
|
|
104
|
+
rel="noreferrer noopener"
|
|
105
|
+
>
|
|
106
|
+
<Key className="size-4" />
|
|
107
|
+
Create API key
|
|
108
|
+
</Link>
|
|
109
|
+
</Button>
|
|
110
|
+
<DialogClose asChild>
|
|
111
|
+
<Button variant="ghost" className="size-8">
|
|
112
|
+
<X className="size-4 text-muted-foreground" />
|
|
113
|
+
<span className="sr-only">Close</span>
|
|
114
|
+
</Button>
|
|
115
|
+
</DialogClose>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
<DialogDescription className="sr-only">Talk to your agent.</DialogDescription>
|
|
119
|
+
</DialogHeader>
|
|
120
|
+
<Tabs defaultValue={TAB_VALUES.CHAT_UI} className="min-w-0">
|
|
121
|
+
<TabsList className="bg-transparent relative rounded-none border-b p-0 w-full justify-start gap-4">
|
|
122
|
+
{shipModalTabItems.map((tab) => (
|
|
123
|
+
<TabsTrigger
|
|
124
|
+
key={tab.value}
|
|
125
|
+
variant="underline"
|
|
126
|
+
value={tab.value}
|
|
127
|
+
className="text-sm gap-2"
|
|
128
|
+
>
|
|
129
|
+
{tab.IconComponent && <tab.IconComponent className="size-4" />}
|
|
130
|
+
{tab.label}
|
|
131
|
+
</TabsTrigger>
|
|
132
|
+
))}
|
|
133
|
+
</TabsList>
|
|
134
|
+
{Object.entries(shipModalTabComponents).map(([value, Component]) => (
|
|
135
|
+
<TabsContent key={value} value={value} className="py-4">
|
|
136
|
+
<Component />
|
|
137
|
+
</TabsContent>
|
|
138
|
+
))}
|
|
139
|
+
</Tabs>
|
|
140
|
+
</DialogContent>
|
|
141
|
+
</Dialog>
|
|
142
|
+
);
|
|
143
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const replaceTemplatePlaceholders = (
|
|
2
|
+
template: string,
|
|
3
|
+
replacements: Record<string, string>
|
|
4
|
+
): string => {
|
|
5
|
+
let result = template;
|
|
6
|
+
for (const [key, value] of Object.entries(replacements)) {
|
|
7
|
+
result = result.replace(new RegExp(`{{${key}}}`, 'g'), value);
|
|
8
|
+
}
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export function toCamelCase(str: string): string {
|
|
13
|
+
return str
|
|
14
|
+
.toLowerCase()
|
|
15
|
+
.replace(/[^a-zA-Z0-9]+(.)/g, (_, char) => char.toUpperCase())
|
|
16
|
+
.replace(/^[^a-zA-Z]+/, '');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const indentJson = (json: string, spaces: number): string => {
|
|
20
|
+
const indent = ' '.repeat(spaces);
|
|
21
|
+
return json
|
|
22
|
+
.split('\n')
|
|
23
|
+
.map((line, index) => (index === 0 ? line : `${indent}${line}`))
|
|
24
|
+
.join('\n');
|
|
25
|
+
};
|
|
@@ -4,6 +4,7 @@ import { Button } from '@/components/ui/button';
|
|
|
4
4
|
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
|
|
5
5
|
import { useAgentStore } from '@/features/agent/state/use-agent-store';
|
|
6
6
|
import { isMacOs } from '@/lib/utils';
|
|
7
|
+
import { ShipModal } from '../ship/ship-modal';
|
|
7
8
|
|
|
8
9
|
interface ToolbarProps {
|
|
9
10
|
onSubmit: () => void;
|
|
@@ -55,6 +56,7 @@ export function Toolbar({
|
|
|
55
56
|
|
|
56
57
|
return (
|
|
57
58
|
<div className="flex gap-2 flex-wrap justify-end content-start">
|
|
59
|
+
{!inPreviewDisabled && <ShipModal />}
|
|
58
60
|
{dirty || inPreviewDisabled ? (
|
|
59
61
|
<Tooltip>
|
|
60
62
|
<TooltipTrigger asChild>
|
|
@@ -16,15 +16,6 @@ import { Textarea } from '@/components/ui/textarea';
|
|
|
16
16
|
import { updateDataComponent } from '@/lib/api/data-components';
|
|
17
17
|
import { DynamicComponentRenderer } from './dynamic-component-renderer';
|
|
18
18
|
|
|
19
|
-
const StyledTabsTrigger = (props: React.ComponentProps<typeof TabsTrigger>) => {
|
|
20
|
-
return (
|
|
21
|
-
<TabsTrigger
|
|
22
|
-
{...props}
|
|
23
|
-
className="bg-transparent data-[state=active]:border-primary dark:data-[state=active]:border-primary h-full rounded-none border-0 border-b-2 border-transparent data-[state=active]:shadow-none data-[state=active]:text-primary data-[state=active]:bg-transparent uppercase font-mono text-xs mt-0.5 pt-2"
|
|
24
|
-
/>
|
|
25
|
-
);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
19
|
interface ComponentPreviewGeneratorProps {
|
|
29
20
|
tenantId: string;
|
|
30
21
|
projectId: string;
|
|
@@ -306,9 +297,15 @@ export function ComponentRenderGenerator({
|
|
|
306
297
|
<Card className="px-2 py-4 pt-0">
|
|
307
298
|
<Tabs defaultValue="render" className="w-full">
|
|
308
299
|
<TabsList className="bg-transparent relative rounded-none border-b p-0 w-full justify-start gap-2">
|
|
309
|
-
<
|
|
310
|
-
|
|
311
|
-
|
|
300
|
+
<TabsTrigger variant="underline" value="render">
|
|
301
|
+
Render
|
|
302
|
+
</TabsTrigger>
|
|
303
|
+
<TabsTrigger variant="underline" value="code">
|
|
304
|
+
Code
|
|
305
|
+
</TabsTrigger>
|
|
306
|
+
<TabsTrigger variant="underline" value="data">
|
|
307
|
+
Sample Data
|
|
308
|
+
</TabsTrigger>
|
|
312
309
|
</TabsList>
|
|
313
310
|
|
|
314
311
|
<TabsContent value="render">
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
|
|
3
|
+
|
|
4
|
+
export const ClaudeIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
|
|
5
|
+
<SvgIcon ref={ref} {...props} strokeWidth={0}>
|
|
6
|
+
<title>Claude icon</title>
|
|
7
|
+
<g clipPath="url(#clip0_23_202)">
|
|
8
|
+
<path
|
|
9
|
+
d="M4.704 15.96L9.432 13.32L9.504 13.08L9.432 12.96H9.192L8.4 12.912L5.712 12.84L3.36 12.72L1.08 12.6L0.504 12.48L0 11.76L0.048 11.4L0.528 11.088L1.224 11.136L2.736 11.256L5.016 11.4L6.672 11.496L9.12 11.784H9.504L9.552 11.616L9.432 11.52L9.336 11.424L6.96 9.84L4.416 8.16L3.072 7.176L2.352 6.696L1.992 6.216L1.848 5.208L2.496 4.488L3.384 4.56L3.6 4.608L4.488 5.304L6.408 6.768L8.88 8.64L9.24 8.928L9.384 8.832L9.408 8.76L9.24 8.496L7.92 6L6.48 3.504L5.832 2.472L5.664 1.848C5.592 1.608 5.568 1.368 5.568 1.128L6.288 0.12L6.72 0L7.728 0.144L8.112 0.48L8.736 1.92L9.72 4.152L11.28 7.176L11.76 8.088L12 8.904L12.072 9.144H12.24V9.024L12.36 7.296L12.6 5.208L12.84 2.52L12.912 1.752L13.296 0.84L14.016 0.36L14.64 0.624L15.12 1.32L15.048 1.752L14.784 3.6L14.16 6.504L13.8 8.472H14.016L14.256 8.208L15.24 6.912L16.896 4.848L17.616 4.008L18.48 3.12L19.032 2.688H20.064L20.808 3.816L20.472 4.992L19.416 6.336L18.528 7.464L17.256 9.168L16.488 10.536L16.56 10.632H16.728L19.608 10.008L21.144 9.744L22.968 9.432L23.808 9.816L23.904 10.2L23.568 11.016L21.6 11.496L19.296 11.976L15.864 12.768L15.816 12.792L15.864 12.864L17.4 13.008L18.072 13.056H19.704L22.728 13.296L23.52 13.776L23.976 14.424L23.904 14.904L22.68 15.528L21.048 15.144L17.208 14.232L15.912 13.92H15.72V14.016L16.824 15.096L18.816 16.896L21.36 19.224L21.48 19.8L21.168 20.28L20.832 20.232L18.624 18.552L17.76 17.832L15.84 16.2H15.72V16.368L16.152 17.016L18.504 20.544L18.624 21.624L18.456 21.96L17.832 22.2L17.184 22.056L15.792 20.136L14.352 17.976L13.224 16.008L13.104 16.104L12.408 23.352L12.096 23.712L11.376 24L10.776 23.52L10.44 22.8L10.776 21.312L11.16 19.392L11.472 17.856L11.76 15.96L11.928 15.336V15.288H11.76L10.32 17.28L8.16 20.232L6.432 22.056L6.024 22.224L5.304 21.864L5.376 21.192L5.76 20.64L8.16 17.568L9.6 15.672L10.56 14.568L10.536 14.448H10.464L4.128 18.576L3 18.72L2.52 18.24L2.568 17.52L2.808 17.28L4.728 15.96H4.704Z"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
/>
|
|
12
|
+
</g>
|
|
13
|
+
<defs>
|
|
14
|
+
<clipPath id="clip0_23_202">
|
|
15
|
+
<rect width="24" height="24" fill="white" />
|
|
16
|
+
</clipPath>
|
|
17
|
+
</defs>
|
|
18
|
+
</SvgIcon>
|
|
19
|
+
));
|
|
20
|
+
|
|
21
|
+
ClaudeIcon.displayName = 'ClaudeIcon';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
|
|
3
|
+
|
|
4
|
+
export const CursorIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
|
|
5
|
+
<SvgIcon ref={ref} {...props} strokeWidth={0}>
|
|
6
|
+
<title>Cursor icon</title>
|
|
7
|
+
<path
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
d="M22.1323 5.6806L12.5245 0.133623C12.216 -0.0445409 11.8353 -0.0445409 11.5268 0.133623L1.91947 5.6806C1.66012 5.83035 1.5 6.10727 1.5 6.40723V17.5928C1.5 17.8923 1.66012 18.1697 1.91947 18.3194L11.5272 23.8664C11.8358 24.0445 12.2164 24.0445 12.525 23.8664L22.1327 18.3194C22.3921 18.1697 22.5522 17.8927 22.5522 17.5928V6.40723C22.5522 6.10774 22.3921 5.83035 22.1327 5.6806H22.1323ZM21.5288 6.85558L12.2539 22.9201C12.1912 23.0283 12.0257 22.9841 12.0257 22.8587V12.3399C12.0257 12.1297 11.9133 11.9353 11.7311 11.8297L2.62176 6.57052C2.51351 6.50784 2.55771 6.34227 2.6831 6.34227H21.2329C21.4963 6.34227 21.6609 6.6278 21.5292 6.85605H21.5288V6.85558Z"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
/>
|
|
12
|
+
</SvgIcon>
|
|
13
|
+
));
|
|
14
|
+
|
|
15
|
+
CursorIcon.displayName = 'CursorIcon';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
|
|
3
|
+
|
|
4
|
+
export const VercelIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
|
|
5
|
+
<SvgIcon ref={ref} {...props} strokeWidth={0}>
|
|
6
|
+
<title>Vercel icon</title>
|
|
7
|
+
<g clipPath="url(#clip0_24_207)">
|
|
8
|
+
<path d="M11.9573 1.5L23.9146 22.2109H0L11.9573 1.5Z" fill="currentColor" />
|
|
9
|
+
</g>
|
|
10
|
+
<defs></defs>
|
|
11
|
+
</SvgIcon>
|
|
12
|
+
));
|
|
13
|
+
|
|
14
|
+
VercelIcon.displayName = 'VercelIcon';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
|
|
3
|
+
|
|
4
|
+
export const VSCodeIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
|
|
5
|
+
<SvgIcon ref={ref} {...props} strokeWidth={0}>
|
|
6
|
+
<title>VS Code icon</title>
|
|
7
|
+
<g clipPath="url(#clip0_22_190)">
|
|
8
|
+
<path
|
|
9
|
+
d="M18.0011 0.957249C18.0011 0.203854 17.1576 0.203846 16.7827 0.29802C17.3075 -0.116349 17.9231 -0.0158829 18.1417 0.10968L23.2103 2.59498C23.6933 2.83179 23.9996 3.32452 23.9996 3.86449V20.2141C23.9996 20.7613 23.6851 21.2593 23.1923 21.4923L18.4229 23.7475C18.0948 23.8887 17.3825 24.2372 16.7827 23.7474C17.5325 23.8888 17.9387 23.3551 18.0011 22.9941V0.957249Z"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
/>
|
|
12
|
+
<path
|
|
13
|
+
d="M16.8439 0.285044C17.2418 0.206418 18.0016 0.242881 18.0016 0.957858V6.58559L2.63451 18.2108C2.3659 18.4141 1.98789 18.3803 1.75911 18.1327L0.175313 16.419C-0.0728021 16.1505 -0.0554421 15.7302 0.213964 15.4834L16.783 0.29863L16.8439 0.285044Z"
|
|
14
|
+
fill="currentColor"
|
|
15
|
+
/>
|
|
16
|
+
<path
|
|
17
|
+
d="M18.0016 17.461L2.63451 5.83572C2.3659 5.63251 1.98789 5.66623 1.75911 5.91379L0.175313 7.62757C-0.0728021 7.89602 -0.0554421 8.31628 0.213964 8.56322L16.783 23.7479C17.5329 23.8892 17.9391 23.3555 18.0016 22.9945V17.461Z"
|
|
18
|
+
fill="currentColor"
|
|
19
|
+
/>
|
|
20
|
+
</g>
|
|
21
|
+
</SvgIcon>
|
|
22
|
+
));
|
|
23
|
+
|
|
24
|
+
VSCodeIcon.displayName = 'VSCodeIcon';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
|
+
import { type IconComponentProps, SvgIcon } from '@/components/ui/svg-icon';
|
|
3
|
+
|
|
4
|
+
export const WindsurfIcon = forwardRef<SVGSVGElement, IconComponentProps>((props, ref) => (
|
|
5
|
+
<SvgIcon ref={ref} {...props} strokeWidth={0}>
|
|
6
|
+
<title>Windsurf icon</title>
|
|
7
|
+
<path
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
d="M23.7787 5.00376H23.55C22.3463 5.00188 21.3695 5.97669 21.3695 7.18024V12.0478C21.3695 13.0198 20.566 13.8072 19.6098 13.8072C19.0417 13.8072 18.4746 13.5213 18.138 13.0414L13.1667 5.94109C12.7542 5.35149 12.083 5 11.3564 5C10.223 5 9.20307 5.96357 9.20307 7.15308V12.0488C9.20307 13.0208 8.40623 13.8081 7.44346 13.8081C6.87349 13.8081 6.30724 13.5222 5.97068 13.0424L0.407794 5.09655C0.28217 4.91657 0 5.00564 0 5.22498V9.47015C0 9.68481 0.0656303 9.89291 0.188421 10.0691L5.66319 17.8874C5.98663 18.3495 6.46382 18.6926 7.01408 18.8173C8.39123 19.1303 9.65869 18.0702 9.65869 16.7195V11.8266C9.65869 10.8546 10.4462 10.0672 11.4183 10.0672H11.4211C12.007 10.0672 12.5564 10.3531 12.8929 10.833L17.8652 17.9324C18.2787 18.523 18.9152 18.8735 19.6745 18.8735C20.8332 18.8735 21.826 17.909 21.826 16.7204V11.8257C21.826 10.8537 22.6135 10.0663 23.5856 10.0663H23.7797C23.9015 10.0663 24 9.96787 24 9.84604V5.22402C24 5.10219 23.9015 5.00376 23.7797 5.00376H23.7787Z"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
/>
|
|
12
|
+
</SvgIcon>
|
|
13
|
+
));
|
|
14
|
+
|
|
15
|
+
WindsurfIcon.displayName = 'WindsurfIcon';
|
|
@@ -30,6 +30,7 @@ interface ConversationStatsCardProps {
|
|
|
30
30
|
};
|
|
31
31
|
searchQuery?: string;
|
|
32
32
|
onSearchChange?: (query: string) => void;
|
|
33
|
+
totalConversations?: number;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
export function ConversationStatsCard({
|
|
@@ -41,6 +42,7 @@ export function ConversationStatsCard({
|
|
|
41
42
|
pagination,
|
|
42
43
|
searchQuery = '',
|
|
43
44
|
onSearchChange,
|
|
45
|
+
totalConversations,
|
|
44
46
|
}: ConversationStatsCardProps) {
|
|
45
47
|
const [localQuery, setLocalQuery] = React.useState<string>(searchQuery);
|
|
46
48
|
const [searchError, setSearchError] = React.useState<string | null>(null);
|
|
@@ -109,7 +111,7 @@ export function ConversationStatsCard({
|
|
|
109
111
|
</div>
|
|
110
112
|
|
|
111
113
|
<Badge variant="code" className="text-xs">
|
|
112
|
-
{
|
|
114
|
+
{totalConversations ?? 0}
|
|
113
115
|
</Badge>
|
|
114
116
|
</CardTitle>
|
|
115
117
|
|
|
@@ -53,11 +53,6 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
|
|
|
53
53
|
const [debouncedSearchQuery, setDebouncedSearchQuery] = useState<string>('');
|
|
54
54
|
const [availableSpanNames, setAvailableSpanNames] = useState<string[]>([]);
|
|
55
55
|
const [spanNamesLoading, setSpanNamesLoading] = useState(false);
|
|
56
|
-
// Aggregate stats now come from useAggregateStats hook
|
|
57
|
-
const [aiCallsByAgent, setAiCallsByAgent] = useState<
|
|
58
|
-
Array<{ agentId: string; totalCalls: number }>
|
|
59
|
-
>([]);
|
|
60
|
-
const [_aiCallsLoading, setAiCallsLoading] = useState(true);
|
|
61
56
|
const [activityData, setActivityData] = useState<Array<{ date: string; count: number }>>([]);
|
|
62
57
|
const [activityLoading, setActivityLoading] = useState(true);
|
|
63
58
|
|
|
@@ -140,7 +135,7 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
|
|
|
140
135
|
filters: spanFilters,
|
|
141
136
|
projectId: projectId as string,
|
|
142
137
|
searchQuery: debouncedSearchQuery,
|
|
143
|
-
pagination: {
|
|
138
|
+
pagination: { pageSize: 10 },
|
|
144
139
|
agentId: selectedAgent,
|
|
145
140
|
});
|
|
146
141
|
|
|
@@ -156,24 +151,6 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
|
|
|
156
151
|
|
|
157
152
|
// Aggregate stats now come directly from server-side aggregation
|
|
158
153
|
|
|
159
|
-
// Fetch AI calls by agent
|
|
160
|
-
useEffect(() => {
|
|
161
|
-
const fetchAICallsByAgent = async () => {
|
|
162
|
-
try {
|
|
163
|
-
setAiCallsLoading(true);
|
|
164
|
-
const client = getSigNozStatsClient();
|
|
165
|
-
const aiCallsData = await client.getAICallsByAgent(startTime, endTime, projectId as string);
|
|
166
|
-
setAiCallsByAgent(aiCallsData);
|
|
167
|
-
} catch (err) {
|
|
168
|
-
console.error('Error fetching AI calls by agent:', err);
|
|
169
|
-
} finally {
|
|
170
|
-
setAiCallsLoading(false);
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
fetchAICallsByAgent();
|
|
175
|
-
}, [startTime, endTime, projectId]);
|
|
176
|
-
|
|
177
154
|
// Fetch conversations per day activity
|
|
178
155
|
useEffect(() => {
|
|
179
156
|
const fetchActivity = async () => {
|
|
@@ -239,15 +216,6 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
|
|
|
239
216
|
// Filter stats based on selected agent (for aggregate calculations)
|
|
240
217
|
// Server-side pagination and filtering is now handled by the hooks
|
|
241
218
|
|
|
242
|
-
// Get AI calls for selected agent
|
|
243
|
-
const selectedAgentAICalls = useMemo(() => {
|
|
244
|
-
if (!selectedAgent) {
|
|
245
|
-
return aggregateStats.totalAICalls;
|
|
246
|
-
}
|
|
247
|
-
const agentAICalls = aiCallsByAgent.find((ac) => ac.agentId === selectedAgent);
|
|
248
|
-
return agentAICalls?.totalCalls || 0;
|
|
249
|
-
}, [selectedAgent, aiCallsByAgent, aggregateStats.totalAICalls]);
|
|
250
|
-
|
|
251
219
|
if (error) {
|
|
252
220
|
return (
|
|
253
221
|
<div className="space-y-4">
|
|
@@ -424,7 +392,7 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
|
|
|
424
392
|
{/* AI Usage */}
|
|
425
393
|
<StatCard
|
|
426
394
|
title="AI calls"
|
|
427
|
-
stat={
|
|
395
|
+
stat={aggregateStats.totalAICalls}
|
|
428
396
|
statDescription={`Over ${aggregateStats.totalConversations} conversations`}
|
|
429
397
|
isLoading={aggregateLoading}
|
|
430
398
|
Icon={SparklesIcon}
|
|
@@ -448,6 +416,7 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
|
|
|
448
416
|
pagination={pagination}
|
|
449
417
|
searchQuery={searchQuery}
|
|
450
418
|
onSearchChange={setSearchQuery}
|
|
419
|
+
totalConversations={aggregateStats.totalConversations}
|
|
451
420
|
/>
|
|
452
421
|
</div>
|
|
453
422
|
);
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Popover, PopoverContent, PopoverTrigger } from '@radix-ui/react-popover';
|
|
2
|
+
import { HexColorInput, HexColorPicker } from 'react-colorful';
|
|
3
|
+
import { Button } from '@/components/ui/button';
|
|
4
|
+
import { cn } from '@/lib/utils';
|
|
5
|
+
|
|
6
|
+
interface ColorPickerInputProps {
|
|
7
|
+
color: string;
|
|
8
|
+
setColor: (color: string) => void;
|
|
9
|
+
placeholder: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function ColorPickerInput({ placeholder, color, setColor }: ColorPickerInputProps) {
|
|
13
|
+
return (
|
|
14
|
+
<div className="relative flex items-center flex-row max-w-full">
|
|
15
|
+
<div className="absolute left-3 text-sm text-muted-foreground">#</div>
|
|
16
|
+
<HexColorInput
|
|
17
|
+
className={cn(
|
|
18
|
+
'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',
|
|
19
|
+
'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',
|
|
20
|
+
'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive disabled:bg-muted',
|
|
21
|
+
'pl-7 pr-12'
|
|
22
|
+
)}
|
|
23
|
+
color={color}
|
|
24
|
+
onChange={setColor}
|
|
25
|
+
placeholder={placeholder}
|
|
26
|
+
/>
|
|
27
|
+
<div className="z-10 absolute right-3">
|
|
28
|
+
<Popover>
|
|
29
|
+
<PopoverTrigger asChild>
|
|
30
|
+
<Button
|
|
31
|
+
aria-label="color picker"
|
|
32
|
+
className="flex flex-row gap-2 rounded w-6 h-6"
|
|
33
|
+
size="sm"
|
|
34
|
+
variant="ghost"
|
|
35
|
+
style={{ background: color }}
|
|
36
|
+
>
|
|
37
|
+
<span className="sr-only">Color picker</span>
|
|
38
|
+
</Button>
|
|
39
|
+
</PopoverTrigger>
|
|
40
|
+
<PopoverContent className="flex flex-row w-fit p-2">
|
|
41
|
+
<HexColorPicker color={color} onChange={setColor} />
|
|
42
|
+
</PopoverContent>
|
|
43
|
+
</Popover>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
47
|
+
}
|