@inkeep/agents-manage-ui 0.18.1 → 0.19.0
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 +224 -224
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +7 -7
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +5 -5
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +2 -2
- package/.next/standalone/agents-manage-ui/.next/routes-manifest.json +28 -28
- 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_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/{graphs/[graphId] → 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 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/{graphs → 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 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_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_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_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_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_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/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.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +7 -7
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2067.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2083.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3509.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4087.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4154.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6641.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{2219.js → 6836.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7457.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7504.js +184 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7711.js +5 -5
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8498.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8961.js +1 -0
- 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/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/20874-08310a7ec3b20498.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/23624-24cf5c441db07bb8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{34281.5977928acacdf41c.js → 34281.1bf5026a1cfe5341.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{37213-a3d5fa67db657652.js → 37213-4ddda8db7bed5851.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/49858-7df5d3e19fc00977.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/71558-452532a4a91f1f8c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7190-756a652b28a2506a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/78225-048fec2920ee12a7.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/92775-d3dc9c35a7a9d12c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/error-8ae206d1430882ab.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/{graphs/[graphId]/loading-2e73ab0d984262a3.js → agents/[agentId]/loading-721e10fd249e4b77.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/page-6698176eeabcc156.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/error-aa8e3feab2fca22e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/loading-f63f184c7d568cae.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/page-1d103e4d651d7a06.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/page-84c3978faa593514.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-046ce91f9f4b58d1.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-79453364e7ee1e6e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-f63f184c7d568cae.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-79453364e7ee1e6e.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/{page-0e4e8d994b8c515b.js → page-8efa71d1665595b1.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-567703a1de3eb0cb.js → page-25eac5b6eff6c429.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-f63f184c7d568cae.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/{page-567703a1de3eb0cb.js → page-25eac5b6eff6c429.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-ea168ca8954c0f11.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/{page-425506e0e283e21c.js → page-73c6f90aee5d7131.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-9af967edcbcc262c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-f63f184c7d568cae.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-39bb464377ffce09.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-c01750f081055384.js → page-5e91f67243336c39.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{layout-2e73ab0d984262a3.js → layout-721e10fd249e4b77.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-ec8f69f612ee910a.js → page-9e93a22f4ce731fc.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-465374bbcf614837.js → page-cd80af85c7c3f0d9.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/{page-3b35ec1ae9cfc841.js → page-e58d76ff092f7998.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-bbc69ed5bac228d6.js → page-e729f6c22e2efd93.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/ai-calls/{page-19d7430a79f63bd4.js → page-00cee6f3d629b552.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-48512f59a08d0878.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-fbeca2b1ed7d223a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-f63f184c7d568cae.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/{page-243899de5c62b46e.js → page-99398afc3638246f.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-af34e7ee2aaa93dd.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-bae1a6a598e24abf.js → webpack-f66da7226d8e2dc1.js} +1 -1
- package/.next/standalone/agents-manage-ui/package.json +2 -1
- package/.next/standalone/package.json +1 -0
- package/.next/standalone/packages/agents-core/package.json +3 -1
- package/README.md +2 -2
- package/package.json +5 -4
- package/src/app/[tenantId]/page.tsx +1 -1
- package/src/app/[tenantId]/projects/[projectId]/{graphs/[graphId] → agents/[agentId]}/error.tsx +3 -3
- package/src/app/[tenantId]/projects/[projectId]/{graphs/[graphId] → agents/[agentId]}/loading.tsx +1 -1
- package/src/app/[tenantId]/projects/[projectId]/{graphs/[graphId] → agents/[agentId]}/page.tsx +14 -14
- package/src/app/[tenantId]/projects/[projectId]/{graphs → agents}/error.tsx +1 -1
- package/src/app/[tenantId]/projects/[projectId]/{graphs → agents}/loading.tsx +3 -3
- package/src/app/[tenantId]/projects/[projectId]/{graphs → agents}/new/page.tsx +6 -6
- package/src/app/[tenantId]/projects/[projectId]/agents/page.tsx +50 -0
- package/src/app/[tenantId]/projects/[projectId]/api-keys/page.tsx +12 -12
- package/src/app/[tenantId]/projects/[projectId]/page.tsx +1 -1
- package/src/app/api/signoz/conversations/[conversationId]/route.ts +32 -32
- package/src/app/api/signoz/route.ts +1 -1
- package/src/app/layout.tsx +1 -1
- package/src/app/page.tsx +1 -1
- package/src/components/{graph/graph.tsx → agent/agent.tsx} +70 -70
- package/src/components/{graph/configuration/graph-types.tsx → agent/configuration/agent-types.tsx} +7 -7
- package/src/components/agent/configuration/model-options.tsx +74 -0
- package/src/components/{graph → agent}/configuration/node-types.tsx +12 -12
- package/src/components/{graph/error-display/graph-error-summary.tsx → agent/error-display/agent-error-summary.tsx} +21 -21
- package/src/components/{graph → agent}/error-display/error-indicator.tsx +2 -2
- package/src/components/{graph → agent}/node-library/node-library.tsx +1 -1
- package/src/components/{graph → agent}/nodes/external-agent-node.tsx +3 -3
- package/src/components/{graph → agent}/nodes/function-tool-node.tsx +2 -2
- package/src/components/{graph → agent}/nodes/mcp-node.tsx +2 -2
- package/src/components/{graph/nodes/agent-node.tsx → agent/nodes/sub-agent-node.tsx} +8 -8
- package/src/components/{graph → agent}/playground/chat-widget.tsx +8 -5
- package/src/components/{graph → agent}/playground/playground.tsx +3 -3
- package/src/components/{graph → agent}/sidepane/edges/edge-editor.tsx +2 -2
- package/src/components/{graph → agent}/sidepane/metadata/context-config.tsx +3 -3
- package/src/components/{graph → agent}/sidepane/metadata/metadata-editor.tsx +34 -34
- package/src/components/{graph → agent}/sidepane/nodes/external-agent-node-editor.tsx +4 -4
- package/src/components/{graph → agent}/sidepane/nodes/mcp-node-editor.tsx +4 -4
- package/src/components/{graph → agent}/sidepane/nodes/model-section.tsx +11 -11
- package/src/components/{graph → agent}/sidepane/nodes/model-selector.tsx +1 -1
- package/src/components/{graph/sidepane/nodes/agent-node-editor.tsx → agent/sidepane/nodes/sub-agent-node-editor.tsx} +9 -9
- package/src/components/{graph → agent}/sidepane/sidepane.tsx +10 -10
- package/src/components/{graph → agent}/toolbar/toolbar.tsx +5 -5
- package/src/components/{graphs/graph-item-menu.tsx → agents/agent-item-menu.tsx} +6 -6
- package/src/components/{graphs/graph-item.tsx → agents/agent-item.tsx} +7 -7
- package/src/components/agents/agents-list.tsx +20 -0
- package/src/components/{graphs/delete-graph-confirmation.tsx → agents/delete-agent-confirmation.tsx} +11 -11
- package/src/components/{graphs/new-graph-item.tsx → agents/new-agent-item.tsx} +4 -4
- package/src/components/api-keys/api-keys-table.tsx +4 -4
- package/src/components/api-keys/form/api-key-form.tsx +8 -8
- package/src/components/api-keys/form/form-configuration.tsx +1 -1
- package/src/components/api-keys/form/validation.ts +1 -1
- package/src/components/api-keys/new-api-key-dialog.tsx +7 -7
- package/src/components/form/prompt-editor.tsx +2 -2
- package/src/components/icons/empty-state/{graphs.tsx → agents.tsx} +2 -2
- package/src/components/projects/form/form-configuration.ts +1 -1
- package/src/components/projects/form/model-inheritance-info.tsx +1 -1
- package/src/components/projects/form/project-form.tsx +2 -2
- package/src/components/projects/form/project-models-section.tsx +2 -2
- package/src/components/projects/form/project-stopwhen-section.tsx +4 -4
- package/src/components/projects/new-project-dialog.tsx +1 -1
- package/src/components/sidebar-nav/sidebar-nav.tsx +2 -2
- package/src/components/traces/ai-calls-breakdown.tsx +36 -36
- package/src/components/traces/conversation-detail.tsx +3 -3
- package/src/components/traces/conversation-stats/conversation-list-item.tsx +3 -3
- package/src/components/traces/filters/{graph-filter.tsx → agent-filter.tsx} +18 -18
- package/src/components/traces/filters/span-filters.tsx +5 -5
- package/src/components/traces/timeline/render-panel-content.tsx +15 -23
- package/src/components/traces/timeline/span-attributes.tsx +1 -1
- package/src/components/traces/timeline/timeline-wrapper.tsx +1 -1
- package/src/components/traces/timeline/types.ts +3 -3
- package/src/components/traces/traces-overview.tsx +31 -31
- package/src/components/ui/inheritance-indicator.tsx +12 -13
- package/src/constants/page-descriptions.tsx +4 -4
- package/src/features/{graph → agent}/commands/commands.ts +18 -18
- package/src/features/{graph → agent}/domain/__tests__/roundtrip.test.ts +17 -17
- package/src/features/{graph → agent}/domain/__tests__/serialize.test.ts +29 -29
- package/src/features/agent/domain/agent-initializer-helpers.ts +61 -0
- package/src/features/{graph → agent}/domain/deserialize.ts +7 -7
- package/src/features/{graph → agent}/domain/index.ts +1 -1
- package/src/features/{graph → agent}/domain/serialize.ts +23 -23
- package/src/features/{graph/state/use-graph-store.ts → agent/state/use-agent-store.ts} +25 -25
- package/src/features/{graph/ui/use-graph-shortcuts.ts → agent/ui/use-agent-shortcuts.ts} +3 -3
- package/src/hooks/{use-graph-errors.ts → use-agent-errors.ts} +5 -5
- package/src/hooks/use-ai-calls-query-state.ts +5 -5
- package/src/hooks/use-auto-prefill-id-zustand.ts +1 -1
- package/src/hooks/use-node-editor.ts +3 -3
- package/src/hooks/use-side-pane.ts +2 -2
- package/src/hooks/use-traces.ts +6 -6
- package/src/lib/README.md +19 -19
- package/src/lib/actions/{graph-full.ts → agent-full.ts} +51 -51
- package/src/lib/api/agent-full-client.ts +109 -0
- package/src/lib/api/signoz-stats.ts +88 -88
- package/src/lib/events.ts +1 -1
- package/src/lib/index.ts +23 -23
- package/src/lib/services/save-agent.ts +14 -0
- package/src/lib/types/{graph-full.ts → agent-full.ts} +19 -19
- package/src/lib/utils/{graph-error-parser.ts → agent-error-parser.ts} +42 -43
- package/src/lib/utils/orphaned-tools-detector.ts +5 -5
- package/src/lib/utils/project-redirect.ts +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js +0 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page_client-reference-manifest.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js +0 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page_client-reference-manifest.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page.js +0 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page_client-reference-manifest.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2539.js +0 -184
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4045.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6709.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/804.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9147.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/23624-e46204ab16d88ea6.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/26133-a58a4ae4fea4e563.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/48130-d79da4489e6e5400.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/49858-4c276f889c13606c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/57167-a86a3c94e5831a59.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/71558-d1be134327bfb796.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/92775-723c692effee6fcb.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-0048d6b4b19cb869.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-ae190df12aef66e0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/loading-f262904f64bb3b83.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/page-ae190df12aef66e0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/loading-f262904f64bb3b83.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-e1ecdf3a54ce7ea0.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-f9d4b7f9c344be4d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/page-f262904f64bb3b83.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-5eae92411a9101e8.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/error-931affb0037bb07e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page-b28ea53e47e090d9.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/error-a95deb3a2467dd39.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/loading-f262904f64bb3b83.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/new/page-beef8d7a50586359.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/page-c55467557da2a19f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page-7586936cc0f5f2da.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-fc23844ac69cc3e3.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/loading-f262904f64bb3b83.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-3aa87b43e49ec0fe.js +0 -1
- package/src/app/[tenantId]/projects/[projectId]/graphs/page.tsx +0 -50
- package/src/components/graph/configuration/model-options.tsx +0 -68
- package/src/components/graphs/graph-list.tsx +0 -20
- package/src/features/graph/domain/graph-initializer-helpers.ts +0 -61
- package/src/lib/api/graph-full-client.ts +0 -112
- package/src/lib/services/save-graph.ts +0 -14
- /package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/{graphs → agents}/page.js.nft.json +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{RDDnfeMsvfce5j5a7L5_h → r9-qxih7lU6hx6EFo0V8E}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{RDDnfeMsvfce5j5a7L5_h → r9-qxih7lU6hx6EFo0V8E}/_ssgManifest.js +0 -0
- /package/src/components/{graph → agent}/configuration/edge-types.tsx +0 -0
- /package/src/components/{graph → agent}/edges/agent-to-agent-edge.tsx +0 -0
- /package/src/components/{graph → agent}/edges/default-edge.tsx +0 -0
- /package/src/components/{graph → agent}/edges/self-loop-edge.tsx +0 -0
- /package/src/components/{graph → agent}/markers/default-marker.tsx +0 -0
- /package/src/components/{graph → agent}/markers/selected-marker.tsx +0 -0
- /package/src/components/{graph → agent}/node-library/node-item.tsx +0 -0
- /package/src/components/{graph → agent}/nodes/base-node.tsx +0 -0
- /package/src/components/{graph → agent}/nodes/handle.tsx +0 -0
- /package/src/components/{graph → agent}/nodes/mcp-placeholder-node.tsx +0 -0
- /package/src/components/{graph → agent}/nodes/node-tab.tsx +0 -0
- /package/src/components/{graph → agent}/playground/custom-headers-dialog.tsx +0 -0
- /package/src/components/{graph → agent}/playground/ikp-message.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/collapsible-settings.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/heading.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/component-selector/component-dropdown.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/component-selector/component-header.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/component-selector/component-selector.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/component-selector/selected-components.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/credential-selector.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/empty-state.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/expandable-text-area.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/form-fields.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/function-tool-node-editor.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/mcp-selector/loading.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/mcp-selector/mcp-selector.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/nodes/mcp-selector/mcp-server-item.tsx +0 -0
- /package/src/components/{graph → agent}/sidepane/section.tsx +0 -0
- /package/src/features/{graph → agent}/commands/command-manager.ts +0 -0
|
@@ -18,26 +18,26 @@ import { nanoid } from 'nanoid';
|
|
|
18
18
|
import { useParams, useRouter } from 'next/navigation';
|
|
19
19
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
20
20
|
import { toast } from 'sonner';
|
|
21
|
-
import { commandManager } from '@/features/
|
|
22
|
-
import { AddNodeCommand, AddPreparedEdgeCommand } from '@/features/
|
|
21
|
+
import { commandManager } from '@/features/agent/commands/command-manager';
|
|
22
|
+
import { AddNodeCommand, AddPreparedEdgeCommand } from '@/features/agent/commands/commands';
|
|
23
23
|
import {
|
|
24
24
|
applyDagreLayout,
|
|
25
|
-
|
|
26
|
-
type
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
deserializeAgentData,
|
|
26
|
+
type ExtendedFullAgentDefinition,
|
|
27
|
+
extractAgentMetadata,
|
|
28
|
+
serializeAgentData,
|
|
29
29
|
validateSerializedData,
|
|
30
|
-
} from '@/features/
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
30
|
+
} from '@/features/agent/domain';
|
|
31
|
+
import { useAgentActions, useAgentStore } from '@/features/agent/state/use-agent-store';
|
|
32
|
+
import { useAgentShortcuts } from '@/features/agent/ui/use-agent-shortcuts';
|
|
33
|
+
import { useAgentErrors } from '@/hooks/use-agent-errors';
|
|
34
34
|
import { useSidePane } from '@/hooks/use-side-pane';
|
|
35
35
|
import type { ArtifactComponent } from '@/lib/api/artifact-components';
|
|
36
36
|
import type { Credential } from '@/lib/api/credentials';
|
|
37
37
|
import type { DataComponent } from '@/lib/api/data-components';
|
|
38
|
-
import {
|
|
38
|
+
import { saveAgent } from '@/lib/services/save-agent';
|
|
39
39
|
import type { MCPTool } from '@/lib/types/tools';
|
|
40
|
-
import { getErrorSummaryMessage,
|
|
40
|
+
import { getErrorSummaryMessage, parseAgentValidationErrors } from '@/lib/utils/agent-error-parser';
|
|
41
41
|
import { getToolTypeAndName } from '@/lib/utils/mcp-utils';
|
|
42
42
|
import { detectOrphanedToolsAndGetWarning } from '@/lib/utils/orphaned-tools-detector';
|
|
43
43
|
|
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
newNodeDefaults,
|
|
63
63
|
nodeTypes,
|
|
64
64
|
} from './configuration/node-types';
|
|
65
|
-
import {
|
|
65
|
+
import { AgentErrorSummary } from './error-display/agent-error-summary';
|
|
66
66
|
import { DefaultMarker } from './markers/default-marker';
|
|
67
67
|
import { SelectedMarker } from './markers/selected-marker';
|
|
68
68
|
import NodeLibrary from './node-library/node-library';
|
|
@@ -75,8 +75,8 @@ function getEdgeId(a: string, b: string) {
|
|
|
75
75
|
return `edge-${low}-${high}`;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
interface
|
|
79
|
-
|
|
78
|
+
interface AgentProps {
|
|
79
|
+
agent?: ExtendedFullAgentDefinition;
|
|
80
80
|
dataComponentLookup?: Record<string, DataComponent>;
|
|
81
81
|
artifactComponentLookup?: Record<string, ArtifactComponent>;
|
|
82
82
|
toolLookup?: Record<string, MCPTool>;
|
|
@@ -84,12 +84,12 @@ interface GraphProps {
|
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
function Flow({
|
|
87
|
-
|
|
87
|
+
agent,
|
|
88
88
|
dataComponentLookup = {},
|
|
89
89
|
artifactComponentLookup = {},
|
|
90
90
|
toolLookup = {},
|
|
91
91
|
credentialLookup = {},
|
|
92
|
-
}:
|
|
92
|
+
}: AgentProps) {
|
|
93
93
|
const [showPlayground, setShowPlayground] = useState(false);
|
|
94
94
|
const router = useRouter();
|
|
95
95
|
|
|
@@ -102,7 +102,7 @@ function Flow({
|
|
|
102
102
|
() => [
|
|
103
103
|
{
|
|
104
104
|
id: nanoid(),
|
|
105
|
-
type: NodeType.
|
|
105
|
+
type: NodeType.SubAgent,
|
|
106
106
|
position: { x: 0, y: 0 },
|
|
107
107
|
data: { name: '', isDefault: true },
|
|
108
108
|
deletable: false,
|
|
@@ -138,22 +138,22 @@ function Flow({
|
|
|
138
138
|
[toolLookup]
|
|
139
139
|
);
|
|
140
140
|
|
|
141
|
-
const { nodes:
|
|
142
|
-
const result =
|
|
143
|
-
?
|
|
141
|
+
const { nodes: agentNodes, edges: agentEdges } = useMemo(() => {
|
|
142
|
+
const result = agent
|
|
143
|
+
? deserializeAgentData(agent)
|
|
144
144
|
: { nodes: initialNodes, edges: initialEdges };
|
|
145
145
|
return {
|
|
146
146
|
...result,
|
|
147
147
|
nodes: enrichNodes(result.nodes),
|
|
148
148
|
};
|
|
149
|
-
}, [
|
|
149
|
+
}, [agent, enrichNodes, initialNodes]);
|
|
150
150
|
|
|
151
|
-
// Create agent tool configuration lookup from
|
|
151
|
+
// Create agent tool configuration lookup from agent data
|
|
152
152
|
const agentToolConfigLookup = useMemo((): AgentToolConfigLookup => {
|
|
153
|
-
if (!
|
|
153
|
+
if (!agent?.subAgents) return {} as AgentToolConfigLookup;
|
|
154
154
|
|
|
155
155
|
const lookup: AgentToolConfigLookup = {};
|
|
156
|
-
Object.entries(
|
|
156
|
+
Object.entries(agent.subAgents).forEach(([subAgentId, agentData]) => {
|
|
157
157
|
if ('canUse' in agentData && agentData.canUse) {
|
|
158
158
|
const toolsMap: Record<string, AgentToolConfig> = {};
|
|
159
159
|
agentData.canUse.forEach((tool) => {
|
|
@@ -179,7 +179,7 @@ function Flow({
|
|
|
179
179
|
}
|
|
180
180
|
});
|
|
181
181
|
return lookup;
|
|
182
|
-
}, [
|
|
182
|
+
}, [agent?.subAgents]);
|
|
183
183
|
|
|
184
184
|
const {
|
|
185
185
|
screenToFlowPosition,
|
|
@@ -189,7 +189,7 @@ function Flow({
|
|
|
189
189
|
getEdges,
|
|
190
190
|
getIntersectingNodes,
|
|
191
191
|
} = useReactFlow();
|
|
192
|
-
const { storeNodes, edges, metadata } =
|
|
192
|
+
const { storeNodes, edges, metadata } = useAgentStore((state) => ({
|
|
193
193
|
storeNodes: state.nodes,
|
|
194
194
|
edges: state.edges,
|
|
195
195
|
metadata: state.metadata,
|
|
@@ -204,15 +204,15 @@ function Flow({
|
|
|
204
204
|
markSaved,
|
|
205
205
|
clearSelection,
|
|
206
206
|
markUnsaved,
|
|
207
|
-
} =
|
|
207
|
+
} = useAgentActions();
|
|
208
208
|
|
|
209
209
|
// Always use enriched nodes for ReactFlow
|
|
210
210
|
const nodes = useMemo(() => enrichNodes(storeNodes), [storeNodes, enrichNodes]);
|
|
211
|
-
const { nodeId, edgeId, setQueryState,
|
|
212
|
-
const { errors, showErrors, setErrors, clearErrors, setShowErrors } =
|
|
211
|
+
const { nodeId, edgeId, setQueryState, openAgentPane, isOpen } = useSidePane();
|
|
212
|
+
const { errors, showErrors, setErrors, clearErrors, setShowErrors } = useAgentErrors();
|
|
213
213
|
|
|
214
214
|
/**
|
|
215
|
-
* Custom `onNodesChange` handler that relayouts the
|
|
215
|
+
* Custom `onNodesChange` handler that relayouts the agent using Dagre
|
|
216
216
|
* when a `replace` change causes node intersections.
|
|
217
217
|
**/
|
|
218
218
|
const onNodesChange: typeof storeOnNodesChange = useCallback(
|
|
@@ -249,9 +249,9 @@ function Flow({
|
|
|
249
249
|
// biome-ignore lint/correctness/useExhaustiveDependencies: we only want to run this effect on first render
|
|
250
250
|
useEffect(() => {
|
|
251
251
|
setInitial(
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
252
|
+
agentNodes,
|
|
253
|
+
agentEdges,
|
|
254
|
+
extractAgentMetadata(agent),
|
|
255
255
|
dataComponentLookup,
|
|
256
256
|
artifactComponentLookup,
|
|
257
257
|
toolLookup,
|
|
@@ -261,13 +261,13 @@ function Flow({
|
|
|
261
261
|
|
|
262
262
|
// biome-ignore lint/correctness/useExhaustiveDependencies: we only want to run this effect on first render
|
|
263
263
|
useEffect(() => {
|
|
264
|
-
if (!
|
|
265
|
-
|
|
264
|
+
if (!agent) {
|
|
265
|
+
openAgentPane();
|
|
266
266
|
return;
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
if (!nodeId && !edgeId) {
|
|
270
|
-
|
|
270
|
+
openAgentPane();
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
if (nodeId) {
|
|
@@ -288,24 +288,24 @@ function Flow({
|
|
|
288
288
|
);
|
|
289
289
|
}
|
|
290
290
|
|
|
291
|
-
// If the nodeId or edgeId in URL doesn't exist in the
|
|
292
|
-
if (nodeId && !
|
|
291
|
+
// If the nodeId or edgeId in URL doesn't exist in the agent, clear it
|
|
292
|
+
if (nodeId && !agentNodes.some((node) => node.id === nodeId)) {
|
|
293
293
|
setQueryState((prev) => ({
|
|
294
294
|
...prev,
|
|
295
295
|
nodeId: null,
|
|
296
|
-
pane: '
|
|
296
|
+
pane: 'agent',
|
|
297
297
|
}));
|
|
298
298
|
}
|
|
299
|
-
if (edgeId && !
|
|
299
|
+
if (edgeId && !agentEdges.some((edge) => edge.id === edgeId)) {
|
|
300
300
|
setQueryState((prev) => ({
|
|
301
301
|
...prev,
|
|
302
302
|
edgeId: null,
|
|
303
|
-
pane: '
|
|
303
|
+
pane: 'agent',
|
|
304
304
|
}));
|
|
305
305
|
}
|
|
306
306
|
}, []);
|
|
307
307
|
|
|
308
|
-
// Auto-center
|
|
308
|
+
// Auto-center agent when sidepane opens/closes
|
|
309
309
|
// biome-ignore lint/correctness/useExhaustiveDependencies: we want to trigger on isOpen changes
|
|
310
310
|
useEffect(() => {
|
|
311
311
|
// Delay to allow CSS transition to complete (300ms transition + 50ms buffer)
|
|
@@ -316,7 +316,7 @@ function Flow({
|
|
|
316
316
|
return () => clearTimeout(timer);
|
|
317
317
|
}, [isOpen, fitView]);
|
|
318
318
|
|
|
319
|
-
// Auto-center
|
|
319
|
+
// Auto-center agent when playground opens/closes
|
|
320
320
|
// biome-ignore lint/correctness/useExhaustiveDependencies: we want to trigger on showPlayground changes
|
|
321
321
|
useEffect(() => {
|
|
322
322
|
// Delay to allow CSS transition to complete
|
|
@@ -458,7 +458,7 @@ function Flow({
|
|
|
458
458
|
(edges[0]?.type === EdgeType.A2A || edges[0]?.type === EdgeType.SelfLoop)
|
|
459
459
|
? edges[0]
|
|
460
460
|
: null;
|
|
461
|
-
const defaultPane = isOpen ? '
|
|
461
|
+
const defaultPane = isOpen ? 'agent' : null;
|
|
462
462
|
|
|
463
463
|
setQueryState(
|
|
464
464
|
{
|
|
@@ -476,7 +476,7 @@ function Flow({
|
|
|
476
476
|
onChange: onSelectionChange,
|
|
477
477
|
});
|
|
478
478
|
|
|
479
|
-
|
|
479
|
+
useAgentShortcuts();
|
|
480
480
|
|
|
481
481
|
const closeSidePane = useCallback(() => {
|
|
482
482
|
setEdges((edges) => edges.map((edge) => ({ ...edge, selected: false })));
|
|
@@ -488,11 +488,11 @@ function Flow({
|
|
|
488
488
|
});
|
|
489
489
|
}, [setQueryState, setEdges, setNodes]);
|
|
490
490
|
|
|
491
|
-
const
|
|
491
|
+
const backToAgent = useCallback(() => {
|
|
492
492
|
setEdges((edges) => edges.map((edge) => ({ ...edge, selected: false })));
|
|
493
493
|
setNodes((nodes) => nodes.map((node) => ({ ...node, selected: false })));
|
|
494
494
|
setQueryState({
|
|
495
|
-
pane: '
|
|
495
|
+
pane: 'agent',
|
|
496
496
|
nodeId: null,
|
|
497
497
|
edgeId: null,
|
|
498
498
|
});
|
|
@@ -571,7 +571,7 @@ function Flow({
|
|
|
571
571
|
});
|
|
572
572
|
}
|
|
573
573
|
|
|
574
|
-
const serializedData =
|
|
574
|
+
const serializedData = serializeAgentData(
|
|
575
575
|
nodes,
|
|
576
576
|
edges,
|
|
577
577
|
metadata,
|
|
@@ -593,7 +593,7 @@ function Flow({
|
|
|
593
593
|
// Validate the serialized data before saving
|
|
594
594
|
const validationErrors = validateSerializedData(serializedData, functionToolNodeMap);
|
|
595
595
|
if (validationErrors.length > 0) {
|
|
596
|
-
// Convert validation errors to the format expected by
|
|
596
|
+
// Convert validation errors to the format expected by parseAgentValidationErrors
|
|
597
597
|
const errorObjects = validationErrors.map((error) => ({
|
|
598
598
|
message: error.message,
|
|
599
599
|
field: error.field,
|
|
@@ -602,23 +602,23 @@ function Flow({
|
|
|
602
602
|
functionToolId: error.functionToolId,
|
|
603
603
|
}));
|
|
604
604
|
|
|
605
|
-
const errorSummary =
|
|
605
|
+
const errorSummary = parseAgentValidationErrors(JSON.stringify(errorObjects));
|
|
606
606
|
setErrors(errorSummary);
|
|
607
607
|
toast.error(`Validation failed: ${validationErrors[0].message}`);
|
|
608
608
|
return;
|
|
609
609
|
}
|
|
610
610
|
|
|
611
|
-
const res = await
|
|
611
|
+
const res = await saveAgent(
|
|
612
612
|
tenantId,
|
|
613
613
|
projectId,
|
|
614
614
|
serializedData,
|
|
615
|
-
|
|
615
|
+
agent?.id // agentid is required and added to the serialized data if it does not exist so we need to pass is separately to know whether to create or update
|
|
616
616
|
);
|
|
617
617
|
|
|
618
618
|
if (res.success) {
|
|
619
619
|
// Clear any existing errors on successful save
|
|
620
620
|
clearErrors();
|
|
621
|
-
toast.success('
|
|
621
|
+
toast.success('Agent saved', {
|
|
622
622
|
closeButton: true,
|
|
623
623
|
});
|
|
624
624
|
markSaved();
|
|
@@ -673,21 +673,21 @@ function Flow({
|
|
|
673
673
|
);
|
|
674
674
|
}
|
|
675
675
|
|
|
676
|
-
if (!
|
|
676
|
+
if (!agent?.id && res.data?.id) {
|
|
677
677
|
setMetadata('id', res.data.id);
|
|
678
|
-
router.push(`/${tenantId}/projects/${projectId}/
|
|
678
|
+
router.push(`/${tenantId}/projects/${projectId}/agents/${res.data.id}`);
|
|
679
679
|
}
|
|
680
680
|
} else {
|
|
681
681
|
try {
|
|
682
|
-
const errorSummary =
|
|
682
|
+
const errorSummary = parseAgentValidationErrors(res.error);
|
|
683
683
|
setErrors(errorSummary);
|
|
684
684
|
|
|
685
685
|
const summaryMessage = getErrorSummaryMessage(errorSummary);
|
|
686
|
-
toast.error(summaryMessage || 'Failed to save
|
|
686
|
+
toast.error(summaryMessage || 'Failed to save agent - validation errors found');
|
|
687
687
|
} catch (parseError) {
|
|
688
688
|
// Fallback for unparseable errors
|
|
689
689
|
console.error('Failed to parse validation errors:', parseError);
|
|
690
|
-
toast.error('Failed to save
|
|
690
|
+
toast.error('Failed to save agent', {
|
|
691
691
|
closeButton: true,
|
|
692
692
|
});
|
|
693
693
|
}
|
|
@@ -702,7 +702,7 @@ function Flow({
|
|
|
702
702
|
setMetadata,
|
|
703
703
|
setNodes,
|
|
704
704
|
router,
|
|
705
|
-
|
|
705
|
+
agent?.id,
|
|
706
706
|
tenantId,
|
|
707
707
|
projectId,
|
|
708
708
|
clearErrors,
|
|
@@ -746,8 +746,8 @@ function Flow({
|
|
|
746
746
|
<Panel position="top-right">
|
|
747
747
|
<Toolbar
|
|
748
748
|
onSubmit={onSubmit}
|
|
749
|
-
inPreviewDisabled={!
|
|
750
|
-
toggleSidePane={isOpen ?
|
|
749
|
+
inPreviewDisabled={!agent?.id}
|
|
750
|
+
toggleSidePane={isOpen ? backToAgent : openAgentPane}
|
|
751
751
|
setShowPlayground={() => {
|
|
752
752
|
closeSidePane();
|
|
753
753
|
setShowPlayground(true);
|
|
@@ -756,7 +756,7 @@ function Flow({
|
|
|
756
756
|
</Panel>
|
|
757
757
|
{errors && showErrors && (
|
|
758
758
|
<Panel position="bottom-left" className="max-w-sm !left-8 mb-4">
|
|
759
|
-
<
|
|
759
|
+
<AgentErrorSummary
|
|
760
760
|
errorSummary={errors}
|
|
761
761
|
onClose={() => setShowErrors(false)}
|
|
762
762
|
onNavigateToNode={handleNavigateToNode}
|
|
@@ -771,15 +771,15 @@ function Flow({
|
|
|
771
771
|
selectedEdgeId={edgeId}
|
|
772
772
|
isOpen={isOpen}
|
|
773
773
|
onClose={closeSidePane}
|
|
774
|
-
|
|
774
|
+
backToAgent={backToAgent}
|
|
775
775
|
dataComponentLookup={dataComponentLookup}
|
|
776
776
|
artifactComponentLookup={artifactComponentLookup}
|
|
777
777
|
agentToolConfigLookup={agentToolConfigLookup}
|
|
778
778
|
credentialLookup={credentialLookup}
|
|
779
779
|
/>
|
|
780
|
-
{showPlayground &&
|
|
780
|
+
{showPlayground && agent?.id && (
|
|
781
781
|
<Playground
|
|
782
|
-
|
|
782
|
+
agentId={agent?.id}
|
|
783
783
|
projectId={projectId}
|
|
784
784
|
tenantId={tenantId}
|
|
785
785
|
setShowPlayground={setShowPlayground}
|
|
@@ -790,17 +790,17 @@ function Flow({
|
|
|
790
790
|
);
|
|
791
791
|
}
|
|
792
792
|
|
|
793
|
-
export function
|
|
794
|
-
|
|
793
|
+
export function Agent({
|
|
794
|
+
agent,
|
|
795
795
|
dataComponentLookup,
|
|
796
796
|
artifactComponentLookup,
|
|
797
797
|
toolLookup,
|
|
798
798
|
credentialLookup,
|
|
799
|
-
}:
|
|
799
|
+
}: AgentProps) {
|
|
800
800
|
return (
|
|
801
801
|
<ReactFlowProvider>
|
|
802
802
|
<Flow
|
|
803
|
-
|
|
803
|
+
agent={agent}
|
|
804
804
|
dataComponentLookup={dataComponentLookup}
|
|
805
805
|
artifactComponentLookup={artifactComponentLookup}
|
|
806
806
|
toolLookup={toolLookup}
|
package/src/components/{graph/configuration/graph-types.tsx → agent/configuration/agent-types.tsx}
RENAMED
|
@@ -3,16 +3,16 @@ export type ModelSettings = {
|
|
|
3
3
|
providerOptions?: string; // JSON string representation for form compatibility
|
|
4
4
|
};
|
|
5
5
|
|
|
6
|
-
import type {
|
|
6
|
+
import type { AgentStopWhen } from '@inkeep/agents-core/client-exports';
|
|
7
7
|
|
|
8
|
-
export type
|
|
8
|
+
export type AgentModels = {
|
|
9
9
|
base?: ModelSettings;
|
|
10
10
|
structuredOutput?: ModelSettings;
|
|
11
11
|
summarizer?: ModelSettings;
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
// Re-export the shared type for consistency
|
|
15
|
-
export type {
|
|
15
|
+
export type { AgentStopWhen };
|
|
16
16
|
|
|
17
17
|
export type StatusUpdateSettings = {
|
|
18
18
|
enabled?: boolean;
|
|
@@ -22,14 +22,14 @@ export type StatusUpdateSettings = {
|
|
|
22
22
|
statusComponents?: string; // JSON string representation of status components array
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
export type
|
|
25
|
+
export type AgentMetadata = {
|
|
26
26
|
id?: string;
|
|
27
27
|
name: string;
|
|
28
28
|
description: string;
|
|
29
29
|
contextConfig: ContextConfig;
|
|
30
|
-
models?:
|
|
31
|
-
stopWhen?:
|
|
32
|
-
|
|
30
|
+
models?: AgentModels;
|
|
31
|
+
stopWhen?: AgentStopWhen;
|
|
32
|
+
agentPrompt?: string;
|
|
33
33
|
statusUpdates?: StatusUpdateSettings;
|
|
34
34
|
};
|
|
35
35
|
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ANTHROPIC_MODELS, OPENAI_MODELS, GOOGLE_MODELS } from '@inkeep/agents-core/constants/models';
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_ANTHROPIC_BASE_MODEL = ANTHROPIC_MODELS.CLAUDE_SONNET_4_5;
|
|
4
|
+
export const DEFAULT_ANTHROPIC_STRUCTURED_OUTPUT_MODEL = ANTHROPIC_MODELS.CLAUDE_SONNET_4_5;
|
|
5
|
+
export const DEFAULT_ANTHROPIC_SUMMARIZER_MODEL = ANTHROPIC_MODELS.CLAUDE_SONNET_4_5;
|
|
6
|
+
|
|
7
|
+
export const DEFAULT_OPENAI_BASE_MODEL = OPENAI_MODELS.GPT_4_1;
|
|
8
|
+
export const DEFAULT_OPENAI_STRUCTURED_OUTPUT_MODEL = OPENAI_MODELS.GPT_4_1_MINI;
|
|
9
|
+
export const DEFAULT_OPENAI_SUMMARIZER_MODEL = OPENAI_MODELS.GPT_4_1_NANO;
|
|
10
|
+
|
|
11
|
+
export const DEFAULT_GOOGLE_BASE_MODEL = GOOGLE_MODELS.GEMINI_2_5_FLASH;
|
|
12
|
+
export const DEFAULT_GOOGLE_STRUCTURED_OUTPUT_MODEL = GOOGLE_MODELS.GEMINI_2_5_FLASH_LITE;
|
|
13
|
+
export const DEFAULT_GOOGLE_SUMMARIZER_MODEL = GOOGLE_MODELS.GEMINI_2_5_FLASH_LITE;
|
|
14
|
+
|
|
15
|
+
export const modelOptions = {
|
|
16
|
+
anthropic: [
|
|
17
|
+
{
|
|
18
|
+
value: ANTHROPIC_MODELS.CLAUDE_OPUS_4_1,
|
|
19
|
+
label: 'Claude Opus 4.1',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
value: ANTHROPIC_MODELS.CLAUDE_SONNET_4_5,
|
|
23
|
+
label: 'Claude Sonnet 4.5',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
value: ANTHROPIC_MODELS.CLAUDE_SONNET_4,
|
|
27
|
+
label: 'Claude Sonnet 4',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
value: ANTHROPIC_MODELS.CLAUDE_3_5_HAIKU,
|
|
31
|
+
label: 'Claude 3.5 Haiku',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
openai: [
|
|
35
|
+
{
|
|
36
|
+
value: OPENAI_MODELS.GPT_4_1,
|
|
37
|
+
label: 'GPT-4.1',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
value: OPENAI_MODELS.GPT_4_1_MINI,
|
|
41
|
+
label: 'GPT-4.1 Mini',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
value: OPENAI_MODELS.GPT_4_1_NANO,
|
|
45
|
+
label: 'GPT-4.1 Nano',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
value: OPENAI_MODELS.GPT_5,
|
|
49
|
+
label: 'GPT-5',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
value: OPENAI_MODELS.GPT_5_MINI,
|
|
53
|
+
label: 'GPT-5 Mini',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
value: OPENAI_MODELS.GPT_5_NANO,
|
|
57
|
+
label: 'GPT-5 Nano',
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
google: [
|
|
61
|
+
{
|
|
62
|
+
value: GOOGLE_MODELS.GEMINI_2_5_PRO,
|
|
63
|
+
label: 'Gemini 2.5 Pro',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
value: GOOGLE_MODELS.GEMINI_2_5_FLASH,
|
|
67
|
+
label: 'Gemini 2.5 Flash',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
value: GOOGLE_MODELS.GEMINI_2_5_FLASH_LITE,
|
|
71
|
+
label: 'Gemini 2.5 Flash Lite',
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Bot, BotMessageSquare, Code, Hammer } from 'lucide-react';
|
|
2
|
-
import { AgentNode } from '../nodes/agent-node';
|
|
3
2
|
import { ExternalAgentNode } from '../nodes/external-agent-node';
|
|
4
3
|
import { FunctionToolNode } from '../nodes/function-tool-node';
|
|
5
4
|
import { MCPNode } from '../nodes/mcp-node';
|
|
6
5
|
import { MCPPlaceholderNode } from '../nodes/mcp-placeholder-node';
|
|
7
|
-
import
|
|
6
|
+
import { SubAgentNode } from '../nodes/sub-agent-node';
|
|
7
|
+
import type { AgentModels } from './agent-types';
|
|
8
8
|
|
|
9
9
|
interface NodeData {
|
|
10
10
|
name: string;
|
|
@@ -13,7 +13,7 @@ interface NodeData {
|
|
|
13
13
|
relationshipId?: string | null; // Optional for MCP nodes
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
import type {
|
|
16
|
+
import type { SubAgentStopWhen } from '@inkeep/agents-core/client-exports';
|
|
17
17
|
|
|
18
18
|
export interface MCPNodeData extends Record<string, unknown> {
|
|
19
19
|
toolId: string;
|
|
@@ -25,7 +25,7 @@ export interface MCPNodeData extends Record<string, unknown> {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
// Re-export the shared type for consistency
|
|
28
|
-
export type {
|
|
28
|
+
export type { SubAgentStopWhen };
|
|
29
29
|
|
|
30
30
|
export interface AgentNodeData extends Record<string, unknown> {
|
|
31
31
|
id: string;
|
|
@@ -34,8 +34,8 @@ export interface AgentNodeData extends Record<string, unknown> {
|
|
|
34
34
|
prompt?: string;
|
|
35
35
|
dataComponents?: string[];
|
|
36
36
|
artifactComponents?: string[];
|
|
37
|
-
models?:
|
|
38
|
-
stopWhen?:
|
|
37
|
+
models?: AgentModels; // Use same structure as agent
|
|
38
|
+
stopWhen?: SubAgentStopWhen;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
export interface ExternalAgentNodeData extends Record<string, unknown> {
|
|
@@ -60,7 +60,7 @@ export interface FunctionToolNodeData extends Record<string, unknown> {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
export enum NodeType {
|
|
63
|
-
|
|
63
|
+
SubAgent = 'agent',
|
|
64
64
|
ExternalAgent = 'external-agent',
|
|
65
65
|
MCP = 'mcp',
|
|
66
66
|
MCPPlaceholder = 'mcp-placeholder',
|
|
@@ -68,7 +68,7 @@ export enum NodeType {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
export const nodeTypes = {
|
|
71
|
-
[NodeType.
|
|
71
|
+
[NodeType.SubAgent]: SubAgentNode,
|
|
72
72
|
[NodeType.ExternalAgent]: ExternalAgentNode,
|
|
73
73
|
[NodeType.MCP]: MCPNode,
|
|
74
74
|
[NodeType.MCPPlaceholder]: MCPPlaceholderNode,
|
|
@@ -82,7 +82,7 @@ export const externalAgentNodeTargetHandleId = 'target-external-agent';
|
|
|
82
82
|
export const functionToolNodeHandleId = 'target-function-tool';
|
|
83
83
|
|
|
84
84
|
export const newNodeDefaults: Record<keyof typeof nodeTypes, NodeData> = {
|
|
85
|
-
[NodeType.
|
|
85
|
+
[NodeType.SubAgent]: {
|
|
86
86
|
name: '',
|
|
87
87
|
},
|
|
88
88
|
[NodeType.ExternalAgent]: {
|
|
@@ -103,9 +103,9 @@ export const newNodeDefaults: Record<keyof typeof nodeTypes, NodeData> = {
|
|
|
103
103
|
};
|
|
104
104
|
|
|
105
105
|
export const nodeTypeMap = {
|
|
106
|
-
[NodeType.
|
|
107
|
-
type: NodeType.
|
|
108
|
-
name: 'Agent',
|
|
106
|
+
[NodeType.SubAgent]: {
|
|
107
|
+
type: NodeType.SubAgent,
|
|
108
|
+
name: 'Sub Agent',
|
|
109
109
|
Icon: Bot,
|
|
110
110
|
},
|
|
111
111
|
[NodeType.ExternalAgent]: {
|