@inkeep/agents-manage-ui 0.8.1 → 0.8.3

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 (154) 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 +84 -84
  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 +3 -3
  6. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page.js +1 -1
  7. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page.js +3 -3
  9. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/api-keys/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page.js +2 -2
  11. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page.js.nft.json +1 -1
  12. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/new/page.js +2 -2
  14. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/new/page.js.nft.json +1 -1
  15. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/new/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/page.js +2 -2
  17. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/artifact-components/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page.js +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 +2 -2
  35. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page.js.nft.json +1 -1
  36. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/new/page.js +2 -2
  38. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/new/page.js.nft.json +1 -1
  39. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/new/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/page.js +2 -2
  41. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/data-components/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js +2 -2
  43. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page.js.nft.json +1 -1
  44. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/[graphId]/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page.js +2 -2
  46. package/.next/standalone/agents-manage-ui/.next/server/app/[tenantId]/projects/[projectId]/graphs/new/page_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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +3 -3
  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 +1 -1
  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 +4 -4
  83. package/.next/standalone/agents-manage-ui/.next/server/chunks/2411.js +2 -2
  84. package/.next/standalone/agents-manage-ui/.next/server/chunks/{3686.js → 3518.js} +1 -1
  85. package/.next/standalone/agents-manage-ui/.next/server/chunks/3547.js +1 -1
  86. package/.next/standalone/agents-manage-ui/.next/server/chunks/36.js +1 -0
  87. package/.next/standalone/agents-manage-ui/.next/server/chunks/442.js +1 -0
  88. package/.next/standalone/agents-manage-ui/.next/server/chunks/5232.js +1 -1
  89. package/.next/standalone/agents-manage-ui/.next/server/chunks/{3080.js → 6028.js} +1 -1
  90. package/.next/standalone/agents-manage-ui/.next/server/chunks/782.js +1 -0
  91. package/.next/standalone/agents-manage-ui/.next/server/chunks/{3791.js → 8196.js} +1 -1
  92. package/.next/standalone/agents-manage-ui/.next/server/chunks/8449.js +4 -4
  93. package/.next/standalone/agents-manage-ui/.next/server/pages/404.html +1 -1
  94. package/.next/standalone/agents-manage-ui/.next/server/pages/500.html +1 -1
  95. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.js +1 -1
  96. package/.next/standalone/agents-manage-ui/.next/server/server-reference-manifest.json +1 -1
  97. package/.next/standalone/agents-manage-ui/.next/static/chunks/2206-9ff3c0c8319b8686.js +1 -0
  98. package/.next/standalone/agents-manage-ui/.next/static/chunks/6497-4e922cb6838db594.js +1 -0
  99. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-0fa67567fae3fade.js +1 -0
  100. package/.next/standalone/agents-manage-ui/.next/static/chunks/7767-02066bb80b94f34a.js +1 -0
  101. package/.next/standalone/agents-manage-ui/.next/static/chunks/8356-d72db466159ee410.js +1 -0
  102. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-49bddefea3fe5403.js +1 -0
  103. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/[artifactComponentId]/{page-b5da6700403ff374.js → page-e6339bd5c52abe5c.js} +1 -1
  104. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/new/{page-b5da6700403ff374.js → page-e6339bd5c52abe5c.js} +1 -1
  105. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/page-5dfdded2864cf26f.js +1 -0
  106. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-5a352e5bb0f0d362.js +1 -0
  107. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-86f2bdd15f326447.js +1 -0
  108. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-6a0d941539881746.js +1 -0
  109. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-160b2773bf3ada68.js +1 -0
  110. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/[dataComponentId]/{page-36236acd9104e893.js → page-2b552c02b2f25275.js} +1 -1
  111. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/new/{page-36236acd9104e893.js → page-2b552c02b2f25275.js} +1 -1
  112. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/data-components/{page-600b0ed5c06531dc.js → page-1da2122637de9964.js} +1 -1
  113. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/graphs/{page-f318881eef71e221.js → page-45c9b732f07151fe.js} +1 -1
  114. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/[mcpServerId]/edit/{page-99dcb7b369050a34.js → page-fb9458614e107dea.js} +1 -1
  115. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/new/{page-e2fe56243e487ffe.js → page-8a0480ac85e4062a.js} +1 -1
  116. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-2f95ce875ceb5abc.js +1 -0
  117. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/settings/{page-bc77e94675276789.js → page-ae696cda7c8b55c2.js} +1 -1
  118. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-5284982e6a917cc7.js +1 -0
  119. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-47c9f4e642b70015.js +1 -0
  120. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/{layout-4804c76840209a96.js → layout-54d17d92420d4b7d.js} +1 -1
  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 +12 -60
  125. package/src/components/graph/nodes/mcp-node.tsx +94 -13
  126. package/src/components/graph/sidepane/nodes/mcp-node-editor.tsx +2 -8
  127. package/src/components/graph/sidepane/nodes/model-selector.tsx +229 -216
  128. package/src/components/graph/sidepane/sidepane.tsx +0 -9
  129. package/src/components/projects/form/form-configuration.ts +1 -4
  130. package/src/components/projects/form/project-form.tsx +35 -3
  131. package/src/components/projects/form/project-models-section.tsx +52 -49
  132. package/src/features/graph/domain/graph-initializer-helpers.ts +63 -0
  133. package/src/features/graph/domain/index.ts +1 -0
  134. package/src/features/graph/state/use-graph-store.ts +27 -5
  135. package/src/lib/utils/orphaned-tools-detector.ts +1 -1
  136. package/.next/standalone/agents-manage-ui/.next/server/chunks/404.js +0 -1
  137. package/.next/standalone/agents-manage-ui/.next/server/chunks/7818.js +0 -1
  138. package/.next/standalone/agents-manage-ui/.next/server/chunks/9210.js +0 -1
  139. package/.next/standalone/agents-manage-ui/.next/static/chunks/3208-53d5998fe548a3e4.js +0 -1
  140. package/.next/standalone/agents-manage-ui/.next/static/chunks/6497-3fa2630d8e8ff958.js +0 -1
  141. package/.next/standalone/agents-manage-ui/.next/static/chunks/7167-87078a0197464832.js +0 -1
  142. package/.next/standalone/agents-manage-ui/.next/static/chunks/8458-bdc1cf68e2d13eda.js +0 -1
  143. package/.next/standalone/agents-manage-ui/.next/static/chunks/9816-02452b9a92f478de.js +0 -1
  144. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/api-keys/page-a55bc3ed24daae2f.js +0 -1
  145. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/artifact-components/page-f4a0f7e9543d8480.js +0 -1
  146. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/[credentialId]/page-839e6b383a826a76.js +0 -1
  147. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/bearer/page-a8e240bc6cf2ef59.js +0 -1
  148. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/new/providers/[providerId]/page-dde463979e9dbc89.js +0 -1
  149. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/credentials/page-7fea5166844e2400.js +0 -1
  150. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/mcp-servers/page-5b6387f3771508ac.js +0 -1
  151. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/[projectId]/traces/page-f2c50f4dbcf729bc.js +0 -1
  152. package/.next/standalone/agents-manage-ui/.next/static/chunks/app/[tenantId]/projects/page-3ee642e1f54a32ad.js +0 -1
  153. /package/.next/standalone/agents-manage-ui/.next/static/{KsMqiaHOvY4o9nCLYVuGM → YDKeLLeMD2zT8EUlv1AJ9}/_buildManifest.js +0 -0
  154. /package/.next/standalone/agents-manage-ui/.next/static/{KsMqiaHOvY4o9nCLYVuGM → YDKeLLeMD2zT8EUlv1AJ9}/_ssgManifest.js +0 -0
@@ -3,6 +3,7 @@
3
3
  import { ChevronRight, Info } from 'lucide-react';
4
4
  import { type Control, useController, useWatch } from 'react-hook-form';
5
5
  import { ExpandableJsonEditor } from '@/components/form/expandable-json-editor';
6
+ import { FormFieldWrapper } from '@/components/form/form-field-wrapper';
6
7
  import { ModelSelector } from '@/components/graph/sidepane/nodes/model-selector';
7
8
  import { Button } from '@/components/ui/button';
8
9
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';
@@ -16,10 +17,6 @@ interface ProjectModelsSectionProps {
16
17
  }
17
18
 
18
19
  function BaseModelSection({ control }: { control: Control<ProjectFormData> }) {
19
- const { field: modelField } = useController({
20
- control,
21
- name: 'models.base.model',
22
- });
23
20
  const { field: providerOptionsField } = useController({
24
21
  control,
25
22
  name: 'models.base.providerOptions',
@@ -27,17 +24,23 @@ function BaseModelSection({ control }: { control: Control<ProjectFormData> }) {
27
24
 
28
25
  return (
29
26
  <div className="space-y-4">
30
- <div className="space-y-2">
31
- <ModelSelector
32
- label="Base model"
33
- placeholder="Select base model"
34
- value={modelField.value || ''}
35
- onValueChange={modelField.onChange}
36
- isRequired
37
- canClear={false}
38
- />
39
- <p className="text-xs text-muted-foreground">Primary model for general agent responses</p>
40
- </div>
27
+ <FormFieldWrapper
28
+ control={control}
29
+ name="models.base.model"
30
+ label="Base model"
31
+ description="Primary model for general agent responses"
32
+ isRequired
33
+ >
34
+ {(field) => (
35
+ <ModelSelector
36
+ label=""
37
+ placeholder="Select base model"
38
+ value={field.value || ''}
39
+ onValueChange={field.onChange}
40
+ canClear={false}
41
+ />
42
+ )}
43
+ </FormFieldWrapper>
41
44
  <ExpandableJsonEditor
42
45
  name="models.base.providerOptions"
43
46
  label="Provider options"
@@ -66,10 +69,6 @@ function BaseModelSection({ control }: { control: Control<ProjectFormData> }) {
66
69
  }
67
70
 
68
71
  function StructuredOutputModelSection({ control }: { control: Control<ProjectFormData> }) {
69
- const { field: modelField } = useController({
70
- control,
71
- name: 'models.structuredOutput.model',
72
- });
73
72
  const { field: providerOptionsField } = useController({
74
73
  control,
75
74
  name: 'models.structuredOutput.providerOptions',
@@ -80,19 +79,23 @@ function StructuredOutputModelSection({ control }: { control: Control<ProjectFor
80
79
 
81
80
  return (
82
81
  <div className="space-y-4">
83
- <div className="space-y-2">
84
- <ModelSelector
85
- label="Structured output model"
86
- placeholder="Select structured output model (optional)"
87
- value={modelField.value || ''}
88
- onValueChange={modelField.onChange}
89
- inheritedValue={baseModel}
90
- canClear={true}
91
- />
92
- <p className="text-xs text-muted-foreground">
93
- Model for structured outputs and data components (defaults to base model)
94
- </p>
95
- </div>
82
+ <FormFieldWrapper
83
+ control={control}
84
+ name="models.structuredOutput.model"
85
+ label="Structured output model"
86
+ description="Model for structured outputs and data components (defaults to base model)"
87
+ >
88
+ {(field) => (
89
+ <ModelSelector
90
+ label=""
91
+ placeholder="Select structured output model (optional)"
92
+ value={field.value || ''}
93
+ onValueChange={field.onChange}
94
+ inheritedValue={baseModel}
95
+ canClear={true}
96
+ />
97
+ )}
98
+ </FormFieldWrapper>
96
99
  <ExpandableJsonEditor
97
100
  name="models.structuredOutput.providerOptions"
98
101
  label="Provider options"
@@ -121,10 +124,6 @@ function StructuredOutputModelSection({ control }: { control: Control<ProjectFor
121
124
  }
122
125
 
123
126
  function SummarizerModelSection({ control }: { control: Control<ProjectFormData> }) {
124
- const { field: modelField } = useController({
125
- control,
126
- name: 'models.summarizer.model',
127
- });
128
127
  const { field: providerOptionsField } = useController({
129
128
  control,
130
129
  name: 'models.summarizer.providerOptions',
@@ -135,19 +134,23 @@ function SummarizerModelSection({ control }: { control: Control<ProjectFormData>
135
134
 
136
135
  return (
137
136
  <div className="space-y-4">
138
- <div className="space-y-2">
139
- <ModelSelector
140
- label="Summarizer model"
141
- placeholder="Select summarizer model (optional)"
142
- value={modelField.value || ''}
143
- onValueChange={modelField.onChange}
144
- inheritedValue={baseModel}
145
- canClear={true}
146
- />
147
- <p className="text-xs text-muted-foreground">
148
- Model for summarization tasks (defaults to base model)
149
- </p>
150
- </div>
137
+ <FormFieldWrapper
138
+ control={control}
139
+ name="models.summarizer.model"
140
+ label="Summarizer model"
141
+ description="Model for summarization tasks (defaults to base model)"
142
+ >
143
+ {(field) => (
144
+ <ModelSelector
145
+ label=""
146
+ placeholder="Select summarizer model (optional)"
147
+ value={field.value || ''}
148
+ onValueChange={field.onChange}
149
+ inheritedValue={baseModel}
150
+ canClear={true}
151
+ />
152
+ )}
153
+ </FormFieldWrapper>
151
154
  <ExpandableJsonEditor
152
155
  name="models.summarizer.providerOptions"
153
156
  label="Provider options"
@@ -0,0 +1,63 @@
1
+ import type { ContextConfig, GraphMetadata } from '@/components/graph/configuration/graph-types';
2
+ import type { FullGraphDefinition } from '@/lib/types/graph-full';
3
+ import { formatJsonField } from '@/lib/utils';
4
+
5
+ export type ExtendedFullGraphDefinition = FullGraphDefinition & {
6
+ contextConfig?: Partial<Pick<ContextConfig, 'id' | 'name' | 'description'>> & {
7
+ contextVariables?: Record<string, any>;
8
+ requestContextSchema?: Record<string, any>;
9
+ };
10
+ };
11
+
12
+ /**
13
+ * Extracts and formats graph metadata from a FullGraphDefinition object.
14
+ * This helper function handles the complex transformation of the graph data
15
+ * into the format expected by the GraphMetadata type, including proper
16
+ * JSON field formatting for form compatibility.
17
+ */
18
+ export function extractGraphMetadata(
19
+ graph: ExtendedFullGraphDefinition | null | undefined
20
+ ): GraphMetadata {
21
+ return {
22
+ id: graph?.id,
23
+ name: graph?.name ?? '',
24
+ description: graph?.description ?? '',
25
+ graphPrompt: graph?.graphPrompt,
26
+ models: graph?.models
27
+ ? {
28
+ base: graph.models.base
29
+ ? {
30
+ model: graph.models.base.model,
31
+ providerOptions: formatJsonField(graph.models.base.providerOptions),
32
+ }
33
+ : undefined,
34
+ structuredOutput: graph.models.structuredOutput
35
+ ? {
36
+ model: graph.models.structuredOutput.model,
37
+ providerOptions: formatJsonField(graph.models.structuredOutput.providerOptions),
38
+ }
39
+ : undefined,
40
+ summarizer: graph.models.summarizer
41
+ ? {
42
+ model: graph.models.summarizer.model,
43
+ providerOptions: formatJsonField(graph.models.summarizer.providerOptions),
44
+ }
45
+ : undefined,
46
+ }
47
+ : undefined,
48
+ stopWhen: graph?.stopWhen,
49
+ statusUpdates: graph?.statusUpdates
50
+ ? {
51
+ ...graph.statusUpdates,
52
+ statusComponents: formatJsonField(graph.statusUpdates.statusComponents) || '',
53
+ }
54
+ : undefined,
55
+ contextConfig: {
56
+ id: graph?.contextConfig?.id ?? '',
57
+ name: graph?.contextConfig?.name ?? '',
58
+ description: graph?.contextConfig?.description ?? '',
59
+ contextVariables: formatJsonField(graph?.contextConfig?.contextVariables) || '',
60
+ requestContextSchema: formatJsonField(graph?.contextConfig?.requestContextSchema) || '',
61
+ },
62
+ };
63
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './deserialize';
2
+ export * from './graph-initializer-helpers';
2
3
  export * from './serialize';
@@ -5,6 +5,7 @@ import { devtools } from 'zustand/middleware';
5
5
  import type { GraphMetadata } from '@/components/graph/configuration/graph-types';
6
6
  import type { ArtifactComponent } from '@/lib/api/artifact-components';
7
7
  import type { DataComponent } from '@/lib/api/data-components';
8
+ import type { MCPTool } from '@/lib/types/tools';
8
9
  import type { GraphErrorSummary } from '@/lib/utils/graph-error-parser';
9
10
 
10
11
  type HistoryEntry = { nodes: Node[]; edges: Edge[] };
@@ -15,6 +16,8 @@ type GraphStateData = {
15
16
  metadata: GraphMetadata;
16
17
  dataComponentLookup: Record<string, DataComponent>;
17
18
  artifactComponentLookup: Record<string, ArtifactComponent>;
19
+ toolLookup: Record<string, MCPTool>;
20
+ selectedToolsLookup: Record<string, Record<string, string[]>>;
18
21
  dirty: boolean;
19
22
  history: HistoryEntry[];
20
23
  future: HistoryEntry[];
@@ -28,10 +31,14 @@ type GraphState = GraphStateData & {
28
31
  edges: Edge[],
29
32
  metadata: GraphMetadata,
30
33
  dataComponentLookup?: Record<string, DataComponent>,
31
- artifactComponentLookup?: Record<string, ArtifactComponent>
34
+ artifactComponentLookup?: Record<string, ArtifactComponent>,
35
+ toolLookup?: Record<string, MCPTool>,
36
+ selectedToolsLookup?: Record<string, Record<string, string[]>>
32
37
  ): void;
33
38
  setDataComponentLookup(dataComponentLookup: Record<string, DataComponent>): void;
34
39
  setArtifactComponentLookup(artifactComponentLookup: Record<string, ArtifactComponent>): void;
40
+ setToolLookup(toolLookup: Record<string, MCPTool>): void;
41
+ setSelectedToolsLookup(selectedToolsLookup: Record<string, Record<string, string[]>>): void;
35
42
  setNodes(updater: (prev: Node[]) => Node[]): void;
36
43
  setEdges(updater: (prev: Edge[]) => Edge[]): void;
37
44
  onNodesChange(changes: NodeChange[]): void;
@@ -74,18 +81,30 @@ export const useGraphStore = create<GraphState>()(
74
81
  },
75
82
  dataComponentLookup: {},
76
83
  artifactComponentLookup: {},
84
+ toolLookup: {},
85
+ selectedToolsLookup: {},
77
86
  dirty: false,
78
87
  history: [],
79
88
  future: [],
80
89
  errors: null,
81
90
  showErrors: false,
82
- setInitial(nodes, edges, metadata, dataComponentLookup = {}, artifactComponentLookup = {}) {
91
+ setInitial(
92
+ nodes,
93
+ edges,
94
+ metadata,
95
+ dataComponentLookup = {},
96
+ artifactComponentLookup = {},
97
+ toolLookup = {},
98
+ selectedToolsLookup = {}
99
+ ) {
83
100
  set({
84
101
  nodes,
85
102
  edges,
86
103
  metadata,
87
104
  dataComponentLookup,
88
105
  artifactComponentLookup,
106
+ toolLookup,
107
+ selectedToolsLookup,
89
108
  dirty: false,
90
109
  history: [],
91
110
  future: [],
@@ -99,6 +118,12 @@ export const useGraphStore = create<GraphState>()(
99
118
  setArtifactComponentLookup(artifactComponentLookup) {
100
119
  set({ artifactComponentLookup });
101
120
  },
121
+ setToolLookup(toolLookup) {
122
+ set({ toolLookup });
123
+ },
124
+ setSelectedToolsLookup(selectedToolsLookup) {
125
+ set({ selectedToolsLookup });
126
+ },
102
127
  setNodes(updater) {
103
128
  set((state) => ({ nodes: updater(state.nodes) }));
104
129
  },
@@ -133,9 +158,6 @@ export const useGraphStore = create<GraphState>()(
133
158
  (change) => change.type === 'remove' || change.type === 'add' || change.type === 'replace'
134
159
  );
135
160
 
136
- set((state) => ({
137
- history: [...state.history, { nodes: state.nodes, edges: state.edges }],
138
- }));
139
161
  set((state) => ({
140
162
  history: [...state.history, { nodes: state.nodes, edges: state.edges }],
141
163
  edges: applyEdgeChanges(changes, state.edges),
@@ -34,7 +34,7 @@ export function detectOrphanedToolsAndGetWarning(
34
34
  * This replaces the duplicated logic between detector and MCP node editor
35
35
  */
36
36
  export function getCurrentSelectedToolsForNode(
37
- node: Node<MCPNodeData>,
37
+ node: { data: MCPNodeData },
38
38
  selectedToolsLookup: Record<string, Record<string, string[]>>
39
39
  ): string[] | null {
40
40
  // First check if we have temporary selections stored on the node (from recent clicks)
@@ -1 +0,0 @@
1
- exports.id=404,exports.ids=[404],exports.modules={8636:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/not-found.tsx","default")},29160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(72669),e=c(95460),f=c(54637);let g="force-dynamic";async function h({children:a,params:b}){let{tenantId:c,projectId:g}=await b;try{await (0,f.Sw)(c,g)}catch(a){(0,e.notFound)()}return(0,d.jsx)(d.Fragment,{children:a})}},35859:(a,b,c)=>{Promise.resolve().then(c.bind(c,8636))},37830:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(59111),e=c(437),f=c(485);c(14450);var g=c(2856);function h(){let a=(0,f.useParams)(),b=(0,f.useRouter)(),c=a.tenantId,h=a.projectId;return(0,d.jsx)("div",{className:"flex min-h-[400px] flex-col items-center justify-center p-8",children:(0,d.jsxs)("div",{className:"text-center max-w-md",children:[(0,d.jsx)("div",{className:"mb-4 flex justify-center",children:(0,d.jsx)(e.A,{className:"h-12 w-12 text-muted-foreground"})}),(0,d.jsx)("h1",{className:"text-2xl font-semibold mb-2",children:"Project Not Found"}),(0,d.jsxs)("p",{className:"text-muted-foreground mb-6",children:['The project "',h,"\" does not exist or you don't have access to it."]}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground mb-6",children:"Redirecting to projects list in 3 seconds..."}),(0,d.jsx)(g.$,{onClick:()=>b.push(`/${c}/projects`),variant:"default",children:"Go to Projects List"})]})})}},45622:()=>{},61664:(a,b,c)=>{"use strict";c.d(b,{AY:()=>bt,o7:()=>f,O_:()=>bo,K_:()=>bu});var d=c(32463);let e=["transfer","delegate"],f={streamableHttp:"streamable_http",sse:"sse"},g={memory:"memory",keychain:"keychain",nango:"nango"};var h=c(41135),i=c(4445),j=c(61234),k=c(66603),l=c(84379),m=c(60510),n=c(30480),o=c(27786),p=c(82390),q=c(57103),r=c(23241),s=c(5540);let t=(0,l.D)("projects",{tenantId:(0,m.Qq)("tenant_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),models:(0,m.Qq)("models",{mode:"json"}).$type(),stopWhen:(0,m.Qq)("stop_when",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.id]})]),u=(0,l.D)("agent_graph",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description"),defaultAgentId:(0,m.Qq)("default_agent_id"),contextConfigId:(0,m.Qq)("context_config_id"),models:(0,m.Qq)("models",{mode:"json"}).$type(),statusUpdates:(0,m.Qq)("status_updates",{mode:"json"}).$type(),graphPrompt:(0,m.Qq)("graph_prompt"),stopWhen:(0,m.Qq)("stop_when",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"agent_graph_project_fk"}).onDelete("cascade")]),v=(0,l.D)("context_configs",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),requestContextSchema:(0,p.av)("request_context_schema",{mode:"json"}).$type(),contextVariables:(0,p.av)("context_variables",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"context_configs_project_fk"}).onDelete("cascade")]),w=(0,l.D)("context_cache",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),conversationId:(0,m.Qq)("conversation_id").notNull(),contextConfigId:(0,m.Qq)("context_config_id").notNull(),contextVariableKey:(0,m.Qq)("context_variable_key").notNull(),value:(0,p.av)("value",{mode:"json"}).$type().notNull(),requestHash:(0,m.Qq)("request_hash"),fetchedAt:(0,m.Qq)("fetched_at").notNull(),fetchSource:(0,m.Qq)("fetch_source"),fetchDurationMs:(0,q.nd)("fetch_duration_ms"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"context_cache_project_fk"}).onDelete("cascade"),(0,r.Pe)("context_cache_lookup_idx").on(a.conversationId,a.contextConfigId,a.contextVariableKey)]),x=(0,l.D)("agents",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),prompt:(0,m.Qq)("prompt").notNull(),conversationHistoryConfig:(0,m.Qq)("conversation_history_config",{mode:"json"}).$type(),models:(0,m.Qq)("models",{mode:"json"}).$type(),stopWhen:(0,m.Qq)("stop_when",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.graphId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId],foreignColumns:[u.tenantId,u.projectId,u.id],name:"agents_graph_fk"}).onDelete("cascade")]),y=(0,l.D)("agent_relations",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),id:(0,m.Qq)("id").notNull(),sourceAgentId:(0,m.Qq)("source_agent_id").notNull(),targetAgentId:(0,m.Qq)("target_agent_id"),externalAgentId:(0,m.Qq)("external_agent_id"),relationType:(0,m.Qq)("relation_type"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.graphId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId],foreignColumns:[u.tenantId,u.projectId,u.id],name:"agent_relations_graph_fk"}).onDelete("cascade")]),z=(0,l.D)("external_agents",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),baseUrl:(0,m.Qq)("base_url").notNull(),credentialReferenceId:(0,m.Qq)("credential_reference_id"),headers:(0,p.av)("headers",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.graphId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId],foreignColumns:[u.tenantId,u.projectId,u.id],name:"external_agents_graph_fk"}).onDelete("cascade"),(0,o.mt)({columns:[a.tenantId,a.projectId,a.credentialReferenceId],foreignColumns:[M.tenantId,M.projectId,M.id],name:"external_agents_credential_reference_fk"}).onDelete("set null")]),A=(0,l.D)("tasks",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),contextId:(0,m.Qq)("context_id").notNull(),status:(0,m.Qq)("status").notNull(),metadata:(0,p.av)("metadata",{mode:"json"}).$type(),agentId:(0,m.Qq)("agent_id").notNull(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"tasks_project_fk"}).onDelete("cascade")]),B=(0,l.D)("task_relations",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),parentTaskId:(0,m.Qq)("parent_task_id").notNull(),childTaskId:(0,m.Qq)("child_task_id").notNull(),relationType:(0,m.Qq)("relation_type").default("parent_child"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"task_relations_project_fk"}).onDelete("cascade")]),C=(0,l.D)("data_components",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),props:(0,p.av)("props",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"data_components_project_fk"}).onDelete("cascade")]),D=(0,l.D)("agent_data_components",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),agentId:(0,m.Qq)("agent_id").notNull(),id:(0,m.Qq)("id").notNull(),dataComponentId:(0,m.Qq)("data_component_id").notNull(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId,a.agentId],foreignColumns:[x.tenantId,x.projectId,x.graphId,x.id],name:"agent_data_components_agent_fk"}).onDelete("cascade"),(0,o.mt)({columns:[a.tenantId,a.projectId,a.dataComponentId],foreignColumns:[C.tenantId,C.projectId,C.id],name:"agent_data_components_data_component_fk"}).onDelete("cascade")]),E=(0,l.D)("artifact_components",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),description:(0,m.Qq)("description").notNull(),summaryProps:(0,p.av)("summary_props",{mode:"json"}).$type(),fullProps:(0,p.av)("full_props",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"artifact_components_project_fk"}).onDelete("cascade")]),F=(0,l.D)("agent_artifact_components",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),agentId:(0,m.Qq)("agent_id").notNull(),id:(0,m.Qq)("id").notNull(),artifactComponentId:(0,m.Qq)("artifact_component_id").notNull(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.graphId,a.agentId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId,a.agentId],foreignColumns:[x.tenantId,x.projectId,x.graphId,x.id],name:"agent_artifact_components_agent_fk"}).onDelete("cascade"),(0,o.mt)({columns:[a.tenantId,a.projectId,a.artifactComponentId],foreignColumns:[E.tenantId,E.projectId,E.id],name:"agent_artifact_components_artifact_component_fk"}).onDelete("cascade")]),G=(0,l.D)("tools",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),name:(0,m.Qq)("name").notNull(),config:(0,p.av)("config",{mode:"json"}).$type().notNull(),credentialReferenceId:(0,m.Qq)("credential_reference_id"),headers:(0,p.av)("headers",{mode:"json"}).$type(),imageUrl:(0,m.Qq)("image_url"),capabilities:(0,p.av)("capabilities",{mode:"json"}).$type(),lastError:(0,m.Qq)("last_error"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"tools_project_fk"}).onDelete("cascade")]),H=(0,l.D)("agent_tool_relations",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),agentId:(0,m.Qq)("agent_id").notNull(),id:(0,m.Qq)("id").notNull(),toolId:(0,m.Qq)("tool_id").notNull(),selectedTools:(0,p.av)("selected_tools",{mode:"json"}).$type(),headers:(0,p.av)("headers",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.graphId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId,a.agentId],foreignColumns:[x.tenantId,x.projectId,x.graphId,x.id],name:"agent_tool_relations_agent_fk"}).onDelete("cascade"),(0,o.mt)({columns:[a.tenantId,a.projectId,a.toolId],foreignColumns:[G.tenantId,G.projectId,G.id],name:"agent_tool_relations_tool_fk"}).onDelete("cascade")]),I=(0,l.D)("conversations",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),userId:(0,m.Qq)("user_id"),activeAgentId:(0,m.Qq)("active_agent_id").notNull(),title:(0,m.Qq)("title"),lastContextResolution:(0,m.Qq)("last_context_resolution"),metadata:(0,p.av)("metadata",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"conversations_project_fk"}).onDelete("cascade")]),J=(0,l.D)("messages",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),conversationId:(0,m.Qq)("conversation_id").notNull(),role:(0,m.Qq)("role").notNull(),fromAgentId:(0,m.Qq)("from_agent_id"),toAgentId:(0,m.Qq)("to_agent_id"),fromExternalAgentId:(0,m.Qq)("from_external_agent_id"),toExternalAgentId:(0,m.Qq)("to_external_agent_id"),content:(0,p.av)("content",{mode:"json"}).$type().notNull(),visibility:(0,m.Qq)("visibility").notNull().default("user-facing"),messageType:(0,m.Qq)("message_type").notNull().default("chat"),agentId:(0,m.Qq)("agent_id"),taskId:(0,m.Qq)("task_id"),parentMessageId:(0,m.Qq)("parent_message_id"),a2aTaskId:(0,m.Qq)("a2a_task_id"),a2aSessionId:(0,m.Qq)("a2a_session_id"),metadata:(0,p.av)("metadata",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"messages_project_fk"}).onDelete("cascade")]),K=(0,l.D)("ledger_artifacts",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),taskId:(0,m.Qq)("task_id"),contextId:(0,m.Qq)("context_id").notNull(),type:(0,m.Qq)("type").notNull().default("source"),name:(0,m.Qq)("name"),description:(0,m.Qq)("description"),parts:(0,p.av)("parts",{mode:"json"}).$type(),metadata:(0,p.av)("metadata",{mode:"json"}).$type(),summary:(0,m.Qq)("summary"),mime:(0,p.av)("mime",{mode:"json"}).$type(),visibility:(0,m.Qq)("visibility").default("context"),allowedAgents:(0,p.av)("allowed_agents",{mode:"json"}).$type(),derivedFrom:(0,m.Qq)("derived_from"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"ledger_artifacts_project_fk"}).onDelete("cascade")]),L=(0,l.D)("api_keys",{id:(0,m.Qq)("id").primaryKey(),tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),graphId:(0,m.Qq)("graph_id").notNull(),publicId:(0,m.Qq)("public_id").notNull().unique(),keyHash:(0,m.Qq)("key_hash").notNull(),keyPrefix:(0,m.Qq)("key_prefix").notNull(),name:(0,m.Qq)("name"),lastUsedAt:(0,m.Qq)("last_used_at"),expiresAt:(0,m.Qq)("expires_at"),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"api_keys_project_fk"}).onDelete("cascade"),(0,o.mt)({columns:[a.tenantId,a.projectId,a.graphId],foreignColumns:[u.tenantId,u.projectId,u.id],name:"api_keys_graph_fk"}).onDelete("cascade"),(0,r.Pe)("api_keys_tenant_graph_idx").on(a.tenantId,a.graphId),(0,r.Pe)("api_keys_prefix_idx").on(a.keyPrefix),(0,r.Pe)("api_keys_public_id_idx").on(a.publicId)]),M=(0,l.D)("credential_references",{tenantId:(0,m.Qq)("tenant_id").notNull(),projectId:(0,m.Qq)("project_id").notNull(),id:(0,m.Qq)("id").notNull(),type:(0,m.Qq)("type").notNull(),credentialStoreId:(0,m.Qq)("credential_store_id").notNull(),retrievalParams:(0,p.av)("retrieval_params",{mode:"json"}).$type(),createdAt:(0,m.Qq)("created_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`),updatedAt:(0,m.Qq)("updated_at").notNull().default((0,j.ll)`CURRENT_TIMESTAMP`)},a=>[(0,n.ie)({columns:[a.tenantId,a.projectId,a.id]}),(0,o.mt)({columns:[a.tenantId,a.projectId],foreignColumns:[t.tenantId,t.id],name:"credential_references_project_fk"}).onDelete("cascade")]);(0,r.Pe)("ledger_artifacts_task_id_idx").on(K.taskId),(0,r.Pe)("ledger_artifacts_context_id_idx").on(K.contextId),(0,s.Am)("ledger_artifacts_task_context_name_unique").on(K.taskId,K.contextId,K.name),(0,k.K1)(A,({one:a,many:b})=>({project:a(t,{fields:[A.tenantId,A.projectId],references:[t.tenantId,t.id]}),parentRelations:b(B,{relationName:"childTask"}),childRelations:b(B,{relationName:"parentTask"}),agent:a(x,{fields:[A.agentId],references:[x.id]}),messages:b(J),ledgerArtifacts:b(K)})),(0,k.K1)(t,({many:a})=>({agents:a(x),agentGraphs:a(u),tools:a(G),contextConfigs:a(v),externalAgents:a(z),conversations:a(I),tasks:a(A),dataComponents:a(C),artifactComponents:a(E),ledgerArtifacts:a(K),credentialReferences:a(M)})),(0,k.K1)(B,({one:a})=>({parentTask:a(A,{fields:[B.parentTaskId],references:[A.id],relationName:"parentTask"}),childTask:a(A,{fields:[B.childTaskId],references:[A.id],relationName:"childTask"})})),(0,k.K1)(v,({many:a,one:b})=>({project:b(t,{fields:[v.tenantId,v.projectId],references:[t.tenantId,t.id]}),graphs:a(u),cache:a(w)})),(0,k.K1)(w,({one:a})=>({contextConfig:a(v,{fields:[w.contextConfigId],references:[v.id]})})),(0,k.K1)(x,({many:a,one:b})=>({project:b(t,{fields:[x.tenantId,x.projectId],references:[t.tenantId,t.id]}),tasks:a(A),defaultForGraphs:a(u),sourceRelations:a(y,{relationName:"sourceRelations"}),targetRelations:a(y,{relationName:"targetRelations"}),sentMessages:a(J,{relationName:"sentMessages"}),receivedMessages:a(J,{relationName:"receivedMessages"}),associatedMessages:a(J,{relationName:"associatedAgent"}),toolRelations:a(H),dataComponentRelations:a(D),artifactComponentRelations:a(F)})),(0,k.K1)(u,({one:a})=>({project:a(t,{fields:[u.tenantId,u.projectId],references:[t.tenantId,t.id]}),defaultAgent:a(x,{fields:[u.defaultAgentId],references:[x.id]}),contextConfig:a(v,{fields:[u.contextConfigId],references:[v.id]})})),(0,k.K1)(z,({one:a,many:b})=>({project:a(t,{fields:[z.tenantId,z.projectId],references:[t.tenantId,t.id]}),agentRelations:b(y),credentialReference:a(M,{fields:[z.credentialReferenceId],references:[M.id]})})),(0,k.K1)(L,({one:a})=>({project:a(t,{fields:[L.tenantId,L.projectId],references:[t.tenantId,t.id]}),graph:a(u,{fields:[L.graphId],references:[u.id]})})),(0,k.K1)(H,({one:a})=>({agent:a(x,{fields:[H.agentId],references:[x.id]}),tool:a(G,{fields:[H.toolId],references:[G.id]})})),(0,k.K1)(M,({many:a})=>({tools:a(G)})),(0,k.K1)(G,({one:a,many:b})=>({project:a(t,{fields:[G.tenantId,G.projectId],references:[t.tenantId,t.id]}),agentRelations:b(H),credentialReference:a(M,{fields:[G.credentialReferenceId],references:[M.id]})})),(0,k.K1)(I,({one:a,many:b})=>({project:a(t,{fields:[I.tenantId,I.projectId],references:[t.tenantId,t.id]}),messages:b(J),activeAgent:a(x,{fields:[I.activeAgentId],references:[x.id]})})),(0,k.K1)(J,({one:a,many:b})=>({conversation:a(I,{fields:[J.conversationId],references:[I.id]}),agent:a(x,{fields:[J.agentId],references:[x.id],relationName:"associatedAgent"}),fromAgent:a(x,{fields:[J.fromAgentId],references:[x.id],relationName:"sentMessages"}),toAgent:a(x,{fields:[J.toAgentId],references:[x.id],relationName:"receivedMessages"}),fromExternalAgent:a(z,{fields:[J.fromExternalAgentId],references:[z.id],relationName:"receivedExternalMessages"}),toExternalAgent:a(z,{fields:[J.toExternalAgentId],references:[z.id],relationName:"sentExternalMessages"}),task:a(A,{fields:[J.taskId],references:[A.id]}),parentMessage:a(J,{fields:[J.parentMessageId],references:[J.id],relationName:"parentChild"}),childMessages:b(J,{relationName:"parentChild"})})),(0,k.K1)(E,({many:a})=>({agentRelations:a(F)})),(0,k.K1)(F,({one:a})=>({agent:a(x,{fields:[F.agentId],references:[x.id]}),artifactComponent:a(E,{fields:[F.artifactComponentId],references:[E.id]})})),(0,k.K1)(C,({many:a,one:b})=>({project:b(t,{fields:[C.tenantId,C.projectId],references:[t.tenantId,t.id]}),agentRelations:a(D)})),(0,k.K1)(D,({one:a})=>({agent:a(x,{fields:[D.agentId],references:[x.id]}),dataComponent:a(C,{fields:[D.dataComponentId],references:[C.id]})})),(0,k.K1)(K,({one:a})=>({project:a(t,{fields:[K.tenantId,K.projectId],references:[t.tenantId,t.id]}),task:a(A,{fields:[K.taskId],references:[A.id]})})),(0,k.K1)(y,({one:a})=>({graph:a(u,{fields:[y.graphId],references:[u.id]}),sourceAgent:a(x,{fields:[y.sourceAgentId],references:[x.id],relationName:"sourceRelations"}),targetAgent:a(x,{fields:[y.targetAgentId],references:[x.id],relationName:"targetRelations"}),externalAgent:a(z,{fields:[y.externalAgentId],references:[z.id]})}));let N=h.z.object({transferCountIs:h.z.number().min(1).max(100).optional(),stepCountIs:h.z.number().min(1).max(1e3).optional()}),O=N.pick({transferCountIs:!0});N.pick({stepCountIs:!0});let P=h.z.string().min(1).max(255).regex(/^[a-zA-Z0-9\-_.]+$/,{message:"ID must contain only letters, numbers, hyphens, underscores, and dots"}).openapi({description:"Resource identifier",example:"resource_789"}),Q=h.z.object({model:h.z.string().optional(),providerOptions:h.z.record(h.z.string(),h.z.unknown()).optional()}),R=h.z.object({base:Q.optional(),structuredOutput:Q.optional(),summarizer:Q.optional()}),S=h.z.object({base:Q,structuredOutput:Q.optional(),summarizer:Q.optional()}),T=a=>a.omit({tenantId:!0,projectId:!0}),U=a=>a.omit({tenantId:!0,projectId:!0}),V=a=>a.omit({tenantId:!0,projectId:!0}).partial(),W=a=>a.omit({tenantId:!0,projectId:!0,graphId:!0}),X=a=>a.omit({tenantId:!0,projectId:!0,graphId:!0}),Y=a=>a.omit({tenantId:!0,projectId:!0,graphId:!0}).partial(),Z=(0,i.aJ)(x),$=(0,i.r)(x).extend({id:P,models:R.optional()}),_=$.partial(),aa=W(Z),ab=X($);Y(_);let ac=(0,i.aJ)(y),ad=(0,i.r)(y).extend({id:P,graphId:P,sourceAgentId:P,targetAgentId:P.optional(),externalAgentId:P.optional()}),ae=ad.partial();W(ac),X(ad).extend({relationType:h.z.enum(e)}).refine(a=>null!=a.targetAgentId!=(null!=a.externalAgentId),{message:"Must specify exactly one of targetAgentId or externalAgentId",path:["targetAgentId","externalAgentId"]}),Y(ae).extend({relationType:h.z.enum(e).optional()}).refine(a=>{let b=null!=a.targetAgentId,c=null!=a.externalAgentId;return!b&&!c||b!==c},{message:"Must specify exactly one of targetAgentId or externalAgentId when updating agent relationships",path:["targetAgentId","externalAgentId"]}),h.z.object({sourceAgentId:h.z.string().optional(),targetAgentId:h.z.string().optional(),externalAgentId:h.z.string().optional()}),U((0,i.r)(y).extend({id:P,graphId:P,sourceAgentId:P,externalAgentId:P}));let af=(0,i.aJ)(u),ag=(0,i.r)(u).extend({id:P}),ah=ag.partial();T(af);let ai=U(ag).extend({id:P});V(ah);let aj=(0,i.aJ)(A),ak=(0,i.r)(A).extend({id:P,conversationId:P.optional()}),al=ak.partial();T(aj),U(ak),V(al);let am=(0,i.aJ)(B),an=(0,i.r)(B).extend({id:P,parentTaskId:P,childTaskId:P}),ao=an.partial();T(am),U(an),V(ao);let ap=h.z.string().optional().refine(a=>{if(!a)return!0;if(a.startsWith("data:image/")){let b=a.split(",")[1];return!!b&&b.length<14e5}try{let b=new URL(a);return"http:"===b.protocol||"https:"===b.protocol}catch{return!1}},{message:"Image URL must be a valid HTTP(S) URL or a base64 data URL (max 1MB)"}),aq=h.z.object({type:h.z.enum(f),requestInit:h.z.record(h.z.string(),h.z.unknown()).optional(),eventSourceInit:h.z.record(h.z.string(),h.z.unknown()).optional(),reconnectionOptions:h.z.custom().optional(),sessionId:h.z.string().optional()}),ar=h.z.enum(["healthy","unhealthy","unknown","needs_auth"]),as=h.z.object({name:h.z.string(),description:h.z.string().optional(),inputSchema:h.z.record(h.z.string(),h.z.unknown()).optional()}),at=(0,i.aJ)(G),au=(0,i.r)(G).extend({id:P,imageUrl:ap}),av=(0,i.aJ)(I),aw=(0,i.r)(I).extend({id:P,contextConfigId:P.optional()}),ax=aw.partial();T(av),U(aw),V(ax);let ay=(0,i.aJ)(J),az=(0,i.r)(J).extend({id:P,conversationId:P,taskId:P.optional()}),aA=az.partial();T(ay),U(az),V(aA);let aB=(0,i.aJ)(w),aC=(0,i.r)(w),aD=aC.partial();T(aB),U(aC),V(aD);let aE=(0,i.aJ)(C),aF=(0,i.r)(C).extend({id:P});aF.omit({createdAt:!0,updatedAt:!0});let aG=aF.partial();T(aE);let aH=U(aF);V(aG);let aI=(0,i.aJ)(D),aJ=(0,i.r)(D),aK=aJ.partial();W(aI),aJ.omit({tenantId:!0,projectId:!0,id:!0,createdAt:!0}),Y(aK);let aL=(0,i.aJ)(E),aM=(0,i.r)(E).extend({id:P}),aN=aM.partial();T(aL);let aO=aM.omit({tenantId:!0,projectId:!0,createdAt:!0,updatedAt:!0});V(aN);let aP=(0,i.aJ)(F),aQ=(0,i.r)(F).extend({id:P,agentId:P,artifactComponentId:P}),aR=aQ.partial();W(aP),aQ.omit({tenantId:!0,projectId:!0,id:!0,createdAt:!0}),Y(aR);let aS=(0,i.aJ)(z).extend({credentialReferenceId:h.z.string().nullable().optional(),headers:h.z.record(h.z.string(),h.z.string()).nullable().optional()}),aT=(0,i.r)(z).extend({id:P}),aU=aT.partial(),aV=W(aS),aW=X(aT);Y(aU),h.z.discriminatedUnion("type",[aa.extend({type:h.z.literal("internal")}),aV.extend({type:h.z.literal("external")})]);let aX=(0,i.aJ)(L),aY=(0,i.r)(L).extend({id:P,graphId:P});aY.partial().omit({tenantId:!0,projectId:!0,id:!0,publicId:!0,keyHash:!0,keyPrefix:!0,createdAt:!0});let aZ=aX.omit({tenantId:!0,projectId:!0,keyHash:!0});h.z.object({data:h.z.object({apiKey:aZ,key:h.z.string().describe("The full API key (shown only once)")})}),aY.omit({tenantId:!0,projectId:!0,id:!0,publicId:!0,keyHash:!0,keyPrefix:!0,lastUsedAt:!0});let a$=h.z.object({id:h.z.string(),tenantId:h.z.string(),projectId:h.z.string(),type:h.z.string(),credentialStoreId:h.z.string(),retrievalParams:h.z.record(h.z.string(),h.z.unknown()).nullish(),createdAt:h.z.string(),updatedAt:h.z.string()}),a_=(0,i.r)(M).extend({id:P,type:h.z.string(),credentialStoreId:P,retrievalParams:h.z.record(h.z.string(),h.z.unknown()).nullish()}),a0=a_.partial();T(a$).extend({type:h.z.enum(g),tools:h.z.array(at).optional()});let a1=U(a_).extend({type:h.z.enum(g)});V(a0).extend({type:h.z.enum(g).optional()}),au.extend({imageUrl:ap,availableTools:h.z.array(as).optional(),status:ar.default("unknown"),version:h.z.string().optional(),createdAt:h.z.date(),updatedAt:h.z.date()}).omit({config:!0,tenantId:!0,projectId:!0,status:!0,version:!0,createdAt:!0,updatedAt:!0,credentialReferenceId:!0}).extend({tenantId:h.z.string().optional(),projectId:h.z.string().optional(),description:h.z.string().optional(),serverUrl:h.z.url(),activeTools:h.z.array(h.z.string()).optional(),mcpType:h.z.enum({nango:"nango",generic:"generic"}).optional(),transport:aq.optional(),credential:a1.optional()});let a2=au.partial();T(at);let a3=U(au);V(a2);let a4=h.z.object({url:h.z.string().min(1,"URL is required"),method:h.z.enum(["GET","POST","PUT","DELETE","PATCH"]).optional().default("GET"),headers:h.z.record(h.z.string(),h.z.string()).optional(),body:h.z.record(h.z.string(),h.z.unknown()).optional(),transform:h.z.string().optional(),timeout:h.z.number().min(0).optional().default(1e4).optional()});h.z.object({id:h.z.string().min(1,"Fetch definition ID is required"),name:h.z.string().optional(),trigger:h.z.enum(["initialization","invocation"]),fetchConfig:a4,responseSchema:h.z.any().optional(),defaultValue:h.z.unknown().optional(),credential:a1.optional()});let a5=(0,i.aJ)(v).extend({requestContextSchema:h.z.unknown().optional()}),a6=(0,i.r)(v).extend({id:P,requestContextSchema:h.z.unknown().optional()}).omit({createdAt:!0,updatedAt:!0}),a7=a6.partial();T(a5);let a8=U(a6);V(a7);let a9=(0,i.aJ)(H),ba=(0,i.r)(H).extend({id:P,agentId:P,toolId:P,selectedTools:h.z.array(h.z.string()).nullish(),headers:h.z.record(h.z.string(),h.z.string()).nullish()}),bb=ba.partial();W(a9),X(ba),Y(bb);let bc=(0,i.aJ)(K),bd=(0,i.r)(K),be=bd.partial();T(bc),U(bd),V(be);let bf=h.z.object({type:h.z.string(),description:h.z.string().optional(),detailsSchema:h.z.object({type:h.z.literal("object"),properties:h.z.record(h.z.string(),h.z.any()),required:h.z.array(h.z.string()).optional()}).optional()}),bg=h.z.object({enabled:h.z.boolean().optional(),numEvents:h.z.number().min(1).max(100).optional(),timeInSeconds:h.z.number().min(1).max(600).optional(),prompt:h.z.string().max(2e3,"Custom prompt cannot exceed 2000 characters").optional(),statusComponents:h.z.array(bf).optional()}),bh=h.z.object({toolId:h.z.string(),toolSelection:h.z.array(h.z.string()).nullish(),headers:h.z.record(h.z.string(),h.z.string()).nullish()}),bi=ab.extend({type:h.z.literal("internal"),canUse:h.z.array(bh),dataComponents:h.z.array(h.z.string()).optional(),artifactComponents:h.z.array(h.z.string()).optional(),canTransferTo:h.z.array(h.z.string()).optional(),canDelegateTo:h.z.array(h.z.string()).optional()});ai.extend({agents:h.z.record(h.z.string(),h.z.union([bi,aW])),contextConfig:h.z.optional(a8),statusUpdates:h.z.optional(bg),models:R.optional(),stopWhen:O.optional(),graphPrompt:h.z.string().max(5e3,"Graph prompt cannot exceed 5000 characters").optional()});let bj=ai.extend({agents:h.z.record(h.z.string(),h.z.discriminatedUnion("type",[bi,aW.extend({type:h.z.literal("external")})])),models:R.optional(),stopWhen:O.optional(),graphPrompt:h.z.string().max(5e3,"Graph prompt cannot exceed 5000 characters").optional()});h.z.object({page:h.z.coerce.number().min(1).default(1),limit:h.z.coerce.number().min(1).max(100).default(10),total:h.z.number(),pages:h.z.number()}),h.z.object({error:h.z.string(),message:h.z.string().optional(),details:h.z.unknown().optional()}),h.z.object({exists:h.z.boolean()}),h.z.object({message:h.z.string(),removed:h.z.boolean()});let bk=(0,i.aJ)(t),bl=(0,i.r)(t).extend({models:S.optional(),stopWhen:N.optional()}).omit({createdAt:!0,updatedAt:!0}),bm=bl.partial();bk.omit({tenantId:!0});let bn=bl.omit({tenantId:!0});bm.omit({tenantId:!0}),bn.extend({graphs:h.z.record(h.z.string(),bj),tools:h.z.record(h.z.string(),a3),dataComponents:h.z.record(h.z.string(),aH).optional(),artifactComponents:h.z.record(h.z.string(),aO).optional(),contextConfig:h.z.record(h.z.string(),a8).optional(),statusUpdates:h.z.optional(bg),credentialReferences:h.z.record(h.z.string(),a1).optional(),createdAt:h.z.string().optional(),updatedAt:h.z.string().optional()}),h.z.object({"x-inkeep-tenant-id":h.z.string().optional().openapi({description:"Tenant identifier",example:"tenant_123"}),"x-inkeep-project-id":h.z.string().optional().openapi({description:"Project identifier",example:"project_456"}),"x-inkeep-graph-id":h.z.string().optional().openapi({description:"Graph identifier",example:"graph_789"})}),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"})}).openapi("TenantParams"),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"}),projectId:h.z.string().openapi({description:"Project identifier",example:"project_456"})}).openapi("TenantProjectParams"),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"}),projectId:h.z.string().openapi({description:"Project identifier",example:"project_456"}),graphId:h.z.string().openapi({description:"Graph identifier",example:"graph_789"})}).openapi("TenantProjectGraphParams"),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"}),projectId:h.z.string().openapi({description:"Project identifier",example:"project_456"}),graphId:h.z.string().openapi({description:"Graph identifier",example:"graph_789"}),id:P}).openapi("TenantProjectGraphIdParams"),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"}),projectId:h.z.string().openapi({description:"Project identifier",example:"project_456"}),id:P}).openapi("TenantProjectIdParams"),h.z.object({tenantId:h.z.string().openapi({description:"Tenant identifier",example:"tenant_123"}),id:P}).openapi("TenantIdParams"),h.z.object({id:P}).openapi("IdParams"),h.z.object({page:h.z.coerce.number().min(1).default(1),limit:h.z.coerce.number().min(1).max(100).default(10)});let bo=d.object({tenantId:d.string()});bo.extend({projectId:d.string()}).extend({id:d.string()}),d.object({id:d.string()}),d.object({page:d.coerce.number().min(1).default(1),limit:d.coerce.number().min(1).max(100).default(10),total:d.number(),pages:d.number()}),d.object({error:d.string(),message:d.string().optional(),details:d.unknown().optional()});let bp=d.object({model:d.string().optional(),structuredOutput:d.string().optional(),summarizer:d.string().optional(),providerOptions:d.record(d.string(),d.record(d.string(),d.unknown())).optional()});d.object({id:d.string().optional(),name:d.string(),description:d.string().optional(),prompt:d.string().optional(),model:bp.optional(),tools:d.array(d.string()).optional(),dataComponents:d.array(d.string()).optional(),artifactComponents:d.array(d.string()).optional(),canTransferTo:d.array(d.string()).optional(),canDelegateTo:d.array(d.string()).optional(),type:d.enum(["internal","external"]).optional()}),d.object({id:d.string().optional(),name:d.string(),description:d.string().optional(),type:d.enum(["mcp","hosted"]),config:d.record(d.string(),d.unknown()),credentialReferenceId:d.string().optional()});let bq=d.object({id:d.string(),tenantId:d.string(),projectId:d.string(),graphId:d.string(),publicId:d.string(),keyHash:d.string(),keyPrefix:d.string(),name:d.string().optional(),lastUsedAt:d.string().optional(),expiresAt:d.string().optional(),createdAt:d.string(),updatedAt:d.string()});d.object({data:d.object({apiKey:bq,key:d.string()})}),d.object({id:d.string(),tenantId:d.string().optional(),projectId:d.string().optional(),type:d.enum(g),credentialStoreId:d.string(),retrievalParams:d.record(d.string(),d.unknown()).nullish()}),d.object({id:d.string(),name:d.string(),description:d.string().optional(),props:d.record(d.string(),d.unknown())}),d.object({id:d.string(),name:d.string(),description:d.string().optional(),summaryProps:d.record(d.string(),d.unknown()),fullProps:d.record(d.string(),d.unknown())});let br=d.object({id:d.string().optional(),name:d.string().optional(),description:d.string().optional(),type:d.string().optional(),config:d.record(d.string(),d.unknown()).optional()}),bs=d.object({id:d.string().optional(),name:d.string(),description:d.string().optional(),baseUrl:d.string(),type:d.literal("external").optional()}),bt=d.object({id:d.string().optional(),name:d.string(),description:d.string().optional(),defaultAgentId:d.string().optional()}).extend({agents:d.record(d.string(),d.union([bi,bs.extend({id:d.string()})])),contextConfig:d.optional(br),models:d.object({base:d.object({model:d.string(),providerOptions:d.record(d.string(),d.record(d.string(),d.unknown())).optional()}).optional(),structuredOutput:d.object({model:d.string(),providerOptions:d.record(d.string(),d.record(d.string(),d.unknown())).optional()}).optional(),summarizer:d.object({model:d.string(),providerOptions:d.record(d.string(),d.record(d.string(),d.unknown())).optional()}).optional()}).optional(),stopWhen:d.object({transferCountIs:d.number().min(1).max(100).optional()}).optional(),graphPrompt:d.string().max(5e3).optional(),statusUpdates:d.object({enabled:d.boolean().optional(),numEvents:d.number().min(1).max(100).optional(),timeInSeconds:d.number().min(1).max(600).optional(),prompt:d.string().max(2e3).optional(),statusComponents:d.array(d.object({type:d.string(),description:d.string().optional(),detailsSchema:d.object({type:d.literal("object"),properties:d.record(d.string(),d.any()),required:d.array(d.string()).optional()}).optional()})).optional()}).optional()});function bu(a){return a.toLowerCase().replace(/[^a-zA-Z0-9]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,255)}d.string().min(1).max(255).regex(/^[a-zA-Z0-9\-_.]+$/,{message:"ID must contain only letters, numbers, hyphens, underscores, and dots"})},83764:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"406d416c05079bf78bb44c6e7460158fda718d7e12":()=>d.bW,"600adc1b71f9bdfee13943425b8d2385a287a85287":()=>d.gL,"60a0970cd79303e7df11c9c1b3e6c331b790895f7b":()=>d.Dv,"60fc6d86ca6249ac8c11cf7d5bdfab2260101b2608":()=>d.qf,"70cb27a17aca73cd440b94058bca7cad677ea82e37":()=>d.Tg});var d=c(72025)},92478:()=>{},96107:(a,b,c)=>{Promise.resolve().then(c.bind(c,37830))}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7818,exports.ids=[7818],exports.modules={35406:(a,b,c)=>{c.d(b,{A3:()=>i,Nv:()=>q,PC:()=>j,SH:()=>f,SL:()=>o,U_:()=>n,XQ:()=>m,YL:()=>r,aR:()=>d,cZ:()=>k,qf:()=>s,we:()=>l,yR:()=>e,yZ:()=>t,zD:()=>p});let d={AI_TOOL_CALL:"ai.toolCall",CONTEXT_RESOLUTION:"context-resolver.resolve_single_fetch_definition",CONTEXT_HANDLE:"context.handle_context_resolution",AGENT_GENERATION:"agent.generate",CONTEXT_FETCHER:"context-fetcher.http-request"},e={GENERATE_TEXT:"ai.generateText.doGenerate",STREAM_TEXT:"ai.streamText.doStream"},f={SPAN_ID:"spanID",TRACE_ID:"traceID",DURATION_NANO:"durationNano",TIMESTAMP:"timestamp",HAS_ERROR:"hasError",STATUS_MESSAGE:"status_message",OTEL_STATUS_DESCRIPTION:"otel.status_description",GRAPH_ID:"graph.id",GRAPH_NAME:"graph.name",TENANT_ID:"tenant.id",PROJECT_ID:"project.id",AI_AGENT_NAME:"ai.agentName",AI_AGENT_NAME_ALT:"ai.agent.name",AI_OPERATION_ID:"ai.operationId",AI_RESPONSE_TIMESTAMP:"ai.response.timestamp",AI_RESPONSE_CONTENT:"ai.response.content",AI_RESPONSE_TEXT:"ai.response.text",AI_RESPONSE_MODEL:"ai.response.model",AI_MODEL_PROVIDER:"ai.model.provider",AI_TELEMETRY_FUNCTION_ID:"ai.telemetry.functionId",AI_MODEL_ID:"ai.model.id",AI_TOOL_CALL_NAME:"ai.toolCall.name",AI_TOOL_CALL_RESULT:"ai.toolCall.result",AI_TOOL_CALL_ARGS:"ai.toolCall.args",AI_TOOL_CALL_ID:"ai.toolCall.id",AI_TOOL_TYPE:"ai.toolType",TOOL_PURPOSE:"tool.purpose",AGENT_ID:"agent.id",AGENT_NAME:"agent.name",GEN_AI_USAGE_INPUT_TOKENS:"gen_ai.usage.input_tokens",GEN_AI_USAGE_OUTPUT_TOKENS:"gen_ai.usage.output_tokens",CONTEXT_URL:"context.url",CONTEXT_CONFIG_ID:"context.context_config_id",CONTEXT_AGENT_GRAPH_ID:"context.agent_graph_id",CONTEXT_REQUEST_KEYS:"context.request_context_keys",MESSAGE_CONTENT:"message.content",MESSAGE_TIMESTAMP:"message.timestamp",MCP_TOOL_DESCRIPTION:"mcp.tool.description",DELEGATION_FROM_AGENT_ID:"delegation.from_agent_id",DELEGATION_TO_AGENT_ID:"delegation.to_agent_id",TRANSFER_FROM_AGENT_ID:"transfer.from_agent_id",TRANSFER_TO_AGENT_ID:"transfer.to_agent_id",HTTP_URL:"http.url",HTTP_STATUS_CODE:"http.status_code",HTTP_RESPONSE_BODY_SIZE:"http.response.body_size",NAME:"name",PARENT_SPAN_ID:"parentSpanID",CONVERSATION_ID:"conversation.id"},g={STRING:"string",INT64:"int64",FLOAT64:"float64",BOOL:"bool"},h={TAG:"tag"},i={STRING_TAG:{dataType:g.STRING,type:h.TAG,isColumn:!1},STRING_TAG_COLUMN:{dataType:g.STRING,type:h.TAG,isColumn:!0},INT64_TAG:{dataType:g.INT64,type:h.TAG,isColumn:!1},INT64_TAG_COLUMN:{dataType:g.INT64,type:h.TAG,isColumn:!0},FLOAT64_TAG:{dataType:g.FLOAT64,type:h.TAG,isColumn:!1},FLOAT64_TAG_COLUMN:{dataType:g.FLOAT64,type:h.TAG,isColumn:!0},BOOL_TAG:{dataType:g.BOOL,type:h.TAG,isColumn:!1},BOOL_TAG_COLUMN:{dataType:g.BOOL,type:h.TAG,isColumn:!0}},j="unknown",k={MCP:"mcp",TRANSFER:"transfer",DELEGATION:"delegation"},l={EQUALS:"=",NOT_EQUALS:"!=",LESS_THAN:"<",GREATER_THAN:">",LESS_THAN_OR_EQUAL:"<=",GREATER_THAN_OR_EQUAL:">=",LIKE:"like",NOT_LIKE:"nlike",EXISTS:"exists",NOT_EXISTS:"nexists",AND:"AND",OR:"OR"},m={SPAN_NAMES:"spanNames",AGENT_MODEL_CALLS:"agentModelCalls",MODEL_CALLS:"modelCalls",LAST_ACTIVITY:"lastActivity",CONVERSATION_METADATA:"conversationMetadata",FILTERED_CONVERSATIONS:"filteredConversations",TOOLS:"tools",TRANSFERS:"transfers",DELEGATIONS:"delegations",AI_CALLS:"aiCalls",CONTEXT_ERRORS:"contextErrors",AGENT_GENERATION_ERRORS:"agentGenerationErrors",USER_MESSAGES:"userMessages",UNIQUE_GRAPHS:"uniqueGraphs",UNIQUE_MODELS:"uniqueModels",TOOL_CALLS:"toolCalls",CONTEXT_RESOLUTION:"contextResolution",CONTEXT_HANDLE:"contextHandle",AI_ASSISTANT_MESSAGES:"aiAssistantMessages",AI_GENERATIONS:"aiGenerations",AI_STREAMING_TEXT:"aiStreamingText",CONTEXT_FETCHERS:"contextFetchers",DURATION_SPANS:"durationSpans"},n={SUM:"sum",MAX:"max",MIN:"min",AVG:"avg",COUNT:"count"},o={ASC:"asc",DESC:"desc"},p={BUILDER:"builder",CLICKHOUSE:"clickhouse",PROMQL:"promql"},q={LIST:"list",TABLE:"table",GRAPH:"graph",VALUE:"value"},r={TRACES:"traces",METRICS:"metrics",LOGS:"logs"},s={COUNT:"count",SUM:"sum",AVG:"avg",MIN:"min",MAX:"max",NOOP:"noop"},t={STEP:60,STEP_INTERVAL:60,OFFSET:0,DISABLED:!1,HAVING:[],LEGEND:"",LIMIT_NULL:null,LIMIT_ZERO:0,LIMIT_1000:1e3,EMPTY_GROUP_BY:[]}},40367:(a,b,c)=>{c.d(b,{H:()=>p});var d=c(36532),e=c(68764),f=c(45809),g=c(35406);let h=a=>Math.floor(a/1e6),i=f.union([f.string(),f.number(),f.boolean()]),j=a=>{try{if("true"===a)return i.parse(!0);if("false"===a)return i.parse(!1);let b=(a=>/^-?\d+(\.\d+)?$/.test(a)?Number(a):a)(a);if("number"==typeof b)return i.parse(b);return i.parse(a)}catch(b){return console.warn(`Failed to parse filter value "${a}":`,b),i.parse(a)}},k=a=>parseInt(a.values?.[0]?.value??"0",10)||0,l=a=>Number(a.values?.[0]?.value??0)||0,m=(a,b)=>{let c=new Date(a);c.setHours(0,0,0,0);let d=new Date(b);d.setHours(0,0,0,0);let e=[];for(let a=new Date(c);a<=d;a.setDate(a.getDate()+1))e.push(`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`);return e};(0,e.Ay)(d.A,{retries:3,retryDelay:e.Ay.exponentialDelay});class n{async makeRequest(a){return(await d.A.post("/api/signoz",a,{timeout:3e4,headers:{"Content-Type":"application/json"}})).data}extractSeries(a,b){return a?.data?.result?.find(a=>a?.queryName===b)?.series??[]}async getConversationStats(a,b,c,d,e,f,i){try{let j=this.buildCombinedPayload(a,b,c,d,i),k=await this.makeRequest(j),m=this.extractSeries(k,g.XQ.TOOLS),n=this.extractSeries(k,g.XQ.TRANSFERS),o=this.extractSeries(k,g.XQ.DELEGATIONS),p=this.extractSeries(k,g.XQ.AI_CALLS),q=this.extractSeries(k,g.XQ.LAST_ACTIVITY),r=this.extractSeries(k,g.XQ.CONVERSATION_METADATA),s=this.extractSeries(k,g.XQ.CONTEXT_ERRORS),t=this.extractSeries(k,g.XQ.AGENT_GENERATION_ERRORS),u=this.extractSeries(k,g.XQ.USER_MESSAGES),v=new Map;for(let a of r){let b=a.labels?.[g.SH.CONVERSATION_ID];b&&v.set(b,{tenantId:a.labels?.[g.SH.TENANT_ID]??g.PC,graphId:a.labels?.[g.SH.GRAPH_ID]??g.PC,graphName:a.labels?.[g.SH.GRAPH_NAME]??g.PC})}let w=new Map;for(let a of q){let b=a.labels?.[g.SH.CONVERSATION_ID];b&&w.set(b,l(a))}let x=new Map,y=new Map;for(let a of u){let b=a.labels?.[g.SH.CONVERSATION_ID],c=a.labels?.[g.SH.MESSAGE_CONTENT],d=l(a);b&&c&&(y.get(b)??y.set(b,[]).get(b))?.push({t:d,c:c})}for(let[a,b]of y){b.sort((a,b)=>a.t-b.t);let c=b[0];if(c){let b=c.c.length>100?`${c.c.slice(0,100)}...`:c.c;x.set(a,{content:b,timestamp:h(c.t)})}}let z=this.toConversationStats(m,n,o,p,v,s,t,x);if((c?.spanName||c?.attributes?.length)&&(z=await this.applySpanFilters(z,a,b,c,d)),f?.trim()){let a=f.toLowerCase().trim();z=z.filter(b=>b.firstUserMessage?.toLowerCase().includes(a)||b.conversationId.toLowerCase().includes(a)||b.graphId.toLowerCase().includes(a))}if(z.sort((a,b)=>((a=0,b=0)=>b-a)(w.get(a.conversationId),w.get(b.conversationId))),!e)return z;let{page:A,limit:B}=e,C=z.length,D=Math.ceil(C/B),E=(A-1)*B;return{data:z.slice(E,E+B),pagination:{page:A,limit:B,total:C,totalPages:D,hasNextPage:A<D,hasPreviousPage:A>1}}}catch(a){return console.error("getConversationStats error:",a),[]}}async getAICallsByGraph(a,b,c){try{let d=await this.makeRequest(this.buildCombinedPayload(a,b,void 0,c)),e=this.extractSeries(d,g.XQ.AI_CALLS),f=new Map;for(let a of e){let b=a.labels?.[g.SH.GRAPH_ID]||g.PC,c=k(a);c&&f.set(b,(f.get(b)||0)+c)}return[...f].map(([a,b])=>({graphId:a,totalCalls:b})).sort((a,b)=>b.totalCalls-a.totalCalls)}catch(a){return console.error("getAICallsByGraph error:",a),[]}}async getAICallsByAgent(a,b,c,d,e){try{let f=await this.makeRequest(this.buildAgentModelBreakdownPayload(a,b,e)),h=this.extractSeries(f,"agentModelCalls"),i=new Map;for(let a of h){let b=a.labels?.[g.SH.AI_TELEMETRY_FUNCTION_ID]||g.PC,e=a.labels?.[g.SH.GRAPH_ID]||g.PC,f=a.labels?.[g.SH.AI_MODEL_ID]||g.PC,h=k(a);if(!h||c&&"all"!==c&&e!==c||d&&"all"!==d&&f!==d)continue;let j=`${b}::${e}::${f}`,l=i.get(j)||{agentId:b,graphId:e,modelId:f,totalCalls:0};l.totalCalls+=h,i.set(j,l)}return[...i.values()].sort((a,b)=>b.totalCalls-a.totalCalls)}catch(a){return console.error("getAICallsByAgent error:",a),[]}}async getAICallsByModel(a,b,c,d){try{let e=await this.makeRequest(this.buildModelBreakdownPayload(a,b,d)),f=this.extractSeries(e,"modelCalls"),h=new Map;for(let a of f){let b=a.labels?.[g.SH.AI_MODEL_ID]||g.PC,d=a.labels?.[g.SH.GRAPH_ID]||g.PC,e=k(a);e&&(c&&"all"!==c&&d!==c||h.set(b,(h.get(b)||0)+e))}return[...h].map(([a,b])=>({modelId:a,totalCalls:b})).sort((a,b)=>b.totalCalls-a.totalCalls)}catch(a){return console.error("getAICallsByModel error:",a),[]}}async getUniqueGraphs(a,b,c){try{let d=await this.makeRequest(this.buildUniqueGraphsPayload(a,b,c)),e=this.extractSeries(d,"uniqueGraphs").map(a=>a.labels?.[g.SH.GRAPH_ID]).filter(a=>!!a&&a!==g.PC).sort();return[...new Set(e)]}catch(a){return console.error("getUniqueGraphs error:",a),[]}}async getUniqueModels(a,b,c){try{let d=await this.makeRequest(this.buildUniqueModelsPayload(a,b,c)),e=this.extractSeries(d,"uniqueModels").map(a=>a.labels?.[g.SH.AI_MODEL_ID]).filter(a=>!!a&&a!==g.PC).sort();return[...new Set(e)]}catch(a){return console.error("getUniqueModels error:",a),[]}}async getConversationsPerDay(a,b,c,d){try{let e=await this.makeRequest(this.buildConversationMetadataPayload(a,b,c,d)),f=this.extractSeries(e,"conversationMetadata").length?this.extractSeries(await this.makeRequest(this.buildConversationActivityPayload(a,b,c,d)),"lastActivity"):[],g=new Map;for(let a of f){let b=h(l(a));if(!b)continue;let c=new Date(b),d=`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`;g.set(d,(g.get(d)||0)+1)}return m(a,b).map(a=>({date:a,count:g.get(a)||0}))}catch(c){return console.error("getConversationsPerDay error:",c),m(a,b).map(a=>({date:a,count:0}))}}async getAggregateStats(a,b,c,d,e){try{let f=await this.makeRequest(this.buildCombinedPayload(a,b,c,d,e)),h=this.extractSeries(f,"tools"),i=this.extractSeries(f,"transfers"),j=this.extractSeries(f,"delegations"),k=this.extractSeries(f,"aiCalls"),l=this.extractSeries(f,"conversationMetadata"),m=this.extractSeries(f,"contextErrors"),n=this.extractSeries(f,"agentGenerationErrors"),o=new Map;for(let a of l){let b=a.labels?.[g.SH.CONVERSATION_ID];b&&o.set(b,{tenantId:a.labels?.[g.SH.TENANT_ID]??g.PC,graphId:a.labels?.[g.SH.GRAPH_ID]??g.PC,graphName:a.labels?.[g.SH.GRAPH_NAME]??g.PC})}let p=this.toConversationStats(h,i,j,k,o,m,n,new Map);return(c?.spanName||c?.attributes?.length)&&(p=await this.applySpanFilters(p,a,b,c,d)),{totalToolCalls:p.reduce((a,b)=>a+b.totalToolCalls,0),totalTransfers:p.reduce((a,b)=>a+b.totalTransfers,0),totalDelegations:p.reduce((a,b)=>a+b.totalDelegations,0),totalConversations:p.length,totalAICalls:p.reduce((a,b)=>a+b.totalAICalls,0)}}catch(a){return console.error("getAggregateStats error:",a),{totalToolCalls:0,totalTransfers:0,totalDelegations:0,totalConversations:0,totalAICalls:0}}}async getAvailableSpanNames(a,b,c,d){try{let e=[{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EXISTS,value:""}];c&&"all"!==c&&e.push({key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}),d&&e.push({key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d});let f={start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.LIST,builderQueries:{spanNames:{dataSource:g.YL.TRACES,queryName:g.XQ.SPAN_NAMES,aggregateOperator:g.qf.NOOP,aggregateAttribute:{},filters:{op:g.we.AND,items:e},selectColumns:[{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN}],expression:g.XQ.SPAN_NAMES,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,stepInterval:g.yZ.STEP_INTERVAL,limit:g.yZ.LIMIT_1000,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],groupBy:g.yZ.EMPTY_GROUP_BY,offset:g.yZ.OFFSET}}},dataSource:g.YL.TRACES,projectId:d},h=await this.makeRequest(f),i=h?.data?.result?.find(a=>a?.queryName==="spanNames")?.list??[],j=new Set;for(let a of i){let b=a?.data?.name??a?.name;b&&j.add(b)}return[...j].sort()}catch(a){return console.error("getAvailableSpanNames error:",a),[]}}toConversationStats(a,b,c,d,e,f,h,i){let j=new Map,l=a=>{let b=j.get(a);if(b)return b;let c={totalToolCalls:0,toolsUsed:new Map,transfers:new Map,totalTransfers:0,delegations:new Map,totalDelegations:0,totalAICalls:0,totalErrors:0};return j.set(a,c),c};for(let b of a){let a=b.labels?.[g.SH.CONVERSATION_ID];if(!a)continue;let c=b.labels?.[g.SH.AI_TOOL_CALL_NAME];if(!c)continue;let d=k(b);if(!d)continue;let e=b.labels?.[g.SH.MCP_TOOL_DESCRIPTION]||"",f=l(a);f.totalToolCalls+=d;let h=f.toolsUsed.get(c)||{name:c,calls:0,description:e};h.calls+=d,f.toolsUsed.set(c,h)}for(let a of b){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=a.labels?.[g.SH.TRANSFER_FROM_AGENT_ID],d=a.labels?.[g.SH.TRANSFER_TO_AGENT_ID],e=k(a);if(!c||!d||!e)continue;let f=l(b);f.totalTransfers+=e;let h=`${c}→${d}`,i=f.transfers.get(h)||{from:c,to:d,count:0};i.count+=e,f.transfers.set(h,i)}for(let a of c){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=a.labels?.[g.SH.DELEGATION_FROM_AGENT_ID],d=a.labels?.[g.SH.DELEGATION_TO_AGENT_ID],e=k(a);if(!c||!d||!e)continue;let f=l(b);f.totalDelegations+=e;let h=`${c}→${d}`,i=f.delegations.get(h)||{from:c,to:d,count:0};i.count+=e,f.delegations.set(h,i)}for(let a of d){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=k(a);c&&(l(b).totalAICalls+=c)}for(let a of[...f,...h]){let b=a.labels?.[g.SH.CONVERSATION_ID];if(!b)continue;let c=k(a);c&&(l(b).totalErrors+=c)}let m=[];for(let a of new Set([...j.keys(),...e.keys()])){let b=j.get(a)||l(a),c=e.get(a)||{tenantId:g.PC,graphId:g.PC,graphName:g.PC};m.push({conversationId:a,tenantId:c.tenantId,graphId:c.graphId,graphName:c.graphName||"",totalToolCalls:b.totalToolCalls,toolsUsed:[...b.toolsUsed.values()],transfers:[...b.transfers.values()],totalTransfers:b.totalTransfers,delegations:[...b.delegations.values()],totalDelegations:b.totalDelegations,totalAICalls:b.totalAICalls,totalErrors:b.totalErrors,hasErrors:b.totalErrors>0,firstUserMessage:i.get(a)?.content,startTime:i.get(a)?.timestamp})}return m}async applySpanFilters(a,b,c,d,e){try{let f=await this.makeRequest(this.buildFilteredConversationsPayload(b,c,d,e)),h=this.extractSeries(f,"filteredConversations"),i=new Set(h.map(a=>a.labels?.[g.SH.CONVERSATION_ID]).filter(Boolean));return a.filter(a=>i.has(a.conversationId))}catch(b){return console.error("applySpanFilters error:",b),a}}buildAgentModelBreakdownPayload(a,b,c){return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{agentModelCalls:{dataSource:g.YL.TRACES,queryName:g.XQ.AGENT_MODEL_CALLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:[{key:{key:g.SH.AI_OPERATION_ID,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.yR.GENERATE_TEXT},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]]},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.AI_TELEMETRY_FUNCTION_ID,...g.A3.STRING_TAG_COLUMN},{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG_COLUMN}],expression:g.XQ.AGENT_MODEL_CALLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:c}}buildModelBreakdownPayload(a,b,c){return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{modelCalls:{dataSource:g.YL.TRACES,queryName:g.XQ.MODEL_CALLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:[{key:{key:g.SH.AI_OPERATION_ID,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.yR.GENERATE_TEXT},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]]},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG_COLUMN},{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG}],expression:g.XQ.MODEL_CALLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_ZERO}}},dataSource:g.YL.TRACES,projectId:c}}buildConversationActivityPayload(a,b,c,d){let e=[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c&&"all"!==c?[{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[],...d?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{lastActivity:{dataSource:g.YL.TRACES,queryName:g.XQ.LAST_ACTIVITY,aggregateOperator:g.qf.MIN,aggregateAttribute:{key:g.SH.TIMESTAMP,...g.A3.INT64_TAG_COLUMN},filters:{op:g.we.AND,items:e},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.LAST_ACTIVITY,reduceTo:g.U_.MIN,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:d}}buildConversationMetadataPayload(a,b,c,d){let e=[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},...c&&"all"!==c?[{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[],...d?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{conversationMetadata:{dataSource:g.YL.TRACES,queryName:g.XQ.CONVERSATION_METADATA,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:e},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},{key:g.SH.GRAPH_NAME,...g.A3.STRING_TAG}],expression:g.XQ.CONVERSATION_METADATA,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:d}}buildFilteredConversationsPayload(a,b,c,d){let e=[{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}];for(let a of(c.spanName&&e.push({key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:c.spanName}),c.attributes??[])){let b=a.operator??g.we.EQUALS,c=j(a.value),d="string";if("boolean"==typeof c?d="bool":"number"==typeof c&&(d=Number.isInteger(c)?"int64":"float64"),b===g.we.EXISTS||b===g.we.NOT_EXISTS){e.push({key:{key:a.key,...g.A3.STRING_TAG},op:b,value:""});continue}if(b!==g.we.LIKE&&b!==g.we.NOT_LIKE||"string"!=typeof c||c.includes("%")||(c=`%${c}%`),("int64"===d||"float64"===d)&&b===g.we.EQUALS){let b="int64"===d?g.A3.INT64_TAG:g.A3.FLOAT64_TAG;e.push({key:{key:a.key,...b},op:g.we.GREATER_THAN_OR_EQUAL,value:c}),e.push({key:{key:a.key,...b},op:g.we.LESS_THAN_OR_EQUAL,value:c})}else{let f="string"===d?g.A3.STRING_TAG:"int64"===d?g.A3.INT64_TAG:"float64"===d?g.A3.FLOAT64_TAG:g.A3.BOOL_TAG;e.push({key:{key:a.key,...f},op:b,value:c})}}return d&&e.push({key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}),{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{filteredConversations:{dataSource:g.YL.TRACES,queryName:g.XQ.FILTERED_CONVERSATIONS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:e},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.FILTERED_CONVERSATIONS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:d}}buildCombinedPayload(a,b,c,d,e){let f=a=>{let b=a;return d&&(b=[...b,{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:d}]),e&&(b=[...b,{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:e}]),b};return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{tools:{dataSource:g.YL.TRACES,queryName:g.XQ.TOOLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.MCP}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.AI_TOOL_CALL_NAME,...g.A3.STRING_TAG}],expression:g.XQ.TOOLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},transfers:{dataSource:g.YL.TRACES,queryName:g.XQ.TRANSFERS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.TRANSFER},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.TRANSFER_FROM_AGENT_ID,...g.A3.STRING_TAG},{key:g.SH.TRANSFER_TO_AGENT_ID,...g.A3.STRING_TAG}],expression:g.XQ.TRANSFERS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},delegations:{dataSource:g.YL.TRACES,queryName:g.XQ.DELEGATIONS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AI_TOOL_CALL},{key:{key:g.SH.AI_TOOL_TYPE,...g.A3.STRING_TAG},op:g.we.EQUALS,value:g.cZ.DELEGATION},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.DELEGATION_FROM_AGENT_ID,...g.A3.STRING_TAG},{key:g.SH.DELEGATION_TO_AGENT_ID,...g.A3.STRING_TAG}],expression:g.XQ.DELEGATIONS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},conversationMetadata:{dataSource:g.YL.TRACES,queryName:g.XQ.CONVERSATION_METADATA,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.TENANT_ID,...g.A3.STRING_TAG},{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},{key:g.SH.GRAPH_NAME,...g.A3.STRING_TAG}],expression:g.XQ.CONVERSATION_METADATA,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},aiCalls:{dataSource:g.YL.TRACES,queryName:g.XQ.AI_CALLS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.AI_OPERATION_ID,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.yR.GENERATE_TEXT},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},{key:"ai.telemetry.functionId",...g.A3.STRING_TAG_COLUMN}],expression:g.XQ.AI_CALLS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},lastActivity:{dataSource:g.YL.TRACES,queryName:g.XQ.LAST_ACTIVITY,aggregateOperator:g.qf.MIN,aggregateAttribute:{key:g.SH.TIMESTAMP,...g.A3.INT64_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.LAST_ACTIVITY,reduceTo:g.U_.MIN,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},contextErrors:{dataSource:g.YL.TRACES,queryName:g.XQ.CONTEXT_ERRORS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.CONTEXT_HANDLE},{key:{key:g.SH.HAS_ERROR,...g.A3.BOOL_TAG_COLUMN},op:g.we.EQUALS,value:!0},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.CONTEXT_ERRORS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},agentGenerationErrors:{dataSource:g.YL.TRACES,queryName:g.XQ.AGENT_GENERATION_ERRORS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.NAME,...g.A3.STRING_TAG_COLUMN},op:g.we.EQUALS,value:g.aR.AGENT_GENERATION},{key:{key:g.SH.HAS_ERROR,...g.A3.BOOL_TAG_COLUMN},op:g.we.EQUALS,value:!0},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG}],expression:g.XQ.AGENT_GENERATION_ERRORS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.DESC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL},userMessages:{dataSource:g.YL.TRACES,queryName:g.XQ.USER_MESSAGES,aggregateOperator:g.qf.MIN,aggregateAttribute:{key:g.SH.TIMESTAMP,...g.A3.INT64_TAG_COLUMN},filters:{op:g.we.AND,items:f([{key:{key:g.SH.MESSAGE_CONTENT,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""}])},groupBy:[{key:g.SH.CONVERSATION_ID,...g.A3.STRING_TAG},{key:g.SH.MESSAGE_CONTENT,...g.A3.STRING_TAG}],expression:g.XQ.USER_MESSAGES,reduceTo:g.U_.MIN,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.TIMESTAMP,order:g.SL.ASC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:d}}buildUniqueGraphsPayload(a,b,c){let d=[{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.EXISTS,value:""},{key:{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG},op:g.we.NOT_EQUALS,value:g.PC},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{uniqueGraphs:{dataSource:g.YL.TRACES,queryName:g.XQ.UNIQUE_GRAPHS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:d},groupBy:[{key:g.SH.GRAPH_ID,...g.A3.STRING_TAG}],expression:g.XQ.UNIQUE_GRAPHS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.GRAPH_ID,order:g.SL.ASC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:c}}buildUniqueModelsPayload(a,b,c){let d=[{key:{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG_COLUMN},op:g.we.EXISTS,value:""},{key:{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG_COLUMN},op:g.we.NOT_EQUALS,value:g.PC},...c?[{key:{key:g.SH.PROJECT_ID,...g.A3.STRING_TAG},op:g.we.EQUALS,value:c}]:[]];return{start:a,end:b,step:g.yZ.STEP,variables:{},compositeQuery:{queryType:g.zD.BUILDER,panelType:g.Nv.TABLE,builderQueries:{uniqueModels:{dataSource:g.YL.TRACES,queryName:g.XQ.UNIQUE_MODELS,aggregateOperator:g.qf.COUNT,aggregateAttribute:{key:g.SH.SPAN_ID,...g.A3.STRING_TAG_COLUMN},filters:{op:g.we.AND,items:d},groupBy:[{key:g.SH.AI_MODEL_ID,...g.A3.STRING_TAG_COLUMN}],expression:g.XQ.UNIQUE_MODELS,reduceTo:g.U_.SUM,stepInterval:g.yZ.STEP_INTERVAL,orderBy:[{columnName:g.SH.AI_MODEL_ID,order:g.SL.ASC}],offset:g.yZ.OFFSET,disabled:g.yZ.DISABLED,having:g.yZ.HAVING,legend:g.yZ.LEGEND,limit:g.yZ.LIMIT_NULL}}},dataSource:g.YL.TRACES,projectId:c}}}let o=null;function p(){return o??=new n}},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"})})}},80615:(a,b,c)=>{c.r(b),c.d(b,{"40110e4789efbf0dab668be854d4fb15c27465d1a9":()=>d.vj,"60231aa86b03d52b623948d05b66b9671e158082e5":()=>d.Sw,"6037b86e09261784d01c81391fe68f7071b97b95ac":()=>d.xx,"60cd3cf35b4249d19980bb88ee15e748537da545db":()=>d.gA,"702bc2e797c27d932d8948966d6d0fc630912f5a2b":()=>d.vr});var d=c(54637)}};
@@ -1 +0,0 @@
1
- exports.id=9210,exports.ids=[9210],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")},23413:(a,b,c)=>{"use strict";c.d(b,{S:()=>k});var d=c(59111),e=c(71771),f=c(2856),g=c(80974),h=c(42723),i=c(67466);function j(a){return(0,d.jsxs)("div",{"data-slot":"json-editor",className:`space-y-3 relative overflow-hidden p-1 ${a.className||""}`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 absolute top-3 right-3 z-10",children:[!a.value?.trim()&&(0,d.jsx)(f.$,{type:"button",onClick:()=>{let b=(0,g.Fc)();a.onChange(b)},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",children:"Template"}),(0,d.jsx)(f.$,{type:"button",onClick:()=>{let b=a.value;if(b?.trim()){let c=(0,h.IB)(b);a.onChange(c)}},variant:"outline",size:"sm",className:"h-6 px-2 text-xs rounded-sm",disabled:!a.value?.trim(),children:"Format"})]}),(0,d.jsx)(i.i,{value:a.value||"",onChange:a.onChange,placeholder:a.placeholder,disabled:a.disabled,readOnly:a.readOnly})]})}function k({control:a,name:b,label:c="JSON Schema",placeholder:f,disabled:g,description:h,readOnly:i,isRequired:k=!1}){return(0,d.jsx)(e.u,{control:a,name:b,label:c,description:h,isRequired:k,children:a=>(0,d.jsx)(j,{placeholder:f,...a,onChange:a.onChange,readOnly:i,disabled:g})})}},23757:(a,b,c)=>{Promise.resolve().then(c.bind(c,36132))},29160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h,dynamic:()=>g});var d=c(72669),e=c(95460),f=c(54637);let g="force-dynamic";async function h({children:a,params:b}){let{tenantId:c,projectId:g}=await b;try{await (0,f.Sw)(c,g)}catch(a){(0,e.notFound)()}return(0,d.jsx)(d.Fragment,{children:a})}},35859:(a,b,c)=>{Promise.resolve().then(c.bind(c,8636))},36132:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/artifact-components/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/app/[tenantId]/projects/[projectId]/artifact-components/error.tsx","default")},37830:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(59111),e=c(437),f=c(485);c(14450);var g=c(2856);function h(){let a=(0,f.useParams)(),b=(0,f.useRouter)(),c=a.tenantId,h=a.projectId;return(0,d.jsx)("div",{className:"flex min-h-[400px] flex-col items-center justify-center p-8",children:(0,d.jsxs)("div",{className:"text-center max-w-md",children:[(0,d.jsx)("div",{className:"mb-4 flex justify-center",children:(0,d.jsx)(e.A,{className:"h-12 w-12 text-muted-foreground"})}),(0,d.jsx)("h1",{className:"text-2xl font-semibold mb-2",children:"Project Not Found"}),(0,d.jsxs)("p",{className:"text-muted-foreground mb-6",children:['The project "',h,"\" does not exist or you don't have access to it."]}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground mb-6",children:"Redirecting to projects list in 3 seconds..."}),(0,d.jsx)(g.$,{onClick:()=>b.push(`/${c}/projects`),variant:"default",children:"Go to Projects List"})]})})}},38127:(a,b,c)=>{"use strict";c.d(b,{ArtifactComponentForm:()=>y});var d=c(59111),e=c(59099),f=c(485),g=c(94150),h=c(68156),i=c(17130),j=c(16426),k=c(23413),l=c(2856),m=c(93622),n=c(35283),o=c(90147);let p=(0,o.createServerReference)("70d51ac2fba5e232f5a9b4bc5979f76a4f74db2df6",o.callServer,void 0,o.findSourceMapURL,"updateArtifactComponentAction"),q=(0,o.createServerReference)("70d6185773a371e9ee4489cb4a101fd79badcbcd61",o.callServer,void 0,o.findSourceMapURL,"createArtifactComponentAction");var r=c(42723);let s={id:"",name:"",description:"",summaryProps:"",fullProps:""};var t=c(45809),u=c(80974),v=c(62503);let w=a=>t.string().min(1,`${a} schema is required.`).transform((a,b)=>{try{let c=JSON.parse(a),d=(0,u._O)(a);if(!d.isValid){let a=d.errors[0]?.message||"Invalid JSON schema";return b.addIssue({code:t.ZodIssueCode.custom,message:a}),t.NEVER}return c}catch(a){return b.addIssue({code:t.ZodIssueCode.custom,message:(0,u.SR)(a)}),t.NEVER}}),x=t.object({id:v.f,name:t.string().min(1,"Name is required."),description:t.string().min(1,"Description is required."),summaryProps:w("Summary props").optional(),fullProps:w("Full props").optional()});function y({id:a,tenantId:b,projectId:c,initialData:o}){let t=(0,g.mN)({resolver:(0,e.u)(x),defaultValues:(a=>{if(!a)return s;let b={...a};return b.summaryProps&&(b.summaryProps=(0,r.S_)(b.summaryProps)),b.fullProps&&(b.fullProps=(0,r.S_)(b.fullProps)),b})(o)}),{isSubmitting:u}=t.formState,v=(0,f.useRouter)();(0,n.S)({form:t,nameField:"name",idField:"id",isEditing:!!a});let w=async d=>{try{let e={...d};if(a){let a=await p(b,c,e);if(!a.success)return void h.oR.error(a.error||"Failed to update artifact component");h.oR.success("Artifact component updated")}else{let a=await q(b,c,e);if(!a.success)return void h.oR.error(a.error||"Failed to create artifact component");h.oR.success("Artifact component created"),v.push(`/${b}/projects/${c}/artifact-components`)}}catch(b){console.error("Error submitting artifact component:",b);let a=b instanceof Error?b.message:"An unexpected error occurred";h.oR.error(a)}};return(0,d.jsx)(m.lV,{...t,children:(0,d.jsxs)("form",{onSubmit:t.handleSubmit(w),className:"space-y-8",children:[(0,d.jsx)(i.a,{control:t.control,name:"name",label:"Name",placeholder:"Document Artifact",isRequired:!0}),(0,d.jsx)(i.a,{control:t.control,name:"id",label:"Id",placeholder:"my-artifact-component",disabled:!!a,isRequired:!0,description:a?"":"Choose a unique identifier for this component. Using an existing id will replace that component."}),(0,d.jsx)(j.K,{control:t.control,name:"description",label:"Description",placeholder:"Structured factual information extracted from search results",className:"min-h-[80px]",isRequired:!0}),(0,d.jsx)(k.S,{control:t.control,name:"summaryProps",label:"Summary props (JSON schema)",placeholder:"Enter a valid JSON Schema...",isRequired:!0}),(0,d.jsx)(k.S,{control:t.control,name:"fullProps",label:"Full props (JSON schema)",placeholder:"Enter a valid JSON Schema...",isRequired:!0}),(0,d.jsx)(l.$,{type:"submit",disabled:u,children:"Save"})]})})}},44733:(a,b,c)=>{"use strict";c.d(b,{ArtifactComponentForm:()=>d});let d=(0,c(60241).registerClientReference)(function(){throw Error("Attempted to call ArtifactComponentForm() from the server but ArtifactComponentForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/agents/agents/agents-manage-ui/src/components/artifact-components/form/artifact-component-form.tsx","ArtifactComponentForm")},45622:()=>{},49698:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(59111),e=c(43433);function f(){return(0,d.jsx)(e.A,{description:"Something went wrong."})}},59567:(a,b,c)=>{Promise.resolve().then(c.bind(c,44733)),Promise.resolve().then(c.bind(c,97633)),Promise.resolve().then(c.bind(c,80248)),Promise.resolve().then(c.t.bind(c,93520,23))},62503:(a,b,c)=>{"use strict";c.d(b,{f:()=>d});let d=c(45809).string().min(1,"Id is required.").max(64,"Id must be less than 64 characters.").regex(/^[a-zA-Z0-9_-]+$/,"Id must contain only alphanumeric characters, underscores, and dashes. No spaces allowed.")},67815:(a,b,c)=>{Promise.resolve().then(c.bind(c,38127)),Promise.resolve().then(c.bind(c,24003)),Promise.resolve().then(c.bind(c,19603)),Promise.resolve().then(c.t.bind(c,61678,23))},71021:(a,b,c)=>{Promise.resolve().then(c.bind(c,49698))},74402:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(72669),e=c(17932),f=c(96737),g=c(39885),h=c(3687),i=c(82058);function j(){return(0,d.jsx)(e.H,{breadcrumbs:[{label:"Artifact components"}],children:(0,d.jsxs)(f.D,{children:[(0,d.jsx)(g.zY,{title:"Artifact components",description:i.lh}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3 md:gap-4",children:Array.from({length:6}).map((a,b)=>(0,d.jsx)(h.E,{className:"h-36 w-full rounded-lg"},`loading-artifact-${b}`))})]})})}},80974:(a,b,c)=>{"use strict";c.d(b,{Fc:()=>k,SR:()=>l,_O:()=>j});var d=c(7352),e=c(43381);let f=d.ZU.Object({type:d.ZU.Union([d.ZU.Literal("string"),d.ZU.Literal("number"),d.ZU.Literal("integer"),d.ZU.Literal("boolean"),d.ZU.Literal("array"),d.ZU.Literal("object"),d.ZU.Literal("null")]),description:d.ZU.String({minLength:1}),format:d.ZU.Optional(d.ZU.String()),pattern:d.ZU.Optional(d.ZU.String()),minimum:d.ZU.Optional(d.ZU.Number()),maximum:d.ZU.Optional(d.ZU.Number()),minLength:d.ZU.Optional(d.ZU.Number()),maxLength:d.ZU.Optional(d.ZU.Number()),items:d.ZU.Optional(d.ZU.Any()),properties:d.ZU.Optional(d.ZU.Any()),enum:d.ZU.Optional(d.ZU.Array(d.ZU.Any())),const:d.ZU.Optional(d.ZU.Any()),default:d.ZU.Optional(d.ZU.Any())}),g=d.ZU.Object({type:d.ZU.Literal("object"),properties:d.ZU.Record(d.ZU.String(),f),required:d.ZU.Array(d.ZU.String(),{minItems:1}),additionalProperties:d.ZU.Optional(d.ZU.Boolean()),description:d.ZU.Optional(d.ZU.String())}),h=e.gv.Compile(f),i=e.gv.Compile(g);function j(a){let b=[],{parsed:c,errors:d}=function(a){let b=[],c=null;if(!a?.trim())return{parsed:null,errors:b};try{c=JSON.parse(a)}catch(a){b.push({path:"root",message:a instanceof Error?a.message:"Invalid JSON syntax",type:"syntax"})}return{parsed:c,errors:b}}(a);if(d.length>0)return{isValid:!1,errors:d,warnings:b};if(!c)return{isValid:!0,errors:[],warnings:["Empty schema provided"]};let e=[...function(a){let b=[];return a&&"object"==typeof a?!i.Check(a)&&(a.type&&"object"===a.type||b.push({path:"type",message:'Schema must have type: "object" for LLM compatibility',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties||b.push({path:"properties",message:'Schema must have a "properties" object',type:"schema"}),a.required&&Array.isArray(a.required)||b.push({path:"required",message:'Schema must have a "required" array (can be empty)',type:"llm_requirement"}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{h.Check(c)||[...h.Errors(c)].forEach(c=>{let d=c.message;"/description"===c.path?d='Each property must have a "description" for LLM compatibility':"/type"===c.path&&(d='Each property must have a valid "type"'),b.push({path:`properties.${a}${c.path}`,message:d,type:"/description"===c.path?"llm_requirement":"schema"})})})):b.push({path:"root",message:"Schema must be an object",type:"schema"}),b}(c),...function(a){let b=[];return a&&"object"==typeof a&&(a.required&&Array.isArray(a.required)&&a.properties&&a.required.forEach(c=>{a.properties[c]||b.push({path:"required",message:`Required property "${c}" must exist in properties`,type:"schema"})}),a.properties&&"object"==typeof a.properties&&Object.entries(a.properties).forEach(([a,c])=>{c.description&&"string"==typeof c.description&&0!==c.description.trim().length||b.push({path:`properties.${a}.description`,message:"Each property must have a non-empty description for LLM compatibility",type:"llm_requirement"})})),b}(c)];return{isValid:0===e.length,errors:e,warnings:b}}function k(){return JSON.stringify({type:"object",properties:{example_property:{type:"string",description:"Description of what this property represents"}},required:["example_property"]},null,2)}function l(a){if(a instanceof SyntaxError){let b=a.message.toLowerCase();return b.includes("unexpected end of json input")?"Incomplete JSON - missing closing brackets or quotes":b.includes("unexpected token")?"Invalid character in JSON - check for missing commas, quotes, or brackets":b.includes("expected property name")||b.includes("expected ':' after property name")?"Property names must be in double quotes":b.includes("duplicate keys")?"Duplicate property names are not allowed":"Invalid JSON syntax - check structure and formatting"}return"Unable to parse JSON"}},92478:()=>{},96107:(a,b,c)=>{Promise.resolve().then(c.bind(c,37830))},97870:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"406d416c05079bf78bb44c6e7460158fda718d7e12":()=>d.bW,"600adc1b71f9bdfee13943425b8d2385a287a85287":()=>d.gL,"605c11269d4513d0d2a5728dfb5eb376f246401aac":()=>p,"60a0970cd79303e7df11c9c1b3e6c331b790895f7b":()=>d.Dv,"60fc6d86ca6249ac8c11cf7d5bdfab2260101b2608":()=>d.qf,"7029cd78e979cdb129023f9911aec55aff9678ad33":()=>s,"70cb27a17aca73cd440b94058bca7cad677ea82e37":()=>d.Tg,"70d51ac2fba5e232f5a9b4bc5979f76a4f74db2df6":()=>r,"70d6185773a371e9ee4489cb4a101fd79badcbcd61":()=>q});var d=c(72025),e=c(29991);c(58415);var f=c(83248),g=c(8703),h=c(45796),i=c(33451);async function j(a,b){(0,h.M2)(a),(0,h.nt)(b);let c=await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components`);return{...c,data:c.data.map(a=>({...a,summaryProps:a.summaryProps||{},fullProps:a.fullProps||{}}))}}async function k(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c}`);return{...d.data,summaryProps:d.data.summaryProps||{},fullProps:d.data.fullProps||{}}}async function l(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components`,{method:"POST",body:JSON.stringify(c)});return{...d.data,summaryProps:d.data.summaryProps||{},fullProps:d.data.fullProps||{}}}async function m(a,b,c){(0,h.M2)(a),(0,h.nt)(b);let d=await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c.id}`,{method:"PUT",body:JSON.stringify(c)});return{...d.data,summaryProps:d.data.summaryProps||{},fullProps:d.data.fullProps||{}}}async function n(a,b,c){(0,h.M2)(a),(0,h.nt)(b),await (0,g.J)(`tenants/${a}/projects/${b}/artifact-components/${c}`,{method:"DELETE"})}(0,i.D)([j,k,l,m,n]),(0,e.A)(j,"603f73870a30234d2582547be11cf64a6017d3ab0c",null),(0,e.A)(k,"70c981ce925f7bd0242d67effb99787b897e2bf4b7",null),(0,e.A)(l,"70509e298e2e01f71700ad434b065f8f0ac23f5939",null),(0,e.A)(m,"70968b928d3501b5957f353c8c3392fe31e801857c",null),(0,e.A)(n,"7057e3ed5777e05da11d11991343826788ad6c8766",null);var o=c(36608);async function p(a,b){try{let c=await j(a,b);return{success:!0,data:c.data}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function q(a,b,c){try{let d=await l(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/artifact-components`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function r(a,b,c){try{let d=await m(a,b,c);return(0,f.revalidatePath)(`/${a}/projects/${b}/artifact-components`),(0,f.revalidatePath)(`/${a}/projects/${b}/artifact-components/${c.id}`),{success:!0,data:d}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}async function s(a,b,c){try{return await n(a,b,c),(0,f.revalidatePath)(`/${a}/projects/${b}/artifact-components`),(0,f.revalidatePath)(`/${a}/projects/${b}/artifact-components/${c}`),{success:!0}}catch(a){if(a instanceof o.h)return{success:!1,error:a.message,code:a.error.code};return{success:!1,error:a instanceof Error?a.message:"Unknown error occurred",code:"unknown_error"}}}(0,i.D)([p,q,r,s]),(0,e.A)(p,"605c11269d4513d0d2a5728dfb5eb376f246401aac",null),(0,e.A)(q,"70d6185773a371e9ee4489cb4a101fd79badcbcd61",null),(0,e.A)(r,"70d51ac2fba5e232f5a9b4bc5979f76a4f74db2df6",null),(0,e.A)(s,"7029cd78e979cdb129023f9911aec55aff9678ad33",null)}};
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3208],{30953:(e,r,t)=>{t.d(r,{Ak:()=>o});let o=(e=21)=>{let r="",t=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)r+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[e]];return r}},39475:(e,r,t)=>{t.d(r,{E:()=>d});var o=t(60098),a=t(67244),l=t(15625),s=t(52681);let n=(0,l.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 d(e){let{className:r,variant:t,asChild:l=!1,...d}=e,i=l?a.DX:"span";return(0,o.jsx)(i,{"data-slot":"badge",className:(0,s.cn)(n({variant:t}),r),...d})}},43208:(e,r,t)=>{t.d(r,{MCPServerForm:()=>T});var o=t(60098),a=t(36886),l=t(82886),s=t(30953),n=t(93137),d=t(95118),i=t(32028),c=t(23574),m=t(58514),u=t(86714),p=t(86312),b=t(897),x=t(97555);let g=(0,x.createServerReference)("700c7808d8bf5e89b0eeeac698cac22afcda56f83c",x.callServer,void 0,x.findSourceMapURL,"createMCPTool");var f=t(31184),v=t(27820),h=t(79178),y=t(39475),j=t(84661),k=t(31011);function N(e){let{control:r,name:t,label:a,availableTools:l=[],description:s,disabled:n=!1}=e,{field:{value:i,onChange:c},fieldState:{error:m}}=(0,d.as)({name:t,control:r}),b=(0,h.useMemo)(()=>"object"==typeof i&&null!==i&&"type"in i?"all"===i.type?{type:"all"}:"selective"===i.type&&Array.isArray(i.tools)?{type:"selective",tools:i.tools}:{type:"selective",tools:[]}:{type:"selective",tools:[]},[i]),x=()=>{c({type:"all"})},g=()=>{c({type:"selective",tools:[]})},N=(e,r)=>{if("all"===b.type){let t=l.map(e=>e.name).filter(r=>r!==e);c({type:"selective",tools:r?[...t,e]:t})}else c({type:"selective",tools:r?[...b.tools.filter(r=>r!==e),e]:b.tools.filter(r=>r!==e)})},C=()=>{switch(b.type){case"all":return l.length;case"selective":return b.tools.filter(e=>l.some(r=>r.name===e)).length;default:return 0}},w=C()===l.length;return(0,o.jsx)(p.zB,{control:r,name:t,render:()=>(0,o.jsxs)(p.eI,{children:[(0,o.jsxs)(p.lR,{children:[a,(0,o.jsx)(y.E,{variant:"code",className:"border-none px-2 text-[10px] text-muted-foreground",children:C()})]}),s&&(0,o.jsx)("p",{className:"text-sm text-muted-foreground",children:s}),(0,o.jsxs)("div",{className:"mt-2",children:[0===l.length&&(0,o.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"}),l.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"flex items-center gap-2 justify-between py-3 px-6 rounded-t-lg border border-b-0",children:[(0,o.jsxs)("div",{className:"text-sm",children:[C()," ",(0,o.jsxs)("span",{className:"text-gray-400 dark:text-white/40",children:["/ ",l.length," tool",1===l.length?"":"s"]})]}),w?(0,o.jsxs)(u.$,{type:"button",variant:"outline",size:"sm",onClick:g,disabled:n,children:[(0,o.jsx)(f.A,{className:"w-4 h-4 text-muted-foreground"}),"Deselect all"]}):(0,o.jsxs)(u.$,{type:"button",variant:"outline",size:"sm",onClick:x,disabled:n,children:[(0,o.jsx)(v.A,{className:"w-4 h-4 text-muted-foreground"}),"Select all"]})]}),(0,o.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:l.map(e=>{let r=(e=>{switch(b.type){case"all":return l.some(r=>r.name===e);case"selective":return b.tools.includes(e)&&l.some(r=>r.name===e);default:return!1}})(e.name);return(0,o.jsxs)("div",{className:"space-y-2 flex items-start gap-6 border-b last:border-b-0 py-4 px-6 relative",children:[(0,o.jsx)("div",{className:"flex items-center h-[22px]",children:(0,o.jsx)(j.S,{checked:r,disabled:n,className:"mb-0",onClick:()=>!n&&N(e.name,!r)})}),(0,o.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,o.jsx)(y.E,{variant:r?"primary":"code",className:"font-mono font-medium text-xs cursor-pointer transition-colors ".concat(n?"opacity-50 cursor-not-allowed":""),onClick:()=>!n&&N(e.name,!r),children:e.name}),(0,o.jsxs)(k.Tooltip,{delayDuration:800,children:[(0,o.jsx)(k.TooltipTrigger,{asChild:!0,children:(0,o.jsx)("p",{className:"text-sm text-muted-foreground line-clamp-1",children:e.description})}),(0,o.jsx)(k.TooltipContent,{side:"bottom",align:"start",children:e.description})]})]})]},e.name)})})]})]}),(0,o.jsx)(p.C5,{children:null==m?void 0:m.message})]})})}var C=t(29583);let w=C.discriminatedUnion("type",[C.object({type:C.literal("all")}),C.object({type:C.literal("selective"),tools:C.array(C.string())})]),R=C.object({name:C.string().min(1,"Name is required."),config:C.object({type:C.literal("mcp"),mcp:C.object({server:C.object({url:C.string().url("Must be a valid URL.")}),transport:C.object({type:C.nativeEnum(l.o7)}),toolsConfig:w.default({type:"all"})})}),credentialReferenceId:C.string().nullish(),imageUrl:C.string().optional()}),S={name:"",config:{type:"mcp",mcp:{server:{url:""},transport:{type:l.o7.streamableHttp},toolsConfig:{type:"all"}}},imageUrl:"",credentialReferenceId:"none"};function T(e){let{initialData:r,mode:t="create",tool:x,credentials:f,tenantId:v,projectId:h}=e,y=(0,n.useRouter)(),j=(0,d.mN)({resolver:(0,a.u)(R),defaultValues:{...S,...r}}),{isSubmitting:k}=j.formState,C=async e=>{try{let r={...e,credentialReferenceId:"none"===e.credentialReferenceId?null:e.credentialReferenceId,config:{...e.config,mcp:{...e.config.mcp,activeTools:(e=>{var r;if("all"===e.type)return;let t=(null==x||null==(r=x.availableTools)?void 0:r.map(e=>e.name))||[];return e.tools.filter(e=>t.includes(e))})(e.config.mcp.toolsConfig)}}};if("update"===t&&x)await (0,b.Y)(v,h,x.id,r),i.oR.success("MCP server updated successfully"),y.push("/".concat(v,"/projects/").concat(h,"/mcp-servers/").concat(x.id));else{let e=await g(v,h,{...r,id:(0,s.Ak)()});i.oR.success("MCP server created successfully"),y.push("/".concat(v,"/projects/").concat(h,"/mcp-servers/").concat(e.id))}}catch(e){console.error("Failed to ".concat(t," MCP tool:"),e),i.oR.error("Failed to ".concat(t," MCP server. Please try again."))}};return(0,o.jsx)(p.lV,{...j,children:(0,o.jsxs)("form",{onSubmit:j.handleSubmit(C),className:"space-y-8",children:[(0,o.jsx)(c.a,{control:j.control,name:"name",label:"Name",placeholder:"MCP server",isRequired:!0}),(0,o.jsx)(c.a,{control:j.control,name:"config.mcp.server.url",label:"URL",placeholder:"https://api.example.com/mcp",isRequired:!0}),(0,o.jsx)(m.U,{control:j.control,selectTriggerClassName:"w-full",name:"config.mcp.transport.type",label:"Transport type",placeholder:"Select transport type",options:[{value:l.o7.streamableHttp,label:"Streamable HTTP"},{value:l.o7.sse,label:"Server-Sent Events (SSE)"}]}),(0,o.jsx)(c.a,{control:j.control,name:"imageUrl",label:"Image URL (optional)",placeholder:"https://example.com/icon.png or data:image/png;base64,..."}),(0,o.jsx)(m.U,{control:j.control,selectTriggerClassName:"w-full",name:"credentialReferenceId",label:"Credential",placeholder:"Select a credential",options:[{value:"none",label:"No Authentication"},...f.map(e=>({value:e.id,label:e.id}))]}),"update"===t&&(0,o.jsx)(N,{control:j.control,name:"config.mcp.toolsConfig",label:"Tools",availableTools:(null==x?void 0:x.availableTools)||[],description:"Select which tools should be enabled for this MCP server"}),(0,o.jsx)(u.$,{type:"submit",disabled:k,children:"update"===t?"Save":"Create"})]})})}}}]);