@inkeep/agents-manage-ui 0.22.3 → 0.22.4
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 +176 -166
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +6 -6
- package/.next/standalone/agents-manage-ui/.next/build-manifest.json +7 -7
- package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
- package/.next/standalone/agents-manage-ui/.next/react-loadable-manifest.json +12 -12
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifacts/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/components/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +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_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/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 +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +9 -9
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +6 -6
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1670.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/175.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/207.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2153.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2496.js +184 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3205.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/6212.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6494.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7457.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7641.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8275.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8982.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/edge-runtime-webpack.js +2 -0
- package/.next/standalone/agents-manage-ui/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/middleware-manifest.json +28 -2
- 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/server/src/middleware.js +14 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/13162.51bfeffa888e765d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/2100.0cc29b56dc39a91c.js +93 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{21078.db6a097e0944219f.js → 21078.a7d987aaf4965f33.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/26917.cd86a6e50adbcaf7.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/331.4a73e2854eaaf329.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/47065.981fe771a3ebbc89.js +55 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{48da6a00.4291466416c0a466.js → 48da6a00.6d972ca63d2c3e83.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/53779.3c6baf4968503ed4.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/54855.9990b0a1efe89008.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{71558-09e7e3d1322b0bd1.js → 71558-78422b7aaa85fd6c.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7190-fd3c76249a4dd920.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/72963-d8f87b0ac91409cd.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/73974.646f6f06a0fb78fb.js +62 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/78225-259f39396b8ad0f3.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{89814.9c8e7e476bf1798d.js → 89814.587633678bc1263b.js} +2 -2
- package/.next/standalone/agents-manage-ui/.next/static/chunks/93453.066f92e65561f306.js +59 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/loading-e1f169e1ecbf908b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/new/loading-e1f169e1ecbf908b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/{page-30250ffa231b377c.js → page-e003706d61e1eafe.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-ef99f039107dd345.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/[artifactComponentId]/{page-307ffafed40f4069.js → page-afdaf855aec8af05.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/new/{page-307ffafed40f4069.js → page-afdaf855aec8af05.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-bc4833a45b33a47d.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-ef06eff512088fdf.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-ef06eff512088fdf.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-78b8833482d1f877.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-a2772a4b6f4e0249.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-4864c8674778ee06.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-b40d929333c3ce65.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-9d1905ada8938af6.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-e1f169e1ecbf908b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-7e3bb93e78b43ec7.js → page-89cef449fcf9ef7d.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-069621ec5b0970e5.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-1d17d906388bbd8c.js → page-1273d3fada0586f8.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-b23914a33d42bd42.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-c605715de4c89b47.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-c0ecff8c2b6e0bcc.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/main-f6a588d23fbb5abc.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{webpack-eac97a6e1c9c9ceb.js → webpack-59bf208cf832faea.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/a813c86aed230074.css +1 -0
- package/.next/standalone/agents-manage-ui/package.json +1 -1
- package/.next/standalone/package.json +3 -2
- package/.next/standalone/packages/agents-core/package.json +1 -1
- package/package.json +4 -4
- package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/loading.tsx +2 -26
- package/src/app/[tenantId]/projects/[projectId]/agents/[agentId]/page.tsx +1 -1
- package/src/app/[tenantId]/projects/[projectId]/agents/new/loading.tsx +5 -0
- package/src/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.tsx +0 -1
- package/src/app/api/signoz/route.ts +0 -2
- package/src/app/utils/active-tools.ts +0 -2
- package/src/app/utils/format-date.ts +0 -2
- package/src/components/agent/agent-loading-skeleton.tsx +26 -0
- package/src/components/agent/agent.tsx +21 -39
- package/src/components/agent/configuration/model-options.tsx +11 -8
- package/src/components/agent/edges/self-loop-edge.tsx +0 -1
- package/src/components/agent/nodes/function-tool-node.tsx +0 -1
- package/src/components/agent/nodes/mcp-node.tsx +0 -1
- package/src/components/agent/playground/chat-widget.tsx +0 -1
- package/src/components/agent/playground/ikp-message.tsx +0 -3
- package/src/components/agent/sidepane/edges/edge-editor.tsx +0 -3
- package/src/components/agent/sidepane/editor-loading-skeleton.tsx +40 -0
- package/src/components/agent/sidepane/nodes/function-tool-node-editor.tsx +0 -1
- package/src/components/agent/sidepane/nodes/mcp-node-editor.tsx +0 -1
- package/src/components/agent/sidepane/nodes/sub-agent-node-editor.tsx +0 -2
- package/src/components/agent/sidepane/sidepane.tsx +14 -4
- package/src/components/artifact-components/form/validation.ts +0 -2
- package/src/components/credentials/views/edit-credential-form.tsx +0 -2
- package/src/components/credentials/views/generic-auth-form.tsx +0 -1
- package/src/components/data-components/form/validation.ts +0 -1
- package/src/components/form/prompt-editor.tsx +0 -4
- package/src/components/mcp-servers/mcp-tool-image.tsx +0 -1
- package/src/components/projects/form/project-form.tsx +0 -4
- package/src/components/projects/form/project-models-section.tsx +0 -2
- package/src/components/projects/form/project-stopwhen-section.tsx +0 -1
- package/src/components/traces/conversation-stats/conversation-list-item.tsx +0 -1
- package/src/components/traces/editors/json-editor-with-copy.tsx +0 -3
- package/src/components/traces/timeline/span-attributes.tsx +0 -1
- package/src/components/traces/timeline/timeline-wrapper.tsx +0 -2
- package/src/components/traces/traces-overview.tsx +0 -3
- package/src/components/ui/card-grid.tsx +0 -1
- package/src/components/ui/chart.tsx +0 -1
- package/src/components/ui/inheritance-indicator.tsx +0 -3
- package/src/components/ui/item-card-grid.tsx +0 -1
- package/src/features/agent/domain/deserialize.ts +0 -5
- package/src/features/agent/domain/serialize.ts +0 -8
- package/src/features/agent/state/use-agent-store.ts +32 -26
- package/src/hooks/use-chat-activities-polling.ts +0 -2
- package/src/hooks/use-node-editor.ts +0 -1
- package/src/hooks/use-oauth-login.ts +0 -1
- package/src/hooks/use-side-pane.ts +5 -2
- package/src/hooks/use-traces-query-state.ts +0 -1
- package/src/lib/api/api-config.ts +0 -1
- package/src/lib/api/artifact-components.ts +0 -4
- package/src/lib/api/projects.ts +0 -4
- package/src/lib/api/signoz-sql.ts +0 -1
- package/src/lib/api/signoz-stats.ts +0 -1
- package/src/lib/json-schema-validation.ts +0 -5
- package/src/lib/mcp-tools/nango-types.ts +0 -1
- package/src/lib/mcp-tools/nango.ts +0 -8
- package/src/lib/utils/agent-error-parser.ts +0 -2
- package/src/lib/utils/credentials-utils.ts +0 -1
- package/src/lib/utils/mcp-urls.ts +0 -2
- package/src/middleware.ts +18 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/4059.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/428.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7320.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7504.js +0 -184
- package/.next/standalone/agents-manage-ui/.next/server/chunks/7521.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/13162.49a473711bfc9106.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/2100.6da5ac53af6a50b9.js +0 -93
- package/.next/standalone/agents-manage-ui/.next/static/chunks/26917.44af95c2220d2d7a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/331.4164e5bbbf2109c5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/47065.a2df61ae309c6b30.js +0 -55
- package/.next/standalone/agents-manage-ui/.next/static/chunks/53779.d1ecdd05fd8620ac.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/54848-b8b349adf584e69d.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/54855.ac5c4000030e49f3.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7190-aa6560bbe61271d7.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/73974.c41c4a27e5a42554.js +0 -62
- package/.next/standalone/agents-manage-ui/.next/static/chunks/78225-21eddae3f1b5ec1f.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/93453.a61a7f6334280207.js +0 -59
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/agents/[agentId]/loading-721e10fd249e4b77.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-437cdd3080259f1e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifacts/page-32b8fcfa86abe256.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/[dataComponentId]/page-12d4291fe72e0026.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/new/page-12d4291fe72e0026.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/components/page-d1d7693e125ff510.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-33822c38f99da934.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-a740a126e11feafe.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-90d0b130845acb11.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-a1407ebc77250007.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/layout-721e10fd249e4b77.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-cb8ce7a25d839cad.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-6d8b3ec5cc084fc6.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-e4b74625b57c57d8.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-322a4f6225bcc7e2.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/main-2ddea5276081c6f7.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/42e93c4387888412.css +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{NLgskf8DwJF0IXIIw2oaS → D8h6pxVIqA0GQjbq_VQqo}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{NLgskf8DwJF0IXIIw2oaS → D8h6pxVIqA0GQjbq_VQqo}/_ssgManifest.js +0 -0
|
@@ -98,6 +98,8 @@ function Flow({
|
|
|
98
98
|
projectId: string;
|
|
99
99
|
}>();
|
|
100
100
|
|
|
101
|
+
const { nodeId, edgeId, setQueryState, openAgentPane, isOpen } = useSidePane();
|
|
102
|
+
|
|
101
103
|
const initialNodes = useMemo<Node[]>(
|
|
102
104
|
() => [
|
|
103
105
|
{
|
|
@@ -144,11 +146,21 @@ function Flow({
|
|
|
144
146
|
: { nodes: initialNodes, edges: initialEdges };
|
|
145
147
|
return {
|
|
146
148
|
...result,
|
|
147
|
-
nodes:
|
|
149
|
+
nodes: nodeId
|
|
150
|
+
? enrichNodes(result.nodes).map((node) => ({
|
|
151
|
+
...node,
|
|
152
|
+
selected: node.id === nodeId,
|
|
153
|
+
}))
|
|
154
|
+
: enrichNodes(result.nodes),
|
|
155
|
+
edges: edgeId
|
|
156
|
+
? result.edges.map((edge) => ({
|
|
157
|
+
...edge,
|
|
158
|
+
selected: edge.id === edgeId,
|
|
159
|
+
}))
|
|
160
|
+
: result.edges,
|
|
148
161
|
};
|
|
149
|
-
}, [agent, enrichNodes, initialNodes]);
|
|
162
|
+
}, [agent, enrichNodes, initialNodes, nodeId, edgeId]);
|
|
150
163
|
|
|
151
|
-
// Create agent tool configuration lookup from agent data
|
|
152
164
|
const agentToolConfigLookup = useMemo((): AgentToolConfigLookup => {
|
|
153
165
|
if (!agent?.subAgents) return {} as AgentToolConfigLookup;
|
|
154
166
|
|
|
@@ -204,11 +216,11 @@ function Flow({
|
|
|
204
216
|
markSaved,
|
|
205
217
|
clearSelection,
|
|
206
218
|
markUnsaved,
|
|
219
|
+
reset,
|
|
207
220
|
} = useAgentActions();
|
|
208
221
|
|
|
209
222
|
// Always use enriched nodes for ReactFlow
|
|
210
223
|
const nodes = useMemo(() => enrichNodes(storeNodes), [storeNodes, enrichNodes]);
|
|
211
|
-
const { nodeId, edgeId, setQueryState, openAgentPane, isOpen } = useSidePane();
|
|
212
224
|
const { errors, showErrors, setErrors, clearErrors, setShowErrors } = useAgentErrors();
|
|
213
225
|
|
|
214
226
|
/**
|
|
@@ -227,7 +239,6 @@ function Flow({
|
|
|
227
239
|
// as `requestAnimationFrame` may run too early, causing `hasIntersections` to incorrectly return false.
|
|
228
240
|
setTimeout(() => {
|
|
229
241
|
const currentNodes = getNodes();
|
|
230
|
-
// Check if any of the replaced nodes are intersecting with others
|
|
231
242
|
for (const change of replaceChanges) {
|
|
232
243
|
const node = currentNodes.find((n) => n.id === change.id);
|
|
233
244
|
if (!node) {
|
|
@@ -257,37 +268,15 @@ function Flow({
|
|
|
257
268
|
toolLookup,
|
|
258
269
|
agentToolConfigLookup
|
|
259
270
|
);
|
|
271
|
+
|
|
272
|
+
return () => {
|
|
273
|
+
// we need to reset the agent store when the component unmounts otherwise the agent store will persist the changes from the previous agent
|
|
274
|
+
reset();
|
|
275
|
+
};
|
|
260
276
|
}, []);
|
|
261
277
|
|
|
262
278
|
// biome-ignore lint/correctness/useExhaustiveDependencies: we only want to run this effect on first render
|
|
263
279
|
useEffect(() => {
|
|
264
|
-
if (!agent) {
|
|
265
|
-
openAgentPane();
|
|
266
|
-
return;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
if (!nodeId && !edgeId) {
|
|
270
|
-
openAgentPane();
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
if (nodeId) {
|
|
274
|
-
setNodes((nodes) =>
|
|
275
|
-
nodes.map((node) => ({
|
|
276
|
-
...node,
|
|
277
|
-
selected: node.id === nodeId,
|
|
278
|
-
}))
|
|
279
|
-
);
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
if (edgeId) {
|
|
283
|
-
setEdges((edges) =>
|
|
284
|
-
edges.map((edge) => ({
|
|
285
|
-
...edge,
|
|
286
|
-
selected: edge.id === edgeId,
|
|
287
|
-
}))
|
|
288
|
-
);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
280
|
// If the nodeId or edgeId in URL doesn't exist in the agent, clear it
|
|
292
281
|
if (nodeId && !agentNodes.some((node) => node.id === nodeId)) {
|
|
293
282
|
setQueryState((prev) => ({
|
|
@@ -459,7 +448,6 @@ function Flow({
|
|
|
459
448
|
? edges[0]
|
|
460
449
|
: null;
|
|
461
450
|
const defaultPane = isOpen ? 'agent' : null;
|
|
462
|
-
|
|
463
451
|
setQueryState(
|
|
464
452
|
{
|
|
465
453
|
pane: node ? 'node' : edge ? 'edge' : defaultPane,
|
|
@@ -517,7 +505,6 @@ function Flow({
|
|
|
517
505
|
}))
|
|
518
506
|
);
|
|
519
507
|
setEdges((edges) => edges.map((edge) => ({ ...edge, selected: false })));
|
|
520
|
-
|
|
521
508
|
// Open the sidepane for the selected node
|
|
522
509
|
setQueryState({
|
|
523
510
|
pane: 'node',
|
|
@@ -580,7 +567,6 @@ function Flow({
|
|
|
580
567
|
agentToolConfigLookup
|
|
581
568
|
);
|
|
582
569
|
|
|
583
|
-
// Build a map from toolId to React Flow node ID for function tools
|
|
584
570
|
const functionToolNodeMap = new Map<string, string>();
|
|
585
571
|
nodes.forEach((node) => {
|
|
586
572
|
if (node.type === NodeType.FunctionTool) {
|
|
@@ -590,10 +576,8 @@ function Flow({
|
|
|
590
576
|
}
|
|
591
577
|
});
|
|
592
578
|
|
|
593
|
-
// Validate the serialized data before saving
|
|
594
579
|
const validationErrors = validateSerializedData(serializedData, functionToolNodeMap);
|
|
595
580
|
if (validationErrors.length > 0) {
|
|
596
|
-
// Convert validation errors to the format expected by parseAgentValidationErrors
|
|
597
581
|
const errorObjects = validationErrors.map((error) => ({
|
|
598
582
|
message: error.message,
|
|
599
583
|
field: error.field,
|
|
@@ -625,10 +609,8 @@ function Flow({
|
|
|
625
609
|
|
|
626
610
|
// Update MCP nodes with new relationshipIds from backend response
|
|
627
611
|
if (res.data) {
|
|
628
|
-
// Create a map to track which relationships were processed
|
|
629
612
|
const processedRelationships = new Set<string>();
|
|
630
613
|
|
|
631
|
-
// Update nodes with the new relationshipIds
|
|
632
614
|
setNodes((currentNodes) =>
|
|
633
615
|
currentNodes.map((node) => {
|
|
634
616
|
if (node.type === NodeType.MCP) {
|
|
@@ -4,14 +4,13 @@ import {
|
|
|
4
4
|
OPENAI_MODELS,
|
|
5
5
|
} from '@inkeep/agents-core/constants/models';
|
|
6
6
|
|
|
7
|
-
export const DEFAULT_ANTHROPIC_BASE_MODEL = ANTHROPIC_MODELS.
|
|
8
|
-
export const DEFAULT_ANTHROPIC_STRUCTURED_OUTPUT_MODEL =
|
|
9
|
-
|
|
10
|
-
export const DEFAULT_ANTHROPIC_SUMMARIZER_MODEL = ANTHROPIC_MODELS.CLAUDE_SONNET_4_5_20250929;
|
|
7
|
+
export const DEFAULT_ANTHROPIC_BASE_MODEL = ANTHROPIC_MODELS.CLAUDE_SONNET_4_5;
|
|
8
|
+
export const DEFAULT_ANTHROPIC_STRUCTURED_OUTPUT_MODEL = ANTHROPIC_MODELS.CLAUDE_SONNET_4_5;
|
|
9
|
+
export const DEFAULT_ANTHROPIC_SUMMARIZER_MODEL = ANTHROPIC_MODELS.CLAUDE_SONNET_4_5;
|
|
11
10
|
|
|
12
|
-
export const DEFAULT_OPENAI_BASE_MODEL = OPENAI_MODELS.
|
|
13
|
-
export const DEFAULT_OPENAI_STRUCTURED_OUTPUT_MODEL = OPENAI_MODELS.
|
|
14
|
-
export const DEFAULT_OPENAI_SUMMARIZER_MODEL = OPENAI_MODELS.
|
|
11
|
+
export const DEFAULT_OPENAI_BASE_MODEL = OPENAI_MODELS.GPT_4_1;
|
|
12
|
+
export const DEFAULT_OPENAI_STRUCTURED_OUTPUT_MODEL = OPENAI_MODELS.GPT_4_1;
|
|
13
|
+
export const DEFAULT_OPENAI_SUMMARIZER_MODEL = OPENAI_MODELS.GPT_4_1_NANO;
|
|
15
14
|
|
|
16
15
|
export const DEFAULT_GOOGLE_BASE_MODEL = GOOGLE_MODELS.GEMINI_2_5_FLASH;
|
|
17
16
|
export const DEFAULT_GOOGLE_STRUCTURED_OUTPUT_MODEL = GOOGLE_MODELS.GEMINI_2_5_FLASH_LITE;
|
|
@@ -31,9 +30,13 @@ export const modelOptions = {
|
|
|
31
30
|
value: ANTHROPIC_MODELS.CLAUDE_SONNET_4,
|
|
32
31
|
label: 'Claude Sonnet 4',
|
|
33
32
|
},
|
|
33
|
+
{
|
|
34
|
+
value: ANTHROPIC_MODELS.CLAUDE_HAIKU_4_5,
|
|
35
|
+
label: 'Claude Haiku 4.5',
|
|
36
|
+
},
|
|
34
37
|
{
|
|
35
38
|
value: ANTHROPIC_MODELS.CLAUDE_3_5_HAIKU,
|
|
36
|
-
label: 'Claude 3.5
|
|
39
|
+
label: 'Claude Haiku 3.5',
|
|
37
40
|
},
|
|
38
41
|
],
|
|
39
42
|
openai: [
|
|
@@ -44,7 +44,6 @@ export function SelfLoopEdge({ source, data, selected }: SelfLoopEdgeProps) {
|
|
|
44
44
|
const endX = centerX + nodeWidth / 2;
|
|
45
45
|
const endY = centerY + 10;
|
|
46
46
|
|
|
47
|
-
// Create a smooth self-loop path
|
|
48
47
|
const transferPath = `
|
|
49
48
|
M ${startX} ${startY}
|
|
50
49
|
C ${startX + loopRadius * 2} ${startY - loopRadius},
|
|
@@ -9,7 +9,6 @@ import { Handle } from './handle';
|
|
|
9
9
|
export function FunctionToolNode(props: NodeProps & { data: FunctionToolNodeData }) {
|
|
10
10
|
const { data, selected, id } = props;
|
|
11
11
|
|
|
12
|
-
// Get data directly from node (like agents do)
|
|
13
12
|
const name = String(data.name || 'Function Tool');
|
|
14
13
|
const description = String(data.description || '');
|
|
15
14
|
|
|
@@ -272,7 +272,6 @@ export function ChatWidget({
|
|
|
272
272
|
const _IkpMessage: ComponentsConfig<Record<string, unknown>>['IkpMessage'] = (props) => {
|
|
273
273
|
const { message, renderMarkdown, renderComponent } = props;
|
|
274
274
|
|
|
275
|
-
// Check if we're still streaming - the last event should be a completion data-operation
|
|
276
275
|
const lastPart = message.parts[message.parts.length - 1];
|
|
277
276
|
const isStreaming = !(
|
|
278
277
|
lastPart?.type === 'data-operation' && lastPart?.data?.type === 'completion'
|
|
@@ -114,7 +114,6 @@ const InlineEvent: FC<{ operation: any; isLast: boolean }> = ({ operation, isLas
|
|
|
114
114
|
);
|
|
115
115
|
};
|
|
116
116
|
|
|
117
|
-
// Helper function for data-operation labels
|
|
118
117
|
const getOperationLabel = (operation: any) => {
|
|
119
118
|
// Use LLM-generated label if available for data-operations
|
|
120
119
|
if (operation.label) {
|
|
@@ -211,7 +210,6 @@ function StreamMarkdown({ parts }: { parts: any[] }) {
|
|
|
211
210
|
components={{
|
|
212
211
|
// Intercept superscript elements to render citations
|
|
213
212
|
sup: ({ children, ...props }) => {
|
|
214
|
-
// Check if this is a citation (format: ^artifact identifier^)
|
|
215
213
|
if (children && typeof children === 'string') {
|
|
216
214
|
// Find the citation part
|
|
217
215
|
const citation = parts.find(
|
|
@@ -337,7 +335,6 @@ export const IkpMessage: FC<IkpMessageProps> = ({
|
|
|
337
335
|
);
|
|
338
336
|
}
|
|
339
337
|
|
|
340
|
-
// Check if we're still streaming text content or if there are incomplete operations
|
|
341
338
|
const hasActiveOperations =
|
|
342
339
|
isStreaming || message.parts.some((part) => part.type === 'text' && part.state === 'streaming');
|
|
343
340
|
const isLoading = isStreaming || hasActiveOperations;
|
|
@@ -81,7 +81,6 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
|
|
|
81
81
|
const targetNode = useNodesData(selectedEdge.target);
|
|
82
82
|
const { markUnsaved } = useAgentActions();
|
|
83
83
|
|
|
84
|
-
// Check if this is a self-loop (source and target are the same)
|
|
85
84
|
const isSelfLoop = selectedEdge.source === selectedEdge.target;
|
|
86
85
|
|
|
87
86
|
const handleCheckboxChange = (id: string, checked: boolean) => {
|
|
@@ -110,7 +109,6 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
|
|
|
110
109
|
};
|
|
111
110
|
}
|
|
112
111
|
|
|
113
|
-
// Check if all relationships are now unchecked
|
|
114
112
|
const hasAnyRelationship =
|
|
115
113
|
newRelationships.transferSourceToTarget ||
|
|
116
114
|
newRelationships.transferTargetToSource ||
|
|
@@ -124,7 +122,6 @@ function EdgeEditor({ selectedEdge }: EdgeEditorProps) {
|
|
|
124
122
|
// Remove the edge if no relationships remain
|
|
125
123
|
setEdges((edges) => edges.filter((edge) => edge.id !== selectedEdge.id));
|
|
126
124
|
} else {
|
|
127
|
-
// Update the edge data with the new relationships
|
|
128
125
|
updateEdgeData(selectedEdge.id, {
|
|
129
126
|
relationships: newRelationships,
|
|
130
127
|
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Skeleton } from '@/components/ui/skeleton';
|
|
2
|
+
|
|
3
|
+
export function EditorLoadingSkeleton() {
|
|
4
|
+
return (
|
|
5
|
+
<div className="space-y-8 flex flex-col">
|
|
6
|
+
<div className="space-y-8">
|
|
7
|
+
<div className="space-y-2">
|
|
8
|
+
<Skeleton className="h-3.5 w-16" />
|
|
9
|
+
<Skeleton className="h-9 w-full rounded-md" />
|
|
10
|
+
</div>
|
|
11
|
+
<div className="space-y-2">
|
|
12
|
+
<Skeleton className="h-3.5 w-16" />
|
|
13
|
+
<Skeleton className="h-9 w-full rounded-md" />
|
|
14
|
+
</div>
|
|
15
|
+
<div className="space-y-2">
|
|
16
|
+
<Skeleton className="h-3.5 w-20" />
|
|
17
|
+
<Skeleton className="h-20 w-full rounded-md" />
|
|
18
|
+
</div>
|
|
19
|
+
<div className="space-y-2">
|
|
20
|
+
<Skeleton className="h-3.5 w-20" />
|
|
21
|
+
<Skeleton className="h-9 w-full rounded-md" />
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<div className="h-px bg-border" />
|
|
26
|
+
|
|
27
|
+
<div className="space-y-8">
|
|
28
|
+
<Skeleton className="h-6 w-32" />
|
|
29
|
+
<div className="space-y-2">
|
|
30
|
+
<Skeleton className="h-4 w-16" />
|
|
31
|
+
<Skeleton className="h-9 w-full rounded-md" />
|
|
32
|
+
</div>
|
|
33
|
+
<div className="space-y-2">
|
|
34
|
+
<Skeleton className="h-4 w-28" />
|
|
35
|
+
<Skeleton className="h-9 w-full rounded-md" />
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
@@ -15,7 +15,6 @@ export function FunctionToolNodeEditor({ selectedNode }: FunctionToolNodeEditorP
|
|
|
15
15
|
selectedNodeId: selectedNode.id,
|
|
16
16
|
});
|
|
17
17
|
|
|
18
|
-
// Get data directly from node (like agents do)
|
|
19
18
|
const nodeData = selectedNode.data;
|
|
20
19
|
|
|
21
20
|
// Local state for form fields - initialize from node data
|
|
@@ -98,7 +98,6 @@ export function MCPServerNodeEditor({
|
|
|
98
98
|
newSelections = [...currentSelections, toolName];
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
// Check if all tools are now selected - if so, use null to represent "all selected"
|
|
102
101
|
const allToolNames = activeTools?.map((tool) => tool.name) || [];
|
|
103
102
|
let finalSelection: string[] | null = newSelections;
|
|
104
103
|
|
|
@@ -65,7 +65,6 @@ export function SubAgentNodeEditor({
|
|
|
65
65
|
const selectedDataComponents = selectedNode.data?.dataComponents || [];
|
|
66
66
|
const selectedArtifactComponents = selectedNode.data?.artifactComponents || [];
|
|
67
67
|
|
|
68
|
-
// Get project and agent data for inheritance indicators
|
|
69
68
|
const { project } = useProjectData();
|
|
70
69
|
const metadata = useAgentStore((state) => state.metadata);
|
|
71
70
|
|
|
@@ -74,7 +73,6 @@ export function SubAgentNodeEditor({
|
|
|
74
73
|
errorHelpers,
|
|
75
74
|
});
|
|
76
75
|
|
|
77
|
-
// Create a wrapper function that provides the current node data for nested updates
|
|
78
76
|
const updateModelPath = useCallback(
|
|
79
77
|
(path: string, value: any) => {
|
|
80
78
|
updateNestedPath(path, value, selectedNode.data);
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
nodeTypeMap,
|
|
19
19
|
} from '../configuration/node-types';
|
|
20
20
|
import EdgeEditor from './edges/edge-editor';
|
|
21
|
+
import { EditorLoadingSkeleton } from './editor-loading-skeleton';
|
|
21
22
|
import { Heading } from './heading';
|
|
22
23
|
import MetadataEditor from './metadata/metadata-editor';
|
|
23
24
|
import { ExternalAgentNodeEditor } from './nodes/external-agent-node-editor';
|
|
@@ -62,12 +63,12 @@ export function SidePane({
|
|
|
62
63
|
let heading = '';
|
|
63
64
|
let HeadingIcon: LucideIcon | undefined;
|
|
64
65
|
|
|
65
|
-
if (
|
|
66
|
-
const nodeType = selectedNode?.type as keyof typeof nodeTypeMap;
|
|
66
|
+
if (selectedNodeId) {
|
|
67
|
+
const nodeType = (selectedNode?.type as keyof typeof nodeTypeMap) || NodeType.SubAgent;
|
|
67
68
|
const nodeConfig = nodeTypeMap[nodeType];
|
|
68
69
|
heading = nodeConfig?.name || 'Node';
|
|
69
70
|
HeadingIcon = nodeConfig?.Icon;
|
|
70
|
-
} else if (
|
|
71
|
+
} else if (selectedEdgeId) {
|
|
71
72
|
const edgeType = (selectedEdge?.type as keyof typeof edgeTypeMap) || 'default';
|
|
72
73
|
const edgeConfig = edgeTypeMap[edgeType];
|
|
73
74
|
heading = edgeConfig?.name || 'Connection';
|
|
@@ -78,9 +79,16 @@ export function SidePane({
|
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
return { heading, HeadingIcon };
|
|
81
|
-
}, [selectedNode, selectedEdge]);
|
|
82
|
+
}, [selectedNode, selectedEdge, selectedNodeId, selectedEdgeId]);
|
|
82
83
|
|
|
83
84
|
const editorContent = useMemo(() => {
|
|
85
|
+
if (selectedNodeId && !selectedNode) {
|
|
86
|
+
return <EditorLoadingSkeleton />;
|
|
87
|
+
}
|
|
88
|
+
if (selectedEdgeId && !selectedEdge) {
|
|
89
|
+
return <EditorLoadingSkeleton />;
|
|
90
|
+
}
|
|
91
|
+
|
|
84
92
|
if (selectedNode) {
|
|
85
93
|
const nodeType = selectedNode?.type as keyof typeof nodeTypeMap;
|
|
86
94
|
// Use the agent ID from node data if available, otherwise fall back to React Flow node ID
|
|
@@ -135,6 +143,8 @@ export function SidePane({
|
|
|
135
143
|
}
|
|
136
144
|
return <MetadataEditor />;
|
|
137
145
|
}, [
|
|
146
|
+
selectedNodeId,
|
|
147
|
+
selectedEdgeId,
|
|
138
148
|
selectedNode,
|
|
139
149
|
selectedEdge,
|
|
140
150
|
dataComponentLookup,
|
|
@@ -6,7 +6,6 @@ const jsonSchemaValidation = () =>
|
|
|
6
6
|
z
|
|
7
7
|
.union([z.string(), z.null(), z.undefined()])
|
|
8
8
|
.transform((value, ctx) => {
|
|
9
|
-
// If no value provided, empty string, or null, return undefined
|
|
10
9
|
if (!value || value === '' || value === null) {
|
|
11
10
|
return undefined;
|
|
12
11
|
}
|
|
@@ -14,7 +13,6 @@ const jsonSchemaValidation = () =>
|
|
|
14
13
|
try {
|
|
15
14
|
const parsed = JSON.parse(value);
|
|
16
15
|
|
|
17
|
-
// Validate it's a proper LLM-compatible JSON schema
|
|
18
16
|
const validationResult = validateJsonSchemaForLlm(value);
|
|
19
17
|
if (!validationResult.isValid) {
|
|
20
18
|
const errorMessage = validationResult.errors[0]?.message || 'Invalid JSON schema';
|
|
@@ -65,7 +65,6 @@ export function EditCredentialForm({
|
|
|
65
65
|
|
|
66
66
|
const handleUpdateCredential = async (formData: EditCredentialFormData) => {
|
|
67
67
|
try {
|
|
68
|
-
// Update credential metadata in our database
|
|
69
68
|
await updateCredential(tenantId, projectId, credential.id, {
|
|
70
69
|
retrievalParams: {
|
|
71
70
|
...credential.retrievalParams,
|
|
@@ -73,7 +72,6 @@ export function EditCredentialForm({
|
|
|
73
72
|
},
|
|
74
73
|
});
|
|
75
74
|
|
|
76
|
-
// Update connection metadata in Nango if we have connection info
|
|
77
75
|
if (
|
|
78
76
|
credential.retrievalParams?.providerConfigKey &&
|
|
79
77
|
credential.retrievalParams?.connectionId &&
|
|
@@ -67,7 +67,6 @@ export function GenericAuthForm({
|
|
|
67
67
|
// Move hooks before any early returns
|
|
68
68
|
const allFields = formConfig?.sections.flatMap((section) => section.fields) || [];
|
|
69
69
|
|
|
70
|
-
// Create a minimal schema if no config is available
|
|
71
70
|
const FormSchema = formConfig
|
|
72
71
|
? createFormSchema(formConfig)
|
|
73
72
|
: z.object({ _placeholder: z.string().optional() });
|
|
@@ -13,7 +13,6 @@ export const dataComponentSchema = z.object({
|
|
|
13
13
|
try {
|
|
14
14
|
const parsed = JSON.parse(str);
|
|
15
15
|
|
|
16
|
-
// Validate it's a proper LLM-compatible JSON schema
|
|
17
16
|
const validationResult = validateJsonSchemaForLlm(str);
|
|
18
17
|
if (!validationResult.isValid) {
|
|
19
18
|
const errorMessage = validationResult.errors[0]?.message || 'Invalid JSON schema';
|
|
@@ -76,7 +76,6 @@ function isJMESPathExpressions(key: string): boolean {
|
|
|
76
76
|
return key.includes('[?') || key.includes('[*]');
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
// Create linter for template variable validation
|
|
80
79
|
function createTemplateVariableLinter(suggestions: string[]) {
|
|
81
80
|
return linter((view) => {
|
|
82
81
|
const diagnostics: Diagnostic[] = [];
|
|
@@ -92,7 +91,6 @@ function createTemplateVariableLinter(suggestions: string[]) {
|
|
|
92
91
|
const to = line.from + match.index + match[0].length;
|
|
93
92
|
const variableName = match[1];
|
|
94
93
|
|
|
95
|
-
// Check if variable is valid (in suggestions) or reserved
|
|
96
94
|
const isValid =
|
|
97
95
|
validVariables.has(variableName) ||
|
|
98
96
|
RESERVED_KEYS.has(variableName) ||
|
|
@@ -116,14 +114,12 @@ function createTemplateVariableLinter(suggestions: string[]) {
|
|
|
116
114
|
});
|
|
117
115
|
}
|
|
118
116
|
|
|
119
|
-
// Create autocomplete source for context variables
|
|
120
117
|
function createContextAutocompleteSource(suggestions: string[]): CompletionSource {
|
|
121
118
|
return (context) => {
|
|
122
119
|
const { state, pos } = context;
|
|
123
120
|
const line = state.doc.lineAt(pos);
|
|
124
121
|
const to = pos - line.from;
|
|
125
122
|
const textBefore = line.text.slice(0, to);
|
|
126
|
-
// Check if we're after a { character
|
|
127
123
|
const match = textBefore.match(/\{([^}]*)$/);
|
|
128
124
|
if (!match) return null;
|
|
129
125
|
|
|
@@ -24,7 +24,6 @@ export function MCPToolImage({
|
|
|
24
24
|
const [imageError, setImageError] = useState(false);
|
|
25
25
|
const [imageLoading, setImageLoading] = useState(true);
|
|
26
26
|
|
|
27
|
-
// If no imageUrl or image failed to load, show fallback
|
|
28
27
|
if (!imageUrl || imageError) {
|
|
29
28
|
if (provider) {
|
|
30
29
|
return <ProviderIcon provider={provider} size={size} className={className} />;
|
|
@@ -26,7 +26,6 @@ interface ProjectFormProps {
|
|
|
26
26
|
|
|
27
27
|
const serializeData = (data: ProjectFormData) => {
|
|
28
28
|
const cleanProviderOptions = (options: any) => {
|
|
29
|
-
// Convert null, empty object, or falsy values to undefined
|
|
30
29
|
if (!options || (typeof options === 'object' && Object.keys(options).length === 0)) {
|
|
31
30
|
return undefined;
|
|
32
31
|
}
|
|
@@ -48,7 +47,6 @@ const serializeData = (data: ProjectFormData) => {
|
|
|
48
47
|
cleaned.stepCountIs = stopWhen.stepCountIs;
|
|
49
48
|
}
|
|
50
49
|
|
|
51
|
-
// If no valid properties, return empty object (undefined will not update the field)
|
|
52
50
|
if (Object.keys(cleaned).length === 0) {
|
|
53
51
|
return {};
|
|
54
52
|
}
|
|
@@ -186,8 +184,6 @@ export function ProjectForm({
|
|
|
186
184
|
|
|
187
185
|
<ProjectStopWhenSection control={form.control} />
|
|
188
186
|
|
|
189
|
-
<Separator />
|
|
190
|
-
|
|
191
187
|
<div className={`flex gap-3 ${onCancel ? 'justify-end' : 'justify-start'}`}>
|
|
192
188
|
{onCancel && (
|
|
193
189
|
<Button type="button" variant="outline" onClick={onCancel} disabled={isSubmitting}>
|
|
@@ -75,7 +75,6 @@ function StructuredOutputModelSection({ control }: { control: Control<ProjectFor
|
|
|
75
75
|
name: 'models.structuredOutput.providerOptions',
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
-
// Get the base model to show as inherited value
|
|
79
78
|
const baseModel = useWatch({ control, name: 'models.base.model' });
|
|
80
79
|
|
|
81
80
|
return (
|
|
@@ -130,7 +129,6 @@ function SummarizerModelSection({ control }: { control: Control<ProjectFormData>
|
|
|
130
129
|
name: 'models.summarizer.providerOptions',
|
|
131
130
|
});
|
|
132
131
|
|
|
133
|
-
// Get the base model to show as inherited value
|
|
134
132
|
const baseModel = useWatch({ control, name: 'models.base.model' });
|
|
135
133
|
|
|
136
134
|
return (
|
|
@@ -16,7 +16,6 @@ interface ProjectStopWhenSectionProps {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export function ProjectStopWhenSection({ control }: ProjectStopWhenSectionProps) {
|
|
19
|
-
// Check if any stopWhen values are configured to determine default open state
|
|
20
19
|
const stopWhen = useWatch({ control, name: 'stopWhen' });
|
|
21
20
|
const hasConfiguredStopWhen = !!(stopWhen?.transferCountIs || stopWhen?.stepCountIs);
|
|
22
21
|
const [isOpen, setIsOpen] = useState(hasConfiguredStopWhen);
|
|
@@ -40,7 +40,6 @@ export function ConversationListItem({ conversation, projectId }: ConversationLi
|
|
|
40
40
|
(() => {
|
|
41
41
|
try {
|
|
42
42
|
const date = new Date(startTime);
|
|
43
|
-
// Check if the date is valid
|
|
44
43
|
if (Number.isNaN(date.getTime())) return null;
|
|
45
44
|
|
|
46
45
|
const isoString = date.toISOString();
|
|
@@ -85,7 +85,6 @@ export const JsonEditorWithCopy: FC<{ value: string; uri: `${string}.json`; titl
|
|
|
85
85
|
if (model.isDisposed()) {
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
88
|
-
// Update height based on content
|
|
89
88
|
const contentHeight = editorInstance.getContentHeight();
|
|
90
89
|
if (container) {
|
|
91
90
|
container.style.height = `${contentHeight}px`;
|
|
@@ -134,9 +133,7 @@ export const JsonEditorWithCopy: FC<{ value: string; uri: `${string}.json`; titl
|
|
|
134
133
|
|
|
135
134
|
const handleDownloadCode = useCallback(() => {
|
|
136
135
|
const code = editorRef.current?.getValue() || '';
|
|
137
|
-
// Create a blob with the JSON content
|
|
138
136
|
const blob = new Blob([code], { type: 'application/json' });
|
|
139
|
-
// Create a download link
|
|
140
137
|
const url = URL.createObjectURL(blob);
|
|
141
138
|
const link = document.createElement('a');
|
|
142
139
|
link.href = url;
|
|
@@ -270,7 +270,6 @@ export function TimelineWrapper({
|
|
|
270
270
|
});
|
|
271
271
|
return updated;
|
|
272
272
|
});
|
|
273
|
-
// Update global state
|
|
274
273
|
const allProcessed = idsToProcess.every((id) => processedIdsRef.current.has(id));
|
|
275
274
|
if (enableAutoScroll) {
|
|
276
275
|
setAiMessagesGloballyCollapsed(allProcessed && aiMessageIds.length > 0);
|
|
@@ -303,7 +302,6 @@ export function TimelineWrapper({
|
|
|
303
302
|
}
|
|
304
303
|
setCollapsedAiMessages(newCollapsed);
|
|
305
304
|
|
|
306
|
-
// Update global state based on current state
|
|
307
305
|
const aiMessageIds = sortedActivities
|
|
308
306
|
.filter(
|
|
309
307
|
(activity) =>
|
|
@@ -110,7 +110,6 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
|
|
|
110
110
|
return () => clearTimeout(timer);
|
|
111
111
|
}, [searchQuery]);
|
|
112
112
|
|
|
113
|
-
// Build span filters
|
|
114
113
|
const spanFilters = useMemo<SpanFilterOptions | undefined>(() => {
|
|
115
114
|
if (!spanName && attributes.length === 0) {
|
|
116
115
|
return undefined;
|
|
@@ -122,7 +121,6 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
|
|
|
122
121
|
return filters;
|
|
123
122
|
}, [spanName, attributes]);
|
|
124
123
|
|
|
125
|
-
// Get aggregate stats efficiently (server-side aggregation)
|
|
126
124
|
const {
|
|
127
125
|
aggregateStats,
|
|
128
126
|
loading: aggregateLoading,
|
|
@@ -136,7 +134,6 @@ export function TracesOverview({ refreshKey }: TracesOverviewProps) {
|
|
|
136
134
|
agentId: selectedAgent,
|
|
137
135
|
});
|
|
138
136
|
|
|
139
|
-
// Get paginated conversations for the list display
|
|
140
137
|
const { stats, loading, error, refresh, pagination } = useConversationStats({
|
|
141
138
|
startTime,
|
|
142
139
|
endTime,
|
|
@@ -286,7 +286,6 @@ function ChartLegendContent({
|
|
|
286
286
|
);
|
|
287
287
|
}
|
|
288
288
|
|
|
289
|
-
// Helper to extract item config from a payload.
|
|
290
289
|
function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {
|
|
291
290
|
if (typeof payload !== 'object' || payload === null) {
|
|
292
291
|
return undefined;
|
|
@@ -102,7 +102,6 @@ export function InheritanceIndicator({
|
|
|
102
102
|
);
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
// Helper function to determine inheritance status for models
|
|
106
105
|
export function getModelInheritanceStatus(
|
|
107
106
|
currentLevel: 'project' | 'agent' | 'subagent',
|
|
108
107
|
currentValue: any,
|
|
@@ -195,7 +194,6 @@ export function getModelInheritanceStatus(
|
|
|
195
194
|
};
|
|
196
195
|
}
|
|
197
196
|
|
|
198
|
-
// Helper function for execution limits inheritance
|
|
199
197
|
export function getExecutionLimitInheritanceStatus(
|
|
200
198
|
currentLevel: 'project' | 'agent' | 'agent',
|
|
201
199
|
limitType: 'transferCountIs' | 'stepCountIs',
|
|
@@ -209,7 +207,6 @@ export function getExecutionLimitInheritanceStatus(
|
|
|
209
207
|
const hasCurrentValue = currentValue !== undefined && currentValue !== null;
|
|
210
208
|
const hasParentValue = parentValue !== undefined && parentValue !== null;
|
|
211
209
|
|
|
212
|
-
// Check if current value matches parent value (indicating inheritance after builder resolution)
|
|
213
210
|
if (hasCurrentValue && hasParentValue && currentValue === parentValue) {
|
|
214
211
|
// Inheritance rules for execution limits
|
|
215
212
|
if (limitType === 'transferCountIs' && currentLevel === 'agent') {
|