@inkeep/agents-manage-ui 0.18.1 → 0.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
- package/.next/standalone/agents-manage-ui/.next/app-build-manifest.json +170 -170
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +4 -4
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/agents-manage-ui/.next/routes-manifest.json +28 -28
- 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 -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.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 +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +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 +4 -4
- 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/3547.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{2219.js → 4336.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5585.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6641.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/7966.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8068.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8461.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8498.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9043.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9590.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/23624-24cf5c441db07bb8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/49858-7df5d3e19fc00977.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/53311-dcaffd9591b1ba2f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{71558-d1be134327bfb796.js → 71558-54860b9701b3c3b7.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7190-a1746d1f397fc270.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-e7b3d0637300a752.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-ed64555359fc6a6f.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-94e86b14e412e458.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page-d544438c11bb29e3.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-d544438c11bb29e3.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-5cddc35c41f0b4bd.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/{page-567703a1de3eb0cb.js → page-64e52a288c7cc915.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-64e52a288c7cc915.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-341107af2f9d8258.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-34aeb4593707c411.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-e03e3ad2f6e09b24.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-fc4dc3e6880d1d9a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-f8382ae4e84509e1.js +1 -0
- 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-3b4b46cfd3d73e1f.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-465374bbcf614837.js → page-d247515a13ec7ab8.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-ce50bc6c7bda7d23.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-cbd9f6c5b7ab322e.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-3c80e96c8f4b13db.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-be82aa02cebb19df.js +1 -0
- 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/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]/artifacts/page-0e4e8d994b8c515b.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/[credentialId]/page-425506e0e283e21c.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]/credentials/page-c01750f081055384.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/[tenantId]/projects/page-243899de5c62b46e.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 → Sn6Mg6V7bkTmvM8yDFLdc}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{RDDnfeMsvfce5j5a7L5_h → Sn6Mg6V7bkTmvM8yDFLdc}/_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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ExpandableJsonEditor } from '@/components/form/expandable-json-editor';
|
|
2
|
-
import type { AgentNodeData } from '@/components/
|
|
2
|
+
import type { AgentNodeData } from '@/components/agent/configuration/node-types';
|
|
3
3
|
import { ModelInheritanceInfo } from '@/components/projects/form/model-inheritance-info';
|
|
4
4
|
import {
|
|
5
5
|
getModelInheritanceStatus,
|
|
@@ -13,14 +13,14 @@ interface ModelSectionProps {
|
|
|
13
13
|
models: AgentNodeData['models'];
|
|
14
14
|
updatePath: (path: string, value: any) => void;
|
|
15
15
|
projectModels?: any;
|
|
16
|
-
|
|
16
|
+
agentModels?: any;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export function ModelSection({
|
|
20
20
|
models,
|
|
21
21
|
updatePath,
|
|
22
22
|
projectModels,
|
|
23
|
-
|
|
23
|
+
agentModels,
|
|
24
24
|
}: ModelSectionProps) {
|
|
25
25
|
const hasAdvancedOptions = models?.structuredOutput || models?.summarizer;
|
|
26
26
|
const _hasAnyModel = models?.base || models?.structuredOutput || models?.summarizer;
|
|
@@ -43,7 +43,7 @@ export function ModelSection({
|
|
|
43
43
|
onValueChange={(modelValue) => {
|
|
44
44
|
updatePath('models.base.model', modelValue || undefined);
|
|
45
45
|
}}
|
|
46
|
-
inheritedValue={
|
|
46
|
+
inheritedValue={agentModels?.base?.model || projectModels?.base?.model}
|
|
47
47
|
label={
|
|
48
48
|
<div className="flex items-center gap-2">
|
|
49
49
|
Base model
|
|
@@ -51,7 +51,7 @@ export function ModelSection({
|
|
|
51
51
|
{...getModelInheritanceStatus(
|
|
52
52
|
'agent',
|
|
53
53
|
models?.base?.model,
|
|
54
|
-
|
|
54
|
+
agentModels?.base?.model,
|
|
55
55
|
projectModels?.base?.model
|
|
56
56
|
)}
|
|
57
57
|
size="sm"
|
|
@@ -85,10 +85,10 @@ export function ModelSection({
|
|
|
85
85
|
updatePath('models.structuredOutput.model', modelValue || undefined);
|
|
86
86
|
}}
|
|
87
87
|
inheritedValue={
|
|
88
|
-
|
|
88
|
+
agentModels?.structuredOutput?.model ||
|
|
89
89
|
projectModels?.structuredOutput?.model ||
|
|
90
90
|
models?.base?.model ||
|
|
91
|
-
|
|
91
|
+
agentModels?.base?.model ||
|
|
92
92
|
projectModels?.base?.model
|
|
93
93
|
}
|
|
94
94
|
label={
|
|
@@ -98,7 +98,7 @@ export function ModelSection({
|
|
|
98
98
|
{...getModelInheritanceStatus(
|
|
99
99
|
'agent',
|
|
100
100
|
models?.structuredOutput?.model,
|
|
101
|
-
|
|
101
|
+
agentModels?.structuredOutput?.model,
|
|
102
102
|
projectModels?.structuredOutput?.model
|
|
103
103
|
)}
|
|
104
104
|
size="sm"
|
|
@@ -134,10 +134,10 @@ export function ModelSection({
|
|
|
134
134
|
updatePath('models.summarizer.model', modelValue || undefined);
|
|
135
135
|
}}
|
|
136
136
|
inheritedValue={
|
|
137
|
-
|
|
137
|
+
agentModels?.summarizer?.model ||
|
|
138
138
|
projectModels?.summarizer?.model ||
|
|
139
139
|
models?.base?.model ||
|
|
140
|
-
|
|
140
|
+
agentModels?.base?.model ||
|
|
141
141
|
projectModels?.base?.model
|
|
142
142
|
}
|
|
143
143
|
label={
|
|
@@ -147,7 +147,7 @@ export function ModelSection({
|
|
|
147
147
|
{...getModelInheritanceStatus(
|
|
148
148
|
'agent',
|
|
149
149
|
models?.summarizer?.model,
|
|
150
|
-
|
|
150
|
+
agentModels?.summarizer?.model,
|
|
151
151
|
projectModels?.summarizer?.model
|
|
152
152
|
)}
|
|
153
153
|
size="sm"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { Check, ChevronsUpDown, Info, X } from 'lucide-react';
|
|
4
4
|
import { useMemo, useState } from 'react';
|
|
5
|
-
import { modelOptions } from '@/components/
|
|
5
|
+
import { modelOptions } from '@/components/agent/configuration/model-options';
|
|
6
6
|
import { Button } from '@/components/ui/button';
|
|
7
7
|
import {
|
|
8
8
|
Command,
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
import { Input } from '@/components/ui/input';
|
|
9
9
|
import { Label } from '@/components/ui/label';
|
|
10
10
|
import { Separator } from '@/components/ui/separator';
|
|
11
|
-
import {
|
|
11
|
+
import { useAgentStore } from '@/features/agent/state/use-agent-store';
|
|
12
|
+
import type { ErrorHelpers } from '@/hooks/use-agent-errors';
|
|
12
13
|
import { useAutoPrefillIdZustand } from '@/hooks/use-auto-prefill-id-zustand';
|
|
13
|
-
import type { ErrorHelpers } from '@/hooks/use-graph-errors';
|
|
14
14
|
import { useNodeEditor } from '@/hooks/use-node-editor';
|
|
15
15
|
import { useProjectData } from '@/hooks/use-project-data';
|
|
16
16
|
import type { ArtifactComponent } from '@/lib/api/artifact-components';
|
|
@@ -45,19 +45,19 @@ const ExecutionLimitInheritanceInfo = () => {
|
|
|
45
45
|
);
|
|
46
46
|
};
|
|
47
47
|
|
|
48
|
-
interface
|
|
48
|
+
interface SubAgentNodeEditorProps {
|
|
49
49
|
selectedNode: Node<AgentNodeData>;
|
|
50
50
|
dataComponentLookup: Record<string, DataComponent>;
|
|
51
51
|
artifactComponentLookup: Record<string, ArtifactComponent>;
|
|
52
52
|
errorHelpers?: ErrorHelpers;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
export function
|
|
55
|
+
export function SubAgentNodeEditor({
|
|
56
56
|
selectedNode,
|
|
57
57
|
dataComponentLookup,
|
|
58
58
|
artifactComponentLookup,
|
|
59
59
|
errorHelpers,
|
|
60
|
-
}:
|
|
60
|
+
}: SubAgentNodeEditorProps) {
|
|
61
61
|
const { tenantId, projectId } = useParams<{
|
|
62
62
|
tenantId: string;
|
|
63
63
|
projectId: string;
|
|
@@ -65,9 +65,9 @@ export function AgentNodeEditor({
|
|
|
65
65
|
const selectedDataComponents = selectedNode.data?.dataComponents || [];
|
|
66
66
|
const selectedArtifactComponents = selectedNode.data?.artifactComponents || [];
|
|
67
67
|
|
|
68
|
-
// Get project and
|
|
68
|
+
// Get project and agent data for inheritance indicators
|
|
69
69
|
const { project } = useProjectData();
|
|
70
|
-
const metadata =
|
|
70
|
+
const metadata = useAgentStore((state) => state.metadata);
|
|
71
71
|
|
|
72
72
|
const { updatePath, updateNestedPath, getFieldError, setFieldRef } = useNodeEditor({
|
|
73
73
|
selectedNodeId: selectedNode.id,
|
|
@@ -119,7 +119,7 @@ export function AgentNodeEditor({
|
|
|
119
119
|
onChange={(e) => updatePath('id', e.target.value)}
|
|
120
120
|
placeholder="my-agent"
|
|
121
121
|
error={getFieldError('id')}
|
|
122
|
-
description="Choose a unique identifier for this agent. Using an existing id will replace that agent."
|
|
122
|
+
description="Choose a unique identifier for this sub-agent. Using an existing id will replace that sub-agent."
|
|
123
123
|
isRequired
|
|
124
124
|
/>
|
|
125
125
|
<TextareaField
|
|
@@ -153,7 +153,7 @@ export function AgentNodeEditor({
|
|
|
153
153
|
models={selectedNode.data.models}
|
|
154
154
|
updatePath={updateModelPath}
|
|
155
155
|
projectModels={project?.models}
|
|
156
|
-
|
|
156
|
+
agentModels={metadata?.models}
|
|
157
157
|
/>
|
|
158
158
|
<Separator />
|
|
159
159
|
{/* Agent Execution Limits */}
|
|
@@ -2,11 +2,12 @@ import type { Edge, Node } from '@xyflow/react';
|
|
|
2
2
|
import { useEdges, useNodesData } from '@xyflow/react';
|
|
3
3
|
import { type LucideIcon, Workflow } from 'lucide-react';
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
|
-
import {
|
|
5
|
+
import { useAgentErrors } from '@/hooks/use-agent-errors';
|
|
6
6
|
import type { ArtifactComponent } from '@/lib/api/artifact-components';
|
|
7
7
|
import type { Credential } from '@/lib/api/credentials';
|
|
8
8
|
import type { DataComponent } from '@/lib/api/data-components';
|
|
9
9
|
import { SidePane as SidePaneLayout } from '../../layout/sidepane';
|
|
10
|
+
import type { AgentToolConfigLookup } from '../agent';
|
|
10
11
|
import { edgeTypeMap } from '../configuration/edge-types';
|
|
11
12
|
import {
|
|
12
13
|
type AgentNodeData,
|
|
@@ -16,21 +17,20 @@ import {
|
|
|
16
17
|
NodeType,
|
|
17
18
|
nodeTypeMap,
|
|
18
19
|
} from '../configuration/node-types';
|
|
19
|
-
import type { AgentToolConfigLookup } from '../graph';
|
|
20
20
|
import EdgeEditor from './edges/edge-editor';
|
|
21
21
|
import { Heading } from './heading';
|
|
22
22
|
import MetadataEditor from './metadata/metadata-editor';
|
|
23
|
-
import { AgentNodeEditor } from './nodes/agent-node-editor';
|
|
24
23
|
import { ExternalAgentNodeEditor } from './nodes/external-agent-node-editor';
|
|
25
24
|
import { FunctionToolNodeEditor } from './nodes/function-tool-node-editor';
|
|
26
25
|
import { MCPServerNodeEditor } from './nodes/mcp-node-editor';
|
|
27
26
|
import { MCPSelector } from './nodes/mcp-selector/mcp-selector';
|
|
27
|
+
import { SubAgentNodeEditor } from './nodes/sub-agent-node-editor';
|
|
28
28
|
|
|
29
29
|
interface SidePaneProps {
|
|
30
30
|
selectedNodeId: string | null;
|
|
31
31
|
selectedEdgeId: string | null;
|
|
32
32
|
onClose: () => void;
|
|
33
|
-
|
|
33
|
+
backToAgent: () => void;
|
|
34
34
|
isOpen: boolean;
|
|
35
35
|
dataComponentLookup: Record<string, DataComponent>;
|
|
36
36
|
artifactComponentLookup: Record<string, ArtifactComponent>;
|
|
@@ -42,7 +42,7 @@ export function SidePane({
|
|
|
42
42
|
selectedNodeId,
|
|
43
43
|
selectedEdgeId,
|
|
44
44
|
onClose,
|
|
45
|
-
|
|
45
|
+
backToAgent,
|
|
46
46
|
isOpen,
|
|
47
47
|
dataComponentLookup,
|
|
48
48
|
artifactComponentLookup,
|
|
@@ -51,7 +51,7 @@ export function SidePane({
|
|
|
51
51
|
}: SidePaneProps) {
|
|
52
52
|
const selectedNode = useNodesData(selectedNodeId || '');
|
|
53
53
|
const edges = useEdges();
|
|
54
|
-
const { hasFieldError, getFieldErrorMessage, getFirstErrorField } =
|
|
54
|
+
const { hasFieldError, getFieldErrorMessage, getFirstErrorField } = useAgentErrors();
|
|
55
55
|
|
|
56
56
|
const selectedEdge = useMemo(
|
|
57
57
|
() => (selectedEdgeId ? edges.find((edge) => edge.id === selectedEdgeId) : null),
|
|
@@ -73,7 +73,7 @@ export function SidePane({
|
|
|
73
73
|
heading = edgeConfig?.name || 'Connection';
|
|
74
74
|
HeadingIcon = edgeConfig?.Icon;
|
|
75
75
|
} else {
|
|
76
|
-
heading = '
|
|
76
|
+
heading = 'Agent';
|
|
77
77
|
HeadingIcon = Workflow;
|
|
78
78
|
}
|
|
79
79
|
|
|
@@ -92,9 +92,9 @@ export function SidePane({
|
|
|
92
92
|
};
|
|
93
93
|
|
|
94
94
|
switch (nodeType) {
|
|
95
|
-
case NodeType.
|
|
95
|
+
case NodeType.SubAgent:
|
|
96
96
|
return (
|
|
97
|
-
<
|
|
97
|
+
<SubAgentNodeEditor
|
|
98
98
|
selectedNode={selectedNode as Node<AgentNodeData>}
|
|
99
99
|
dataComponentLookup={dataComponentLookup}
|
|
100
100
|
artifactComponentLookup={artifactComponentLookup}
|
|
@@ -156,7 +156,7 @@ export function SidePane({
|
|
|
156
156
|
<>
|
|
157
157
|
<SidePaneLayout.Header>
|
|
158
158
|
<div className="flex items-center relative">
|
|
159
|
-
{showBackButton && <SidePaneLayout.BackButton onClick={
|
|
159
|
+
{showBackButton && <SidePaneLayout.BackButton onClick={backToAgent} />}
|
|
160
160
|
<Heading
|
|
161
161
|
heading={heading}
|
|
162
162
|
Icon={HeadingIcon}
|
|
@@ -2,7 +2,7 @@ import { Play, Settings } from 'lucide-react';
|
|
|
2
2
|
import { useEffect, useRef } from 'react';
|
|
3
3
|
import { Button } from '@/components/ui/button';
|
|
4
4
|
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
|
|
5
|
-
import {
|
|
5
|
+
import { useAgentStore } from '@/features/agent/state/use-agent-store';
|
|
6
6
|
import { isMacOs } from '@/lib/utils';
|
|
7
7
|
|
|
8
8
|
interface ToolbarProps {
|
|
@@ -18,7 +18,7 @@ export function Toolbar({
|
|
|
18
18
|
toggleSidePane,
|
|
19
19
|
setShowPlayground,
|
|
20
20
|
}: ToolbarProps) {
|
|
21
|
-
const dirty =
|
|
21
|
+
const dirty = useAgentStore((state) => state.dirty);
|
|
22
22
|
const saveButtonRef = useRef<HTMLButtonElement>(null);
|
|
23
23
|
const PreviewButton = (
|
|
24
24
|
<Button
|
|
@@ -56,8 +56,8 @@ export function Toolbar({
|
|
|
56
56
|
</TooltipTrigger>
|
|
57
57
|
<TooltipContent>
|
|
58
58
|
{dirty
|
|
59
|
-
? 'Please save your changes before trying the
|
|
60
|
-
: 'Please save the
|
|
59
|
+
? 'Please save your changes before trying the agent.'
|
|
60
|
+
: 'Please save the agent to try it.'}
|
|
61
61
|
</TooltipContent>
|
|
62
62
|
</Tooltip>
|
|
63
63
|
) : (
|
|
@@ -73,7 +73,7 @@ export function Toolbar({
|
|
|
73
73
|
</Button>
|
|
74
74
|
<Button type="button" variant="outline" onClick={toggleSidePane}>
|
|
75
75
|
<Settings className="w-4 h-4" />
|
|
76
|
-
|
|
76
|
+
Agent Settings
|
|
77
77
|
</Button>
|
|
78
78
|
</div>
|
|
79
79
|
);
|
|
@@ -8,14 +8,14 @@ import {
|
|
|
8
8
|
DropdownMenuItem,
|
|
9
9
|
DropdownMenuTrigger,
|
|
10
10
|
} from '@/components/ui/dropdown-menu';
|
|
11
|
-
import {
|
|
11
|
+
import { DeleteAgentConfirmation } from './delete-agent-confirmation';
|
|
12
12
|
|
|
13
|
-
interface
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
interface AgentItemMenuProps {
|
|
14
|
+
agentId: string;
|
|
15
|
+
agentName?: string;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
export function
|
|
18
|
+
export function AgentItemMenu({ agentId, agentName }: AgentItemMenuProps) {
|
|
19
19
|
const [isOpen, setIsOpen] = useState(false);
|
|
20
20
|
|
|
21
21
|
const handleOpenChange = (open: boolean) => {
|
|
@@ -47,7 +47,7 @@ export function GraphItemMenu({ graphId, graphName }: GraphItemMenuProps) {
|
|
|
47
47
|
</DropdownMenuContent>
|
|
48
48
|
</DropdownMenu>
|
|
49
49
|
{isOpen && (
|
|
50
|
-
<
|
|
50
|
+
<DeleteAgentConfirmation agentId={agentId} agentName={agentName} setIsOpen={setIsOpen} />
|
|
51
51
|
)}
|
|
52
52
|
</Dialog>
|
|
53
53
|
);
|
|
@@ -10,23 +10,23 @@ import {
|
|
|
10
10
|
ItemCardRoot,
|
|
11
11
|
ItemCardTitle,
|
|
12
12
|
} from '@/components/ui/item-card';
|
|
13
|
-
import type {
|
|
14
|
-
import {
|
|
13
|
+
import type { Agent } from '@/lib/types/agent-full';
|
|
14
|
+
import { AgentItemMenu } from './agent-item-menu';
|
|
15
15
|
|
|
16
|
-
export interface
|
|
16
|
+
export interface AgentItemProps extends Agent {
|
|
17
17
|
tenantId: string;
|
|
18
18
|
projectId: string;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
export function
|
|
21
|
+
export function AgentItem({
|
|
22
22
|
id,
|
|
23
23
|
name,
|
|
24
24
|
description,
|
|
25
25
|
createdAt,
|
|
26
26
|
tenantId,
|
|
27
27
|
projectId,
|
|
28
|
-
}:
|
|
29
|
-
const linkPath = `/${tenantId}/projects/${projectId}/
|
|
28
|
+
}: AgentItemProps) {
|
|
29
|
+
const linkPath = `/${tenantId}/projects/${projectId}/agents/${id}`;
|
|
30
30
|
|
|
31
31
|
return (
|
|
32
32
|
<ItemCardRoot>
|
|
@@ -34,7 +34,7 @@ export function GraphItem({
|
|
|
34
34
|
<ItemCardLink href={linkPath}>
|
|
35
35
|
<ItemCardTitle className="text-sm">{name}</ItemCardTitle>
|
|
36
36
|
</ItemCardLink>
|
|
37
|
-
<
|
|
37
|
+
<AgentItemMenu agentId={id} agentName={name} />
|
|
38
38
|
</ItemCardHeader>
|
|
39
39
|
<ItemCardContent>
|
|
40
40
|
<ItemCardDescription hasContent={!!description}>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Agent } from '@/lib/types/agent-full';
|
|
2
|
+
import { AgentItem } from './agent-item';
|
|
3
|
+
import { NewAgentItem } from './new-agent-item';
|
|
4
|
+
|
|
5
|
+
interface AgentListProps {
|
|
6
|
+
tenantId: string;
|
|
7
|
+
projectId: string;
|
|
8
|
+
agent: Agent[];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export async function AgentList({ tenantId, projectId, agent }: AgentListProps) {
|
|
12
|
+
return (
|
|
13
|
+
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 md:gap-4">
|
|
14
|
+
<NewAgentItem tenantId={tenantId} projectId={projectId} />
|
|
15
|
+
{agent?.map((agent: Agent) => (
|
|
16
|
+
<AgentItem key={agent.id} {...agent} tenantId={tenantId} projectId={projectId} />
|
|
17
|
+
))}
|
|
18
|
+
</div>
|
|
19
|
+
);
|
|
20
|
+
}
|
package/src/components/{graphs/delete-graph-confirmation.tsx → agents/delete-agent-confirmation.tsx}
RENAMED
|
@@ -4,19 +4,19 @@ import { useParams } from 'next/navigation';
|
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import { toast } from 'sonner';
|
|
6
6
|
import { DeleteConfirmation } from '@/components/ui/delete-confirmation';
|
|
7
|
-
import {
|
|
7
|
+
import { deleteFullAgentAction } from '@/lib/actions/agent-full';
|
|
8
8
|
|
|
9
|
-
interface
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
interface DeleteAgentConfirmationProps {
|
|
10
|
+
agentId: string;
|
|
11
|
+
agentName?: string;
|
|
12
12
|
setIsOpen: (isOpen: boolean) => void;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export function
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
export function DeleteAgentConfirmation({
|
|
16
|
+
agentId,
|
|
17
|
+
agentName,
|
|
18
18
|
setIsOpen,
|
|
19
|
-
}:
|
|
19
|
+
}: DeleteAgentConfirmationProps) {
|
|
20
20
|
const params = useParams();
|
|
21
21
|
const { tenantId, projectId } = params as {
|
|
22
22
|
tenantId: string;
|
|
@@ -27,9 +27,9 @@ export function DeleteGraphConfirmation({
|
|
|
27
27
|
const handleDelete = async () => {
|
|
28
28
|
setIsSubmitting(true);
|
|
29
29
|
try {
|
|
30
|
-
const result = await
|
|
30
|
+
const result = await deleteFullAgentAction(tenantId, projectId, agentId);
|
|
31
31
|
if (result.success) {
|
|
32
|
-
toast.success('
|
|
32
|
+
toast.success('Agent deleted.');
|
|
33
33
|
setIsOpen(false);
|
|
34
34
|
} else {
|
|
35
35
|
toast.error(result.error);
|
|
@@ -41,7 +41,7 @@ export function DeleteGraphConfirmation({
|
|
|
41
41
|
|
|
42
42
|
return (
|
|
43
43
|
<DeleteConfirmation
|
|
44
|
-
itemName={
|
|
44
|
+
itemName={agentName || 'this agent'}
|
|
45
45
|
isSubmitting={isSubmitting}
|
|
46
46
|
onDelete={handleDelete}
|
|
47
47
|
/>
|
|
@@ -2,19 +2,19 @@ import { Plus } from 'lucide-react';
|
|
|
2
2
|
import Link from 'next/link';
|
|
3
3
|
import { Card, CardContent } from '../ui/card';
|
|
4
4
|
|
|
5
|
-
interface
|
|
5
|
+
interface NewAgentItemProps {
|
|
6
6
|
tenantId: string;
|
|
7
7
|
projectId: string;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export function
|
|
10
|
+
export function NewAgentItem({ tenantId, projectId }: NewAgentItemProps) {
|
|
11
11
|
return (
|
|
12
|
-
<Link href={`/${tenantId}/projects/${projectId}/
|
|
12
|
+
<Link href={`/${tenantId}/projects/${projectId}/agents/new`} className="group">
|
|
13
13
|
<Card className="h-full bg-transparent border-1 shadow-none hover:bg-background hover:ring-2 hover:ring-accent/50 dark:hover:ring-accent/30 transition-all duration-300 cursor-pointer group border-dashed">
|
|
14
14
|
<CardContent className="flex flex-row items-center justify-center text-center gap-2 flex-1">
|
|
15
15
|
<Plus className="w-4 h-4 text-muted-foreground group-hover:text-foreground transition-colors" />
|
|
16
16
|
<h3 className="font-medium text-sm text-muted-foreground group-hover:text-foreground transition-colors">
|
|
17
|
-
Create
|
|
17
|
+
Create agent
|
|
18
18
|
</h3>
|
|
19
19
|
</CardContent>
|
|
20
20
|
</Card>
|
|
@@ -8,16 +8,16 @@ import {
|
|
|
8
8
|
TableRow,
|
|
9
9
|
} from '@/components/ui/table';
|
|
10
10
|
import type { ApiKey } from '@/lib/api/api-keys';
|
|
11
|
-
import type {
|
|
11
|
+
import type { Agent } from '@/lib/types/agent-full';
|
|
12
12
|
import { ApiKeyItemMenu } from './api-key-item-menu';
|
|
13
13
|
import { ExpirationIndicator } from './expiration-indicator';
|
|
14
14
|
|
|
15
15
|
interface ApiKeysTableProps {
|
|
16
16
|
apiKeys: ApiKey[];
|
|
17
|
-
|
|
17
|
+
agentLookup: Record<string, Agent>;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export function ApiKeysTable({ apiKeys,
|
|
20
|
+
export function ApiKeysTable({ apiKeys, agentLookup }: ApiKeysTableProps) {
|
|
21
21
|
return (
|
|
22
22
|
<div className="rounded-lg border">
|
|
23
23
|
<Table>
|
|
@@ -45,7 +45,7 @@ export function ApiKeysTable({ apiKeys, graphLookup }: ApiKeysTableProps) {
|
|
|
45
45
|
<div className="flex flex-col">
|
|
46
46
|
<span className="font-medium text-foreground">{apiKey.name || 'No name'}</span>
|
|
47
47
|
<span className="text-sm text-muted-foreground">
|
|
48
|
-
{
|
|
48
|
+
{agentLookup[apiKey.agentId]?.name || apiKey.agentId}
|
|
49
49
|
</span>
|
|
50
50
|
</div>
|
|
51
51
|
</TableCell>
|
|
@@ -18,7 +18,7 @@ interface ApiKeyFormProps {
|
|
|
18
18
|
tenantId: string;
|
|
19
19
|
projectId: string;
|
|
20
20
|
initialData?: ApiKeyFormData;
|
|
21
|
-
|
|
21
|
+
agentsOptions: SelectOption[];
|
|
22
22
|
onApiKeyCreated?: (apiKeyData: ApiKeyCreateResponse) => void;
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -56,7 +56,7 @@ export function ApiKeyForm({
|
|
|
56
56
|
tenantId,
|
|
57
57
|
projectId,
|
|
58
58
|
initialData,
|
|
59
|
-
|
|
59
|
+
agentsOptions,
|
|
60
60
|
onApiKeyCreated,
|
|
61
61
|
}: ApiKeyFormProps) {
|
|
62
62
|
const form = useForm<ApiKeyFormData>({
|
|
@@ -72,7 +72,7 @@ export function ApiKeyForm({
|
|
|
72
72
|
const name = data.name;
|
|
73
73
|
|
|
74
74
|
const payload: Partial<ApiKey> = {
|
|
75
|
-
|
|
75
|
+
agentId: data.agentId,
|
|
76
76
|
expiresAt,
|
|
77
77
|
name,
|
|
78
78
|
};
|
|
@@ -114,11 +114,11 @@ export function ApiKeyForm({
|
|
|
114
114
|
/>
|
|
115
115
|
<GenericComboBox
|
|
116
116
|
control={form.control}
|
|
117
|
-
name="
|
|
118
|
-
label="
|
|
119
|
-
options={
|
|
120
|
-
placeholder="Select
|
|
121
|
-
searchPlaceholder="Search
|
|
117
|
+
name="agentId"
|
|
118
|
+
label="Agent"
|
|
119
|
+
options={agentsOptions}
|
|
120
|
+
placeholder="Select an agent"
|
|
121
|
+
searchPlaceholder="Search agent..."
|
|
122
122
|
isRequired
|
|
123
123
|
/>
|
|
124
124
|
<div className="flex justify-end">
|
|
@@ -11,7 +11,7 @@ export const EXPIRATION_DATE_OPTIONS = [
|
|
|
11
11
|
|
|
12
12
|
export const apiKeySchema = z.object({
|
|
13
13
|
name: z.string().min(1, 'Please enter a name.'),
|
|
14
|
-
|
|
14
|
+
agentId: z.string().min(1, 'Please select an agent.'),
|
|
15
15
|
expiresAt: z.enum(['1d', '1w', '1m', '3m', '1y', 'never'] as const),
|
|
16
16
|
});
|
|
17
17
|
|
|
@@ -20,14 +20,14 @@ import { ApiKeyForm } from './form/api-key-form';
|
|
|
20
20
|
interface NewApiKeyDialogProps {
|
|
21
21
|
tenantId: string;
|
|
22
22
|
projectId: string;
|
|
23
|
-
|
|
23
|
+
agentsOptions: SelectOption[];
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export function NewApiKeyDialog({ tenantId, projectId,
|
|
26
|
+
export function NewApiKeyDialog({ tenantId, projectId, agentsOptions }: NewApiKeyDialogProps) {
|
|
27
27
|
const [isFormOpen, setIsFormOpen] = useState(false);
|
|
28
28
|
const [createdApiKey, setCreatedApiKey] = useState<ApiKeyCreateResponse | null>(null);
|
|
29
29
|
|
|
30
|
-
const
|
|
30
|
+
const hasAgents = agentsOptions.length > 0;
|
|
31
31
|
|
|
32
32
|
const handleApiKeyCreated = (apiKeyData: ApiKeyCreateResponse) => {
|
|
33
33
|
setCreatedApiKey(apiKeyData);
|
|
@@ -46,15 +46,15 @@ export function NewApiKeyDialog({ tenantId, projectId, graphsOptions }: NewApiKe
|
|
|
46
46
|
<TooltipTrigger asChild>
|
|
47
47
|
<div>
|
|
48
48
|
<DialogTrigger asChild>
|
|
49
|
-
<Button disabled={!
|
|
49
|
+
<Button disabled={!hasAgents}>
|
|
50
50
|
<Plus className="size-4" /> New API key
|
|
51
51
|
</Button>
|
|
52
52
|
</DialogTrigger>
|
|
53
53
|
</div>
|
|
54
54
|
</TooltipTrigger>
|
|
55
|
-
{!
|
|
55
|
+
{!hasAgents && (
|
|
56
56
|
<TooltipContent className="max-w-3xs">
|
|
57
|
-
Please create
|
|
57
|
+
Please create an agent first, then you will be able to create an API key.
|
|
58
58
|
</TooltipContent>
|
|
59
59
|
)}
|
|
60
60
|
</Tooltip>
|
|
@@ -67,7 +67,7 @@ export function NewApiKeyDialog({ tenantId, projectId, graphsOptions }: NewApiKe
|
|
|
67
67
|
<ApiKeyForm
|
|
68
68
|
tenantId={tenantId}
|
|
69
69
|
projectId={projectId}
|
|
70
|
-
|
|
70
|
+
agentsOptions={agentsOptions}
|
|
71
71
|
onApiKeyCreated={handleApiKeyCreated}
|
|
72
72
|
/>
|
|
73
73
|
</div>
|
|
@@ -11,7 +11,7 @@ import CodeMirror, {
|
|
|
11
11
|
import { useTheme } from 'next-themes';
|
|
12
12
|
import { cn } from '@/lib/utils';
|
|
13
13
|
import { getContextSuggestions } from '@/lib/context-suggestions';
|
|
14
|
-
import {
|
|
14
|
+
import { useAgentStore } from '@/features/agent/state/use-agent-store';
|
|
15
15
|
|
|
16
16
|
// Decoration for template variables
|
|
17
17
|
const templateVariableDecoration = Decoration.mark({
|
|
@@ -195,7 +195,7 @@ export const PromptEditor: FC<TextareaWithSuggestionsProps> = ({
|
|
|
195
195
|
},
|
|
196
196
|
}));
|
|
197
197
|
|
|
198
|
-
const contextConfig =
|
|
198
|
+
const contextConfig = useAgentStore((state) => state.metadata.contextConfig);
|
|
199
199
|
|
|
200
200
|
const extensions = useMemo(() => {
|
|
201
201
|
const contextVariables = tryJsonParse(contextConfig.contextVariables);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const
|
|
1
|
+
export const AgentsIcon = () => {
|
|
2
2
|
return (
|
|
3
3
|
<svg
|
|
4
4
|
width="504"
|
|
@@ -7,7 +7,7 @@ export const GraphsIcon = () => {
|
|
|
7
7
|
fill="none"
|
|
8
8
|
xmlns="http://www.w3.org/2000/svg"
|
|
9
9
|
role="img"
|
|
10
|
-
aria-label="
|
|
10
|
+
aria-label="Agent"
|
|
11
11
|
className="size-full"
|
|
12
12
|
>
|
|
13
13
|
<g clipPath="url(#clip0_38_332)">
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
DEFAULT_ANTHROPIC_BASE_MODEL,
|
|
3
3
|
DEFAULT_ANTHROPIC_STRUCTURED_OUTPUT_MODEL,
|
|
4
4
|
DEFAULT_ANTHROPIC_SUMMARIZER_MODEL,
|
|
5
|
-
} from '@/components/
|
|
5
|
+
} from '@/components/agent/configuration/model-options';
|
|
6
6
|
import type { ProjectFormData } from './validation';
|
|
7
7
|
|
|
8
8
|
export const defaultValues: ProjectFormData = {
|
|
@@ -2,7 +2,7 @@ export const ModelInheritanceInfo = () => {
|
|
|
2
2
|
return (
|
|
3
3
|
<ul className="space-y-1.5 list-disc list-outside pl-4">
|
|
4
4
|
<li>
|
|
5
|
-
<span className="font-medium">Models</span>: Project →
|
|
5
|
+
<span className="font-medium">Models</span>: Project → Agent → Agent (partial inheritance -
|
|
6
6
|
missing models only)
|
|
7
7
|
</li>
|
|
8
8
|
<li>
|
|
@@ -174,8 +174,8 @@ export function ProjectForm({
|
|
|
174
174
|
if (onSuccess) {
|
|
175
175
|
onSuccess(data.id);
|
|
176
176
|
} else {
|
|
177
|
-
// Navigate to the new project's
|
|
178
|
-
router.push(`/${tenantId}/projects/${data.id}/
|
|
177
|
+
// Navigate to the new project's agent page
|
|
178
|
+
router.push(`/${tenantId}/projects/${data.id}/agent`);
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
} catch (error) {
|