@inkeep/agents-manage-ui 0.8.1 → 0.8.2

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.
Files changed (152) hide show
  1. package/.next/standalone/agents-manage-ui/.next/BUILD_ID +1 -1
  2. package/.next/standalone/agents-manage-ui/.next/app-build-manifest.json +97 -97
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +6 -6
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +1 -1
  7. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page.js +2 -2
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page.js.nft.json +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/new/page.js +2 -2
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/new/page.js.nft.json +1 -1
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/new/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/page.js +2 -2
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +2 -2
  19. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js.nft.json +1 -1
  20. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js +2 -2
  22. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page.js.nft.json +1 -1
  23. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page.js +1 -1
  25. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js +2 -2
  27. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page.js.nft.json +1 -1
  28. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js +2 -2
  30. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page.js.nft.json +1 -1
  31. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/new/providers/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page.js +2 -2
  33. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page.js +2 -2
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page.js.nft.json +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/new/page.js +2 -2
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/new/page.js.nft.json +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/new/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/page.js +2 -2
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js +2 -2
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js.nft.json +1 -1
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js +2 -2
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js.nft.json +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page.js +2 -2
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +2 -2
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +2 -2
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js.nft.json +1 -1
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  74. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  76. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +8 -8
  79. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  82. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +6 -6
  84. package/.next/standalone/agents-manage-ui/.next/server/chunks/2124.js +4 -4
  85. package/.next/standalone/agents-manage-ui/.next/server/chunks/2949.js +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/chunks/295.js +1 -0
  87. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/chunks/4446.js +1 -0
  89. package/.next/standalone/agents-manage-ui/.next/server/chunks/5117.js +1 -0
  90. package/.next/standalone/agents-manage-ui/.next/server/chunks/5232.js +1 -1
  91. package/.next/standalone/agents-manage-ui/.next/server/chunks/5330.js +1 -0
  92. package/.next/standalone/agents-manage-ui/.next/server/chunks/640.js +1 -0
  93. package/.next/standalone/agents-manage-ui/.next/server/chunks/71.js +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/chunks/83.js +1 -0
  95. package/.next/standalone/agents-manage-ui/.next/server/chunks/8449.js +2 -2
  96. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  98. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  99. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/static/chunks/{8458-bdc1cf68e2d13eda.js → 4130-ab98ce21ff35281d.js} +1 -1
  101. package/.next/standalone/agents-manage-ui/.next/static/chunks/6497-4e922cb6838db594.js +1 -0
  102. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-4fa838f0f7b317b3.js +1 -0
  103. package/.next/standalone/agents-manage-ui/.next/static/chunks/7820-5628646ae2b0f1f6.js +1 -0
  104. package/.next/standalone/agents-manage-ui/.next/static/chunks/8158-8615ec07e7ee270b.js +1 -0
  105. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/{page-a55bc3ed24daae2f.js → page-02c5c9c88d7ab2b3.js} +1 -1
  106. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/{page-b5da6700403ff374.js → page-a902479408487201.js} +1 -1
  107. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/new/{page-b5da6700403ff374.js → page-a902479408487201.js} +1 -1
  108. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/{page-f4a0f7e9543d8480.js → page-bbd70d3db34aff36.js} +1 -1
  109. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/{page-839e6b383a826a76.js → page-c6e9e91ec8fc537d.js} +1 -1
  110. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-dd9b869214273592.js +1 -0
  111. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-cda60ce5b7814494.js +1 -0
  112. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-3a4414df3241627d.js +1 -0
  113. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/{page-36236acd9104e893.js → page-6c3189c5a6dcff34.js} +1 -1
  114. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/new/{page-36236acd9104e893.js → page-6c3189c5a6dcff34.js} +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/page-24e1074f8fa32f75.js +1 -0
  116. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/{page-f318881eef71e221.js → page-e1d1660ac8ad81ed.js} +1 -1
  117. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-99dcb7b369050a34.js → page-7e4097fbe767b09f.js} +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-e2fe56243e487ffe.js → page-16c2d4ef3b42b6ca.js} +1 -1
  119. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-5b6387f3771508ac.js → page-e9de32a9a6b2e2de.js} +1 -1
  120. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-bc77e94675276789.js → page-92fd96a32dea362c.js} +1 -1
  121. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/{page-f2c50f4dbcf729bc.js → page-1c8856f3de066bd4.js} +1 -1
  122. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-babbd13ec2c08665.js +1 -0
  123. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-a26e8df8afd6fc35.js +1 -0
  124. package/.next/standalone/agents-manage-ui/package.json +1 -1
  125. package/.next/standalone/packages/agents-core/package.json +1 -1
  126. package/package.json +4 -4
  127. package/src/components/graph/graph.tsx +12 -60
  128. package/src/components/graph/nodes/mcp-node.tsx +94 -13
  129. package/src/components/graph/sidepane/nodes/mcp-node-editor.tsx +2 -8
  130. package/src/components/graph/sidepane/sidepane.tsx +0 -9
  131. package/src/features/graph/domain/graph-initializer-helpers.ts +63 -0
  132. package/src/features/graph/domain/index.ts +1 -0
  133. package/src/features/graph/state/use-graph-store.ts +27 -5
  134. package/src/lib/utils/orphaned-tools-detector.ts +1 -1
  135. package/.next/standalone/agents-manage-ui/.next/server/chunks/3080.js +0 -1
  136. package/.next/standalone/agents-manage-ui/.next/server/chunks/3686.js +0 -1
  137. package/.next/standalone/agents-manage-ui/.next/server/chunks/3791.js +0 -1
  138. package/.next/standalone/agents-manage-ui/.next/server/chunks/404.js +0 -1
  139. package/.next/standalone/agents-manage-ui/.next/server/chunks/7818.js +0 -1
  140. package/.next/standalone/agents-manage-ui/.next/server/chunks/9210.js +0 -1
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/3208-53d5998fe548a3e4.js +0 -1
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/6497-3fa2630d8e8ff958.js +0 -1
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-87078a0197464832.js +0 -1
  144. package/.next/standalone/agents-manage-ui/.next/static/chunks/9816-02452b9a92f478de.js +0 -1
  145. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-a8e240bc6cf2ef59.js +0 -1
  146. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-dde463979e9dbc89.js +0 -1
  147. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-7fea5166844e2400.js +0 -1
  148. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/page-600b0ed5c06531dc.js +0 -1
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-3ee642e1f54a32ad.js +0 -1
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-4804c76840209a96.js +0 -1
  151. /package/.next/standalone/agents-manage-ui/.next/static/{KsMqiaHOvY4o9nCLYVuGM → t339BszWE91q9Cp5Tl1vT}/_buildManifest.js +0 -0
  152. /package/.next/standalone/agents-manage-ui/.next/static/{KsMqiaHOvY4o9nCLYVuGM → t339BszWE91q9Cp5Tl1vT}/_ssgManifest.js +0 -0
@@ -1,31 +1,112 @@
1
1
  import { type NodeProps, Position } from '@xyflow/react';
2
+ import { getActiveTools } from '@/app/utils/active-tools';
2
3
  import { MCPToolImage } from '@/components/mcp-servers/mcp-tool-image';
3
-
4
+ import { Badge } from '@/components/ui/badge';
5
+ import { useGraphStore } from '@/features/graph/state/use-graph-store';
6
+ import { getCurrentSelectedToolsForNode } from '@/lib/utils/orphaned-tools-detector';
4
7
  import { type MCPNodeData, mcpNodeHandleId } from '../configuration/node-types';
5
8
  import { BaseNode, BaseNodeHeader, BaseNodeHeaderTitle } from './base-node';
6
9
  import { Handle } from './handle';
7
10
 
8
11
  export function MCPNode(props: NodeProps & { data: MCPNodeData }) {
9
12
  const { data, selected } = props;
13
+ const toolLookup = useGraphStore((state) => state.toolLookup);
14
+ const selectedToolsLookup = useGraphStore((state) => state.selectedToolsLookup);
10
15
 
11
16
  const name = data.name || `Tool: ${data.toolId}`;
12
17
  const imageUrl = data.imageUrl;
13
18
  const provider = data.provider;
19
+ const toolData = toolLookup[data.toolId];
20
+
21
+ const availableTools = toolData?.availableTools;
22
+
23
+ const activeTools = getActiveTools({
24
+ availableTools: availableTools,
25
+ activeTools: toolData?.config?.mcp?.activeTools,
26
+ });
27
+
28
+ const selectedTools = getCurrentSelectedToolsForNode(props, selectedToolsLookup);
29
+
30
+ // Format the tool display
31
+ const getToolDisplay = () => {
32
+ if (selectedTools === null) {
33
+ // All tools selected
34
+ return {
35
+ toolBadges: [(activeTools?.length ?? 0).toString()],
36
+ additionalBadge: null,
37
+ };
38
+ }
39
+
40
+ const selectedCount = selectedTools.length;
41
+ const totalCount = activeTools?.length ?? 0;
42
+
43
+ // If no tools selected, show 0
44
+ if (selectedCount === 0) {
45
+ return {
46
+ toolBadges: ['0'],
47
+ additionalBadge: null,
48
+ };
49
+ }
50
+
51
+ // If all tools are selected, show total count
52
+ if (selectedCount === totalCount) {
53
+ return {
54
+ toolBadges: [totalCount.toString()],
55
+ additionalBadge: null,
56
+ };
57
+ }
58
+
59
+ // If 2 or fewer tools selected, show each tool name as separate badge
60
+ if (selectedCount <= 2) {
61
+ return {
62
+ toolBadges: selectedTools,
63
+ additionalBadge: null,
64
+ };
65
+ }
66
+
67
+ // Show first 2 tool names as separate badges, remaining count in additional badge
68
+ const firstTwoTools = selectedTools.slice(0, 2);
69
+ const remainingCount = selectedCount - 2;
70
+ return {
71
+ toolBadges: firstTwoTools,
72
+ additionalBadge: `+${remainingCount}`,
73
+ };
74
+ };
75
+
76
+ const toolDisplay = getToolDisplay();
14
77
 
15
78
  return (
16
- <BaseNode
17
- isSelected={selected}
18
- className="rounded-full min-w-40 min-h-13 max-w-3xs flex items-center justify-center"
19
- >
79
+ <BaseNode isSelected={selected} className="rounded-full min-w-40 min-h-13 max-w-3xs">
20
80
  <BaseNodeHeader className="mb-0 py-3">
21
- <MCPToolImage
22
- imageUrl={imageUrl}
23
- name={name}
24
- provider={provider || undefined}
25
- size={24}
26
- className="mt-[1px] flex-shrink-0"
27
- />
28
- <BaseNodeHeaderTitle>{name}</BaseNodeHeaderTitle>
81
+ <div className="flex items-center flex-wrap gap-1">
82
+ <div className="flex items-center gap-2 flex-shrink-0 mr-4">
83
+ <MCPToolImage
84
+ imageUrl={imageUrl}
85
+ name={name}
86
+ provider={provider || undefined}
87
+ size={24}
88
+ className="mt-[1px] flex-shrink-0"
89
+ />
90
+ <BaseNodeHeaderTitle className="flex-shrink-0">{name}</BaseNodeHeaderTitle>
91
+ </div>
92
+ {toolDisplay.toolBadges.map((toolName, index) => (
93
+ <Badge
94
+ key={index}
95
+ variant="code"
96
+ className="px-2 text-2xs text-gray-700 dark:text-gray-300 flex-shrink-0"
97
+ >
98
+ {toolName}
99
+ </Badge>
100
+ ))}
101
+ {toolDisplay.additionalBadge && (
102
+ <Badge
103
+ variant="code"
104
+ className="px-2 text-2xs text-gray-700 dark:text-gray-300 flex-shrink-0"
105
+ >
106
+ {toolDisplay.additionalBadge}
107
+ </Badge>
108
+ )}
109
+ </div>
29
110
  </BaseNodeHeader>
30
111
  <Handle id={mcpNodeHandleId} type="target" position={Position.Top} isConnectable />
31
112
  </BaseNode>
@@ -11,7 +11,6 @@ import { Input } from '@/components/ui/input';
11
11
  import { Label } from '@/components/ui/label';
12
12
  import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
13
13
  import { useGraphStore } from '@/features/graph/state/use-graph-store';
14
- import type { MCPTool } from '@/lib/types/tools';
15
14
  import { getToolTypeAndName } from '@/lib/utils/mcp-utils';
16
15
  import { getCurrentSelectedToolsForNode } from '@/lib/utils/orphaned-tools-detector';
17
16
  import type { MCPNodeData } from '../../configuration/node-types';
@@ -19,24 +18,18 @@ import type { AgentToolConfigLookup } from '../../graph';
19
18
 
20
19
  interface MCPServerNodeEditorProps {
21
20
  selectedNode: Node<MCPNodeData>;
22
- selectedToolsLookup: Record<string, Record<string, string[]>>;
23
21
  agentToolConfigLookup: AgentToolConfigLookup;
24
- toolLookup: Record<string, MCPTool>;
25
22
  }
26
23
 
27
24
  export function MCPServerNodeEditor({
28
25
  selectedNode,
29
- selectedToolsLookup,
30
26
  agentToolConfigLookup,
31
- toolLookup,
32
27
  }: MCPServerNodeEditorProps) {
33
28
  const { updateNodeData } = useReactFlow();
34
29
  const { tenantId, projectId } = useParams<{
35
30
  tenantId: string;
36
31
  projectId: string;
37
32
  }>();
38
-
39
- // All hooks must be called before any early returns
40
33
  const markUnsaved = useGraphStore((state) => state.markUnsaved);
41
34
 
42
35
  // Get current headers for this tool from all agents
@@ -66,6 +59,8 @@ export function MCPServerNodeEditor({
66
59
  }, [getCurrentHeaders]);
67
60
 
68
61
  // Only use toolLookup - single source of truth
62
+ const toolLookup = useGraphStore((state) => state.toolLookup);
63
+ const selectedToolsLookup = useGraphStore((state) => state.selectedToolsLookup);
69
64
  const toolData = toolLookup[selectedNode.data.toolId];
70
65
 
71
66
  const availableTools = toolData?.availableTools;
@@ -85,7 +80,6 @@ export function MCPServerNodeEditor({
85
80
  </div>
86
81
  );
87
82
  }
88
-
89
83
  const selectedTools = getCurrentSelectedToolsForNode(selectedNode, selectedToolsLookup);
90
84
 
91
85
  // Find orphaned tools - tools that are selected but no longer available in activeTools
@@ -5,7 +5,6 @@ import { useMemo } from 'react';
5
5
  import { useGraphErrors } from '@/hooks/use-graph-errors';
6
6
  import type { ArtifactComponent } from '@/lib/api/artifact-components';
7
7
  import type { DataComponent } from '@/lib/api/data-components';
8
- import type { MCPTool } from '@/lib/types/tools';
9
8
  import { SidePane as SidePaneLayout } from '../../layout/sidepane';
10
9
  import { edgeTypeMap } from '../configuration/edge-types';
11
10
  import {
@@ -32,9 +31,7 @@ interface SidePaneProps {
32
31
  isOpen: boolean;
33
32
  dataComponentLookup: Record<string, DataComponent>;
34
33
  artifactComponentLookup: Record<string, ArtifactComponent>;
35
- selectedToolsLookup: Record<string, Record<string, string[]>>;
36
34
  agentToolConfigLookup: AgentToolConfigLookup;
37
- toolLookup: Record<string, MCPTool>;
38
35
  }
39
36
 
40
37
  export function SidePane({
@@ -45,9 +42,7 @@ export function SidePane({
45
42
  isOpen,
46
43
  dataComponentLookup,
47
44
  artifactComponentLookup,
48
- selectedToolsLookup,
49
45
  agentToolConfigLookup,
50
- toolLookup,
51
46
  }: SidePaneProps) {
52
47
  const selectedNode = useNodesData(selectedNodeId || '');
53
48
  const edges = useEdges();
@@ -116,9 +111,7 @@ export function SidePane({
116
111
  return (
117
112
  <MCPServerNodeEditor
118
113
  selectedNode={selectedNode as Node<MCPNodeData>}
119
- selectedToolsLookup={selectedToolsLookup}
120
114
  agentToolConfigLookup={agentToolConfigLookup}
121
- toolLookup={toolLookup}
122
115
  />
123
116
  );
124
117
  }
@@ -138,9 +131,7 @@ export function SidePane({
138
131
  hasFieldError,
139
132
  getFieldErrorMessage,
140
133
  getFirstErrorField,
141
- selectedToolsLookup,
142
134
  agentToolConfigLookup,
143
- toolLookup,
144
135
  ]);
145
136
 
146
137
  const showBackButton = useMemo(() => {
@@ -0,0 +1,63 @@
1
+ import type { ContextConfig, GraphMetadata } from '@/components/graph/configuration/graph-types';
2
+ import type { FullGraphDefinition } from '@/lib/types/graph-full';
3
+ import { formatJsonField } from '@/lib/utils';
4
+
5
+ export type ExtendedFullGraphDefinition = FullGraphDefinition & {
6
+ contextConfig?: Partial<Pick<ContextConfig, 'id' | 'name' | 'description'>> & {
7
+ contextVariables?: Record<string, any>;
8
+ requestContextSchema?: Record<string, any>;
9
+ };
10
+ };
11
+
12
+ /**
13
+ * Extracts and formats graph metadata from a FullGraphDefinition object.
14
+ * This helper function handles the complex transformation of the graph data
15
+ * into the format expected by the GraphMetadata type, including proper
16
+ * JSON field formatting for form compatibility.
17
+ */
18
+ export function extractGraphMetadata(
19
+ graph: ExtendedFullGraphDefinition | null | undefined
20
+ ): GraphMetadata {
21
+ return {
22
+ id: graph?.id,
23
+ name: graph?.name ?? '',
24
+ description: graph?.description ?? '',
25
+ graphPrompt: graph?.graphPrompt,
26
+ models: graph?.models
27
+ ? {
28
+ base: graph.models.base
29
+ ? {
30
+ model: graph.models.base.model,
31
+ providerOptions: formatJsonField(graph.models.base.providerOptions),
32
+ }
33
+ : undefined,
34
+ structuredOutput: graph.models.structuredOutput
35
+ ? {
36
+ model: graph.models.structuredOutput.model,
37
+ providerOptions: formatJsonField(graph.models.structuredOutput.providerOptions),
38
+ }
39
+ : undefined,
40
+ summarizer: graph.models.summarizer
41
+ ? {
42
+ model: graph.models.summarizer.model,
43
+ providerOptions: formatJsonField(graph.models.summarizer.providerOptions),
44
+ }
45
+ : undefined,
46
+ }
47
+ : undefined,
48
+ stopWhen: graph?.stopWhen,
49
+ statusUpdates: graph?.statusUpdates
50
+ ? {
51
+ ...graph.statusUpdates,
52
+ statusComponents: formatJsonField(graph.statusUpdates.statusComponents) || '',
53
+ }
54
+ : undefined,
55
+ contextConfig: {
56
+ id: graph?.contextConfig?.id ?? '',
57
+ name: graph?.contextConfig?.name ?? '',
58
+ description: graph?.contextConfig?.description ?? '',
59
+ contextVariables: formatJsonField(graph?.contextConfig?.contextVariables) || '',
60
+ requestContextSchema: formatJsonField(graph?.contextConfig?.requestContextSchema) || '',
61
+ },
62
+ };
63
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './deserialize';
2
+ export * from './graph-initializer-helpers';
2
3
  export * from './serialize';
@@ -5,6 +5,7 @@ import { devtools } from 'zustand/middleware';
5
5
  import type { GraphMetadata } from '@/components/graph/configuration/graph-types';
6
6
  import type { ArtifactComponent } from '@/lib/api/artifact-components';
7
7
  import type { DataComponent } from '@/lib/api/data-components';
8
+ import type { MCPTool } from '@/lib/types/tools';
8
9
  import type { GraphErrorSummary } from '@/lib/utils/graph-error-parser';
9
10
 
10
11
  type HistoryEntry = { nodes: Node[]; edges: Edge[] };
@@ -15,6 +16,8 @@ type GraphStateData = {
15
16
  metadata: GraphMetadata;
16
17
  dataComponentLookup: Record<string, DataComponent>;
17
18
  artifactComponentLookup: Record<string, ArtifactComponent>;
19
+ toolLookup: Record<string, MCPTool>;
20
+ selectedToolsLookup: Record<string, Record<string, string[]>>;
18
21
  dirty: boolean;
19
22
  history: HistoryEntry[];
20
23
  future: HistoryEntry[];
@@ -28,10 +31,14 @@ type GraphState = GraphStateData & {
28
31
  edges: Edge[],
29
32
  metadata: GraphMetadata,
30
33
  dataComponentLookup?: Record<string, DataComponent>,
31
- artifactComponentLookup?: Record<string, ArtifactComponent>
34
+ artifactComponentLookup?: Record<string, ArtifactComponent>,
35
+ toolLookup?: Record<string, MCPTool>,
36
+ selectedToolsLookup?: Record<string, Record<string, string[]>>
32
37
  ): void;
33
38
  setDataComponentLookup(dataComponentLookup: Record<string, DataComponent>): void;
34
39
  setArtifactComponentLookup(artifactComponentLookup: Record<string, ArtifactComponent>): void;
40
+ setToolLookup(toolLookup: Record<string, MCPTool>): void;
41
+ setSelectedToolsLookup(selectedToolsLookup: Record<string, Record<string, string[]>>): void;
35
42
  setNodes(updater: (prev: Node[]) => Node[]): void;
36
43
  setEdges(updater: (prev: Edge[]) => Edge[]): void;
37
44
  onNodesChange(changes: NodeChange[]): void;
@@ -74,18 +81,30 @@ export const useGraphStore = create<GraphState>()(
74
81
  },
75
82
  dataComponentLookup: {},
76
83
  artifactComponentLookup: {},
84
+ toolLookup: {},
85
+ selectedToolsLookup: {},
77
86
  dirty: false,
78
87
  history: [],
79
88
  future: [],
80
89
  errors: null,
81
90
  showErrors: false,
82
- setInitial(nodes, edges, metadata, dataComponentLookup = {}, artifactComponentLookup = {}) {
91
+ setInitial(
92
+ nodes,
93
+ edges,
94
+ metadata,
95
+ dataComponentLookup = {},
96
+ artifactComponentLookup = {},
97
+ toolLookup = {},
98
+ selectedToolsLookup = {}
99
+ ) {
83
100
  set({
84
101
  nodes,
85
102
  edges,
86
103
  metadata,
87
104
  dataComponentLookup,
88
105
  artifactComponentLookup,
106
+ toolLookup,
107
+ selectedToolsLookup,
89
108
  dirty: false,
90
109
  history: [],
91
110
  future: [],
@@ -99,6 +118,12 @@ export const useGraphStore = create<GraphState>()(
99
118
  setArtifactComponentLookup(artifactComponentLookup) {
100
119
  set({ artifactComponentLookup });
101
120
  },
121
+ setToolLookup(toolLookup) {
122
+ set({ toolLookup });
123
+ },
124
+ setSelectedToolsLookup(selectedToolsLookup) {
125
+ set({ selectedToolsLookup });
126
+ },
102
127
  setNodes(updater) {
103
128
  set((state) => ({ nodes: updater(state.nodes) }));
104
129
  },
@@ -133,9 +158,6 @@ export const useGraphStore = create<GraphState>()(
133
158
  (change) => change.type === 'remove' || change.type === 'add' || change.type === 'replace'
134
159
  );
135
160
 
136
- set((state) => ({
137
- history: [...state.history, { nodes: state.nodes, edges: state.edges }],
138
- }));
139
161
  set((state) => ({
140
162
  history: [...state.history, { nodes: state.nodes, edges: state.edges }],
141
163
  edges: applyEdgeChanges(changes, state.edges),
@@ -34,7 +34,7 @@ export function detectOrphanedToolsAndGetWarning(
34
34
  * This replaces the duplicated logic between detector and MCP node editor
35
35
  */
36
36
  export function getCurrentSelectedToolsForNode(
37
- node: Node<MCPNodeData>,
37
+ node: { data: MCPNodeData },
38
38
  selectedToolsLookup: Record<string, Record<string, string[]>>
39
39
  ): string[] | null {
40
40
  // First check if we have temporary selections stored on the node (from recent clicks)
@@ -1 +0,0 @@
1
- exports.id=3080,exports.ids=[3080],exports.modules={5294:(a,b,c)=>{"use strict";c.d(b,{GO:()=>i,K3:()=>h,h9:()=>k});var d=c(29991);c(58415);var e=c(8703),f=c(45796);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(33451).D)([g,h,i,j,k]),(0,d.A)(g,"787f7b502bdd99d2ba1991d617b40d1a7e2b47bc76",null),(0,d.A)(h,"7042f38475adc7d31a975b4501a78a2e598b549acd",null),(0,d.A)(i,"705779f6de3c45620330b476fcb48d3647248d0ca7",null),(0,d.A)(j,"781686409a906db808c926d55a4c84025920b4fc0c",null),(0,d.A)(k,"700b20abaca588c5c9a9510a1a69190c8481c82b65",null)},19329:(a,b,c)=>{"use strict";c.d(b,{U:()=>f});var d=c(29991);c(58415);var e=c(5294);async function f(a,b,c){try{let d=await (0,e.K3)(a,b,c.id);if(d)return d}catch{}try{return await (0,e.GO)(a,b,c)}catch(a){throw console.error("Failed to save credential to database:",a),Error(`Failed to save credential '${c.id}' to database`)}}(0,c(33451).D)([f]),(0,d.A)(f,"70911a35379240de5c6b6577f76e64eec12ad817aa",null)},21395:(a,b,c)=>{"use strict";c.d(b,{RN:()=>s,Ak:()=>p,uP:()=>t,tN:()=>q,Mj:()=>o,tQ:()=>n,pv:()=>m,Mb:()=>l,H6:()=>u,P:()=>v});var d=c(29991);c(58415);var e=c(34843),f=c(55797),g=c(67417);class h extends Error{constructor(a,b,c){super(a),this.operation=b,this.cause=c,this.name="NangoError"}}function i(a,b,c){if(a instanceof h)throw a;throw new h(b,c,a)}var j=c(33451);let k=()=>{let a=process.env.NANGO_SECRET_KEY;if(!a)throw new h("NANGO_SECRET_KEY environment variable is required for Nango integration");try{return new f.CA({secretKey:a,host:process.env.NANGO_SERVER_URL||void 0})}catch(a){throw new h("Failed to initialize Nango client","new Nango",a)}};async function l(){try{let a=k();return(await a.listProviders({})).data}catch(a){console.error("Failed to fetch providers:",a),i(a,"Unable to retrieve available providers from Nango","listProviders")}}async function m(a){try{let b=k();return(await b.getProvider({provider:a})).data}catch(b){console.error(`Failed to fetch provider ${a}:`,b),i(b,`Provider '${a}' not found or inaccessible`,"getProvider")}}async function n(){try{let a=k();return(await a.listIntegrations()).configs}catch(a){console.error("Failed to fetch integrations:",a),i(a,"Unable to retrieve existing integrations","listIntegrations")}}async function o(a){try{let b=k(),c=(await b.getIntegration({uniqueKey:a},{include:["credentials"]})).data,d=!1;d=c.credentials?.type==="OAUTH2"||c.credentials?.type==="OAUTH1"||c.credentials?.type==="TBA"?!!(c.credentials?.client_id&&c.credentials?.client_secret):c.credentials?.type!=="APP"||!!(c.credentials?.app_id&&c.credentials?.app_link);let{credentials:e,...f}=c;return{...f,areCredentialsSet:d}}catch(b){if(b&&"object"==typeof b&&"status"in b&&404===b.status)return null;console.error(`Failed to fetch integration ${a}:`,b),i(b,`Unable to fetch integration with key '${a}'`,"getIntegration")}}async function p(a){try{let b=k();return(await b.createIntegration({provider:a.provider,unique_key:a.uniqueKey,display_name:a.displayName,credentials:a.credentials})).data}catch(b){console.error("Failed to create integration:",b),i(b,`Failed to create integration '${a.uniqueKey}' for provider '${a.provider}'`,"createIntegration")}}async function q(a){try{let a=k();return(await a.listConnections()).connections}catch(c){let b=a?` for integration '${a}'`:"";console.error(`Failed to fetch connections${b}:`,c),i(c,`Unable to retrieve connections${b}`,"listConnections")}}async function r({endUserId:a="test-tenant",endUserEmail:b="test@test-tenant.com",endUserDisplayName:c="Test User",organizationId:d=process.env.TENANT_ID||g.P3,organizationDisplayName:e="Test Organization",integrationId:f}){try{let g=k(),{data:h}=await g.createConnectSession({end_user:{id:a,email:b,display_name:c},organization:{id:d,display_name:e},allowed_integrations:[f]});return h}catch(a){console.error("Failed to create connect session:",a),i(a,`Unable to create connect session for integration '${f}'`,"createConnectSession")}}async function s({name:a,apiKeyToSet:b,metadata:c}){let d=(0,e.K_)(a);try{let e;try{e=await p({provider:"private-api-bearer",uniqueKey:d,displayName:a})}catch(a){if(a instanceof h&&a.cause&&"object"==typeof a.cause&&"status"in a.cause&&400===a.cause.status){let b=await o(d);b?e=b:i(a,"Integration creation failed for unexpected reasons","create")}else i(a,`Failed to create or retrieve integration '${d}'`,"create")}try{let a=`${process.env.NANGO_SERVER_URL||"https://api.nango.dev"}/connections`,f={provider_config_key:e.unique_key,connection_id:d,metadata:c,credentials:{type:"API_KEY",apiKey:b}},g=await fetch(a,{method:"POST",headers:{Authorization:`Bearer ${process.env.NANGO_SECRET_KEY}`,"Content-Type":"application/json"},body:JSON.stringify(f)});if(!g.ok)throw new h(`Failed to import connection: HTTP ${g.status} - ${g.statusText}`,"importConnection")}catch(a){i(a,"Failed to import API key connection to Nango","importConnection")}try{await v({providerConfigKey:e.unique_key,connectionId:d,metadata:c})}catch(a){console.warn(`Failed to set metadata for connection ${d}:`,a)}return{integration:e}}catch(b){console.error("Unexpected error creating API key credential:",b),i(b,`Unexpected error creating API key credential '${a}'`,"createNangoApiKeyConnection")}}async function t({providerName:a,credentials:b}){try{let c,d=null;try{d=await o(a)}catch(b){if(b instanceof h)throw b;console.debug(`Integration '${a}' not found, will create new one`)}if(d?.areCredentialsSet)c=d;else try{c=await p({provider:a,uniqueKey:a,displayName:a,credentials:b})}catch(b){i(b,`Failed to create integration for provider '${a}'`,"create")}try{return(await r({integrationId:c.unique_key})).token}catch(a){i(a,`Failed to create connect session for integration '${c.unique_key}'`,"createConnectSession")}}catch(b){console.error("Unexpected error creating provider connect session:",b),i(b,`Unexpected error creating connect session for provider '${a}'`,"createProviderConnectSession")}}async function u({providerConfigKey:a,connectionId:b}){try{let c=k();return await c.getMetadata(a,b)}catch(a){if(a&&"object"==typeof a&&"status"in a&&404===a.status)return null;console.error("Failed to get connection metadata:",a),i(a,`Unable to retrieve metadata for connection '${b}'`,"getMetadata")}}async function v({providerConfigKey:a,connectionId:b,metadata:c}){try{let d=k();await d.setMetadata(a,b,c)}catch(a){console.error("Failed to set connection metadata:",a),i(a,`Unable to update metadata for connection '${b}'`,"setMetadata")}}(0,j.D)([l,m,n,o,p,q,s,t,u,v]),(0,d.A)(l,"005a4f2dd746b7c8984e496d1b35b8e2f64c4800bb",null),(0,d.A)(m,"406275b1b0fc391232c9c79dfda66720d98148098b",null),(0,d.A)(n,"00c11de718b922c03870c5cd1f4a77eab5afc7c63d",null),(0,d.A)(o,"4098e4005c777588cbcc7e7f6c72d27e8cf5e73915",null),(0,d.A)(p,"4016368487d1b18672fdf8fdad3889ff20800ab55d",null),(0,d.A)(q,"40f70d5ce40db864cd217d944322968553bb23f813",null),(0,d.A)(s,"40ae603212ee9be018e80ca4d8d10e40cc21da8bdb",null),(0,d.A)(t,"40a8ac22cd967aecd6cc6e7c22ab327f78815ae468",null),(0,d.A)(u,"40a00e3435737462433c01148dd7e3087306ee83f9",null),(0,d.A)(v,"40b354ad460ee101db39d95b75bc7a2b78f5a19ec9",null)},22427:(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."})}},25600:(a,b,c)=>{Promise.resolve().then(c.bind(c,22427))},44940:(a,b,c)=>{"use strict";c.d(b,{U:()=>e});var d=c(90147);let e=(0,d.createServerReference)("70911a35379240de5c6b6577f76e64eec12ad817aa",d.callServer,void 0,d.findSourceMapURL,"findOrCreateCredential")},62048:(a,b,c)=>{Promise.resolve().then(c.bind(c,80969))},80615:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"40110e4789efbf0dab668be854d4fb15c27465d1a9":()=>d.vj,"60231aa86b03d52b623948d05b66b9671e158082e5":()=>d.Sw,"6037b86e09261784d01c81391fe68f7071b97b95ac":()=>d.xx,"60cd3cf35b4249d19980bb88ee15e748537da545db":()=>d.gA,"702bc2e797c27d932d8948966d6d0fc630912f5a2b":()=>d.vr});var d=c(54637)},80969:(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]/credentials/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]/credentials/error.tsx","default")}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=3686,exports.ids=[3686],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}},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"})})})}},30836:(a,b,c)=>{c.d(b,{Y:()=>e});var d=c(90147);let e=(0,d.createServerReference)("78195f0249260cbefcc7fae4e036487dee9fe96696",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,"787f7b502bdd99d2ba1991d617b40d1a7e2b47bc76",null),(0,d.A)(h,"7042f38475adc7d31a975b4501a78a2e598b549acd",null),(0,d.A)(i,"705779f6de3c45620330b476fcb48d3647248d0ca7",null),(0,d.A)(j,"781686409a906db808c926d55a4c84025920b4fc0c",null),(0,d.A)(k,"700b20abaca588c5c9a9510a1a69190c8481c82b65",null)},88440:(a,b,c)=>{c.d(b,{MCPServerForm:()=>C});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(30836),p=c(90147);let q=(0,p.createServerReference)("700c7808d8bf5e89b0eeeac698cac22afcda56f83c",p.callServer,void 0,p.findSourceMapURL,"createMCPTool");var r=c(91740),s=c(39108),t=c(14450),u=c(12463),v=c(24703),w=c(37671);function x({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,t.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)})},x=()=>{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=x()===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)(u.E,{variant:"code",className:"border-none px-2 text-[10px] text-muted-foreground",children:x()})]}),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:[x()," ",(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)(r.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)(s.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)(v.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)(u.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)(w.Tooltip,{delayDuration:800,children:[(0,d.jsx)(w.TooltipTrigger,{asChild:!0,children:(0,d.jsx)("p",{className:"text-sm text-muted-foreground line-clamp-1",children:a.description})}),(0,d.jsx)(w.TooltipContent,{side:"bottom",align:"start",children:a.description})]})]})]},a.name)})})]})]}),(0,d.jsx)(n.C5,{children:k?.message})]})})}var y=c(45809);let z=y.discriminatedUnion("type",[y.object({type:y.literal("all")}),y.object({type:y.literal("selective"),tools:y.array(y.string())})]),A=y.object({name:y.string().min(1,"Name is required."),config:y.object({type:y.literal("mcp"),mcp:y.object({server:y.object({url:y.string().url("Must be a valid URL.")}),transport:y.object({type:y.nativeEnum(f.o7)}),toolsConfig:z.default({type:"all"})})}),credentialReferenceId:y.string().nullish(),imageUrl:y.string().optional()}),B={name:"",config:{type:"mcp",mcp:{server:{url:""},transport:{type:f.o7.streamableHttp},toolsConfig:{type:"all"}}},imageUrl:"",credentialReferenceId:"none"};function C({initialData:a,mode:b="create",tool:c,credentials:p,tenantId:r,projectId:s}){let t=(0,h.useRouter)(),u=(0,i.mN)({resolver:(0,e.u)(A),defaultValues:{...B,...a}}),{isSubmitting:v}=u.formState,w=async a=>{try{let d={...a,credentialReferenceId:"none"===a.credentialReferenceId?null:a.credentialReferenceId,config:{...a.config,mcp:{...a.config.mcp,activeTools:(a=>{if("all"===a.type)return;let b=c?.availableTools?.map(a=>a.name)||[];return a.tools.filter(a=>b.includes(a))})(a.config.mcp.toolsConfig)}}};if("update"===b&&c)await (0,o.Y)(r,s,c.id,d),j.oR.success("MCP server updated successfully"),t.push(`/${r}/projects/${s}/mcp-servers/${c.id}`);else{let a=await q(r,s,{...d,id:(0,g.Ak)()});j.oR.success("MCP server created successfully"),t.push(`/${r}/projects/${s}/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,{...u,children:(0,d.jsxs)("form",{onSubmit:u.handleSubmit(w),className:"space-y-8",children:[(0,d.jsx)(k.a,{control:u.control,name:"name",label:"Name",placeholder:"MCP server",isRequired:!0}),(0,d.jsx)(k.a,{control:u.control,name:"config.mcp.server.url",label:"URL",placeholder:"https://api.example.com/mcp",isRequired:!0}),(0,d.jsx)(l.U,{control:u.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:u.control,name:"imageUrl",label:"Image URL (optional)",placeholder:"https://example.com/icon.png or data:image/png;base64,..."}),(0,d.jsx)(l.U,{control:u.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)(x,{control:u.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:v,children:"update"===b?"Save":"Create"})]})})}}};
@@ -1 +0,0 @@
1
- exports.id=3791,exports.ids=[3791],exports.modules={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))},20155:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"406d416c05079bf78bb44c6e7460158fda718d7e12":()=>d.bW,"600adc1b71f9bdfee13943425b8d2385a287a85287":()=>d.gL,"60613706a48cc5db2e0c9bb38e106c70effa4a1744":()=>p,"60a0970cd79303e7df11c9c1b3e6c331b790895f7b":()=>d.Dv,"60fc6d86ca6249ac8c11cf7d5bdfab2260101b2608":()=>d.qf,"700d96fa7723ae258a05f6b10630cc82aa12c14e40":()=>q,"7012f90691cefef8a1e6de02297758e8380269a890":()=>s,"70cb27a17aca73cd440b94058bca7cad677ea82e37":()=>d.Tg,"70ee6f4d59593edbb47012306104fbe6e27b814941":()=>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,"601c2292e15c858f036fe9b701d5672bd5e8015804",null),(0,e.A)(k,"70f9da4131539bf41bd840cb29a482655fde866c4f",null),(0,e.A)(l,"7056319576a71f08bf7e66cc521ab2534bba80e8a0",null),(0,e.A)(m,"70ac7eb2ddec2b5da1e70f73e4318169b948c22931",null),(0,e.A)(n,"70011ff5cd86fbc09cd478930eca5e047cb343dcc1",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,"60613706a48cc5db2e0c9bb38e106c70effa4a1744",null),(0,e.A)(q,"700d96fa7723ae258a05f6b10630cc82aa12c14e40",null),(0,e.A)(r,"70ee6f4d59593edbb47012306104fbe6e27b814941",null),(0,e.A)(s,"7012f90691cefef8a1e6de02297758e8380269a890",null)},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"})]})})}},41081:(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)("70ee6f4d59593edbb47012306104fbe6e27b814941",o.callServer,void 0,o.findSourceMapURL,"updateDataComponentAction"),q=(0,o.createServerReference)("700d96fa7723ae258a05f6b10630cc82aa12c14e40",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"})]})})}},41325:(a,b,c)=>{Promise.resolve().then(c.bind(c,41081)),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"}},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=404,exports.ids=[404],exports.modules={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")},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"})]})})}},45622:()=>{},61664:(a,b,c)=>{"use strict";c.d(b,{AY:()=>bt,o7:()=>f,O_:()=>bo,K_:()=>bu});var d=c(32463);let e=["transfer","delegate"],f={streamableHttp:"streamable_http",sse:"sse"},g={memory:"memory",keychain:"keychain",nango:"nango"};var h=c(41135),i=c(4445),j=c(61234),k=c(66603),l=c(84379),m=c(60510),n=c(30480),o=c(27786),p=c(82390),q=c(57103),r=c(23241),s=c(5540);let t=(0,l.D)("projects",{tenantId:(0,m.Qq)("tenant_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),models:(0,m.Qq)("models",{mode:"json"}).$type(),stopWhen:(0,m.Qq)("stop_when",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.id]})]),u=(0,l.D)("agent_graph",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description"),defaultAgentId:(0,m.Qq)("default_agent_id"),contextConfigId:(0,m.Qq)("context_config_id"),models:(0,m.Qq)("models",{mode:"json"}).$type(),statusUpdates:(0,m.Qq)("status_updates",{mode:"json"}).$type(),graphPrompt:(0,m.Qq)("graph_prompt"),stopWhen:(0,m.Qq)("stop_when",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"agent_graph_project_fk"}).onDelete("cascade")]),v=(0,l.D)("context_configs",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),requestContextSchema:(0,p.av)("request_context_schema",{mode:"json"}).$type(),contextVariables:(0,p.av)("context_variables",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"context_configs_project_fk"}).onDelete("cascade")]),w=(0,l.D)("context_cache",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),conversationId:(0,m.Qq)("conversation_id").notNull(),contextConfigId:(0,m.Qq)("context_config_id").notNull(),contextVariableKey:(0,m.Qq)("context_variable_key").notNull(),value:(0,p.av)("value",{mode:"json"}).$type().notNull(),requestHash:(0,m.Qq)("request_hash"),fetchedAt:(0,m.Qq)("fetched_at").notNull(),fetchSource:(0,m.Qq)("fetch_source"),fetchDurationMs:(0,q.nd)("fetch_duration_ms"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"context_cache_project_fk"}).onDelete("cascade"),(0,r.Pe)("context_cache_lookup_idx").on(a.conversationId,a.contextConfigId,a.contextVariableKey)]),x=(0,l.D)("agents",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),prompt:(0,m.Qq)("prompt").notNull(),conversationHistoryConfig:(0,m.Qq)("conversation_history_config",{mode:"json"}).$type(),models:(0,m.Qq)("models",{mode:"json"}).$type(),stopWhen:(0,m.Qq)("stop_when",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.graphId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId],foreignColumns:[u.tenantId,u.projectId,u.id],name:"agents_graph_fk"}).onDelete("cascade")]),y=(0,l.D)("agent_relations",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),id:(0,m.Qq)("id").notNull(),sourceAgentId:(0,m.Qq)("source_agent_id").notNull(),targetAgentId:(0,m.Qq)("target_agent_id"),externalAgentId:(0,m.Qq)("external_agent_id"),relationType:(0,m.Qq)("relation_type"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.graphId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId],foreignColumns:[u.tenantId,u.projectId,u.id],name:"agent_relations_graph_fk"}).onDelete("cascade")]),z=(0,l.D)("external_agents",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),baseUrl:(0,m.Qq)("base_url").notNull(),credentialReferenceId:(0,m.Qq)("credential_reference_id"),headers:(0,p.av)("headers",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.graphId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId],foreignColumns:[u.tenantId,u.projectId,u.id],name:"external_agents_graph_fk"}).onDelete("cascade"),(0,o.mt)({columns:[a.tenantId,a.projectId,a.credentialReferenceId],foreignColumns:[M.tenantId,M.projectId,M.id],name:"external_agents_credential_reference_fk"}).onDelete("set null")]),A=(0,l.D)("tasks",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),contextId:(0,m.Qq)("context_id").notNull(),status:(0,m.Qq)("status").notNull(),metadata:(0,p.av)("metadata",{mode:"json"}).$type(),agentId:(0,m.Qq)("agent_id").notNull(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"tasks_project_fk"}).onDelete("cascade")]),B=(0,l.D)("task_relations",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),parentTaskId:(0,m.Qq)("parent_task_id").notNull(),childTaskId:(0,m.Qq)("child_task_id").notNull(),relationType:(0,m.Qq)("relation_type").default("parent_child"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"task_relations_project_fk"}).onDelete("cascade")]),C=(0,l.D)("data_components",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),props:(0,p.av)("props",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"data_components_project_fk"}).onDelete("cascade")]),D=(0,l.D)("agent_data_components",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),agentId:(0,m.Qq)("agent_id").notNull(),id:(0,m.Qq)("id").notNull(),dataComponentId:(0,m.Qq)("data_component_id").notNull(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId,a.agentId],foreignColumns:[x.tenantId,x.projectId,x.graphId,x.id],name:"agent_data_components_agent_fk"}).onDelete("cascade"),(0,o.mt)({columns:[a.tenantId,a.projectId,a.dataComponentId],foreignColumns:[C.tenantId,C.projectId,C.id],name:"agent_data_components_data_component_fk"}).onDelete("cascade")]),E=(0,l.D)("artifact_components",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),summaryProps:(0,p.av)("summary_props",{mode:"json"}).$type(),fullProps:(0,p.av)("full_props",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"artifact_components_project_fk"}).onDelete("cascade")]),F=(0,l.D)("agent_artifact_components",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),agentId:(0,m.Qq)("agent_id").notNull(),id:(0,m.Qq)("id").notNull(),artifactComponentId:(0,m.Qq)("artifact_component_id").notNull(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.graphId,a.agentId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId,a.agentId],foreignColumns:[x.tenantId,x.projectId,x.graphId,x.id],name:"agent_artifact_components_agent_fk"}).onDelete("cascade"),(0,o.mt)({columns:[a.tenantId,a.projectId,a.artifactComponentId],foreignColumns:[E.tenantId,E.projectId,E.id],name:"agent_artifact_components_artifact_component_fk"}).onDelete("cascade")]),G=(0,l.D)("tools",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),config:(0,p.av)("config",{mode:"json"}).$type().notNull(),credentialReferenceId:(0,m.Qq)("credential_reference_id"),headers:(0,p.av)("headers",{mode:"json"}).$type(),imageUrl:(0,m.Qq)("image_url"),capabilities:(0,p.av)("capabilities",{mode:"json"}).$type(),lastError:(0,m.Qq)("last_error"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"tools_project_fk"}).onDelete("cascade")]),H=(0,l.D)("agent_tool_relations",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),agentId:(0,m.Qq)("agent_id").notNull(),id:(0,m.Qq)("id").notNull(),toolId:(0,m.Qq)("tool_id").notNull(),selectedTools:(0,p.av)("selected_tools",{mode:"json"}).$type(),headers:(0,p.av)("headers",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.graphId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId,a.agentId],foreignColumns:[x.tenantId,x.projectId,x.graphId,x.id],name:"agent_tool_relations_agent_fk"}).onDelete("cascade"),(0,o.mt)({columns:[a.tenantId,a.projectId,a.toolId],foreignColumns:[G.tenantId,G.projectId,G.id],name:"agent_tool_relations_tool_fk"}).onDelete("cascade")]),I=(0,l.D)("conversations",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),userId:(0,m.Qq)("user_id"),activeAgentId:(0,m.Qq)("active_agent_id").notNull(),title:(0,m.Qq)("title"),lastContextResolution:(0,m.Qq)("last_context_resolution"),metadata:(0,p.av)("metadata",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"conversations_project_fk"}).onDelete("cascade")]),J=(0,l.D)("messages",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),conversationId:(0,m.Qq)("conversation_id").notNull(),role:(0,m.Qq)("role").notNull(),fromAgentId:(0,m.Qq)("from_agent_id"),toAgentId:(0,m.Qq)("to_agent_id"),fromExternalAgentId:(0,m.Qq)("from_external_agent_id"),toExternalAgentId:(0,m.Qq)("to_external_agent_id"),content:(0,p.av)("content",{mode:"json"}).$type().notNull(),visibility:(0,m.Qq)("visibility").notNull().default("user-facing"),messageType:(0,m.Qq)("message_type").notNull().default("chat"),agentId:(0,m.Qq)("agent_id"),taskId:(0,m.Qq)("task_id"),parentMessageId:(0,m.Qq)("parent_message_id"),a2aTaskId:(0,m.Qq)("a2a_task_id"),a2aSessionId:(0,m.Qq)("a2a_session_id"),metadata:(0,p.av)("metadata",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"messages_project_fk"}).onDelete("cascade")]),K=(0,l.D)("ledger_artifacts",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),taskId:(0,m.Qq)("task_id"),contextId:(0,m.Qq)("context_id").notNull(),type:(0,m.Qq)("type").notNull().default("source"),name:(0,m.Qq)("name"),description:(0,m.Qq)("description"),parts:(0,p.av)("parts",{mode:"json"}).$type(),metadata:(0,p.av)("metadata",{mode:"json"}).$type(),summary:(0,m.Qq)("summary"),mime:(0,p.av)("mime",{mode:"json"}).$type(),visibility:(0,m.Qq)("visibility").default("context"),allowedAgents:(0,p.av)("allowed_agents",{mode:"json"}).$type(),derivedFrom:(0,m.Qq)("derived_from"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"ledger_artifacts_project_fk"}).onDelete("cascade")]),L=(0,l.D)("api_keys",{id:(0,m.Qq)("id").primaryKey(),tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),publicId:(0,m.Qq)("public_id").notNull().unique(),keyHash:(0,m.Qq)("key_hash").notNull(),keyPrefix:(0,m.Qq)("key_prefix").notNull(),name:(0,m.Qq)("name"),lastUsedAt:(0,m.Qq)("last_used_at"),expiresAt:(0,m.Qq)("expires_at"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"api_keys_project_fk"}).onDelete("cascade"),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId],foreignColumns:[u.tenantId,u.projectId,u.id],name:"api_keys_graph_fk"}).onDelete("cascade"),(0,r.Pe)("api_keys_tenant_graph_idx").on(a.tenantId,a.graphId),(0,r.Pe)("api_keys_prefix_idx").on(a.keyPrefix),(0,r.Pe)("api_keys_public_id_idx").on(a.publicId)]),M=(0,l.D)("credential_references",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),type:(0,m.Qq)("type").notNull(),credentialStoreId:(0,m.Qq)("credential_store_id").notNull(),retrievalParams:(0,p.av)("retrieval_params",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"credential_references_project_fk"}).onDelete("cascade")]);(0,r.Pe)("ledger_artifacts_task_id_idx").on(K.taskId),(0,r.Pe)("ledger_artifacts_context_id_idx").on(K.contextId),(0,s.Am)("ledger_artifacts_task_context_name_unique").on(K.taskId,K.contextId,K.name),(0,k.K1)(A,({one:a,many:b})=>({project:a(t,{fields:[A.tenantId,A.projectId],references:[t.tenantId,t.id]}),parentRelations:b(B,{relationName:"childTask"}),childRelations:b(B,{relationName:"parentTask"}),agent:a(x,{fields:[A.agentId],references:[x.id]}),messages:b(J),ledgerArtifacts:b(K)})),(0,k.K1)(t,({many:a})=>({agents:a(x),agentGraphs:a(u),tools:a(G),contextConfigs:a(v),externalAgents:a(z),conversations:a(I),tasks:a(A),dataComponents:a(C),artifactComponents:a(E),ledgerArtifacts:a(K),credentialReferences:a(M)})),(0,k.K1)(B,({one:a})=>({parentTask:a(A,{fields:[B.parentTaskId],references:[A.id],relationName:"parentTask"}),childTask:a(A,{fields:[B.childTaskId],references:[A.id],relationName:"childTask"})})),(0,k.K1)(v,({many:a,one:b})=>({project:b(t,{fields:[v.tenantId,v.projectId],references:[t.tenantId,t.id]}),graphs:a(u),cache:a(w)})),(0,k.K1)(w,({one:a})=>({contextConfig:a(v,{fields:[w.contextConfigId],references:[v.id]})})),(0,k.K1)(x,({many:a,one:b})=>({project:b(t,{fields:[x.tenantId,x.projectId],references:[t.tenantId,t.id]}),tasks:a(A),defaultForGraphs:a(u),sourceRelations:a(y,{relationName:"sourceRelations"}),targetRelations:a(y,{relationName:"targetRelations"}),sentMessages:a(J,{relationName:"sentMessages"}),receivedMessages:a(J,{relationName:"receivedMessages"}),associatedMessages:a(J,{relationName:"associatedAgent"}),toolRelations:a(H),dataComponentRelations:a(D),artifactComponentRelations:a(F)})),(0,k.K1)(u,({one:a})=>({project:a(t,{fields:[u.tenantId,u.projectId],references:[t.tenantId,t.id]}),defaultAgent:a(x,{fields:[u.defaultAgentId],references:[x.id]}),contextConfig:a(v,{fields:[u.contextConfigId],references:[v.id]})})),(0,k.K1)(z,({one:a,many:b})=>({project:a(t,{fields:[z.tenantId,z.projectId],references:[t.tenantId,t.id]}),agentRelations:b(y),credentialReference:a(M,{fields:[z.credentialReferenceId],references:[M.id]})})),(0,k.K1)(L,({one:a})=>({project:a(t,{fields:[L.tenantId,L.projectId],references:[t.tenantId,t.id]}),graph:a(u,{fields:[L.graphId],references:[u.id]})})),(0,k.K1)(H,({one:a})=>({agent:a(x,{fields:[H.agentId],references:[x.id]}),tool:a(G,{fields:[H.toolId],references:[G.id]})})),(0,k.K1)(M,({many:a})=>({tools:a(G)})),(0,k.K1)(G,({one:a,many:b})=>({project:a(t,{fields:[G.tenantId,G.projectId],references:[t.tenantId,t.id]}),agentRelations:b(H),credentialReference:a(M,{fields:[G.credentialReferenceId],references:[M.id]})})),(0,k.K1)(I,({one:a,many:b})=>({project:a(t,{fields:[I.tenantId,I.projectId],references:[t.tenantId,t.id]}),messages:b(J),activeAgent:a(x,{fields:[I.activeAgentId],references:[x.id]})})),(0,k.K1)(J,({one:a,many:b})=>({conversation:a(I,{fields:[J.conversationId],references:[I.id]}),agent:a(x,{fields:[J.agentId],references:[x.id],relationName:"associatedAgent"}),fromAgent:a(x,{fields:[J.fromAgentId],references:[x.id],relationName:"sentMessages"}),toAgent:a(x,{fields:[J.toAgentId],references:[x.id],relationName:"receivedMessages"}),fromExternalAgent:a(z,{fields:[J.fromExternalAgentId],references:[z.id],relationName:"receivedExternalMessages"}),toExternalAgent:a(z,{fields:[J.toExternalAgentId],references:[z.id],relationName:"sentExternalMessages"}),task:a(A,{fields:[J.taskId],references:[A.id]}),parentMessage:a(J,{fields:[J.parentMessageId],references:[J.id],relationName:"parentChild"}),childMessages:b(J,{relationName:"parentChild"})})),(0,k.K1)(E,({many:a})=>({agentRelations:a(F)})),(0,k.K1)(F,({one:a})=>({agent:a(x,{fields:[F.agentId],references:[x.id]}),artifactComponent:a(E,{fields:[F.artifactComponentId],references:[E.id]})})),(0,k.K1)(C,({many:a,one:b})=>({project:b(t,{fields:[C.tenantId,C.projectId],references:[t.tenantId,t.id]}),agentRelations:a(D)})),(0,k.K1)(D,({one:a})=>({agent:a(x,{fields:[D.agentId],references:[x.id]}),dataComponent:a(C,{fields:[D.dataComponentId],references:[C.id]})})),(0,k.K1)(K,({one:a})=>({project:a(t,{fields:[K.tenantId,K.projectId],references:[t.tenantId,t.id]}),task:a(A,{fields:[K.taskId],references:[A.id]})})),(0,k.K1)(y,({one:a})=>({graph:a(u,{fields:[y.graphId],references:[u.id]}),sourceAgent:a(x,{fields:[y.sourceAgentId],references:[x.id],relationName:"sourceRelations"}),targetAgent:a(x,{fields:[y.targetAgentId],references:[x.id],relationName:"targetRelations"}),externalAgent:a(z,{fields:[y.externalAgentId],references:[z.id]})}));let N=h.z.object({transferCountIs:h.z.number().min(1).max(100).optional(),stepCountIs:h.z.number().min(1).max(1e3).optional()}),O=N.pick({transferCountIs:!0});N.pick({stepCountIs:!0});let P=h.z.string().min(1).max(255).regex(/^[a-zA-Z0-9\-_.]+$/,{message:"ID must contain only letters, numbers, hyphens, underscores, and dots"}).openapi({description:"Resource identifier",example:"resource_789"}),Q=h.z.object({model:h.z.string().optional(),providerOptions:h.z.record(h.z.string(),h.z.unknown()).optional()}),R=h.z.object({base:Q.optional(),structuredOutput:Q.optional(),summarizer:Q.optional()}),S=h.z.object({base:Q,structuredOutput:Q.optional(),summarizer:Q.optional()}),T=a=>a.omit({tenantId:!0,projectId:!0}),U=a=>a.omit({tenantId:!0,projectId:!0}),V=a=>a.omit({tenantId:!0,projectId:!0}).partial(),W=a=>a.omit({tenantId:!0,projectId:!0,graphId:!0}),X=a=>a.omit({tenantId:!0,projectId:!0,graphId:!0}),Y=a=>a.omit({tenantId:!0,projectId:!0,graphId:!0}).partial(),Z=(0,i.aJ)(x),$=(0,i.r)(x).extend({id:P,models:R.optional()}),_=$.partial(),aa=W(Z),ab=X($);Y(_);let ac=(0,i.aJ)(y),ad=(0,i.r)(y).extend({id:P,graphId:P,sourceAgentId:P,targetAgentId:P.optional(),externalAgentId:P.optional()}),ae=ad.partial();W(ac),X(ad).extend({relationType:h.z.enum(e)}).refine(a=>null!=a.targetAgentId!=(null!=a.externalAgentId),{message:"Must specify exactly one of targetAgentId or externalAgentId",path:["targetAgentId","externalAgentId"]}),Y(ae).extend({relationType:h.z.enum(e).optional()}).refine(a=>{let b=null!=a.targetAgentId,c=null!=a.externalAgentId;return!b&&!c||b!==c},{message:"Must specify exactly one of targetAgentId or externalAgentId when updating agent relationships",path:["targetAgentId","externalAgentId"]}),h.z.object({sourceAgentId:h.z.string().optional(),targetAgentId:h.z.string().optional(),externalAgentId:h.z.string().optional()}),U((0,i.r)(y).extend({id:P,graphId:P,sourceAgentId:P,externalAgentId:P}));let af=(0,i.aJ)(u),ag=(0,i.r)(u).extend({id:P}),ah=ag.partial();T(af);let ai=U(ag).extend({id:P});V(ah);let aj=(0,i.aJ)(A),ak=(0,i.r)(A).extend({id:P,conversationId:P.optional()}),al=ak.partial();T(aj),U(ak),V(al);let am=(0,i.aJ)(B),an=(0,i.r)(B).extend({id:P,parentTaskId:P,childTaskId:P}),ao=an.partial();T(am),U(an),V(ao);let ap=h.z.string().optional().refine(a=>{if(!a)return!0;if(a.startsWith("data:image/")){let b=a.split(",")[1];return!!b&&b.length<14e5}try{let b=new URL(a);return"http:"===b.protocol||"https:"===b.protocol}catch{return!1}},{message:"Image URL must be a valid HTTP(S) URL or a base64 data URL (max 1MB)"}),aq=h.z.object({type:h.z.enum(f),requestInit:h.z.record(h.z.string(),h.z.unknown()).optional(),eventSourceInit:h.z.record(h.z.string(),h.z.unknown()).optional(),reconnectionOptions:h.z.custom().optional(),sessionId:h.z.string().optional()}),ar=h.z.enum(["healthy","unhealthy","unknown","needs_auth"]),as=h.z.object({name:h.z.string(),description:h.z.string().optional(),inputSchema:h.z.record(h.z.string(),h.z.unknown()).optional()}),at=(0,i.aJ)(G),au=(0,i.r)(G).extend({id:P,imageUrl:ap}),av=(0,i.aJ)(I),aw=(0,i.r)(I).extend({id:P,contextConfigId:P.optional()}),ax=aw.partial();T(av),U(aw),V(ax);let ay=(0,i.aJ)(J),az=(0,i.r)(J).extend({id:P,conversationId:P,taskId:P.optional()}),aA=az.partial();T(ay),U(az),V(aA);let aB=(0,i.aJ)(w),aC=(0,i.r)(w),aD=aC.partial();T(aB),U(aC),V(aD);let aE=(0,i.aJ)(C),aF=(0,i.r)(C).extend({id:P});aF.omit({createdAt:!0,updatedAt:!0});let aG=aF.partial();T(aE);let aH=U(aF);V(aG);let aI=(0,i.aJ)(D),aJ=(0,i.r)(D),aK=aJ.partial();W(aI),aJ.omit({tenantId:!0,projectId:!0,id:!0,createdAt:!0}),Y(aK);let aL=(0,i.aJ)(E),aM=(0,i.r)(E).extend({id:P}),aN=aM.partial();T(aL);let aO=aM.omit({tenantId:!0,projectId:!0,createdAt:!0,updatedAt:!0});V(aN);let aP=(0,i.aJ)(F),aQ=(0,i.r)(F).extend({id:P,agentId:P,artifactComponentId:P}),aR=aQ.partial();W(aP),aQ.omit({tenantId:!0,projectId:!0,id:!0,createdAt:!0}),Y(aR);let aS=(0,i.aJ)(z).extend({credentialReferenceId:h.z.string().nullable().optional(),headers:h.z.record(h.z.string(),h.z.string()).nullable().optional()}),aT=(0,i.r)(z).extend({id:P}),aU=aT.partial(),aV=W(aS),aW=X(aT);Y(aU),h.z.discriminatedUnion("type",[aa.extend({type:h.z.literal("internal")}),aV.extend({type:h.z.literal("external")})]);let aX=(0,i.aJ)(L),aY=(0,i.r)(L).extend({id:P,graphId:P});aY.partial().omit({tenantId:!0,projectId:!0,id:!0,publicId:!0,keyHash:!0,keyPrefix:!0,createdAt:!0});let aZ=aX.omit({tenantId:!0,projectId:!0,keyHash:!0});h.z.object({data:h.z.object({apiKey:aZ,key:h.z.string().describe("The full API key (shown only once)")})}),aY.omit({tenantId:!0,projectId:!0,id:!0,publicId:!0,keyHash:!0,keyPrefix:!0,lastUsedAt:!0});let a$=h.z.object({id:h.z.string(),tenantId:h.z.string(),projectId:h.z.string(),type:h.z.string(),credentialStoreId:h.z.string(),retrievalParams:h.z.record(h.z.string(),h.z.unknown()).nullish(),createdAt:h.z.string(),updatedAt:h.z.string()}),a_=(0,i.r)(M).extend({id:P,type:h.z.string(),credentialStoreId:P,retrievalParams:h.z.record(h.z.string(),h.z.unknown()).nullish()}),a0=a_.partial();T(a$).extend({type:h.z.enum(g),tools:h.z.array(at).optional()});let a1=U(a_).extend({type:h.z.enum(g)});V(a0).extend({type:h.z.enum(g).optional()}),au.extend({imageUrl:ap,availableTools:h.z.array(as).optional(),status:ar.default("unknown"),version:h.z.string().optional(),createdAt:h.z.date(),updatedAt:h.z.date()}).omit({config:!0,tenantId:!0,projectId:!0,status:!0,version:!0,createdAt:!0,updatedAt:!0,credentialReferenceId:!0}).extend({tenantId:h.z.string().optional(),projectId:h.z.string().optional(),description:h.z.string().optional(),serverUrl:h.z.url(),activeTools:h.z.array(h.z.string()).optional(),mcpType:h.z.enum({nango:"nango",generic:"generic"}).optional(),transport:aq.optional(),credential:a1.optional()});let a2=au.partial();T(at);let a3=U(au);V(a2);let a4=h.z.object({url:h.z.string().min(1,"URL is required"),method:h.z.enum(["GET","POST","PUT","DELETE","PATCH"]).optional().default("GET"),headers:h.z.record(h.z.string(),h.z.string()).optional(),body:h.z.record(h.z.string(),h.z.unknown()).optional(),transform:h.z.string().optional(),timeout:h.z.number().min(0).optional().default(1e4).optional()});h.z.object({id:h.z.string().min(1,"Fetch definition ID is required"),name:h.z.string().optional(),trigger:h.z.enum(["initialization","invocation"]),fetchConfig:a4,responseSchema:h.z.any().optional(),defaultValue:h.z.unknown().optional(),credential:a1.optional()});let a5=(0,i.aJ)(v).extend({requestContextSchema:h.z.unknown().optional()}),a6=(0,i.r)(v).extend({id:P,requestContextSchema:h.z.unknown().optional()}).omit({createdAt:!0,updatedAt:!0}),a7=a6.partial();T(a5);let a8=U(a6);V(a7);let a9=(0,i.aJ)(H),ba=(0,i.r)(H).extend({id:P,agentId:P,toolId:P,selectedTools:h.z.array(h.z.string()).nullish(),headers:h.z.record(h.z.string(),h.z.string()).nullish()}),bb=ba.partial();W(a9),X(ba),Y(bb);let bc=(0,i.aJ)(K),bd=(0,i.r)(K),be=bd.partial();T(bc),U(bd),V(be);let bf=h.z.object({type:h.z.string(),description:h.z.string().optional(),detailsSchema:h.z.object({type:h.z.literal("object"),properties:h.z.record(h.z.string(),h.z.any()),required:h.z.array(h.z.string()).optional()}).optional()}),bg=h.z.object({enabled:h.z.boolean().optional(),numEvents:h.z.number().min(1).max(100).optional(),timeInSeconds:h.z.number().min(1).max(600).optional(),prompt:h.z.string().max(2e3,"Custom prompt cannot exceed 2000 characters").optional(),statusComponents:h.z.array(bf).optional()}),bh=h.z.object({toolId:h.z.string(),toolSelection:h.z.array(h.z.string()).nullish(),headers:h.z.record(h.z.string(),h.z.string()).nullish()}),bi=ab.extend({type:h.z.literal("internal"),canUse:h.z.array(bh),dataComponents:h.z.array(h.z.string()).optional(),artifactComponents:h.z.array(h.z.string()).optional(),canTransferTo:h.z.array(h.z.string()).optional(),canDelegateTo:h.z.array(h.z.string()).optional()});ai.extend({agents:h.z.record(h.z.string(),h.z.union([bi,aW])),contextConfig:h.z.optional(a8),statusUpdates:h.z.optional(bg),models:R.optional(),stopWhen:O.optional(),graphPrompt:h.z.string().max(5e3,"Graph prompt cannot exceed 5000 characters").optional()});let bj=ai.extend({agents:h.z.record(h.z.string(),h.z.discriminatedUnion("type",[bi,aW.extend({type:h.z.literal("external")})])),models:R.optional(),stopWhen:O.optional(),graphPrompt:h.z.string().max(5e3,"Graph prompt cannot exceed 5000 characters").optional()});h.z.object({page:h.z.coerce.number().min(1).default(1),limit:h.z.coerce.number().min(1).max(100).default(10),total:h.z.number(),pages:h.z.number()}),h.z.object({error:h.z.string(),message:h.z.string().optional(),details:h.z.unknown().optional()}),h.z.object({exists:h.z.boolean()}),h.z.object({message:h.z.string(),removed:h.z.boolean()});let bk=(0,i.aJ)(t),bl=(0,i.r)(t).extend({models:S.optional(),stopWhen:N.optional()}).omit({createdAt:!0,updatedAt:!0}),bm=bl.partial();bk.omit({tenantId:!0});let bn=bl.omit({tenantId:!0});bm.omit({tenantId:!0}),bn.extend({graphs:h.z.record(h.z.string(),bj),tools:h.z.record(h.z.string(),a3),dataComponents:h.z.record(h.z.string(),aH).optional(),artifactComponents:h.z.record(h.z.string(),aO).optional(),contextConfig:h.z.record(h.z.string(),a8).optional(),statusUpdates:h.z.optional(bg),credentialReferences:h.z.record(h.z.string(),a1).optional(),createdAt:h.z.string().optional(),updatedAt:h.z.string().optional()}),h.z.object({"x-inkeep-tenant-id":h.z.string().optional().openapi({description:"Tenant identifier",example:"tenant_123"}),"x-inkeep-project-id":h.z.string().optional().openapi({description:"Project identifier",example:"project_456"}),"x-inkeep-graph-id":h.z.string().optional().openapi({description:"Graph identifier",example:"graph_789"})}),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"})}).openapi("TenantParams"),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"}),projectId:h.z.string().openapi({description:"Project identifier",example:"project_456"})}).openapi("TenantProjectParams"),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"}),projectId:h.z.string().openapi({description:"Project identifier",example:"project_456"}),graphId:h.z.string().openapi({description:"Graph identifier",example:"graph_789"})}).openapi("TenantProjectGraphParams"),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"}),projectId:h.z.string().openapi({description:"Project identifier",example:"project_456"}),graphId:h.z.string().openapi({description:"Graph identifier",example:"graph_789"}),id:P}).openapi("TenantProjectGraphIdParams"),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"}),projectId:h.z.string().openapi({description:"Project identifier",example:"project_456"}),id:P}).openapi("TenantProjectIdParams"),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"}),id:P}).openapi("TenantIdParams"),h.z.object({id:P}).openapi("IdParams"),h.z.object({page:h.z.coerce.number().min(1).default(1),limit:h.z.coerce.number().min(1).max(100).default(10)});let bo=d.object({tenantId:d.string()});bo.extend({projectId:d.string()}).extend({id:d.string()}),d.object({id:d.string()}),d.object({page:d.coerce.number().min(1).default(1),limit:d.coerce.number().min(1).max(100).default(10),total:d.number(),pages:d.number()}),d.object({error:d.string(),message:d.string().optional(),details:d.unknown().optional()});let bp=d.object({model:d.string().optional(),structuredOutput:d.string().optional(),summarizer:d.string().optional(),providerOptions:d.record(d.string(),d.record(d.string(),d.unknown())).optional()});d.object({id:d.string().optional(),name:d.string(),description:d.string().optional(),prompt:d.string().optional(),model:bp.optional(),tools:d.array(d.string()).optional(),dataComponents:d.array(d.string()).optional(),artifactComponents:d.array(d.string()).optional(),canTransferTo:d.array(d.string()).optional(),canDelegateTo:d.array(d.string()).optional(),type:d.enum(["internal","external"]).optional()}),d.object({id:d.string().optional(),name:d.string(),description:d.string().optional(),type:d.enum(["mcp","hosted"]),config:d.record(d.string(),d.unknown()),credentialReferenceId:d.string().optional()});let bq=d.object({id:d.string(),tenantId:d.string(),projectId:d.string(),graphId:d.string(),publicId:d.string(),keyHash:d.string(),keyPrefix:d.string(),name:d.string().optional(),lastUsedAt:d.string().optional(),expiresAt:d.string().optional(),createdAt:d.string(),updatedAt:d.string()});d.object({data:d.object({apiKey:bq,key:d.string()})}),d.object({id:d.string(),tenantId:d.string().optional(),projectId:d.string().optional(),type:d.enum(g),credentialStoreId:d.string(),retrievalParams:d.record(d.string(),d.unknown()).nullish()}),d.object({id:d.string(),name:d.string(),description:d.string().optional(),props:d.record(d.string(),d.unknown())}),d.object({id:d.string(),name:d.string(),description:d.string().optional(),summaryProps:d.record(d.string(),d.unknown()),fullProps:d.record(d.string(),d.unknown())});let br=d.object({id:d.string().optional(),name:d.string().optional(),description:d.string().optional(),type:d.string().optional(),config:d.record(d.string(),d.unknown()).optional()}),bs=d.object({id:d.string().optional(),name:d.string(),description:d.string().optional(),baseUrl:d.string(),type:d.literal("external").optional()}),bt=d.object({id:d.string().optional(),name:d.string(),description:d.string().optional(),defaultAgentId:d.string().optional()}).extend({agents:d.record(d.string(),d.union([bi,bs.extend({id:d.string()})])),contextConfig:d.optional(br),models:d.object({base:d.object({model:d.string(),providerOptions:d.record(d.string(),d.record(d.string(),d.unknown())).optional()}).optional(),structuredOutput:d.object({model:d.string(),providerOptions:d.record(d.string(),d.record(d.string(),d.unknown())).optional()}).optional(),summarizer:d.object({model:d.string(),providerOptions:d.record(d.string(),d.record(d.string(),d.unknown())).optional()}).optional()}).optional(),stopWhen:d.object({transferCountIs:d.number().min(1).max(100).optional()}).optional(),graphPrompt:d.string().max(5e3).optional(),statusUpdates:d.object({enabled:d.boolean().optional(),numEvents:d.number().min(1).max(100).optional(),timeInSeconds:d.number().min(1).max(600).optional(),prompt:d.string().max(2e3).optional(),statusComponents:d.array(d.object({type:d.string(),description:d.string().optional(),detailsSchema:d.object({type:d.literal("object"),properties:d.record(d.string(),d.any()),required:d.array(d.string()).optional()}).optional()})).optional()}).optional()});function bu(a){return a.toLowerCase().replace(/[^a-zA-Z0-9]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,255)}d.string().min(1).max(255).regex(/^[a-zA-Z0-9\-_.]+$/,{message:"ID must contain only letters, numbers, hyphens, underscores, and dots"})},83764:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"406d416c05079bf78bb44c6e7460158fda718d7e12":()=>d.bW,"600adc1b71f9bdfee13943425b8d2385a287a85287":()=>d.gL,"60a0970cd79303e7df11c9c1b3e6c331b790895f7b":()=>d.Dv,"60fc6d86ca6249ac8c11cf7d5bdfab2260101b2608":()=>d.qf,"70cb27a17aca73cd440b94058bca7cad677ea82e37":()=>d.Tg});var d=c(72025)},92478:()=>{},96107:(a,b,c)=>{Promise.resolve().then(c.bind(c,37830))}};