@inkeep/agents-manage-ui 0.6.6 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
- package/.next/standalone/agents-manage-ui/.next/app-build-manifest.json +64 -64
- package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +3 -3
- 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/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]/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]/artifact-components/[artifactComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-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_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]/data-components/[dataComponentId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +2 -2
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +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 +3 -3
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1267.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/1828.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/2124.js +13 -13
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{3793.js → 3144.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3460.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/499.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/5232.js +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/{7067.js → 6831.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/8449.js +2 -2
- 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/2915-f48fe90984ae5d8b.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/6497-b90b21b559925fc6.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/6763-5c2401becfe1a959.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-efbb83dcb2b4c5ce.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/{4931-1291b39db1c5dedf.js → 8825-c4a769ea3a8e81d1.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-c92a1f042f5ea538.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/{page-ac2f8091f8a53342.js → page-d8c96c8cefdfd4bd.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/new/{page-ac2f8091f8a53342.js → page-d8c96c8cefdfd4bd.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/{page-e3e9163c148c1239.js → page-9723ca38f4d36dda.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-a1be97e0e467835a.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-dcc6276bc353efb2.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-b4038baed88b93f9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/{page-876f0c019187591d.js → page-72ecfe1df8e379a5.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/{page-b945a6e458056f00.js → page-ee89187f61e8d315.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/new/{page-b945a6e458056f00.js → page-ee89187f61e8d315.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/page-e8b99c1272c1540c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/page-78554443bb163ae9.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-6ffb17fc6301b481.js → page-6a1affa547b51cd8.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-aa753859a6cd98f8.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-539caba402ab546f.js → page-6222398da9ee2271.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-f819dadc0a6d3e17.js → page-cdf6cf1143f6a553.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-8731d2271ec07d33.js → page-77f0a0e0e4372681.js} +1 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-b2e49d12c1c10e47.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-fc18e3ba5c2fc6a5.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-35c8d055f3f8d91c.js +1 -0
- package/.next/standalone/agents-manage-ui/.next/static/css/98c416ff19152db0.css +1 -0
- package/.next/standalone/agents-manage-ui/package.json +1 -1
- package/.next/standalone/packages/agents-core/package.json +1 -1
- package/package.json +4 -4
- package/src/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.tsx +12 -12
- package/src/components/credentials/credential-tools-list.tsx +0 -25
- package/src/components/graph/configuration/node-types.tsx +6 -2
- package/src/components/graph/graph.tsx +66 -8
- package/src/components/graph/nodes/mcp-node.tsx +6 -11
- package/src/components/graph/sidepane/nodes/mcp-node-editor.tsx +69 -68
- package/src/components/graph/sidepane/nodes/mcp-selector/mcp-selector.tsx +44 -44
- package/src/components/graph/sidepane/sidepane.tsx +5 -0
- package/src/components/mcp-servers/form/mcp-server-form.tsx +47 -46
- package/src/components/mcp-servers/mcp-tool-item.tsx +3 -0
- package/src/components/mcp-servers/view-mcp-server-details.tsx +76 -37
- package/src/components/ui/copyable-multi-line-code.tsx +17 -0
- package/src/features/graph/domain/__tests__/serialize.test.ts +21 -51
- package/src/features/graph/domain/deserialize.ts +5 -26
- package/src/features/graph/domain/serialize.ts +56 -52
- package/src/lib/api/tools.ts +2 -92
- package/src/lib/utils/orphaned-tools-detector.ts +145 -0
- package/.next/standalone/agents-manage-ui/.next/server/chunks/241.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/3995.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6300.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/6838.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/server/chunks/9435.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/1984-b89ef6de05884930.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/6497-1503999d28bd793b.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-0892927ad1317753.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/9202-65ce376d47468b8c.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-b12544e5422bb5f5.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-188cdc82aa6e4bc3.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-a45222825f0acc29.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-1952e6ae0b259e5e.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/page-e289128665acffb1.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/page-e89edd98413b78a4.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page-190351c7f4b5d2f8.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-d48cbe5a8a533023.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-39ca81e212d9fe4a.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-46ffc47ebd7010d6.js +0 -1
- package/.next/standalone/agents-manage-ui/.next/static/css/70e9093ef73fbe1b.css +0 -1
- /package/.next/standalone/agents-manage-ui/.next/static/{rTyWV-dnM3YFFcXfKZYFu → 0c8HYV9Bsdgx06_BNb0kR}/_buildManifest.js +0 -0
- /package/.next/standalone/agents-manage-ui/.next/static/{rTyWV-dnM3YFFcXfKZYFu → 0c8HYV9Bsdgx06_BNb0kR}/_ssgManifest.js +0 -0
|
@@ -9,7 +9,10 @@ import type { DataComponent } from '@/lib/api/data-components';
|
|
|
9
9
|
import type { FullGraphDefinition } from '@/lib/types/graph-full';
|
|
10
10
|
|
|
11
11
|
// Extract the internal agent type from the union
|
|
12
|
-
type InternalAgent = Extract<
|
|
12
|
+
type InternalAgent = Extract<
|
|
13
|
+
FullGraphDefinition['agents'][string],
|
|
14
|
+
{ canUse: Array<{ toolId: string; toolSelection?: string[] | null }> }
|
|
15
|
+
>;
|
|
13
16
|
|
|
14
17
|
type ExternalAgent = {
|
|
15
18
|
id: string;
|
|
@@ -82,7 +85,8 @@ export function serializeGraphData(
|
|
|
82
85
|
edges: Edge[],
|
|
83
86
|
metadata?: GraphMetadata,
|
|
84
87
|
dataComponentLookup?: Record<string, DataComponent>,
|
|
85
|
-
artifactComponentLookup?: Record<string, ArtifactComponent
|
|
88
|
+
artifactComponentLookup?: Record<string, ArtifactComponent>,
|
|
89
|
+
selectedToolsLookup?: Record<string, Record<string, string[]>>
|
|
86
90
|
): FullGraphDefinition {
|
|
87
91
|
const agents: Record<string, ExtendedAgent> = {};
|
|
88
92
|
// Note: Tools are now project-scoped and not included in graph serialization
|
|
@@ -108,13 +112,56 @@ export function serializeGraphData(
|
|
|
108
112
|
|
|
109
113
|
const stopWhen = (node.data as any).stopWhen;
|
|
110
114
|
|
|
111
|
-
//
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
// Build canUse array from edges connecting this agent to MCP nodes
|
|
116
|
+
const canUse: Array<{ toolId: string; toolSelection?: string[] | null }> = [];
|
|
117
|
+
|
|
118
|
+
// Find edges from this agent to MCP nodes
|
|
119
|
+
const agentToMcpEdges = edges.filter(
|
|
120
|
+
(edge) =>
|
|
121
|
+
edge.source === node.id &&
|
|
122
|
+
nodes.some((n) => n.id === edge.target && n.type === NodeType.MCP)
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
for (const edge of agentToMcpEdges) {
|
|
126
|
+
const mcpNode = nodes.find((n) => n.id === edge.target);
|
|
127
|
+
|
|
128
|
+
if (mcpNode && mcpNode.type === NodeType.MCP) {
|
|
129
|
+
const toolId = (mcpNode.data as any).toolId;
|
|
130
|
+
|
|
131
|
+
if (toolId) {
|
|
132
|
+
// Get selected tools from MCP node's tempSelectedTools
|
|
133
|
+
const tempSelectedTools = (mcpNode.data as any).tempSelectedTools;
|
|
134
|
+
let toolSelection: string[] | null = null;
|
|
135
|
+
|
|
136
|
+
if (tempSelectedTools !== undefined) {
|
|
137
|
+
// User has made changes to tool selection in the UI
|
|
138
|
+
if (Array.isArray(tempSelectedTools)) {
|
|
139
|
+
toolSelection = tempSelectedTools;
|
|
140
|
+
} else if (tempSelectedTools === null) {
|
|
141
|
+
toolSelection = null; // All tools selected
|
|
142
|
+
}
|
|
143
|
+
} else {
|
|
144
|
+
// No changes made to tool selection - preserve existing selection
|
|
145
|
+
if (
|
|
146
|
+
selectedToolsLookup &&
|
|
147
|
+
selectedToolsLookup[agentId] &&
|
|
148
|
+
selectedToolsLookup[agentId][toolId] !== undefined
|
|
149
|
+
) {
|
|
150
|
+
// Get existing selection from saved data
|
|
151
|
+
toolSelection = selectedToolsLookup[agentId][toolId];
|
|
152
|
+
} else {
|
|
153
|
+
// Default to all tools selected when no existing data found
|
|
154
|
+
toolSelection = null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
canUse.push({
|
|
159
|
+
toolId,
|
|
160
|
+
toolSelection,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
118
165
|
|
|
119
166
|
const agent: ExtendedAgent = {
|
|
120
167
|
id: agentId,
|
|
@@ -151,10 +198,6 @@ export function serializeGraphData(
|
|
|
151
198
|
}
|
|
152
199
|
|
|
153
200
|
agents[agentId] = agent;
|
|
154
|
-
} else if (node.type === NodeType.MCP) {
|
|
155
|
-
// Note: Tools are now project-scoped and not processed during graph serialization
|
|
156
|
-
// Tool nodes in the UI are handled separately at the project level
|
|
157
|
-
console.log('Skipping MCP tool node during graph serialization (tools are project-scoped)');
|
|
158
201
|
}
|
|
159
202
|
}
|
|
160
203
|
|
|
@@ -209,45 +252,6 @@ export function serializeGraphData(
|
|
|
209
252
|
addRelationship(targetAgent, 'canDelegateTo', sourceAgentId);
|
|
210
253
|
}
|
|
211
254
|
}
|
|
212
|
-
} else if (edge.type === EdgeType.Default) {
|
|
213
|
-
const sourceAgentNode = nodes.find((node) => node.id === edge.source);
|
|
214
|
-
const sourceAgentId = (sourceAgentNode?.data.id || sourceAgentNode?.id) as string;
|
|
215
|
-
const sourceAgent: ExtendedAgent = agents[sourceAgentId];
|
|
216
|
-
const targetToolNode = nodes.find((node) => node.id === edge.target);
|
|
217
|
-
if (sourceAgent && targetToolNode && sourceAgent.type === 'internal') {
|
|
218
|
-
const toolId = (targetToolNode.data as any).id as string;
|
|
219
|
-
const internalAgent = sourceAgent as InternalAgent & {
|
|
220
|
-
dataComponents: string[];
|
|
221
|
-
artifactComponents: string[];
|
|
222
|
-
models?: GraphMetadata['models'];
|
|
223
|
-
type: 'internal';
|
|
224
|
-
};
|
|
225
|
-
|
|
226
|
-
// Check if tool is already in canUse array
|
|
227
|
-
const existingCanUse = internalAgent.canUse.find(item => item.toolId === toolId);
|
|
228
|
-
if (!existingCanUse) {
|
|
229
|
-
internalAgent.canUse.push({
|
|
230
|
-
toolId,
|
|
231
|
-
toolSelection: null
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
// Only override toolSelection if user made changes in the UI for this specific tool
|
|
236
|
-
const userSelectedTools = (targetToolNode.data as any).tempSelectedTools;
|
|
237
|
-
if (userSelectedTools !== undefined) {
|
|
238
|
-
// User has made selections in the UI for this tool
|
|
239
|
-
const canUseItem = internalAgent.canUse.find(item => item.toolId === toolId);
|
|
240
|
-
if (canUseItem) {
|
|
241
|
-
if (userSelectedTools === null) {
|
|
242
|
-
// User selected all tools - set to null (null = all)
|
|
243
|
-
canUseItem.toolSelection = null;
|
|
244
|
-
} else {
|
|
245
|
-
// User selected specific tools (including empty array for "none selected")
|
|
246
|
-
canUseItem.toolSelection = userSelectedTools;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
255
|
}
|
|
252
256
|
}
|
|
253
257
|
|
package/src/lib/api/tools.ts
CHANGED
|
@@ -122,97 +122,7 @@ export async function deleteMCPTool(
|
|
|
122
122
|
validateTenantId(tenantId);
|
|
123
123
|
validateProjectId(projectId);
|
|
124
124
|
|
|
125
|
-
await makeManagementApiRequest<void>(
|
|
126
|
-
|
|
127
|
-
{
|
|
128
|
-
method: 'DELETE',
|
|
129
|
-
}
|
|
130
|
-
);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Check health of an MCP tool
|
|
135
|
-
*/
|
|
136
|
-
export async function checkMCPToolHealth(
|
|
137
|
-
tenantId: string,
|
|
138
|
-
projectId: string,
|
|
139
|
-
id: string
|
|
140
|
-
): Promise<{
|
|
141
|
-
tool: McpTool;
|
|
142
|
-
healthCheck: {
|
|
143
|
-
status: McpTool['status'];
|
|
144
|
-
error?: string;
|
|
145
|
-
};
|
|
146
|
-
}> {
|
|
147
|
-
validateTenantId(tenantId);
|
|
148
|
-
validateProjectId(projectId);
|
|
149
|
-
|
|
150
|
-
const response = await makeManagementApiRequest<
|
|
151
|
-
SingleResponse<{
|
|
152
|
-
tool: McpTool;
|
|
153
|
-
healthCheck: {
|
|
154
|
-
status: McpTool['status'];
|
|
155
|
-
error?: string;
|
|
156
|
-
};
|
|
157
|
-
}>
|
|
158
|
-
>(`tenants/${tenantId}/projects/${projectId}/tools/${id}/health-check`, {
|
|
159
|
-
method: 'POST',
|
|
125
|
+
await makeManagementApiRequest<void>(`tenants/${tenantId}/projects/${projectId}/tools/${id}`, {
|
|
126
|
+
method: 'DELETE',
|
|
160
127
|
});
|
|
161
|
-
|
|
162
|
-
return response.data;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Get available tools from an MCP server
|
|
167
|
-
*/
|
|
168
|
-
export async function getMCPToolAvailableTools(
|
|
169
|
-
tenantId: string,
|
|
170
|
-
projectId: string,
|
|
171
|
-
id: string
|
|
172
|
-
): Promise<{
|
|
173
|
-
availableTools: Array<{
|
|
174
|
-
name: string;
|
|
175
|
-
description?: string;
|
|
176
|
-
inputSchema?: Record<string, unknown>;
|
|
177
|
-
}>;
|
|
178
|
-
lastSync?: string;
|
|
179
|
-
status: McpTool['status'];
|
|
180
|
-
}> {
|
|
181
|
-
validateTenantId(tenantId);
|
|
182
|
-
validateProjectId(projectId);
|
|
183
|
-
|
|
184
|
-
const response = await makeManagementApiRequest<
|
|
185
|
-
SingleResponse<{
|
|
186
|
-
availableTools: Array<{
|
|
187
|
-
name: string;
|
|
188
|
-
description?: string;
|
|
189
|
-
inputSchema?: Record<string, unknown>;
|
|
190
|
-
}>;
|
|
191
|
-
lastSync?: string;
|
|
192
|
-
status: McpTool['status'];
|
|
193
|
-
}>
|
|
194
|
-
>(`tenants/${tenantId}/projects/${projectId}/tools/${id}/available-tools`);
|
|
195
|
-
|
|
196
|
-
return response.data;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Sync tool definitions from an MCP server
|
|
201
|
-
*/
|
|
202
|
-
export async function syncMCPTool(
|
|
203
|
-
tenantId: string,
|
|
204
|
-
projectId: string,
|
|
205
|
-
id: string
|
|
206
|
-
): Promise<McpTool> {
|
|
207
|
-
validateTenantId(tenantId);
|
|
208
|
-
validateProjectId(projectId);
|
|
209
|
-
|
|
210
|
-
const response = await makeManagementApiRequest<SingleResponse<McpTool>>(
|
|
211
|
-
`tenants/${tenantId}/projects/${projectId}/tools/${id}/sync`,
|
|
212
|
-
{
|
|
213
|
-
method: 'POST',
|
|
214
|
-
}
|
|
215
|
-
);
|
|
216
|
-
|
|
217
|
-
return response.data;
|
|
218
128
|
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import type { Node } from '@xyflow/react';
|
|
2
|
+
import { getActiveTools } from '@/app/utils/active-tools';
|
|
3
|
+
import type { MCPNodeData } from '@/components/graph/configuration/node-types';
|
|
4
|
+
import { NodeType } from '@/components/graph/configuration/node-types';
|
|
5
|
+
import type { MCPTool } from '@/lib/types/tools';
|
|
6
|
+
|
|
7
|
+
export interface OrphanedToolsInfo {
|
|
8
|
+
nodeId: string;
|
|
9
|
+
nodeName: string;
|
|
10
|
+
orphanedTools: string[];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface OrphanedToolsDetectionResult {
|
|
14
|
+
hasOrphanedTools: boolean;
|
|
15
|
+
orphanedToolsByNode: OrphanedToolsInfo[];
|
|
16
|
+
totalOrphanedCount: number;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Simplified API that combines detection and message creation
|
|
21
|
+
* Returns null if no orphaned tools found, otherwise returns the warning message
|
|
22
|
+
*/
|
|
23
|
+
export function detectOrphanedToolsAndGetWarning(
|
|
24
|
+
nodes: Node[],
|
|
25
|
+
selectedToolsLookup: Record<string, Record<string, string[]>>,
|
|
26
|
+
toolLookup: Record<string, MCPTool>
|
|
27
|
+
): string | null {
|
|
28
|
+
const result = detectOrphanedToolsInGraph(nodes, selectedToolsLookup, toolLookup);
|
|
29
|
+
return result.hasOrphanedTools ? createOrphanedToolsWarningMessage(result) : null;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Extract shared logic for getting selected tools for a node
|
|
34
|
+
* This replaces the duplicated logic between detector and MCP node editor
|
|
35
|
+
*/
|
|
36
|
+
export function getCurrentSelectedToolsForNode(
|
|
37
|
+
node: Node<MCPNodeData>,
|
|
38
|
+
selectedToolsLookup: Record<string, Record<string, string[]>>
|
|
39
|
+
): string[] | null {
|
|
40
|
+
// First check if we have temporary selections stored on the node (from recent clicks)
|
|
41
|
+
if ((node.data as any).tempSelectedTools !== undefined) {
|
|
42
|
+
return (node.data as any).tempSelectedTools;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Otherwise, get from the database/initial state
|
|
46
|
+
const allSelectedTools = new Set<string>();
|
|
47
|
+
let hasAnyData = false;
|
|
48
|
+
let hasEmptyArray = false;
|
|
49
|
+
let hasNullValue = false;
|
|
50
|
+
|
|
51
|
+
Object.values(selectedToolsLookup).forEach((agentTools) => {
|
|
52
|
+
const toolsForThisMCP = agentTools[node.data.toolId];
|
|
53
|
+
if (toolsForThisMCP !== undefined) {
|
|
54
|
+
hasAnyData = true;
|
|
55
|
+
if (Array.isArray(toolsForThisMCP) && toolsForThisMCP.length === 0) {
|
|
56
|
+
hasEmptyArray = true;
|
|
57
|
+
} else if (toolsForThisMCP === null) {
|
|
58
|
+
hasNullValue = true;
|
|
59
|
+
} else if (Array.isArray(toolsForThisMCP)) {
|
|
60
|
+
toolsForThisMCP.forEach((tool) => {
|
|
61
|
+
allSelectedTools.add(tool);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
if (hasNullValue) return null;
|
|
68
|
+
if (hasEmptyArray) return [];
|
|
69
|
+
if (!hasAnyData) return null;
|
|
70
|
+
|
|
71
|
+
return Array.from(allSelectedTools);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Detects orphaned tools across all MCP nodes in the graph
|
|
76
|
+
* Orphaned tools are tools that were selected but are no longer available in the MCP server
|
|
77
|
+
*/
|
|
78
|
+
export function detectOrphanedToolsInGraph(
|
|
79
|
+
nodes: Node[],
|
|
80
|
+
selectedToolsLookup: Record<string, Record<string, string[]>>,
|
|
81
|
+
toolLookup: Record<string, MCPTool>
|
|
82
|
+
): OrphanedToolsDetectionResult {
|
|
83
|
+
const orphanedToolsByNode: OrphanedToolsInfo[] = [];
|
|
84
|
+
|
|
85
|
+
// Find all MCP nodes
|
|
86
|
+
const mcpNodes = nodes.filter((node): node is Node<MCPNodeData> => node.type === NodeType.MCP);
|
|
87
|
+
|
|
88
|
+
for (const node of mcpNodes) {
|
|
89
|
+
const toolData = toolLookup[node.data.toolId];
|
|
90
|
+
if (!toolData) continue; // Skip if tool data not found
|
|
91
|
+
|
|
92
|
+
const activeTools = getActiveTools({
|
|
93
|
+
availableTools: toolData.availableTools,
|
|
94
|
+
activeTools: toolData.config?.mcp?.activeTools,
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
const selectedTools = getCurrentSelectedToolsForNode(node, selectedToolsLookup);
|
|
98
|
+
|
|
99
|
+
// Find orphaned tools for this node
|
|
100
|
+
const orphanedTools =
|
|
101
|
+
selectedTools && Array.isArray(selectedTools)
|
|
102
|
+
? selectedTools.filter((toolName) => !activeTools?.some((tool) => tool.name === toolName))
|
|
103
|
+
: [];
|
|
104
|
+
|
|
105
|
+
if (orphanedTools.length > 0) {
|
|
106
|
+
orphanedToolsByNode.push({
|
|
107
|
+
nodeId: node.data.toolId,
|
|
108
|
+
nodeName: node.data.name || toolData.name || 'Unnamed MCP Server',
|
|
109
|
+
orphanedTools,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const totalOrphanedCount = orphanedToolsByNode.reduce(
|
|
115
|
+
(total, nodeInfo) => total + nodeInfo.orphanedTools.length,
|
|
116
|
+
0
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
return {
|
|
120
|
+
hasOrphanedTools: orphanedToolsByNode.length > 0,
|
|
121
|
+
orphanedToolsByNode,
|
|
122
|
+
totalOrphanedCount,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Creates a user-friendly warning message for orphaned tools
|
|
128
|
+
* Assumes result.hasOrphanedTools is true (should be checked by caller)
|
|
129
|
+
*/
|
|
130
|
+
export function createOrphanedToolsWarningMessage(result: OrphanedToolsDetectionResult): string {
|
|
131
|
+
const nodeCount = result.orphanedToolsByNode.length;
|
|
132
|
+
const toolCount = result.totalOrphanedCount;
|
|
133
|
+
|
|
134
|
+
if (nodeCount === 1) {
|
|
135
|
+
const nodeInfo = result.orphanedToolsByNode[0];
|
|
136
|
+
const toolList = nodeInfo.orphanedTools.join(', ');
|
|
137
|
+
const toolText = toolCount > 1 ? 'tools' : 'tool';
|
|
138
|
+
const verbText = toolCount > 1 ? 'are' : 'is';
|
|
139
|
+
const pronounText = toolCount > 1 ? 'These tools' : 'This tool';
|
|
140
|
+
|
|
141
|
+
return `The MCP server "${nodeInfo.nodeName}" has ${toolCount} selected ${toolText} that ${verbText} no longer available: ${toolList}. ${pronounText} will not be available at runtime. Please update your tool selections.`;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return `${nodeCount} MCP servers have a total of ${toolCount} selected tools that are no longer available. These orphaned tools will not be available at runtime. Please update your tool selections.`;
|
|
145
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=241,exports.ids=[241],exports.modules={7493:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"402a60e86eb8f5124f05bb6c3f048230f9de8c77e2":()=>d.bW,"604df70d93818c6d34c7addbbc027aff1c37de0e7a":()=>d.Dv,"60a2611cb014a3bcb5cdb27b19c951743cfee30bb8":()=>p,"60a3a46af0697c6ba6a44aa44cfa624abd221acbe8":()=>d.gL,"60d748e1614c07d34d11142c5d3d9d54dce710b60f":()=>d.qf,"7001482f3ab6c884363356254df98d04bf0bcac16b":()=>s,"7082fc3a0a03fcfe74aa148418f8b8778b9c963b02":()=>q,"70d5f2c811db3932ba6f418f089805d0adc761a065":()=>d.Tg,"70d851ffda2d8bafa81addf5dbf762004b51f0bcce":()=>r});var d=c(72025),e=c(29991);c(58415);var f=c(83248),g=c(8703),h=c(45796),i=c(33451);async function j(a,b){(0,h.M2)(a),(0,h.nt)(b);let c=await (0,g.J)(`tenants/${a}/projects/${b}/data-components`);return{...c,data:c.data.map(a=>({...a,props:a.props||{}}))}}async function k(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/data-components/${c}`);return{...d.data,props:d.data.props||{}}}async function l(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/data-components`,{method:"POST",body:JSON.stringify(c)});return{...d.data,props:d.data.props||{}}}async function m(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/data-components/${c.id}`,{method:"PUT",body:JSON.stringify(c)});return{...d.data,props:d.data.props||{}}}async function n(a,b,c){(0,h.M2)(a),(0,h.nt)(b),await (0,g.J)(`tenants/${a}/projects/${b}/data-components/${c}`,{method:"DELETE"})}(0,i.D)([j,k,l,m,n]),(0,e.A)(j,"60bcfbe170a75175ccec147457fae5a98aa771aa93",null),(0,e.A)(k,"708bc2b53d1a50dd19bbd24763f7d4e44408a4d537",null),(0,e.A)(l,"70a63106320a4755be1146de290f8b69875d2af2bc",null),(0,e.A)(m,"70a799de62a33c491c9eb0a2d19e32fa426345449c",null),(0,e.A)(n,"7054ad63e8647b6645f256dec1d2824a89709a0a6b",null);var o=c(36608);async function p(a,b){try{let c=await j(a,b);return{success:!0,data:c.data}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function q(a,b,c){try{let d=await l(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/data-components`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function r(a,b,c){try{let d=await m(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/data-components`),(0,f.revalidatePath)(`/${a}/projects/${b}/data-components/${c.id}`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function s(a,b,c){try{return await n(a,b,c),(0,f.revalidatePath)(`/${a}/projects/${b}/data-components`),(0,f.revalidatePath)(`/${a}/projects/${b}/data-components/${c}`),{success:!0}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}(0,i.D)([p,q,r,s]),(0,e.A)(p,"60a2611cb014a3bcb5cdb27b19c951743cfee30bb8",null),(0,e.A)(q,"7082fc3a0a03fcfe74aa148418f8b8778b9c963b02",null),(0,e.A)(r,"70d851ffda2d8bafa81addf5dbf762004b51f0bcce",null),(0,e.A)(s,"7001482f3ab6c884363356254df98d04bf0bcac16b",null)},8636:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx","default")},8671:(a,b,c)=>{Promise.resolve().then(c.bind(c,92364))},23413:(a,b,c)=>{"use strict";c.d(b,{S:()=>k});var d=c(59111),e=c(71771),f=c(2856),g=c(80974),h=c(42723),i=c(67466);function j(a){return(0,d.jsxs)("div",{"data-slot":"json-editor",className:`space-y-3 relative overflow-hidden p-1 ${a.className||""}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 absolute top-3 right-3 z-10",children:[!a.value?.trim()&&(0,d.jsx)(f.$,{type:"button",onClick:()=>{let b=(0,g.Fc)();a.onChange(b)},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",children:"Template"}),(0,d.jsx)(f.$,{type:"button",onClick:()=>{let b=a.value;if(b?.trim()){let c=(0,h.IB)(b);a.onChange(c)}},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",disabled:!a.value?.trim(),children:"Format"})]}),(0,d.jsx)(i.i,{value:a.value||"",onChange:a.onChange,placeholder:a.placeholder,disabled:a.disabled,readOnly:a.readOnly})]})}function k({control:a,name:b,label:c="JSON Schema",placeholder:f,disabled:g,description:h,readOnly:i,isRequired:k=!1}){return(0,d.jsx)(e.u,{control:a,name:b,label:c,description:h,isRequired:k,children:a=>(0,d.jsx)(j,{placeholder:f,...a,onChange:a.onChange,readOnly:i,disabled:g})})}},26823:(a,b,c)=>{Promise.resolve().then(c.bind(c,35490))},29160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(72669),e=c(95460),f=c(54637);let g="force-dynamic";async function h({children:a,params:b}){let{tenantId:c,projectId:g}=await b;try{await (0,f.Sw)(c,g)}catch(a){(0,e.notFound)()}return(0,d.jsx)(d.Fragment,{children:a})}},35490:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/data-components/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/data-components/error.tsx","default")},35859:(a,b,c)=>{Promise.resolve().then(c.bind(c,8636))},37830:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(59111),e=c(437),f=c(485);c(14450);var g=c(2856);function h(){let a=(0,f.useParams)(),b=(0,f.useRouter)(),c=a.tenantId,h=a.projectId;return(0,d.jsx)("div",{className:"flex min-h-[400px] flex-col items-center justify-center p-8",children:(0,d.jsxs)("div",{className:"text-center max-w-md",children:[(0,d.jsx)("div",{className:"mb-4 flex justify-center",children:(0,d.jsx)(e.A,{className:"h-12 w-12 text-muted-foreground"})}),(0,d.jsx)("h1",{className:"text-2xl font-semibold mb-2",children:"Project Not Found"}),(0,d.jsxs)("p",{className:"text-muted-foreground mb-6",children:['The project "',h,"\" does not exist or you don't have access to it."]}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground mb-6",children:"Redirecting to projects list in 3 seconds..."}),(0,d.jsx)(g.$,{onClick:()=>b.push(`/${c}/projects`),variant:"default",children:"Go to Projects List"})]})})}},41325:(a,b,c)=>{Promise.resolve().then(c.bind(c,87728)),Promise.resolve().then(c.bind(c,24003)),Promise.resolve().then(c.bind(c,19603)),Promise.resolve().then(c.t.bind(c,61678,23))},45622:()=>{},62503:(a,b,c)=>{"use strict";c.d(b,{f:()=>d});let d=c(45809).string().min(1,"Id is required.").max(64,"Id must be less than 64 characters.").regex(/^[a-zA-Z0-9_-]+$/,"Id must contain only alphanumeric characters, underscores, and dashes. No spaces allowed.")},64220:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(82058);function j(){return(0,d.jsx)(e.H,{breadcrumbs:[{label:"Data components"}],children:(0,d.jsxs)(f.D,{children:[(0,d.jsx)(g.zY,{title:"Data components",description:i.yr}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 md:gap-4",children:Array.from({length:6}).map((a,b)=>(0,d.jsx)(h.E,{className:"h-36 w-full rounded-lg"},`loading-skeleton-${b}`))})]})})}},77709:(a,b,c)=>{Promise.resolve().then(c.bind(c,98261)),Promise.resolve().then(c.bind(c,97633)),Promise.resolve().then(c.bind(c,80248)),Promise.resolve().then(c.t.bind(c,93520,23))},80974:(a,b,c)=>{"use strict";c.d(b,{Fc:()=>k,SR:()=>l,_O:()=>j});var d=c(7352),e=c(43381);let f=d.ZU.Object({type:d.ZU.Union([d.ZU.Literal("string"),d.ZU.Literal("number"),d.ZU.Literal("integer"),d.ZU.Literal("boolean"),d.ZU.Literal("array"),d.ZU.Literal("object"),d.ZU.Literal("null")]),description:d.ZU.String({minLength:1}),format:d.ZU.Optional(d.ZU.String()),pattern:d.ZU.Optional(d.ZU.String()),minimum:d.ZU.Optional(d.ZU.Number()),maximum:d.ZU.Optional(d.ZU.Number()),minLength:d.ZU.Optional(d.ZU.Number()),maxLength:d.ZU.Optional(d.ZU.Number()),items:d.ZU.Optional(d.ZU.Any()),properties:d.ZU.Optional(d.ZU.Any()),enum:d.ZU.Optional(d.ZU.Array(d.ZU.Any())),const:d.ZU.Optional(d.ZU.Any()),default:d.ZU.Optional(d.ZU.Any())}),g=d.ZU.Object({type:d.ZU.Literal("object"),properties:d.ZU.Record(d.ZU.String(),f),required:d.ZU.Array(d.ZU.String(),{minItems:1}),additionalProperties:d.ZU.Optional(d.ZU.Boolean()),description:d.ZU.Optional(d.ZU.String())}),h=e.gv.Compile(f),i=e.gv.Compile(g);function j(a){let b=[],{parsed:c,errors:d}=function(a){let b=[],c=null;if(!a?.trim())return{parsed:null,errors:b};try{c=JSON.parse(a)}catch(a){b.push({path:"root",message:a instanceof Error?a.message:"Invalid JSON syntax",type:"syntax"})}return{parsed:c,errors:b}}(a);if(d.length>0)return{isValid:!1,errors:d,warnings:b};if(!c)return{isValid:!0,errors:[],warnings:["Empty schema provided"]};let e=[...function(a){let b=[];return a&&"object"==typeof a?!i.Check(a)&&(a.type&&"object"===a.type||b.push({path:"type",message:'Schema must have type: "object" for LLM compatibility',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties||b.push({path:"properties",message:'Schema must have a "properties" object',type:"schema"}),a.required&&Array.isArray(a.required)||b.push({path:"required",message:'Schema must have a "required" array (can be empty)',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{h.Check(c)||[...h.Errors(c)].forEach(c=>{let d=c.message;"/description"===c.path?d='Each property must have a "description" for LLM compatibility':"/type"===c.path&&(d='Each property must have a valid "type"'),b.push({path:`properties.${a}${c.path}`,message:d,type:"/description"===c.path?"llm_requirement":"schema"})})})):b.push({path:"root",message:"Schema must be an object",type:"schema"}),b}(c),...function(a){let b=[];return a&&"object"==typeof a&&(a.required&&Array.isArray(a.required)&&a.properties&&a.required.forEach(c=>{a.properties[c]||b.push({path:"required",message:`Required property "${c}" must exist in properties`,type:"schema"})}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{c.description&&"string"==typeof c.description&&0!==c.description.trim().length||b.push({path:`properties.${a}.description`,message:"Each property must have a non-empty description for LLM compatibility",type:"llm_requirement"})})),b}(c)];return{isValid:0===e.length,errors:e,warnings:b}}function k(){return JSON.stringify({type:"object",properties:{example_property:{type:"string",description:"Description of what this property represents"}},required:["example_property"]},null,2)}function l(a){if(a instanceof SyntaxError){let b=a.message.toLowerCase();return b.includes("unexpected end of json input")?"Incomplete JSON - missing closing brackets or quotes":b.includes("unexpected token")?"Invalid character in JSON - check for missing commas, quotes, or brackets":b.includes("expected property name")||b.includes("expected ':' after property name")?"Property names must be in double quotes":b.includes("duplicate keys")?"Duplicate property names are not allowed":"Invalid JSON syntax - check structure and formatting"}return"Unable to parse JSON"}},87728:(a,b,c)=>{"use strict";c.d(b,{DataComponentForm:()=>x});var d=c(59111),e=c(59099),f=c(485),g=c(94150),h=c(68156),i=c(17130),j=c(16426),k=c(23413),l=c(2856),m=c(93622),n=c(35283),o=c(90147);let p=(0,o.createServerReference)("70d851ffda2d8bafa81addf5dbf762004b51f0bcce",o.callServer,void 0,o.findSourceMapURL,"updateDataComponentAction"),q=(0,o.createServerReference)("7082fc3a0a03fcfe74aa148418f8b8778b9c963b02",o.callServer,void 0,o.findSourceMapURL,"createDataComponentAction");var r=c(42723);let s={id:"",name:"",description:"",props:""};var t=c(45809),u=c(80974),v=c(62503);let w=t.object({id:v.f,name:t.string().min(1,"Name is required."),description:t.string().min(1,"Description is required."),props:t.string().min(1,"Props schema is required.").transform((a,b)=>{try{let c=JSON.parse(a),d=(0,u._O)(a);if(!d.isValid){let a=d.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:t.ZodIssueCode.custom,message:a}),t.NEVER}return c}catch(a){return b.addIssue({code:t.ZodIssueCode.custom,message:(0,u.SR)(a)}),t.NEVER}}).optional()});function x({tenantId:a,projectId:b,id:c,initialData:o}){let t=(0,g.mN)({resolver:(0,e.u)(w),defaultValues:(a=>{if(!a)return s;let b={...a};return b.props&&(b.props=(0,r.S_)(b.props)),b})(o)}),{isSubmitting:u}=t.formState,v=(0,f.useRouter)();(0,n.S)({form:t,nameField:"name",idField:"id",isEditing:!!c});let x=async d=>{try{let e={...d};if(c){let c=await p(a,b,e);if(!c.success)return void h.oR.error(c.error||"Failed to update data component");h.oR.success("Data component updated")}else{let c=await q(a,b,e);if(!c.success)return void h.oR.error(c.error||"Failed to create data component");h.oR.success("Data component created"),v.push(`/${a}/projects/${b}/data-components`)}}catch(b){console.error("Error submitting data component:",b);let a=b instanceof Error?b.message:"An unexpected error occurred";h.oR.error(a)}};return(0,d.jsx)(m.lV,{...t,children:(0,d.jsxs)("form",{onSubmit:t.handleSubmit(x),className:"space-y-8",children:[(0,d.jsx)(i.a,{control:t.control,name:"name",label:"Name",placeholder:"ListOrders",description:"This name is used to identify the component in chat widget integration. Example: components: { ListOrders: MyListOrdersComponent }",isRequired:!0}),(0,d.jsx)(i.a,{control:t.control,name:"id",label:"Id",placeholder:"my-data-component",disabled:!!c,description:c?"":"Choose a unique identifier for this component. Using an existing id will replace that component.",isRequired:!0}),(0,d.jsx)(j.K,{control:t.control,name:"description",label:"Description",placeholder:"Display a list of user orders with interactive options",className:"min-h-[80px]",isRequired:!0}),(0,d.jsx)(k.S,{control:t.control,name:"props",label:"Props (JSON schema)",placeholder:"Enter a valid JSON Schema...",isRequired:!0}),(0,d.jsx)(l.$,{type:"submit",disabled:u,children:"Save"})]})})}},92364:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(59111),e=c(43433);function f(){return(0,d.jsx)(e.A,{description:"Something went wrong."})}},92478:()=>{},96107:(a,b,c)=>{Promise.resolve().then(c.bind(c,37830))},98261:(a,b,c)=>{"use strict";c.d(b,{DataComponentForm:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call DataComponentForm() from the server but DataComponentForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/components/data-components/form/data-component-form.tsx","DataComponentForm")}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=3995,exports.ids=[3995],exports.modules={8065:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"402a60e86eb8f5124f05bb6c3f048230f9de8c77e2":()=>d.bW,"604df70d93818c6d34c7addbbc027aff1c37de0e7a":()=>d.Dv,"607f5ee4db321fe440ff2a215bcae40d69cb10f27a":()=>p,"60a3a46af0697c6ba6a44aa44cfa624abd221acbe8":()=>d.gL,"60d748e1614c07d34d11142c5d3d9d54dce710b60f":()=>d.qf,"7085fdceafe8b4c0eb3e41578b6029aebc6d28600d":()=>r,"708a5820434473acf4a5140ea590980f2fb73df044":()=>q,"70d5f2c811db3932ba6f418f089805d0adc761a065":()=>d.Tg,"70f71fe3190bce6fb836a1ddd61a212a81cfee9ce7":()=>s});var d=c(72025),e=c(29991);c(58415);var f=c(83248),g=c(8703),h=c(45796),i=c(33451);async function j(a,b){(0,h.M2)(a),(0,h.nt)(b);let c=await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components`);return{...c,data:c.data.map(a=>({...a,summaryProps:a.summaryProps||{},fullProps:a.fullProps||{}}))}}async function k(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c}`);return{...d.data,summaryProps:d.data.summaryProps||{},fullProps:d.data.fullProps||{}}}async function l(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components`,{method:"POST",body:JSON.stringify(c)});return{...d.data,summaryProps:d.data.summaryProps||{},fullProps:d.data.fullProps||{}}}async function m(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c.id}`,{method:"PUT",body:JSON.stringify(c)});return{...d.data,summaryProps:d.data.summaryProps||{},fullProps:d.data.fullProps||{}}}async function n(a,b,c){(0,h.M2)(a),(0,h.nt)(b),await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c}`,{method:"DELETE"})}(0,i.D)([j,k,l,m,n]),(0,e.A)(j,"60f3249d4c25decc3d598725ab8864c51687825c19",null),(0,e.A)(k,"70f17575b4647b6c5936609a50fae4a121a0f0e6a3",null),(0,e.A)(l,"705444828aee215d8262ced353896f6b9443ec77f5",null),(0,e.A)(m,"70e2b5e708d5bef778f837922041ffff46eb512311",null),(0,e.A)(n,"70157c415756a003b605907c8cd837b3ad8b309b13",null);var o=c(36608);async function p(a,b){try{let c=await j(a,b);return{success:!0,data:c.data}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function q(a,b,c){try{let d=await l(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/artifact-components`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function r(a,b,c){try{let d=await m(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/artifact-components`),(0,f.revalidatePath)(`/${a}/projects/${b}/artifact-components/${c.id}`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function s(a,b,c){try{return await n(a,b,c),(0,f.revalidatePath)(`/${a}/projects/${b}/artifact-components`),(0,f.revalidatePath)(`/${a}/projects/${b}/artifact-components/${c}`),{success:!0}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}(0,i.D)([p,q,r,s]),(0,e.A)(p,"607f5ee4db321fe440ff2a215bcae40d69cb10f27a",null),(0,e.A)(q,"708a5820434473acf4a5140ea590980f2fb73df044",null),(0,e.A)(r,"7085fdceafe8b4c0eb3e41578b6029aebc6d28600d",null),(0,e.A)(s,"70f71fe3190bce6fb836a1ddd61a212a81cfee9ce7",null)},8636:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx","default")},23413:(a,b,c)=>{"use strict";c.d(b,{S:()=>k});var d=c(59111),e=c(71771),f=c(2856),g=c(80974),h=c(42723),i=c(67466);function j(a){return(0,d.jsxs)("div",{"data-slot":"json-editor",className:`space-y-3 relative overflow-hidden p-1 ${a.className||""}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 absolute top-3 right-3 z-10",children:[!a.value?.trim()&&(0,d.jsx)(f.$,{type:"button",onClick:()=>{let b=(0,g.Fc)();a.onChange(b)},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",children:"Template"}),(0,d.jsx)(f.$,{type:"button",onClick:()=>{let b=a.value;if(b?.trim()){let c=(0,h.IB)(b);a.onChange(c)}},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",disabled:!a.value?.trim(),children:"Format"})]}),(0,d.jsx)(i.i,{value:a.value||"",onChange:a.onChange,placeholder:a.placeholder,disabled:a.disabled,readOnly:a.readOnly})]})}function k({control:a,name:b,label:c="JSON Schema",placeholder:f,disabled:g,description:h,readOnly:i,isRequired:k=!1}){return(0,d.jsx)(e.u,{control:a,name:b,label:c,description:h,isRequired:k,children:a=>(0,d.jsx)(j,{placeholder:f,...a,onChange:a.onChange,readOnly:i,disabled:g})})}},23757:(a,b,c)=>{Promise.resolve().then(c.bind(c,36132))},29160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(72669),e=c(95460),f=c(54637);let g="force-dynamic";async function h({children:a,params:b}){let{tenantId:c,projectId:g}=await b;try{await (0,f.Sw)(c,g)}catch(a){(0,e.notFound)()}return(0,d.jsx)(d.Fragment,{children:a})}},35859:(a,b,c)=>{Promise.resolve().then(c.bind(c,8636))},36132:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/artifact-components/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/artifact-components/error.tsx","default")},37830:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(59111),e=c(437),f=c(485);c(14450);var g=c(2856);function h(){let a=(0,f.useParams)(),b=(0,f.useRouter)(),c=a.tenantId,h=a.projectId;return(0,d.jsx)("div",{className:"flex min-h-[400px] flex-col items-center justify-center p-8",children:(0,d.jsxs)("div",{className:"text-center max-w-md",children:[(0,d.jsx)("div",{className:"mb-4 flex justify-center",children:(0,d.jsx)(e.A,{className:"h-12 w-12 text-muted-foreground"})}),(0,d.jsx)("h1",{className:"text-2xl font-semibold mb-2",children:"Project Not Found"}),(0,d.jsxs)("p",{className:"text-muted-foreground mb-6",children:['The project "',h,"\" does not exist or you don't have access to it."]}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground mb-6",children:"Redirecting to projects list in 3 seconds..."}),(0,d.jsx)(g.$,{onClick:()=>b.push(`/${c}/projects`),variant:"default",children:"Go to Projects List"})]})})}},44733:(a,b,c)=>{"use strict";c.d(b,{ArtifactComponentForm:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call ArtifactComponentForm() from the server but ArtifactComponentForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/components/artifact-components/form/artifact-component-form.tsx","ArtifactComponentForm")},45622:()=>{},49698:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(59111),e=c(43433);function f(){return(0,d.jsx)(e.A,{description:"Something went wrong."})}},59567:(a,b,c)=>{Promise.resolve().then(c.bind(c,44733)),Promise.resolve().then(c.bind(c,97633)),Promise.resolve().then(c.bind(c,80248)),Promise.resolve().then(c.t.bind(c,93520,23))},62503:(a,b,c)=>{"use strict";c.d(b,{f:()=>d});let d=c(45809).string().min(1,"Id is required.").max(64,"Id must be less than 64 characters.").regex(/^[a-zA-Z0-9_-]+$/,"Id must contain only alphanumeric characters, underscores, and dashes. No spaces allowed.")},67815:(a,b,c)=>{Promise.resolve().then(c.bind(c,93596)),Promise.resolve().then(c.bind(c,24003)),Promise.resolve().then(c.bind(c,19603)),Promise.resolve().then(c.t.bind(c,61678,23))},71021:(a,b,c)=>{Promise.resolve().then(c.bind(c,49698))},74402:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(82058);function j(){return(0,d.jsx)(e.H,{breadcrumbs:[{label:"Artifact components"}],children:(0,d.jsxs)(f.D,{children:[(0,d.jsx)(g.zY,{title:"Artifact components",description:i.lh}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 md:gap-4",children:Array.from({length:6}).map((a,b)=>(0,d.jsx)(h.E,{className:"h-36 w-full rounded-lg"},`loading-artifact-${b}`))})]})})}},80974:(a,b,c)=>{"use strict";c.d(b,{Fc:()=>k,SR:()=>l,_O:()=>j});var d=c(7352),e=c(43381);let f=d.ZU.Object({type:d.ZU.Union([d.ZU.Literal("string"),d.ZU.Literal("number"),d.ZU.Literal("integer"),d.ZU.Literal("boolean"),d.ZU.Literal("array"),d.ZU.Literal("object"),d.ZU.Literal("null")]),description:d.ZU.String({minLength:1}),format:d.ZU.Optional(d.ZU.String()),pattern:d.ZU.Optional(d.ZU.String()),minimum:d.ZU.Optional(d.ZU.Number()),maximum:d.ZU.Optional(d.ZU.Number()),minLength:d.ZU.Optional(d.ZU.Number()),maxLength:d.ZU.Optional(d.ZU.Number()),items:d.ZU.Optional(d.ZU.Any()),properties:d.ZU.Optional(d.ZU.Any()),enum:d.ZU.Optional(d.ZU.Array(d.ZU.Any())),const:d.ZU.Optional(d.ZU.Any()),default:d.ZU.Optional(d.ZU.Any())}),g=d.ZU.Object({type:d.ZU.Literal("object"),properties:d.ZU.Record(d.ZU.String(),f),required:d.ZU.Array(d.ZU.String(),{minItems:1}),additionalProperties:d.ZU.Optional(d.ZU.Boolean()),description:d.ZU.Optional(d.ZU.String())}),h=e.gv.Compile(f),i=e.gv.Compile(g);function j(a){let b=[],{parsed:c,errors:d}=function(a){let b=[],c=null;if(!a?.trim())return{parsed:null,errors:b};try{c=JSON.parse(a)}catch(a){b.push({path:"root",message:a instanceof Error?a.message:"Invalid JSON syntax",type:"syntax"})}return{parsed:c,errors:b}}(a);if(d.length>0)return{isValid:!1,errors:d,warnings:b};if(!c)return{isValid:!0,errors:[],warnings:["Empty schema provided"]};let e=[...function(a){let b=[];return a&&"object"==typeof a?!i.Check(a)&&(a.type&&"object"===a.type||b.push({path:"type",message:'Schema must have type: "object" for LLM compatibility',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties||b.push({path:"properties",message:'Schema must have a "properties" object',type:"schema"}),a.required&&Array.isArray(a.required)||b.push({path:"required",message:'Schema must have a "required" array (can be empty)',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{h.Check(c)||[...h.Errors(c)].forEach(c=>{let d=c.message;"/description"===c.path?d='Each property must have a "description" for LLM compatibility':"/type"===c.path&&(d='Each property must have a valid "type"'),b.push({path:`properties.${a}${c.path}`,message:d,type:"/description"===c.path?"llm_requirement":"schema"})})})):b.push({path:"root",message:"Schema must be an object",type:"schema"}),b}(c),...function(a){let b=[];return a&&"object"==typeof a&&(a.required&&Array.isArray(a.required)&&a.properties&&a.required.forEach(c=>{a.properties[c]||b.push({path:"required",message:`Required property "${c}" must exist in properties`,type:"schema"})}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{c.description&&"string"==typeof c.description&&0!==c.description.trim().length||b.push({path:`properties.${a}.description`,message:"Each property must have a non-empty description for LLM compatibility",type:"llm_requirement"})})),b}(c)];return{isValid:0===e.length,errors:e,warnings:b}}function k(){return JSON.stringify({type:"object",properties:{example_property:{type:"string",description:"Description of what this property represents"}},required:["example_property"]},null,2)}function l(a){if(a instanceof SyntaxError){let b=a.message.toLowerCase();return b.includes("unexpected end of json input")?"Incomplete JSON - missing closing brackets or quotes":b.includes("unexpected token")?"Invalid character in JSON - check for missing commas, quotes, or brackets":b.includes("expected property name")||b.includes("expected ':' after property name")?"Property names must be in double quotes":b.includes("duplicate keys")?"Duplicate property names are not allowed":"Invalid JSON syntax - check structure and formatting"}return"Unable to parse JSON"}},92478:()=>{},93596:(a,b,c)=>{"use strict";c.d(b,{ArtifactComponentForm:()=>y});var d=c(59111),e=c(59099),f=c(485),g=c(94150),h=c(68156),i=c(17130),j=c(16426),k=c(23413),l=c(2856),m=c(93622),n=c(35283),o=c(90147);let p=(0,o.createServerReference)("7085fdceafe8b4c0eb3e41578b6029aebc6d28600d",o.callServer,void 0,o.findSourceMapURL,"updateArtifactComponentAction"),q=(0,o.createServerReference)("708a5820434473acf4a5140ea590980f2fb73df044",o.callServer,void 0,o.findSourceMapURL,"createArtifactComponentAction");var r=c(42723);let s={id:"",name:"",description:"",summaryProps:"",fullProps:""};var t=c(45809),u=c(80974),v=c(62503);let w=a=>t.string().min(1,`${a} schema is required.`).transform((a,b)=>{try{let c=JSON.parse(a),d=(0,u._O)(a);if(!d.isValid){let a=d.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:t.ZodIssueCode.custom,message:a}),t.NEVER}return c}catch(a){return b.addIssue({code:t.ZodIssueCode.custom,message:(0,u.SR)(a)}),t.NEVER}}),x=t.object({id:v.f,name:t.string().min(1,"Name is required."),description:t.string().min(1,"Description is required."),summaryProps:w("Summary props").optional(),fullProps:w("Full props").optional()});function y({id:a,tenantId:b,projectId:c,initialData:o}){let t=(0,g.mN)({resolver:(0,e.u)(x),defaultValues:(a=>{if(!a)return s;let b={...a};return b.summaryProps&&(b.summaryProps=(0,r.S_)(b.summaryProps)),b.fullProps&&(b.fullProps=(0,r.S_)(b.fullProps)),b})(o)}),{isSubmitting:u}=t.formState,v=(0,f.useRouter)();(0,n.S)({form:t,nameField:"name",idField:"id",isEditing:!!a});let w=async d=>{try{let e={...d};if(a){let a=await p(b,c,e);if(!a.success)return void h.oR.error(a.error||"Failed to update artifact component");h.oR.success("Artifact component updated")}else{let a=await q(b,c,e);if(!a.success)return void h.oR.error(a.error||"Failed to create artifact component");h.oR.success("Artifact component created"),v.push(`/${b}/projects/${c}/artifact-components`)}}catch(b){console.error("Error submitting artifact component:",b);let a=b instanceof Error?b.message:"An unexpected error occurred";h.oR.error(a)}};return(0,d.jsx)(m.lV,{...t,children:(0,d.jsxs)("form",{onSubmit:t.handleSubmit(w),className:"space-y-8",children:[(0,d.jsx)(i.a,{control:t.control,name:"name",label:"Name",placeholder:"Document Artifact",isRequired:!0}),(0,d.jsx)(i.a,{control:t.control,name:"id",label:"Id",placeholder:"my-artifact-component",disabled:!!a,isRequired:!0,description:a?"":"Choose a unique identifier for this component. Using an existing id will replace that component."}),(0,d.jsx)(j.K,{control:t.control,name:"description",label:"Description",placeholder:"Structured factual information extracted from search results",className:"min-h-[80px]",isRequired:!0}),(0,d.jsx)(k.S,{control:t.control,name:"summaryProps",label:"Summary props (JSON schema)",placeholder:"Enter a valid JSON Schema...",isRequired:!0}),(0,d.jsx)(k.S,{control:t.control,name:"fullProps",label:"Full props (JSON schema)",placeholder:"Enter a valid JSON Schema...",isRequired:!0}),(0,d.jsx)(l.$,{type:"submit",disabled:u,children:"Save"})]})})}},96107:(a,b,c)=>{Promise.resolve().then(c.bind(c,37830))}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=6300,exports.ids=[6300],exports.modules={6461:(a,b,c)=>{let d,e;c.d(b,{Ak:()=>g});var f=c(77598);function g(a=21){var b;b=a|=0,!d||d.length<b?(d=Buffer.allocUnsafe(128*b),f.webcrypto.getRandomValues(d),e=0):e+b>d.length&&(f.webcrypto.getRandomValues(d),e=0),e+=b;let c="";for(let b=e-a;b<e;b++)c+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&d[b]];return c}},9710:(a,b,c)=>{c.d(b,{MCPServerForm:()=>D});var d=c(59111),e=c(59099),f=c(35558),g=c(6461),h=c(485),i=c(94150),j=c(68156),k=c(17130),l=c(55124),m=c(2856),n=c(93622),o=c(45471),p=c(90147);let q=(0,p.createServerReference)("70d3997f89872e74536b15ed9bcc3e455aec1a87d0",p.callServer,void 0,p.findSourceMapURL,"syncMCPTool"),r=(0,p.createServerReference)("706d244b77116e74687b306c9b0bff113dd35b7404",p.callServer,void 0,p.findSourceMapURL,"createMCPTool");var s=c(91740),t=c(39108),u=c(14450),v=c(12463),w=c(24703),x=c(37671);function y({control:a,name:b,label:c,availableTools:e=[],description:f,disabled:g=!1}){let{field:{value:h,onChange:j},fieldState:{error:k}}=(0,i.as)({name:b,control:a}),l=(0,u.useMemo)(()=>"object"==typeof h&&null!==h&&"type"in h?"all"===h.type?{type:"all"}:"selective"===h.type&&Array.isArray(h.tools)?{type:"selective",tools:h.tools}:{type:"selective",tools:[]}:{type:"selective",tools:[]},[h]),o=()=>{j({type:"all"})},p=()=>{j({type:"selective",tools:[]})},q=(a,b)=>{if("all"===l.type){let c=e.map(a=>a.name).filter(b=>b!==a);j({type:"selective",tools:b?[...c,a]:c})}else j({type:"selective",tools:b?[...l.tools.filter(b=>b!==a),a]:l.tools.filter(b=>b!==a)})},r=()=>{switch(l.type){case"all":return e.length;case"selective":return l.tools.filter(a=>e.some(b=>b.name===a)).length;default:return 0}},y=r()===e.length;return(0,d.jsx)(n.zB,{control:a,name:b,render:()=>(0,d.jsxs)(n.eI,{children:[(0,d.jsxs)(n.lR,{children:[c,(0,d.jsx)(v.E,{variant:"code",className:"border-none px-2 text-[10px] text-muted-foreground",children:r()})]}),f&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:f}),(0,d.jsxs)("div",{className:"mt-2",children:[0===e.length&&(0,d.jsx)("div",{className:"text-sm text-muted-foreground border rounded-md p-3 py-2 bg-gray-100/80 dark:bg-sidebar",children:"No tools available from this server"}),e.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 justify-between py-3 px-6 rounded-t-lg border border-b-0",children:[(0,d.jsxs)("div",{className:"text-sm",children:[r()," ",(0,d.jsxs)("span",{className:"text-gray-400 dark:text-white/40",children:["/ ",e.length," tool",1===e.length?"":"s"]})]}),y?(0,d.jsxs)(m.$,{type:"button",variant:"outline",size:"sm",onClick:p,disabled:g,children:[(0,d.jsx)(s.A,{className:"w-4 h-4 text-muted-foreground"}),"Deselect all"]}):(0,d.jsxs)(m.$,{type:"button",variant:"outline",size:"sm",onClick:o,disabled:g,children:[(0,d.jsx)(t.A,{className:"w-4 h-4 text-muted-foreground"}),"Select all"]})]}),(0,d.jsx)("div",{className:"max-h-96 overflow-y-auto border rounded-lg rounded-t-none scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent",children:e.map(a=>{let b=(a=>{switch(l.type){case"all":return e.some(b=>b.name===a);case"selective":return l.tools.includes(a)&&e.some(b=>b.name===a);default:return!1}})(a.name);return(0,d.jsxs)("div",{className:"space-y-2 flex items-start gap-6 border-b last:border-b-0 py-4 px-6 relative",children:[(0,d.jsx)("div",{className:"flex items-center h-[22px]",children:(0,d.jsx)(w.S,{checked:b,disabled:g,className:"mb-0",onClick:()=>!g&&q(a.name,!b)})}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)(v.E,{variant:b?"primary":"code",className:`font-mono font-medium text-xs cursor-pointer transition-colors ${g?"opacity-50 cursor-not-allowed":""}`,onClick:()=>!g&&q(a.name,!b),children:a.name}),(0,d.jsxs)(x.Tooltip,{delayDuration:800,children:[(0,d.jsx)(x.TooltipTrigger,{asChild:!0,children:(0,d.jsx)("p",{className:"text-sm text-muted-foreground line-clamp-1",children:a.description})}),(0,d.jsx)(x.TooltipContent,{side:"bottom",align:"start",children:a.description})]})]})]},a.name)})})]})]}),(0,d.jsx)(n.C5,{children:k?.message})]})})}var z=c(45809);let A=z.discriminatedUnion("type",[z.object({type:z.literal("all")}),z.object({type:z.literal("selective"),tools:z.array(z.string())})]),B=z.object({name:z.string().min(1,"Name is required."),config:z.object({type:z.literal("mcp"),mcp:z.object({server:z.object({url:z.string().url("Must be a valid URL.")}),transport:z.object({type:z.nativeEnum(f.o7)}),toolsConfig:A.default({type:"all"})})}),credentialReferenceId:z.string().nullish(),imageUrl:z.string().optional()}),C={name:"",config:{type:"mcp",mcp:{server:{url:""},transport:{type:f.o7.streamableHttp},toolsConfig:{type:"all"}}},imageUrl:"",credentialReferenceId:"none"};function D({initialData:a,mode:b="create",tool:c,credentials:p,tenantId:s,projectId:t}){let u=(0,h.useRouter)(),v=(0,i.mN)({resolver:(0,e.u)(B),defaultValues:{...C,...a}}),{isSubmitting:w}=v.formState,x=async a=>{try{let d={...a,credentialReferenceId:"none"===a.credentialReferenceId?null:a.credentialReferenceId,config:{...a.config,mcp:{server:a.config.mcp.server,transport:a.config.mcp.transport,activeTools:"all"===a.config.mcp.toolsConfig.type?void 0:a.config.mcp.toolsConfig.tools}}};if("update"===b&&c)await (0,o.Y)(s,t,c.id,d),await q(s,t,c.id),j.oR.success("MCP server updated successfully"),u.push(`/${s}/projects/${t}/mcp-servers/${c.id}`);else{let a=await r(s,t,{...d,id:(0,g.Ak)()});await q(s,t,a.id),j.oR.success("MCP server created successfully"),u.push(`/${s}/projects/${t}/mcp-servers/${a.id}`)}}catch(a){console.error(`Failed to ${b} MCP tool:`,a),j.oR.error(`Failed to ${b} MCP server. Please try again.`)}};return(0,d.jsx)(n.lV,{...v,children:(0,d.jsxs)("form",{onSubmit:v.handleSubmit(x),className:"space-y-8",children:[(0,d.jsx)(k.a,{control:v.control,name:"name",label:"Name",placeholder:"MCP server",isRequired:!0}),(0,d.jsx)(k.a,{control:v.control,name:"config.mcp.server.url",label:"URL",placeholder:"https://api.example.com/mcp",isRequired:!0}),(0,d.jsx)(l.U,{control:v.control,selectTriggerClassName:"w-full",name:"config.mcp.transport.type",label:"Transport type",placeholder:"Select transport type",options:[{value:f.o7.streamableHttp,label:"Streamable HTTP"},{value:f.o7.sse,label:"Server-Sent Events (SSE)"}]}),(0,d.jsx)(k.a,{control:v.control,name:"imageUrl",label:"Image URL (optional)",placeholder:"https://example.com/icon.png or data:image/png;base64,..."}),(0,d.jsx)(l.U,{control:v.control,selectTriggerClassName:"w-full",name:"credentialReferenceId",label:"Credential",placeholder:"Select a credential",options:[{value:"none",label:"No Authentication"},...p.map(a=>({value:a.id,label:a.id}))]}),"update"===b&&(0,d.jsx)(y,{control:v.control,name:"config.mcp.toolsConfig",label:"Tools",availableTools:c?.availableTools||[],description:"Select which tools should be enabled for this MCP server"}),(0,d.jsx)(m.$,{type:"submit",disabled:w,children:"update"===b?"Save":"Create"})]})})}},12463:(a,b,c)=>{c.d(b,{E:()=>i});var d=c(59111),e=c(98848),f=c(53433),g=c(42723);let h=(0,f.F)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",primary:"border border-primary/50 text-primary bg-primary/5 rounded-sm p-0.5 px-1.5 font-mono",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",code:"text-xs text-muted-foreground border bg-muted/80 dark:bg-muted/50 rounded-sm p-0.5 px-1.5 font-mono",success:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-emerald-50 border-emerald-200 text-emerald-800 dark:text-emerald-300 dark:bg-emerald-950/40 uppercase",error:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-red-50 border-red-200 text-red-800 dark:border-red-700 dark:text-red-300 dark:bg-red-950/40 uppercase",warning:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-amber-50 border-amber-200 text-amber-800 dark:border-amber-700 dark:text-amber-300 dark:bg-amber-950/40 uppercase",sky:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-sky-50 border-sky-200 text-sky-800 dark:border-sky-700 dark:text-sky-300 dark:bg-sky-950/40",violet:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-violet-50 border-violet-200 text-violet-800 dark:border-violet-700 dark:text-violet-300 dark:bg-violet-950/40",orange:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-orange-50 border-orange-200 text-orange-800 dark:border-orange-700 dark:text-orange-300 dark:bg-orange-950/40"}},defaultVariants:{variant:"default"}});function i({className:a,variant:b,asChild:c=!1,...f}){let i=c?e.DX:"span";return(0,d.jsx)(i,{"data-slot":"badge",className:(0,g.cn)(h({variant:b}),a),...f})}},24703:(a,b,c)=>{c.d(b,{S:()=>h});var d=c(59111),e=c(51006),f=c(39108),g=c(42723);function h({className:a,...b}){return(0,d.jsx)(e.bL,{"data-slot":"checkbox",className:(0,g.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,d.jsx)(e.C1,{"data-slot":"checkbox-indicator",className:"flex items-center justify-center text-current transition-none",children:(0,d.jsx)(f.A,{className:"size-3.5"})})})}},45471:(a,b,c)=>{c.d(b,{Y:()=>e});var d=c(90147);let e=(0,d.createServerReference)("78d610d0f74ec78e7a3bba4836295a8695a0aff764",d.callServer,void 0,d.findSourceMapURL,"updateMCPTool")},49540:(a,b,c)=>{c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(59111),e=c(41404),f=c(67048),g=c(39108),h=c(25773),i=c(42723);function j({...a}){return(0,d.jsx)(e.bL,{"data-slot":"select",...a})}function k({...a}){return(0,d.jsx)(e.WT,{"data-slot":"select-value",...a})}function l({className:a,size:b="default",children:c,...g}){return(0,d.jsxs)(e.l9,{"data-slot":"select-trigger","data-size":b,className:(0,i.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 font-normal normal-case",a),...g,children:[c,(0,d.jsx)(e.In,{asChild:!0,children:(0,d.jsx)(f.A,{className:"size-4 opacity-50"})})]})}function m({className:a,children:b,position:c="popper",...f}){return(0,d.jsx)(e.ZL,{children:(0,d.jsxs)(e.UC,{"data-slot":"select-content",className:(0,i.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto scrollbar-thin scrollbar-thumb-muted-foreground/30 dark:scrollbar-thumb-muted-foreground/50 scrollbar-track-transparent rounded-md border shadow-md","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:c,...f,children:[(0,d.jsx)(o,{}),(0,d.jsx)(e.LM,{className:(0,i.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:b}),(0,d.jsx)(p,{})]})})}function n({className:a,children:b,...c}){return(0,d.jsxs)(e.q7,{"data-slot":"select-item",className:(0,i.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",a),...c,children:[(0,d.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,d.jsx)(e.VF,{children:(0,d.jsx)(g.A,{className:"size-4"})})}),(0,d.jsx)(e.p4,{children:b})]})}function o({className:a,...b}){return(0,d.jsx)(e.PP,{"data-slot":"select-scroll-up-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(h.A,{className:"size-4"})})}function p({className:a,...b}){return(0,d.jsx)(e.wn,{"data-slot":"select-scroll-down-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(f.A,{className:"size-4"})})}},51006:(a,b,c)=>{c.d(b,{C1:()=>x,bL:()=>v});var d=c(14450),e=c(90890),f=c(2102),g=c(13254),h=c(19975),i=c(82087),j=c(22871),k=c(66261),l=c(6118),m=c(59111),n="Checkbox",[o,p]=(0,f.A)(n),[q,r]=o(n);function s(a){let{__scopeCheckbox:b,checked:c,children:e,defaultChecked:f,disabled:g,form:i,name:j,onCheckedChange:k,required:l,value:o="on",internal_do_not_use_render:p}=a,[r,s]=(0,h.i)({prop:c,defaultProp:f??!1,onChange:k,caller:n}),[t,u]=d.useState(null),[v,w]=d.useState(null),x=d.useRef(!1),y=!t||!!i||!!t.closest("form"),z={checked:r,disabled:g,setChecked:s,control:t,setControl:u,name:j,form:i,value:o,hasConsumerStoppedPropagationRef:x,required:l,defaultChecked:!A(f)&&f,isFormControl:y,bubbleInput:v,setBubbleInput:w};return(0,m.jsx)(q,{scope:b,...z,children:"function"==typeof p?p(z):e})}var t="CheckboxTrigger",u=d.forwardRef(({__scopeCheckbox:a,onKeyDown:b,onClick:c,...f},h)=>{let{control:i,value:j,disabled:k,checked:n,required:o,setControl:p,setChecked:q,hasConsumerStoppedPropagationRef:s,isFormControl:u,bubbleInput:v}=r(t,a),w=(0,e.s)(h,p),x=d.useRef(n);return d.useEffect(()=>{let a=i?.form;if(a){let b=()=>q(x.current);return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[i,q]),(0,m.jsx)(l.sG.button,{type:"button",role:"checkbox","aria-checked":A(n)?"mixed":n,"aria-required":o,"data-state":B(n),"data-disabled":k?"":void 0,disabled:k,value:j,...f,ref:w,onKeyDown:(0,g.mK)(b,a=>{"Enter"===a.key&&a.preventDefault()}),onClick:(0,g.mK)(c,a=>{q(a=>!!A(a)||!a),v&&u&&(s.current=a.isPropagationStopped(),s.current||a.stopPropagation())})})});u.displayName=t;var v=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,name:d,checked:e,defaultChecked:f,required:g,disabled:h,value:i,onCheckedChange:j,form:k,...l}=a;return(0,m.jsx)(s,{__scopeCheckbox:c,checked:e,defaultChecked:f,disabled:h,required:g,onCheckedChange:j,name:d,form:k,value:i,internal_do_not_use_render:({isFormControl:a})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(u,{...l,ref:b,__scopeCheckbox:c}),a&&(0,m.jsx)(z,{__scopeCheckbox:c})]})})});v.displayName=n;var w="CheckboxIndicator",x=d.forwardRef((a,b)=>{let{__scopeCheckbox:c,forceMount:d,...e}=a,f=r(w,c);return(0,m.jsx)(k.C,{present:d||A(f.checked)||!0===f.checked,children:(0,m.jsx)(l.sG.span,{"data-state":B(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:b,style:{pointerEvents:"none",...a.style}})})});x.displayName=w;var y="CheckboxBubbleInput",z=d.forwardRef(({__scopeCheckbox:a,...b},c)=>{let{control:f,hasConsumerStoppedPropagationRef:g,checked:h,defaultChecked:k,required:n,disabled:o,name:p,value:q,form:s,bubbleInput:t,setBubbleInput:u}=r(y,a),v=(0,e.s)(c,u),w=(0,i.Z)(h),x=(0,j.X)(f);d.useEffect(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!g.current;if(w!==h&&a){let c=new Event("click",{bubbles:b});t.indeterminate=A(h),a.call(t,!A(h)&&h),t.dispatchEvent(c)}},[t,w,h,g]);let z=d.useRef(!A(h)&&h);return(0,m.jsx)(l.sG.input,{type:"checkbox","aria-hidden":!0,defaultChecked:k??z.current,required:n,disabled:o,name:p,value:q,form:s,...b,tabIndex:-1,ref:v,style:{...b.style,...x,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function A(a){return"indeterminate"===a}function B(a){return A(a)?"indeterminate":a?"checked":"unchecked"}z.displayName=y},55124:(a,b,c)=>{c.d(b,{U:()=>g});var d=c(59111),e=c(49540),f=c(71771);function g({control:a,name:b,label:c,placeholder:g,options:h,disabled:i=!1,selectTriggerClassName:j,isRequired:k=!1}){return(0,d.jsx)(f.u,{control:a,name:b,label:c,isRequired:k,children:a=>(0,d.jsxs)(e.l6,{onValueChange:a.onChange,defaultValue:a.value,disabled:i,children:[(0,d.jsx)(e.bq,{disabled:i,className:j,children:(0,d.jsx)(e.yv,{placeholder:g})}),(0,d.jsx)(e.gC,{children:h.map(a=>(0,d.jsx)(e.eb,{value:a.value,disabled:a.disabled,children:a.label},a.value))})]})})}},72969:(a,b,c)=>{c.d(b,{MCPServerForm:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call MCPServerForm() from the server but MCPServerForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/components/mcp-servers/form/mcp-server-form.tsx","MCPServerForm")},81097:(a,b,c)=>{c.d(b,{$Y:()=>g,GO:()=>i,K3:()=>h,h9:()=>k,nZ:()=>j});var d=c(1274);c(2082);var e=c(53842),f=c(41979);async function g(a,b,c=1,d=50){(0,f.M2)(a),(0,f.nt)(b);let h=new URLSearchParams({page:c.toString(),limit:d.toString()});return(await (0,e.J)(`tenants/${a}/projects/${b}/credentials?${h}`)).data}async function h(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`)).data}async function i(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials`,{method:"POST",body:JSON.stringify(c)})).data}async function j(a,b,c,d){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"PUT",body:JSON.stringify(d)})).data}async function k(a,b,c){(0,f.M2)(a),(0,f.nt)(b),await (0,e.J)(`tenants/${a}/projects/${b}/credentials/${c}`,{method:"DELETE"})}(0,c(95454).D)([g,h,i,j,k]),(0,d.A)(g,"788bcc2d490ee6fafe94686b43fe258e23c6e45d2f",null),(0,d.A)(h,"7071ee4a497d701463cc58e418d70cd8e60fccc5b2",null),(0,d.A)(i,"704ae21ae2f483618be2bffb1b97c4fd2f555c755c",null),(0,d.A)(j,"780cc26ef5c3c1d02f5c4b4fe90398431b5ff3c7d3",null),(0,d.A)(k,"708fe5f5fc0aaf6282e55c91b8407bc246503d8682",null)}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=6838,exports.ids=[6838],exports.modules={88:(a,b,c)=>{"use strict";c.d(b,{T:()=>d});let d=a=>{let[b,c]=a.name.split("::");return{type:b,name:c}}},310:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(89892).A)("lock-open",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 9.9-1",key:"1mm8w8"}]])},8636:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx","default")},12463:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(59111),e=c(98848),f=c(53433),g=c(42723);let h=(0,f.F)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",primary:"border border-primary/50 text-primary bg-primary/5 rounded-sm p-0.5 px-1.5 font-mono",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",code:"text-xs text-muted-foreground border bg-muted/80 dark:bg-muted/50 rounded-sm p-0.5 px-1.5 font-mono",success:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-emerald-50 border-emerald-200 text-emerald-800 dark:text-emerald-300 dark:bg-emerald-950/40 uppercase",error:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-red-50 border-red-200 text-red-800 dark:border-red-700 dark:text-red-300 dark:bg-red-950/40 uppercase",warning:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-amber-50 border-amber-200 text-amber-800 dark:border-amber-700 dark:text-amber-300 dark:bg-amber-950/40 uppercase",sky:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-sky-50 border-sky-200 text-sky-800 dark:border-sky-700 dark:text-sky-300 dark:bg-sky-950/40",violet:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-violet-50 border-violet-200 text-violet-800 dark:border-violet-700 dark:text-violet-300 dark:bg-violet-950/40",orange:"text-xs text-muted-foreground border rounded-sm p-0.5 px-1.5 font-mono bg-orange-50 border-orange-200 text-orange-800 dark:border-orange-700 dark:text-orange-300 dark:bg-orange-950/40"}},defaultVariants:{variant:"default"}});function i({className:a,variant:b,asChild:c=!1,...f}){let i=c?e.DX:"span";return(0,d.jsx)(i,{"data-slot":"badge",className:(0,g.cn)(h({variant:b}),a),...f})}},29160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(72669),e=c(95460),f=c(54637);let g="force-dynamic";async function h({children:a,params:b}){let{tenantId:c,projectId:g}=await b;try{await (0,f.Sw)(c,g)}catch(a){(0,e.notFound)()}return(0,d.jsx)(d.Fragment,{children:a})}},35859:(a,b,c)=>{Promise.resolve().then(c.bind(c,8636))},37830:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(59111),e=c(437),f=c(485);c(14450);var g=c(2856);function h(){let a=(0,f.useParams)(),b=(0,f.useRouter)(),c=a.tenantId,h=a.projectId;return(0,d.jsx)("div",{className:"flex min-h-[400px] flex-col items-center justify-center p-8",children:(0,d.jsxs)("div",{className:"text-center max-w-md",children:[(0,d.jsx)("div",{className:"mb-4 flex justify-center",children:(0,d.jsx)(e.A,{className:"h-12 w-12 text-muted-foreground"})}),(0,d.jsx)("h1",{className:"text-2xl font-semibold mb-2",children:"Project Not Found"}),(0,d.jsxs)("p",{className:"text-muted-foreground mb-6",children:['The project "',h,"\" does not exist or you don't have access to it."]}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground mb-6",children:"Redirecting to projects list in 3 seconds..."}),(0,d.jsx)(g.$,{onClick:()=>b.push(`/${c}/projects`),variant:"default",children:"Go to Projects List"})]})})}},38224:(a,b,c)=>{"use strict";c.d(b,{BW:()=>m,Wy:()=>k,XL:()=>i,YU:()=>j,ai:()=>n,iu:()=>g,xl:()=>h,zp:()=>l});var d=c(1274);c(2082);var e=c(53842),f=c(41979);async function g(a,b,c=1,d=50,h){(0,f.M2)(a),(0,f.nt)(b);let i=new URLSearchParams({page:c.toString(),limit:d.toString()});return h&&i.append("status",h),(await (0,e.J)(`tenants/${a}/projects/${b}/tools?${i}`)).data}async function h(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/tools/${c}`)).data}async function i(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/tools`,{method:"POST",body:JSON.stringify(c)})).data}async function j(a,b,c,d){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/tools/${c}`,{method:"PUT",body:JSON.stringify(d)})).data}async function k(a,b,c){(0,f.M2)(a),(0,f.nt)(b),await (0,e.J)(`tenants/${a}/projects/${b}/tools/${c}`,{method:"DELETE"})}async function l(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/tools/${c}/health-check`,{method:"POST"})).data}async function m(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/tools/${c}/available-tools`)).data}async function n(a,b,c){return(0,f.M2)(a),(0,f.nt)(b),(await (0,e.J)(`tenants/${a}/projects/${b}/tools/${c}/sync`,{method:"POST"})).data}(0,c(95454).D)([g,h,i,j,k,l,m,n]),(0,d.A)(g,"7cf50623a70828b93d4c0e24b59e3cf705ac251d07",null),(0,d.A)(h,"70e44b70b3ac5ba360da0f946c0234b40f0e4c1fce",null),(0,d.A)(i,"706d244b77116e74687b306c9b0bff113dd35b7404",null),(0,d.A)(j,"78d610d0f74ec78e7a3bba4836295a8695a0aff764",null),(0,d.A)(k,"70549c34e743227f52a08857692c66f1772aa44480",null),(0,d.A)(l,"7031748bfdeefb1858e800df3199bbd2bc90223a31",null),(0,d.A)(m,"7084834858b744036d73947b881ffbc7e9669ac54b",null),(0,d.A)(n,"70d3997f89872e74536b15ed9bcc3e455aec1a87d0",null)},38416:(a,b,c)=>{"use strict";c.d(b,{u:()=>j});var d=c(59111),e=c(75116),f=c(24146),g=c(14450),h=c(42723),i=c(73913);function j({imageUrl:a,name:b,provider:c,size:j=24,className:k}){let[l,m]=(0,g.useState)(!1),[n,o]=(0,g.useState)(!0);return!a||l?c?(0,d.jsx)(i.r,{provider:c,size:j,className:k}):(0,d.jsx)(e.A,{className:(0,h.cn)("text-muted-foreground",k),style:{width:j,height:j}}):a.startsWith("data:image/")?(0,d.jsx)(f.default,{src:a,alt:b,width:j,height:j,className:(0,h.cn)("object-contain",k),onError:()=>m(!0)}):(0,d.jsxs)("div",{className:(0,h.cn)("relative",k),style:{width:j,height:j},children:[n&&c&&(0,d.jsx)(i.r,{provider:c,size:j,className:"absolute inset-0"}),(0,d.jsx)(f.default,{src:a,alt:b,width:j,height:j,className:(0,h.cn)("object-contain transition-opacity duration-200",n?"opacity-0":"opacity-100"),onError:()=>{m(!0),o(!1)},onLoad:()=>o(!1),unoptimized:!0})]})}},45622:()=>{},51026:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"40ed7230bdf5c5b8f2b00d4b02b1a3591ce5c39c06":()=>d.vj,"602b55558d8e03a24263fb3738ab9c3abd633cb41b":()=>d.Sw,"606b73619d7a77e338d8351ceee8f473ef59227b1b":()=>d.gA,"60c3c1105d7d0ede67074cc4777bd58b84601c96cb":()=>d.xx,"7031748bfdeefb1858e800df3199bbd2bc90223a31":()=>e.zp,"70549c34e743227f52a08857692c66f1772aa44480":()=>e.Wy,"706d244b77116e74687b306c9b0bff113dd35b7404":()=>e.XL,"7084834858b744036d73947b881ffbc7e9669ac54b":()=>e.BW,"70a690d1202294f849bfab33e487285f9a56985c3c":()=>d.vr,"70d3997f89872e74536b15ed9bcc3e455aec1a87d0":()=>e.ai,"70e44b70b3ac5ba360da0f946c0234b40f0e4c1fce":()=>e.xl,"78d610d0f74ec78e7a3bba4836295a8695a0aff764":()=>e.YU,"7cf50623a70828b93d4c0e24b59e3cf705ac251d07":()=>e.iu});var d=c(54637),e=c(38224)},73913:(a,b,c)=>{"use strict";c.d(b,{r:()=>g});var d=c(59111),e=c(24146),f=c(14450);function g({provider:a,fallback:b=!1,className:c,size:g=20}){let[h,i]=(0,f.useState)(!1),[j,k]=(0,f.useState)(!1),l=(a=>{let b=a.toLowerCase().replace(/[^a-z0-9-]/g,"-");return`/assets/provider-icons/${b}.svg`})(a);return(0,d.jsxs)("div",{className:`inline-flex items-center justify-center relative ${c||""}`,style:{width:g,height:g},children:[j&&(0,d.jsx)("div",{className:"absolute",children:b||((a,b)=>{let c=a.charAt(0),e=Math.max(8,Math.floor(.6*("string"==typeof b?Number.parseInt(b,10)||20:b)));return(0,d.jsx)("div",{className:"rounded-sm bg-gray-100 dark:bg-muted/50 text-muted-foreground font-medium flex items-center justify-center",style:{width:b,height:b,fontSize:`${e}px`,lineHeight:1},children:c})})(a,g)}),(0,d.jsx)(e.default,{src:l,alt:`${a} icon`,width:"string"==typeof g?Number.parseInt(g,10)||20:g,height:"string"==typeof g?Number.parseInt(g,10)||20:g,onLoad:()=>{i(!0)},onError:()=>{k(!0)},style:{maxWidth:"100%",maxHeight:"100%",opacity:h&&!j?1:0},unoptimized:!0},a)]})}},75116:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(89892).A)("hammer",[["path",{d:"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9",key:"1hayfq"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"15ts47"}]])},92478:()=>{},96107:(a,b,c)=>{Promise.resolve().then(c.bind(c,37830))}};
|