@inkeep/agents-manage-ui 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) 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 +76 -76
  3. package/.next/standalone/agents-manage-ui/.next/app-path-routes-manifest.json +3 -3
  4. package/.next/standalone/agents-manage-ui/.next/build-manifest.json +2 -2
  5. package/.next/standalone/agents-manage-ui/.next/prerender-manifest.json +15 -15
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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_client-reference-manifest.js +1 -1
  47. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page.js +2 -2
  48. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js +2 -2
  50. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page.js.nft.json +1 -1
  51. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page.js +2 -2
  53. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js +2 -2
  55. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page.js.nft.json +1 -1
  56. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/new/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page.js +2 -2
  58. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/mcp-servers/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page.js +1 -1
  60. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page.js +2 -2
  62. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js +1 -1
  64. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page.js.nft.json +1 -1
  65. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/ai-calls/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page.js +2 -2
  67. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/conversations/[conversationId]/page_client-reference-manifest.js +1 -1
  68. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js +3 -3
  69. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page.js.nft.json +1 -1
  70. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/traces/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page.js +2 -2
  72. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page.js +2 -2
  74. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.html +1 -1
  76. package/.next/standalone/agents-manage-ui/.next/server/app/_not-found.rsc +8 -8
  77. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/conversations/[conversationId]/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/agents-manage-ui/.next/server/app/api/signoz/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/agents-manage-ui/.next/server/app/page.js +2 -2
  80. package/.next/standalone/agents-manage-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  81. package/.next/standalone/agents-manage-ui/.next/server/app-paths-manifest.json +3 -3
  82. package/.next/standalone/agents-manage-ui/.next/server/chunks/2124.js +3 -3
  83. package/.next/standalone/agents-manage-ui/.next/server/chunks/2769.js +1 -0
  84. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  85. package/.next/standalone/agents-manage-ui/.next/server/chunks/{6992.js → 3919.js} +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/chunks/4965.js +1 -0
  87. package/.next/standalone/agents-manage-ui/.next/server/chunks/5232.js +1 -1
  88. package/.next/standalone/agents-manage-ui/.next/server/chunks/8449.js +2 -2
  89. package/.next/standalone/agents-manage-ui/.next/server/chunks/8752.js +1 -0
  90. package/.next/standalone/agents-manage-ui/.next/server/chunks/8896.js +1 -0
  91. package/.next/standalone/agents-manage-ui/.next/server/chunks/9384.js +1 -0
  92. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  93. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/static/chunks/6497-3fa2630d8e8ff958.js +1 -0
  97. package/.next/standalone/agents-manage-ui/.next/static/chunks/6520-4df0430d4459b313.js +1 -0
  98. package/.next/standalone/agents-manage-ui/.next/static/chunks/7126-dc0f7e520e0bccaa.js +1 -0
  99. package/.next/standalone/agents-manage-ui/.next/static/chunks/{7143-4f763bc38004e627.js → 7143-de3bf969c411ad87.js} +1 -1
  100. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-9a3a48098dc0dfeb.js +1 -0
  101. package/.next/standalone/agents-manage-ui/.next/static/chunks/{8675-4c7d3c3828d84535.js → 9465-c8ffc958d5878141.js} +1 -1
  102. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-7dc9010ab38b6e05.js +1 -0
  103. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page-2b23c75554453276.js +1 -0
  104. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/new/page-2b23c75554453276.js +1 -0
  105. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/{page-40d1360e37d37109.js → page-549a9aa5a0c0ef91.js} +1 -1
  106. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-ab1868bb3fcb1ae4.js +1 -0
  107. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-4e044256f93e1756.js +1 -0
  108. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-3932274bb9efe3eb.js +1 -0
  109. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-2c9e5e1c857aad78.js +1 -0
  110. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page-b8c475c5956e4555.js +1 -0
  111. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/new/page-b8c475c5956e4555.js +1 -0
  112. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/page-24cdbd3de106100c.js +1 -0
  113. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/{page-8ace8753502148be.js → page-caa7219afb2851cb.js} +1 -1
  114. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-02feacd52d06239a.js → page-3f4f88e46d2e216a.js} +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-a393f3437852e5f9.js → page-b7ac42e4484d256d.js} +1 -1
  116. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/{page-5c0b6a43b3000e09.js → page-87ab4c1e732f6fd7.js} +1 -1
  117. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-8be4791ce624489e.js → page-6495add19278d4de.js} +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-dc513a7a569a5899.js +1 -0
  119. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-0ab18f48972ea1c2.js +1 -0
  120. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-3d17340df7e9b349.js +1 -0
  121. package/.next/standalone/agents-manage-ui/package.json +1 -1
  122. package/.next/standalone/packages/agents-core/package.json +1 -1
  123. package/package.json +4 -4
  124. package/src/components/graph/graph.tsx +57 -7
  125. package/src/components/graph/sidepane/nodes/mcp-node-editor.tsx +68 -0
  126. package/src/components/graph/sidepane/sidepane.tsx +5 -0
  127. package/src/components/projects/form/project-form.tsx +1 -0
  128. package/src/features/graph/domain/__tests__/serialize.test.ts +4 -0
  129. package/src/features/graph/domain/deserialize.ts +12 -1
  130. package/src/features/graph/domain/serialize.ts +29 -8
  131. package/src/lib/api/signoz-stats.ts +10 -10
  132. package/.next/standalone/agents-manage-ui/.next/server/chunks/2184.js +0 -1
  133. package/.next/standalone/agents-manage-ui/.next/server/chunks/3645.js +0 -1
  134. package/.next/standalone/agents-manage-ui/.next/server/chunks/4370.js +0 -1
  135. package/.next/standalone/agents-manage-ui/.next/server/chunks/6726.js +0 -1
  136. package/.next/standalone/agents-manage-ui/.next/server/chunks/8389.js +0 -1
  137. package/.next/standalone/agents-manage-ui/.next/static/chunks/6497-b90b21b559925fc6.js +0 -1
  138. package/.next/standalone/agents-manage-ui/.next/static/chunks/6705-978d47db41063bdb.js +0 -1
  139. package/.next/standalone/agents-manage-ui/.next/static/chunks/6709-d1f3493d1e80cb0e.js +0 -1
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-8d05e2e8db9def49.js +0 -1
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-79109cbb97bd2fe5.js +0 -1
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page-c0ed5ffd69a57af5.js +0 -1
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/new/page-c0ed5ffd69a57af5.js +0 -1
  144. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-7d5dcfc0e775458a.js +0 -1
  145. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-ad3217b28b09b5a5.js +0 -1
  146. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-0ef881f4f392086a.js +0 -1
  147. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-e7239c0637ac7efa.js +0 -1
  148. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page-736bec9f0541e08f.js +0 -1
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/new/page-736bec9f0541e08f.js +0 -1
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/page-21d8913c3297829c.js +0 -1
  151. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-555f353076460fa9.js +0 -1
  152. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-544544e7fd94b1de.js +0 -1
  153. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/layout-48d40ad8a53bfc9b.js +0 -1
  154. /package/.next/standalone/agents-manage-ui/.next/static/{vo7pWHFkBgZcQOQOKotiJ → 2X91Cyw1Ng3_181QvGSNq}/_buildManifest.js +0 -0
  155. /package/.next/standalone/agents-manage-ui/.next/static/{vo7pWHFkBgZcQOQOKotiJ → 2X91Cyw1Ng3_181QvGSNq}/_ssgManifest.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/agents-manage-ui",
3
- "version": "0.7.1",
3
+ "version": "0.8.0",
4
4
  "license": "SEE LICENSE IN LICENSE.md",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -81,9 +81,9 @@
81
81
  "use-stick-to-bottom": "^1.1.1",
82
82
  "zod": "^4.1.5",
83
83
  "zustand": "^5.0.7",
84
- "@inkeep/agents-core": "^0.7.1",
85
- "@inkeep/agents-manage-api": "^0.7.1",
86
- "@inkeep/agents-run-api": "^0.7.1"
84
+ "@inkeep/agents-core": "^0.8.0",
85
+ "@inkeep/agents-manage-api": "^0.8.0",
86
+ "@inkeep/agents-run-api": "^0.8.0"
87
87
  },
88
88
  "devDependencies": {
89
89
  "@tailwindcss/postcss": "^4",
@@ -34,6 +34,38 @@ import { formatJsonField } from '@/lib/utils';
34
34
  import { getErrorSummaryMessage, parseGraphValidationErrors } from '@/lib/utils/graph-error-parser';
35
35
  import { getToolTypeAndName } from '@/lib/utils/mcp-utils';
36
36
  import { detectOrphanedToolsAndGetWarning } from '@/lib/utils/orphaned-tools-detector';
37
+
38
+ // Type for agent tool configuration lookup including both selection and headers
39
+ export type AgentToolConfig = {
40
+ toolSelection?: string[];
41
+ headers?: Record<string, string>;
42
+ };
43
+
44
+ export type AgentToolConfigLookup = Record<string, Record<string, AgentToolConfig>>;
45
+
46
+ // Utility function to derive selectedToolsLookup from agentToolConfigLookup
47
+ export function getSelectedToolsLookup(
48
+ agentToolConfigLookup: AgentToolConfigLookup
49
+ ): Record<string, Record<string, string[]>> {
50
+ const selectedToolsLookup: Record<string, Record<string, string[]>> = {};
51
+
52
+ Object.entries(agentToolConfigLookup).forEach(([agentId, toolsMap]) => {
53
+ const selectedToolsMap: Record<string, string[]> = {};
54
+
55
+ Object.entries(toolsMap).forEach(([toolId, config]) => {
56
+ if (config.toolSelection) {
57
+ selectedToolsMap[toolId] = config.toolSelection;
58
+ }
59
+ });
60
+
61
+ if (Object.keys(selectedToolsMap).length > 0) {
62
+ selectedToolsLookup[agentId] = selectedToolsMap;
63
+ }
64
+ });
65
+
66
+ return selectedToolsLookup;
67
+ }
68
+
37
69
  import { EdgeType, edgeTypes, initialEdges } from './configuration/edge-types';
38
70
  import type { ContextConfig } from './configuration/graph-types';
39
71
  import {
@@ -134,17 +166,28 @@ function Flow({
134
166
  };
135
167
  }, [graph, enrichNodes, initialNodes]);
136
168
 
137
- // Create selectedTools lookup from graph data
138
- const selectedToolsLookup = useMemo((): Record<string, Record<string, string[]>> => {
139
- if (!graph?.agents) return {} as Record<string, Record<string, string[]>>;
169
+ // Create agent tool configuration lookup from graph data
170
+ const agentToolConfigLookup = useMemo((): AgentToolConfigLookup => {
171
+ if (!graph?.agents) return {} as AgentToolConfigLookup;
140
172
 
141
- const lookup: Record<string, Record<string, string[]>> = {};
173
+ const lookup: AgentToolConfigLookup = {};
142
174
  Object.entries(graph.agents).forEach(([agentId, agentData]) => {
143
175
  if ('canUse' in agentData && agentData.canUse) {
144
- const toolsMap: Record<string, string[]> = {};
176
+ const toolsMap: Record<string, AgentToolConfig> = {};
145
177
  agentData.canUse.forEach((tool) => {
178
+ const config: AgentToolConfig = {};
179
+
146
180
  if (tool.toolSelection) {
147
- toolsMap[tool.toolId] = tool.toolSelection;
181
+ config.toolSelection = tool.toolSelection;
182
+ }
183
+
184
+ if (tool.headers) {
185
+ config.headers = tool.headers;
186
+ }
187
+
188
+ // Only add to map if we have either toolSelection or headers
189
+ if (config.toolSelection || config.headers) {
190
+ toolsMap[tool.toolId] = config;
148
191
  }
149
192
  });
150
193
  if (Object.keys(toolsMap).length > 0) {
@@ -155,6 +198,11 @@ function Flow({
155
198
  return lookup;
156
199
  }, [graph?.agents]);
157
200
 
201
+ // Derive selectedToolsLookup from agentToolConfigLookup for backward compatibility
202
+ const selectedToolsLookup = useMemo(() => {
203
+ return getSelectedToolsLookup(agentToolConfigLookup);
204
+ }, [agentToolConfigLookup]);
205
+
158
206
  const { screenToFlowPosition } = useReactFlow();
159
207
  const {
160
208
  nodes: storeNodes,
@@ -504,7 +552,7 @@ function Flow({
504
552
  metadata,
505
553
  dataComponentLookup,
506
554
  artifactComponentLookup,
507
- selectedToolsLookup
555
+ agentToolConfigLookup
508
556
  );
509
557
 
510
558
  const res = await saveGraph(
@@ -555,6 +603,7 @@ function Flow({
555
603
  clearErrors,
556
604
  setErrors,
557
605
  selectedToolsLookup,
606
+ agentToolConfigLookup,
558
607
  toolLookup,
559
608
  ]);
560
609
 
@@ -622,6 +671,7 @@ function Flow({
622
671
  dataComponentLookup={dataComponentLookup}
623
672
  artifactComponentLookup={artifactComponentLookup}
624
673
  selectedToolsLookup={selectedToolsLookup}
674
+ agentToolConfigLookup={agentToolConfigLookup}
625
675
  toolLookup={toolLookup}
626
676
  />
627
677
  {showPlayground && graph?.id && (
@@ -1,7 +1,9 @@
1
1
  import { type Node, useReactFlow } from '@xyflow/react';
2
2
  import { Check, CircleAlert } from 'lucide-react';
3
3
  import { useParams } from 'next/navigation';
4
+ import { useCallback, useEffect, useState } from 'react';
4
5
  import { getActiveTools } from '@/app/utils/active-tools';
6
+ import { ExpandableJsonEditor } from '@/components/form/expandable-json-editor';
5
7
  import { MCPToolImage } from '@/components/mcp-servers/mcp-tool-image';
6
8
  import { Badge } from '@/components/ui/badge';
7
9
  import { ExternalLink } from '@/components/ui/external-link';
@@ -13,16 +15,19 @@ import type { MCPTool } from '@/lib/types/tools';
13
15
  import { getToolTypeAndName } from '@/lib/utils/mcp-utils';
14
16
  import { getCurrentSelectedToolsForNode } from '@/lib/utils/orphaned-tools-detector';
15
17
  import type { MCPNodeData } from '../../configuration/node-types';
18
+ import type { AgentToolConfigLookup } from '../../graph';
16
19
 
17
20
  interface MCPServerNodeEditorProps {
18
21
  selectedNode: Node<MCPNodeData>;
19
22
  selectedToolsLookup: Record<string, Record<string, string[]>>;
23
+ agentToolConfigLookup: AgentToolConfigLookup;
20
24
  toolLookup: Record<string, MCPTool>;
21
25
  }
22
26
 
23
27
  export function MCPServerNodeEditor({
24
28
  selectedNode,
25
29
  selectedToolsLookup,
30
+ agentToolConfigLookup,
26
31
  toolLookup,
27
32
  }: MCPServerNodeEditorProps) {
28
33
  const { updateNodeData } = useReactFlow();
@@ -34,6 +39,32 @@ export function MCPServerNodeEditor({
34
39
  // All hooks must be called before any early returns
35
40
  const markUnsaved = useGraphStore((state) => state.markUnsaved);
36
41
 
42
+ // Get current headers for this tool from all agents
43
+ const getCurrentHeaders = useCallback((): Record<string, string> => {
44
+ // First check if we have temporary headers stored on the node
45
+ if ((selectedNode.data as any).tempHeaders !== undefined) {
46
+ return (selectedNode.data as any).tempHeaders;
47
+ }
48
+
49
+ // Otherwise, get from the database/initial state - find any agent that has headers for this tool
50
+ for (const agentId in agentToolConfigLookup) {
51
+ const toolConfig = agentToolConfigLookup[agentId]?.[selectedNode.data.toolId];
52
+ if (toolConfig?.headers) {
53
+ return toolConfig.headers;
54
+ }
55
+ }
56
+ return {};
57
+ }, [agentToolConfigLookup, selectedNode.data]);
58
+
59
+ // Local state for headers input (allows invalid JSON while typing)
60
+ const [headersInputValue, setHeadersInputValue] = useState('{}');
61
+
62
+ // Sync input value when external headers change
63
+ useEffect(() => {
64
+ const newHeaders = getCurrentHeaders();
65
+ setHeadersInputValue(JSON.stringify(newHeaders, null, 2));
66
+ }, [getCurrentHeaders]);
67
+
37
68
  // Only use toolLookup - single source of truth
38
69
  const toolData = toolLookup[selectedNode.data.toolId];
39
70
 
@@ -104,6 +135,32 @@ export function MCPServerNodeEditor({
104
135
  }
105
136
  };
106
137
 
138
+ const handleHeadersChange = (value: string) => {
139
+ // Always update the input state (allows user to type invalid JSON)
140
+ setHeadersInputValue(value);
141
+
142
+ // Only save to node data if the JSON is valid
143
+ try {
144
+ const parsedHeaders = value.trim() === '' ? {} : JSON.parse(value);
145
+
146
+ if (
147
+ typeof parsedHeaders === 'object' &&
148
+ parsedHeaders !== null &&
149
+ !Array.isArray(parsedHeaders)
150
+ ) {
151
+ // Valid format - save to node data
152
+ updateNodeData(selectedNode.id, {
153
+ ...selectedNode.data,
154
+ tempHeaders: parsedHeaders,
155
+ });
156
+ markUnsaved();
157
+ }
158
+ } catch {
159
+ // Invalid JSON - don't save, but allow user to continue typing
160
+ // The ExpandableJsonEditor will show the validation error
161
+ }
162
+ };
163
+
107
164
  let provider = null;
108
165
  try {
109
166
  provider = toolData ? getToolTypeAndName(toolData).type : null;
@@ -244,6 +301,17 @@ export function MCPServerNodeEditor({
244
301
  ) : null}
245
302
  </div>
246
303
 
304
+ <div className="space-y-2">
305
+ <ExpandableJsonEditor
306
+ name="headers"
307
+ label="Headers (JSON)"
308
+ value={headersInputValue}
309
+ onChange={handleHeadersChange}
310
+ placeholder='{"X-Your-Header": "your-value", "Content-Type": "application/json"}'
311
+ className=""
312
+ />
313
+ </div>
314
+
247
315
  <ExternalLink
248
316
  href={`/${tenantId}/projects/${projectId}/mcp-servers/${selectedNode.data.toolId}/edit`}
249
317
  >
@@ -15,6 +15,7 @@ import {
15
15
  NodeType,
16
16
  nodeTypeMap,
17
17
  } from '../configuration/node-types';
18
+ import type { AgentToolConfigLookup } from '../graph';
18
19
  import EdgeEditor from './edges/edge-editor';
19
20
  import { Heading } from './heading';
20
21
  import MetadataEditor from './metadata/metadata-editor';
@@ -32,6 +33,7 @@ interface SidePaneProps {
32
33
  dataComponentLookup: Record<string, DataComponent>;
33
34
  artifactComponentLookup: Record<string, ArtifactComponent>;
34
35
  selectedToolsLookup: Record<string, Record<string, string[]>>;
36
+ agentToolConfigLookup: AgentToolConfigLookup;
35
37
  toolLookup: Record<string, MCPTool>;
36
38
  }
37
39
 
@@ -44,6 +46,7 @@ export function SidePane({
44
46
  dataComponentLookup,
45
47
  artifactComponentLookup,
46
48
  selectedToolsLookup,
49
+ agentToolConfigLookup,
47
50
  toolLookup,
48
51
  }: SidePaneProps) {
49
52
  const selectedNode = useNodesData(selectedNodeId || '');
@@ -114,6 +117,7 @@ export function SidePane({
114
117
  <MCPServerNodeEditor
115
118
  selectedNode={selectedNode as Node<MCPNodeData>}
116
119
  selectedToolsLookup={selectedToolsLookup}
120
+ agentToolConfigLookup={agentToolConfigLookup}
117
121
  toolLookup={toolLookup}
118
122
  />
119
123
  );
@@ -135,6 +139,7 @@ export function SidePane({
135
139
  getFieldErrorMessage,
136
140
  getFirstErrorField,
137
141
  selectedToolsLookup,
142
+ agentToolConfigLookup,
138
143
  toolLookup,
139
144
  ]);
140
145
 
@@ -77,6 +77,7 @@ export function ProjectForm({
77
77
 
78
78
  const onSubmit = async (data: ProjectFormData) => {
79
79
  const serializedData = serializeData(data);
80
+
80
81
  try {
81
82
  if (projectId) {
82
83
  const res = await updateProjectAction(tenantId, projectId, serializedData);
@@ -236,6 +236,7 @@ describe('serializeGraphData', () => {
236
236
  expect((result.agents.agent1 as any).canUse[0]).toEqual({
237
237
  toolId: 'mcp1',
238
238
  toolSelection: ['tool1', 'tool2'],
239
+ headers: {},
239
240
  });
240
241
  });
241
242
 
@@ -281,6 +282,7 @@ describe('serializeGraphData', () => {
281
282
  expect((result.agents.agent1 as any).canUse[0]).toEqual({
282
283
  toolId: 'mcp1',
283
284
  toolSelection: null,
285
+ headers: {},
284
286
  });
285
287
  });
286
288
 
@@ -324,6 +326,7 @@ describe('serializeGraphData', () => {
324
326
  expect((result.agents.agent1 as any).canUse[0]).toEqual({
325
327
  toolId: 'mcp1',
326
328
  toolSelection: [],
329
+ headers: {},
327
330
  });
328
331
  });
329
332
 
@@ -410,6 +413,7 @@ describe('serializeGraphData', () => {
410
413
  expect((result.agents.agent1 as any).canUse[0]).toEqual({
411
414
  toolId: 'mcp1',
412
415
  toolSelection: null, // null means all tools are selected
416
+ headers: {},
413
417
  });
414
418
  });
415
419
  });
@@ -162,7 +162,7 @@ export function deserializeGraphData(data: FullGraphDefinition): TransformResult
162
162
  ? { stepCountIs: internalAgent.stopWhen.stepCountIs }
163
163
  : undefined,
164
164
  type: agent.type,
165
- // Convert canUse back to tools and selectedTools for UI
165
+ // Convert canUse back to tools, selectedTools, headers for UI
166
166
  tools: internalAgent.canUse ? internalAgent.canUse.map((item) => item.toolId) : [],
167
167
  selectedTools: internalAgent.canUse
168
168
  ? internalAgent.canUse.reduce(
@@ -175,6 +175,17 @@ export function deserializeGraphData(data: FullGraphDefinition): TransformResult
175
175
  {} as Record<string, string[]>
176
176
  )
177
177
  : undefined,
178
+ headers: internalAgent.canUse
179
+ ? internalAgent.canUse.reduce(
180
+ (acc, item) => {
181
+ if (item.headers) {
182
+ acc[item.toolId] = item.headers;
183
+ }
184
+ return acc;
185
+ },
186
+ {} as Record<string, Record<string, string>>
187
+ )
188
+ : undefined,
178
189
  };
179
190
  })();
180
191
 
@@ -4,6 +4,7 @@ import type { A2AEdgeData } from '@/components/graph/configuration/edge-types';
4
4
  import { EdgeType } from '@/components/graph/configuration/edge-types';
5
5
  import type { GraphMetadata } from '@/components/graph/configuration/graph-types';
6
6
  import { NodeType } from '@/components/graph/configuration/node-types';
7
+ import type { AgentToolConfigLookup } from '@/components/graph/graph';
7
8
  import type { ArtifactComponent } from '@/lib/api/artifact-components';
8
9
  import type { DataComponent } from '@/lib/api/data-components';
9
10
  import type { FullGraphDefinition } from '@/lib/types/graph-full';
@@ -86,7 +87,7 @@ export function serializeGraphData(
86
87
  metadata?: GraphMetadata,
87
88
  dataComponentLookup?: Record<string, DataComponent>,
88
89
  artifactComponentLookup?: Record<string, ArtifactComponent>,
89
- selectedToolsLookup?: Record<string, Record<string, string[]>>
90
+ agentToolConfigLookup?: AgentToolConfigLookup
90
91
  ): FullGraphDefinition {
91
92
  const agents: Record<string, ExtendedAgent> = {};
92
93
  // Note: Tools are now project-scoped and not included in graph serialization
@@ -113,7 +114,11 @@ export function serializeGraphData(
113
114
  const stopWhen = (node.data as any).stopWhen;
114
115
 
115
116
  // Build canUse array from edges connecting this agent to MCP nodes
116
- const canUse: Array<{ toolId: string; toolSelection?: string[] | null }> = [];
117
+ const canUse: Array<{
118
+ toolId: string;
119
+ toolSelection?: string[] | null;
120
+ headers?: Record<string, string>;
121
+ }> = [];
117
122
 
118
123
  // Find edges from this agent to MCP nodes
119
124
  const agentToMcpEdges = edges.filter(
@@ -142,22 +147,38 @@ export function serializeGraphData(
142
147
  }
143
148
  } else {
144
149
  // No changes made to tool selection - preserve existing selection
145
- if (
146
- selectedToolsLookup &&
147
- selectedToolsLookup[agentId] &&
148
- selectedToolsLookup[agentId][toolId] !== undefined
149
- ) {
150
+ if (agentToolConfigLookup?.[agentId]?.[toolId]?.toolSelection) {
150
151
  // Get existing selection from saved data
151
- toolSelection = selectedToolsLookup[agentId][toolId];
152
+ toolSelection = agentToolConfigLookup[agentId][toolId].toolSelection;
152
153
  } else {
153
154
  // Default to all tools selected when no existing data found
154
155
  toolSelection = null;
155
156
  }
156
157
  }
157
158
 
159
+ const tempHeaders = (mcpNode.data as any).tempHeaders;
160
+ let toolHeaders: Record<string, string> = {};
161
+
162
+ if (tempHeaders !== undefined) {
163
+ if (
164
+ typeof tempHeaders === 'object' &&
165
+ tempHeaders !== null &&
166
+ !Array.isArray(tempHeaders)
167
+ ) {
168
+ toolHeaders = tempHeaders;
169
+ }
170
+ } else {
171
+ // No changes made to headers - preserve existing headers
172
+ if (agentToolConfigLookup?.[agentId]?.[toolId]?.headers) {
173
+ // Get existing headers from saved data
174
+ toolHeaders = agentToolConfigLookup[agentId][toolId].headers;
175
+ }
176
+ }
177
+
158
178
  canUse.push({
159
179
  toolId,
160
180
  toolSelection,
181
+ headers: toolHeaders,
161
182
  });
162
183
  }
163
184
  }
@@ -112,7 +112,7 @@ const asTypedFilterValue = (v: string): FilterValue => {
112
112
  }
113
113
  };
114
114
 
115
- const byMostRecent = (a: number = 0, b: number = 0) => b - a;
115
+ const byFirstActivity = (a: number = 0, b: number = 0) => b - a;
116
116
 
117
117
  type Series = {
118
118
  labels?: Record<string, string>;
@@ -202,12 +202,12 @@ class SigNozStatsAPI {
202
202
  });
203
203
  }
204
204
 
205
- // last seen map
206
- const lastSeen = new Map<string, number>();
205
+ // first seen map
206
+ const firstSeen = new Map<string, number>();
207
207
  for (const s of lastActivitySeries) {
208
208
  const id = s.labels?.[SPAN_KEYS.CONVERSATION_ID];
209
209
  if (!id) continue;
210
- lastSeen.set(id, numberFromSeries(s));
210
+ firstSeen.set(id, numberFromSeries(s));
211
211
  }
212
212
 
213
213
  // first user message per conversation (min timestamp already grouped)
@@ -260,9 +260,9 @@ class SigNozStatsAPI {
260
260
  );
261
261
  }
262
262
 
263
- // sort by last activity
263
+ // sort by first activity
264
264
  stats.sort((a, b) =>
265
- byMostRecent(lastSeen.get(a.conversationId), lastSeen.get(b.conversationId))
265
+ byFirstActivity(firstSeen.get(a.conversationId), firstSeen.get(b.conversationId))
266
266
  );
267
267
 
268
268
  if (!pagination) return stats;
@@ -1004,7 +1004,7 @@ class SigNozStatsAPI {
1004
1004
  lastActivity: {
1005
1005
  dataSource: DATA_SOURCES.TRACES,
1006
1006
  queryName: QUERY_EXPRESSIONS.LAST_ACTIVITY,
1007
- aggregateOperator: AGGREGATE_OPERATORS.MAX,
1007
+ aggregateOperator: AGGREGATE_OPERATORS.MIN,
1008
1008
  aggregateAttribute: {
1009
1009
  key: SPAN_KEYS.TIMESTAMP,
1010
1010
  ...QUERY_FIELD_CONFIGS.INT64_TAG_COLUMN,
@@ -1017,7 +1017,7 @@ class SigNozStatsAPI {
1017
1017
  },
1018
1018
  ],
1019
1019
  expression: QUERY_EXPRESSIONS.LAST_ACTIVITY,
1020
- reduceTo: REDUCE_OPERATIONS.MAX,
1020
+ reduceTo: REDUCE_OPERATIONS.MIN,
1021
1021
  stepInterval: QUERY_DEFAULTS.STEP_INTERVAL,
1022
1022
  orderBy: [{ columnName: SPAN_KEYS.TIMESTAMP, order: ORDER_DIRECTIONS.DESC }],
1023
1023
  offset: QUERY_DEFAULTS.OFFSET,
@@ -1596,7 +1596,7 @@ class SigNozStatsAPI {
1596
1596
  lastActivity: {
1597
1597
  dataSource: DATA_SOURCES.TRACES,
1598
1598
  queryName: QUERY_EXPRESSIONS.LAST_ACTIVITY,
1599
- aggregateOperator: AGGREGATE_OPERATORS.MAX,
1599
+ aggregateOperator: AGGREGATE_OPERATORS.MIN,
1600
1600
  aggregateAttribute: {
1601
1601
  key: SPAN_KEYS.TIMESTAMP,
1602
1602
  ...QUERY_FIELD_CONFIGS.INT64_TAG_COLUMN,
@@ -1621,7 +1621,7 @@ class SigNozStatsAPI {
1621
1621
  },
1622
1622
  ],
1623
1623
  expression: QUERY_EXPRESSIONS.LAST_ACTIVITY,
1624
- reduceTo: REDUCE_OPERATIONS.MAX,
1624
+ reduceTo: REDUCE_OPERATIONS.MIN,
1625
1625
  stepInterval: QUERY_DEFAULTS.STEP_INTERVAL,
1626
1626
  orderBy: [{ columnName: SPAN_KEYS.TIMESTAMP, order: ORDER_DIRECTIONS.DESC }],
1627
1627
  offset: QUERY_DEFAULTS.OFFSET,
@@ -1 +0,0 @@
1
- "use strict";exports.id=2184,exports.ids=[2184],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"})})})}},44515:(a,b,c)=>{c.d(b,{Y:()=>e});var d=c(90147);let e=(0,d.createServerReference)("7837bcd6c0f68f97330ca60d418191f9df67674bb0",d.callServer,void 0,d.findSourceMapURL,"updateMCPTool")},47858:(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(44515),p=c(90147);let q=(0,p.createServerReference)("708909a5bb930ab476041551f7b9800d98917d0d83",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"})]})})}},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,"7891fd526a9ec186f60c4ccea635f7b3fb7d511802",null),(0,d.A)(h,"701a7dc2b80ea2d0fdef2b14deef1188914d45d66e",null),(0,d.A)(i,"70e2601d9b2240b931b383ed3ead15db0e5410d848",null),(0,d.A)(j,"78c7f53c947af9bbf31eb19e770b0d6ef64a8700e1",null),(0,d.A)(k,"7089c2812c4e846a21cb864fe95a293e45a163f7ab",null)}};
@@ -1 +0,0 @@
1
- exports.id=3645,exports.ids=[3645],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"})]})})}},40585:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"404b3cfcf5bf68fb5a6299d0e50c472d41623a93b1":()=>d.bW,"608f7b1dbe4f1f5cd0e729a04b7611550552de6b0a":()=>d.gL,"60bac25bbb9f6b05cc7326c4aca5291eccafb50020":()=>d.Dv,"60e5cab5a1905acbaa6bcf6a04c6ce410fee109eb4":()=>d.qf,"70a8db66a7fba9985e90e81ff846bf5769762bc2d7":()=>d.Tg});var d=c(72025)},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(),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()}),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()).nullable().optional()}),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"})},92478:()=>{},96107:(a,b,c)=>{Promise.resolve().then(c.bind(c,37830))}};