@exulu/frontend 1.10.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/.next/BUILD_ID +1 -1
  2. package/dist/.next/app-build-manifest.json +163 -160
  3. package/dist/.next/app-path-routes-manifest.json +1 -1
  4. package/dist/.next/build-manifest.json +2 -2
  5. package/dist/.next/prerender-manifest.json +1 -1
  6. package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
  7. package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
  8. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +1 -1
  9. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
  10. package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
  11. package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
  12. package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
  13. package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
  14. package/dist/.next/server/app/(application)/data/[[...query]]/page.js +2 -2
  15. package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
  16. package/dist/.next/server/app/(application)/evals/[id]/page.js +1 -1
  17. package/dist/.next/server/app/(application)/evals/[id]/page.js.nft.json +1 -1
  18. package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
  19. package/dist/.next/server/app/(application)/evals/cases/page.js +1 -1
  20. package/dist/.next/server/app/(application)/evals/cases/page.js.nft.json +1 -1
  21. package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
  22. package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
  23. package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
  24. package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
  25. package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
  26. package/dist/.next/server/app/(application)/projects/[project]/page.js +1 -1
  27. package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
  28. package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
  29. package/dist/.next/server/app/(application)/prompts/page_client-reference-manifest.js +1 -1
  30. package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
  31. package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
  32. package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
  33. package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
  34. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
  35. package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
  36. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
  37. package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
  38. package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
  39. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  40. package/dist/.next/server/app/_not-found.html +1 -1
  41. package/dist/.next/server/app/_not-found.rsc +1 -1
  42. package/dist/.next/server/app-paths-manifest.json +5 -5
  43. package/dist/.next/server/chunks/2270.js +145 -132
  44. package/dist/.next/server/chunks/{5084.js → 2587.js} +1 -1
  45. package/dist/.next/server/chunks/3503.js +1 -1
  46. package/dist/.next/server/chunks/5485.js +1 -1
  47. package/dist/.next/server/chunks/5974.js +1 -1
  48. package/dist/.next/server/chunks/7944.js +1 -1
  49. package/dist/.next/server/chunks/8286.js +1 -1
  50. package/dist/.next/server/middleware-manifest.json +5 -5
  51. package/dist/.next/server/pages/404.html +1 -1
  52. package/dist/.next/server/pages/500.html +1 -1
  53. package/dist/.next/server/server-reference-manifest.json +1 -1
  54. package/dist/.next/static/chunks/1707-06e693c4a709c147.js +2 -0
  55. package/dist/.next/static/chunks/1707-06e693c4a709c147.js.map +1 -0
  56. package/dist/.next/static/chunks/{1957-cf44b1d31a9c7d5c.js → 1957-34f17de1e14e45de.js} +1 -1
  57. package/dist/.next/static/chunks/{1957-cf44b1d31a9c7d5c.js.map → 1957-34f17de1e14e45de.js.map} +1 -1
  58. package/dist/.next/static/chunks/{2293-48a95904b834eccc.js → 2293-592e22dde70d632b.js} +1 -1
  59. package/dist/.next/static/chunks/{2293-48a95904b834eccc.js.map → 2293-592e22dde70d632b.js.map} +1 -1
  60. package/dist/.next/static/chunks/2534-3dd7a9fabfbdb9d8.js +2 -0
  61. package/dist/.next/static/chunks/2534-3dd7a9fabfbdb9d8.js.map +1 -0
  62. package/dist/.next/static/chunks/2823-324b1cd8f15ff9c5.js +2 -0
  63. package/dist/.next/static/chunks/2823-324b1cd8f15ff9c5.js.map +1 -0
  64. package/dist/.next/static/chunks/3246-1812de142455a0ac.js +2 -0
  65. package/dist/.next/static/chunks/3246-1812de142455a0ac.js.map +1 -0
  66. package/dist/.next/static/chunks/{3750-e3d1b2cccd265190.js → 3750-d0ae5d73288be8de.js} +2 -2
  67. package/dist/.next/static/chunks/3750-d0ae5d73288be8de.js.map +1 -0
  68. package/dist/.next/static/chunks/{3832-d7782d6a2771ae6c.js → 3832-0b8edbcc671f4cc0.js} +2 -2
  69. package/dist/.next/static/chunks/3832-0b8edbcc671f4cc0.js.map +1 -0
  70. package/dist/.next/static/chunks/{4386-45b79e656a244d8a.js → 4386-21ac377a719ebdfa.js} +1 -1
  71. package/dist/.next/static/chunks/{4386-45b79e656a244d8a.js.map → 4386-21ac377a719ebdfa.js.map} +1 -1
  72. package/dist/.next/static/chunks/4612-da512770f949561a.js +2 -0
  73. package/dist/.next/static/chunks/4612-da512770f949561a.js.map +1 -0
  74. package/dist/.next/static/chunks/{5825-efd4db1da512bd7f.js → 4760-d5ceb992b68e35ca.js} +2 -2
  75. package/dist/.next/static/chunks/4760-d5ceb992b68e35ca.js.map +1 -0
  76. package/dist/.next/static/chunks/{6367-59655a85d75e19be.js → 6367-aa5020cbea5354e2.js} +1 -1
  77. package/dist/.next/static/chunks/{6367-59655a85d75e19be.js.map → 6367-aa5020cbea5354e2.js.map} +1 -1
  78. package/dist/.next/static/chunks/6373-3eee0b6c8b8fd459.js +2 -0
  79. package/dist/.next/static/chunks/6373-3eee0b6c8b8fd459.js.map +1 -0
  80. package/dist/.next/static/chunks/{8030-9c926ea4dfd3a54e.js → 8030-5d38a3f1a4ad44cb.js} +1 -1
  81. package/dist/.next/static/chunks/{8030-9c926ea4dfd3a54e.js.map → 8030-5d38a3f1a4ad44cb.js.map} +1 -1
  82. package/dist/.next/static/chunks/9105-143f12397a76a332.js +2 -0
  83. package/dist/.next/static/chunks/9105-143f12397a76a332.js.map +1 -0
  84. package/dist/.next/static/chunks/9877-378934ae38c6760c.js +2 -0
  85. package/dist/.next/static/chunks/9877-378934ae38c6760c.js.map +1 -0
  86. package/dist/.next/static/chunks/{9953-95900a236271a222.js → 9953-02d5b52553a5c573.js} +2 -2
  87. package/dist/.next/static/chunks/{9953-95900a236271a222.js.map → 9953-02d5b52553a5c573.js.map} +1 -1
  88. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/{page-e4a4693953329671.js → page-37918149a8e909b0.js} +2 -2
  89. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/{page-e4a4693953329671.js.map → page-37918149a8e909b0.js.map} +1 -1
  90. package/dist/.next/static/chunks/app/(application)/agents/{page-b77c21a993c55901.js → page-9cff3b35b042d46a.js} +1 -1
  91. package/dist/.next/static/chunks/app/(application)/agents/{page-b77c21a993c55901.js.map → page-9cff3b35b042d46a.js.map} +1 -1
  92. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-53a99d8df53380c7.js +2 -0
  93. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-53a99d8df53380c7.js.map +1 -0
  94. package/dist/.next/static/chunks/app/(application)/chat/{layout-093baa26f89338bc.js → layout-ba702af6bb56baa2.js} +1 -1
  95. package/dist/.next/static/chunks/app/(application)/chat/{layout-093baa26f89338bc.js.map → layout-ba702af6bb56baa2.js.map} +1 -1
  96. package/dist/.next/static/chunks/app/(application)/chat/{page-8a1fcfb68cf9c8c0.js → page-8b00a98d285829b1.js} +1 -1
  97. package/dist/.next/static/chunks/app/(application)/chat/{page-8a1fcfb68cf9c8c0.js.map → page-8b00a98d285829b1.js.map} +1 -1
  98. package/dist/.next/static/chunks/app/(application)/configuration/{page-f315ede6d66922e6.js → page-1e978e117d5086a1.js} +1 -1
  99. package/dist/.next/static/chunks/app/(application)/configuration/{page-f315ede6d66922e6.js.map → page-1e978e117d5086a1.js.map} +1 -1
  100. package/dist/.next/static/chunks/app/(application)/dashboard/{page-4a1956febf5235b6.js → page-c54b4bc8d0ac4ac8.js} +1 -1
  101. package/dist/.next/static/chunks/app/(application)/dashboard/{page-4a1956febf5235b6.js.map → page-c54b4bc8d0ac4ac8.js.map} +1 -1
  102. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/{layout-0c7c1b0e1713bf60.js → layout-dfdb5c1cdc7ddefc.js} +2 -2
  103. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/{layout-0c7c1b0e1713bf60.js.map → layout-dfdb5c1cdc7ddefc.js.map} +1 -1
  104. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-faaee5fe82b45966.js +2 -0
  105. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-faaee5fe82b45966.js.map +1 -0
  106. package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-a7728cf9b0524489.js → page-c956d9892676aa4f.js} +2 -2
  107. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-c956d9892676aa4f.js.map +1 -0
  108. package/dist/.next/static/chunks/app/(application)/evals/cases/page-6b4dde82376e9aac.js +2 -0
  109. package/dist/.next/static/chunks/app/(application)/evals/cases/page-6b4dde82376e9aac.js.map +1 -0
  110. package/dist/.next/static/chunks/app/(application)/evals/{page-8b38d8d29f275704.js → page-944bfc4f0a001e4c.js} +1 -1
  111. package/dist/.next/static/chunks/app/(application)/evals/page-944bfc4f0a001e4c.js.map +1 -0
  112. package/dist/.next/static/chunks/app/(application)/explorer/page-07d67145bb176711.js +2 -0
  113. package/dist/.next/static/chunks/app/(application)/explorer/page-07d67145bb176711.js.map +1 -0
  114. package/dist/.next/static/chunks/app/(application)/keys/{page-afe59c91cc347208.js → page-6c0cd9ef20cd1461.js} +2 -2
  115. package/dist/.next/static/chunks/app/(application)/keys/{page-afe59c91cc347208.js.map → page-6c0cd9ef20cd1461.js.map} +1 -1
  116. package/dist/.next/static/chunks/app/(application)/projects/[project]/{page-f04fd5291a1ef7b1.js → page-5e2be54e76b8509c.js} +2 -2
  117. package/dist/.next/static/chunks/app/(application)/projects/[project]/{page-f04fd5291a1ef7b1.js.map → page-5e2be54e76b8509c.js.map} +1 -1
  118. package/dist/.next/static/chunks/app/(application)/projects/{layout-a8e1830ef3faafb9.js → layout-f2e0f42a08c96bb8.js} +1 -1
  119. package/dist/.next/static/chunks/app/(application)/projects/{layout-a8e1830ef3faafb9.js.map → layout-f2e0f42a08c96bb8.js.map} +1 -1
  120. package/dist/.next/static/chunks/app/(application)/prompts/{page-2c500e9898447506.js → page-2c03bbe32800acc3.js} +2 -2
  121. package/dist/.next/static/chunks/app/(application)/prompts/{page-2c500e9898447506.js.map → page-2c03bbe32800acc3.js.map} +1 -1
  122. package/dist/.next/static/chunks/app/(application)/roles/{page-873911198c17d9a7.js → page-b977b5c658004717.js} +1 -1
  123. package/dist/.next/static/chunks/app/(application)/roles/{page-873911198c17d9a7.js.map → page-b977b5c658004717.js.map} +1 -1
  124. package/dist/.next/static/chunks/app/(application)/token/{page-3acc39cb8a718331.js → page-08596ece49a811b9.js} +2 -2
  125. package/dist/.next/static/chunks/app/(application)/token/page-08596ece49a811b9.js.map +1 -0
  126. package/dist/.next/static/chunks/app/(application)/users/{page-0d7f0d7e80cd1436.js → page-49212081be40aeca.js} +2 -2
  127. package/dist/.next/static/chunks/app/(application)/users/{page-0d7f0d7e80cd1436.js.map → page-49212081be40aeca.js.map} +1 -1
  128. package/dist/.next/static/chunks/app/(application)/variables/create/{page-8ebf4e3d4d17443b.js → page-9ce762918374f616.js} +1 -1
  129. package/dist/.next/static/chunks/app/(application)/variables/create/{page-8ebf4e3d4d17443b.js.map → page-9ce762918374f616.js.map} +1 -1
  130. package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-006145e82e054e72.js → page-0e2b7038546d9f7a.js} +1 -1
  131. package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-006145e82e054e72.js.map → page-0e2b7038546d9f7a.js.map} +1 -1
  132. package/dist/.next/static/chunks/app/(application)/variables/{page-51a8aeece444d388.js → page-141d5d3f735454fe.js} +1 -1
  133. package/dist/.next/static/chunks/app/(application)/variables/{page-51a8aeece444d388.js.map → page-141d5d3f735454fe.js.map} +1 -1
  134. package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-8f5cfc9565fd919a.js → page-fb1bb3ea6f7cae47.js} +1 -1
  135. package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-8f5cfc9565fd919a.js.map → page-fb1bb3ea6f7cae47.js.map} +1 -1
  136. package/dist/.next/static/chunks/app/(application)/workflows/{page-e38f9456120dab69.js → page-2b839fdbc55c297b.js} +2 -2
  137. package/dist/.next/static/chunks/app/(application)/workflows/page-2b839fdbc55c297b.js.map +1 -0
  138. package/dist/.next/static/css/0f539b50cca35462.css +4 -0
  139. package/dist/.next/static/css/0f539b50cca35462.css.map +1 -0
  140. package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
  141. package/package.json +1 -1
  142. package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js +0 -2
  143. package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js.map +0 -1
  144. package/dist/.next/static/chunks/3171-6996819b8863d41f.js +0 -2
  145. package/dist/.next/static/chunks/3171-6996819b8863d41f.js.map +0 -1
  146. package/dist/.next/static/chunks/3750-e3d1b2cccd265190.js.map +0 -1
  147. package/dist/.next/static/chunks/3832-d7782d6a2771ae6c.js.map +0 -1
  148. package/dist/.next/static/chunks/4419-b9be79d8cd46a97d.js +0 -2
  149. package/dist/.next/static/chunks/4419-b9be79d8cd46a97d.js.map +0 -1
  150. package/dist/.next/static/chunks/5110-098aa924c3108fa4.js +0 -2
  151. package/dist/.next/static/chunks/5110-098aa924c3108fa4.js.map +0 -1
  152. package/dist/.next/static/chunks/5825-efd4db1da512bd7f.js.map +0 -1
  153. package/dist/.next/static/chunks/6280-50b751f993f2fe4f.js +0 -2
  154. package/dist/.next/static/chunks/6280-50b751f993f2fe4f.js.map +0 -1
  155. package/dist/.next/static/chunks/6373-aef582adc575d3ca.js +0 -2
  156. package/dist/.next/static/chunks/6373-aef582adc575d3ca.js.map +0 -1
  157. package/dist/.next/static/chunks/9105-d8ff41060f7ffc85.js +0 -2
  158. package/dist/.next/static/chunks/9105-d8ff41060f7ffc85.js.map +0 -1
  159. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-d59534ca19eee51f.js +0 -2
  160. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-d59534ca19eee51f.js.map +0 -1
  161. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-7db6bfbf02606136.js +0 -2
  162. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-7db6bfbf02606136.js.map +0 -1
  163. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-a7728cf9b0524489.js.map +0 -1
  164. package/dist/.next/static/chunks/app/(application)/evals/cases/page-827f50c6d1f150d0.js +0 -2
  165. package/dist/.next/static/chunks/app/(application)/evals/cases/page-827f50c6d1f150d0.js.map +0 -1
  166. package/dist/.next/static/chunks/app/(application)/evals/page-8b38d8d29f275704.js.map +0 -1
  167. package/dist/.next/static/chunks/app/(application)/explorer/page-e6b1c034c07776e2.js +0 -2
  168. package/dist/.next/static/chunks/app/(application)/explorer/page-e6b1c034c07776e2.js.map +0 -1
  169. package/dist/.next/static/chunks/app/(application)/token/page-3acc39cb8a718331.js.map +0 -1
  170. package/dist/.next/static/chunks/app/(application)/workflows/page-e38f9456120dab69.js.map +0 -1
  171. package/dist/.next/static/css/9c08ae5d990a6b14.css +0 -4
  172. package/dist/.next/static/css/9c08ae5d990a6b14.css.map +0 -1
  173. /package/dist/.next/static/{3j63p6b3zZZB_v1Hn8Mxp → exslB-IPXi_veOKFA4L1Z}/_buildManifest.js +0 -0
  174. /package/dist/.next/static/{3j63p6b3zZZB_v1Hn8Mxp → exslB-IPXi_veOKFA4L1Z}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"static/chunks/1957-cf44b1d31a9c7d5c.js","mappings":"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","sources":["webpack://_N_E/./components/save-workflow-modal.tsx","webpack://_N_E/./components/ui/loading.tsx"],"sourcesContent":["\"use client\"\n\nimport React, { useState, useCallback, useContext, useMemo } from 'react'\nimport type { UIMessage as Message } from 'ai'\nimport { useMutation } from '@apollo/client'\nimport { UserContext } from '@/app/(application)/authenticated'\nimport { CREATE_WORKFLOW_TEMPLATE, UPDATE_WORKFLOW_TEMPLATE } from '@/queries/queries'\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Textarea } from '@/components/ui/textarea'\nimport { Label } from '@/components/ui/label'\nimport { Trash2, Edit2, ChevronDown } from 'lucide-react'\nimport { useToast } from '@/components/ui/use-toast'\nimport { cn } from '@/lib/utils'\nimport { RBACControl } from './rbac'\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'\nimport { Response } from '@/components/ai-elements/response';\n\ninterface WorkflowVariable {\n name: string\n description?: string\n type: 'string'\n required: boolean\n defaultValue?: string\n}\n\ninterface WorkflowStep {\n id: string\n type: 'user' | 'assistant' | 'tool'\n content?: string\n contentExample?: string\n toolName?: string\n variablesUsed?: string[]\n}\n\ninterface WorkflowTemplate {\n id: string\n name: string\n description?: string\n rights_mode?: 'private' | 'users' | 'roles' | 'public' /* | 'projects' */\n RBAC?: {\n users?: Array<{ id: number; rights: 'read' | 'write' }>\n roles?: Array<{ id: string; rights: 'read' | 'write' }>\n // projects?: Array<{ id: string; rights: 'read' | 'write' }>\n }\n variables?: WorkflowVariable[]\n steps_json?: WorkflowStep[]\n}\n\ninterface SaveWorkflowModalProps {\n isOpen: boolean\n onClose: () => void\n messages: Message[]\n sessionTitle?: string\n existingWorkflow?: WorkflowTemplate\n isReadOnly?: boolean\n}\n\nexport function SaveWorkflowModal({ isOpen, onClose, messages, sessionTitle, existingWorkflow, isReadOnly = false }: SaveWorkflowModalProps) {\n const { user } = useContext(UserContext)\n const { toast } = useToast()\n const [rbac, setRbac] = useState({\n rights_mode: existingWorkflow?.rights_mode || 'private',\n users: existingWorkflow?.RBAC?.users || [],\n roles: existingWorkflow?.RBAC?.roles || [],\n // projects: existingWorkflow?.RBAC?.projects || []\n })\n const isEditing = Boolean(existingWorkflow)\n\n // Form state\n const [workflowName, setWorkflowName] = useState(existingWorkflow?.name || '')\n const [workflowDescription, setWorkflowDescription] = useState(existingWorkflow?.description || '')\n const [variables, setVariables] = useState<WorkflowVariable[]>(existingWorkflow?.variables || [])\n const [steps, setSteps] = useState<WorkflowStep[]>(existingWorkflow?.steps_json || [])\n const [isCreating, setIsCreating] = useState(false)\n const [activeTab, setActiveTab] = useState('setup')\n const [showAdvanced, setShowAdvanced] = useState(false)\n const [editingVariable, setEditingVariable] = useState<string | null>(null)\n const [editingValue, setEditingValue] = useState('')\n const [createWorkflowTemplate] = useMutation(CREATE_WORKFLOW_TEMPLATE)\n const [updateWorkflowTemplate] = useMutation(UPDATE_WORKFLOW_TEMPLATE)\n\n // Initialize steps from messages\n React.useEffect(() => {\n if (messages.length > 0) {\n const transformedSteps: WorkflowStep[] = []\n\n messages.forEach((message, index) => {\n const messageContent = (message as any).content || (message.parts ? message.parts.filter(p => p.type === 'text').map((p: any) => p.text).join('\\n') : '')\n\n if (message.role === 'user') {\n transformedSteps.push({\n id: `step_${index + 1}`,\n type: 'user',\n content: messageContent,\n variablesUsed: []\n })\n } else if (message.role === 'assistant') {\n transformedSteps.push({\n id: `step_${index + 1}`,\n type: 'assistant',\n contentExample: messageContent\n })\n } else if (message.role === 'system') {\n // Handle tool calls from message parts\n if (message.parts) {\n message.parts.forEach((part: any, partIndex: number) => {\n if (part.type === 'tool-invocation' && part.toolInvocation) {\n transformedSteps.push({\n id: `step_${index + 1}_${partIndex}`,\n type: 'tool',\n toolName: part.toolInvocation.toolName\n })\n }\n })\n }\n }\n })\n console.log(\"transformedSteps\", transformedSteps)\n setSteps(transformedSteps)\n setWorkflowName(sessionTitle || 'My Workflow')\n }\n }, [messages, sessionTitle, steps.length])\n\n // Variable management functions\n const createVariable = useCallback((name: string, description?: string) => {\n if (!name.match(/^[A-Za-z_][A-Za-z0-9_]{1,63}$/)) {\n toast({\n title: \"Invalid variable name\",\n description: \"Variable name must start with a letter or underscore, contain only letters, numbers, and underscores, and be 2-64 characters long.\",\n variant: \"destructive\"\n })\n return false\n }\n\n if (variables.some(v => v.name === name)) {\n return true // Variable already exists, that's fine\n }\n\n const newVariable: WorkflowVariable = {\n name,\n type: 'string',\n required: true,\n description: description || `Auto-detected variable`\n }\n\n setVariables(prev => [...prev, newVariable])\n return true\n }, [variables, toast])\n\n // Auto-detect variables from {variable_name} syntax and update content\n const handleStepContentChange = useCallback((stepId: string, content: string) => {\n // Extract all variables from the content\n const variableMatches = content.match(/\\{([A-Za-z_][A-Za-z0-9_]{1,63})\\}/g) || []\n const variableNames = variableMatches.map((match: string) => match.slice(1, -1)) // Remove { and }\n\n // Create variables that don't exist yet\n variableNames.forEach(name => {\n createVariable(name)\n })\n\n // Update the step content\n setSteps(prev => prev.map(step =>\n step.id === stepId\n ? { ...step, content, variablesUsed: variableNames }\n : step\n ))\n\n // Remove unused variables\n const allUsedVariables = new Set<string>()\n steps.forEach(step => {\n if (step.id === stepId) {\n // Use the new content for this step\n const matches = content.match(/\\{([A-Za-z_][A-Za-z0-9_]{1,63})\\}/g) || []\n matches.forEach((match: string) => allUsedVariables.add(match.slice(1, -1)))\n } else if (step.variablesUsed) {\n step.variablesUsed.forEach(varName => allUsedVariables.add(varName))\n }\n })\n\n // Remove variables that are no longer used anywhere\n setVariables(prev => prev.filter(variable => allUsedVariables.has(variable.name)))\n }, [steps, createVariable])\n\n const deleteVariable = useCallback((variableName: string) => {\n // Remove variable from variables list\n setVariables(prev => prev.filter(v => v.name !== variableName))\n\n // Remove variable references from steps\n setSteps(prev => prev.map(step => ({\n ...step,\n content: step.content?.replace(new RegExp(`\\\\{${variableName}\\\\}`, 'g'), ''),\n variablesUsed: step.variablesUsed?.filter(v => v !== variableName) || []\n })))\n }, [])\n\n const renameVariable = useCallback((oldName: string, newName: string) => {\n if (!newName.match(/^[A-Za-z_][A-Za-z0-9_]{1,63}$/)) {\n toast({\n title: \"Invalid variable name\",\n description: \"Variable name must start with a letter or underscore and contain only letters, numbers, and underscores.\",\n variant: \"destructive\"\n })\n return false\n }\n\n if (variables.some(v => v.name === newName && v.name !== oldName)) {\n toast({\n title: \"Variable name already exists\",\n description: \"A variable with this name already exists.\",\n variant: \"destructive\"\n })\n return false\n }\n\n // Update variable name\n setVariables(prev => prev.map(v =>\n v.name === oldName ? { ...v, name: newName } : v\n ))\n\n // Update variable references in steps\n setSteps(prev => prev.map(step => ({\n ...step,\n content: step.content?.replace(new RegExp(`\\\\{${oldName}\\\\}`, 'g'), `{${newName}}`),\n variablesUsed: step.variablesUsed?.map(v => v === oldName ? newName : v) || []\n })))\n\n return true\n }, [variables, toast])\n\n // Validation\n const isValid = useMemo(() => {\n if (!workflowName.trim()) return false\n if (steps.length === 0) return false\n if (rbac.rights_mode === 'users' && rbac.users?.length === 0) return false\n if (rbac.rights_mode === 'roles' && rbac.roles?.length === 0) return false\n // if (rbac.rights_mode === 'projects' && rbac.projects?.length === 0) return false\n\n // Check that all user steps have non-empty content after variable replacement\n const userSteps = steps.filter(s => s.type === 'user')\n return userSteps.every(step => {\n const content = step.content || ''\n const withoutVariables = content?.replace(/\\{[^}]+\\}/g, '')\n return withoutVariables.trim().length > 0\n })\n }, [workflowName, steps, rbac])\n\n // Save workflow\n const handleSave = useCallback(async () => {\n if (!isValid || !user?.id) return\n\n setIsCreating(true)\n\n try {\n\n const stepsJson = steps.map(step => ({\n id: step.id,\n type: step.type,\n ...(step.type === 'user' && { content: step.content }),\n ...(step.type === 'assistant' && { contentExample: step.contentExample }),\n ...(step.type === 'tool' && { toolName: step.toolName })\n }))\n\n if (isEditing && existingWorkflow) {\n await updateWorkflowTemplate({\n variables: {\n id: existingWorkflow.id,\n name: workflowName.trim(),\n description: workflowDescription.trim() || null,\n rights_mode: rbac.rights_mode,\n RBAC: {\n users: rbac.users,\n roles: rbac.roles,\n // projects: rbac.projects\n },\n variables,\n steps_json: stepsJson\n }\n })\n\n toast({\n title: \"Workflow updated!\",\n description: `\"${workflowName}\" has been updated successfully.`\n })\n } else {\n await createWorkflowTemplate({\n variables: {\n name: workflowName.trim(),\n description: workflowDescription.trim() || null,\n owner: user.id,\n rights_mode: rbac.rights_mode,\n RBAC: {\n users: rbac.users,\n roles: rbac.roles,\n // projects: rbac.projects\n },\n variables,\n steps_json: stepsJson\n }\n })\n\n toast({\n title: \"Workflow created!\",\n description: `\"${workflowName}\" has been saved as a workflow template.`\n })\n }\n\n onClose()\n } catch (error) {\n console.error('Error saving workflow:', error)\n toast({\n title: \"Error saving workflow\",\n description: \"There was an error saving your workflow. Please try again.\",\n variant: \"destructive\"\n })\n } finally {\n setIsCreating(false)\n }\n }, [isValid, user?.id, workflowName, workflowDescription, rbac, variables, steps, createWorkflowTemplate, updateWorkflowTemplate, toast, onClose, isEditing, existingWorkflow])\n\n if (!isOpen) return null\n\n return (\n <Dialog open={isOpen} onOpenChange={onClose}>\n <DialogContent className=\"max-w-4xl max-h-[92vh] flex flex-col\">\n <DialogHeader className=\"pb-4\">\n <DialogTitle className=\"text-lg\">\n {isEditing ? (isReadOnly ? 'View Workflow' : 'Edit Workflow') : 'Save as Workflow'}\n </DialogTitle>\n <DialogDescription className=\"text-sm\">\n {isEditing\n ? (isReadOnly\n ? 'View workflow details and configuration.'\n : 'Modify this workflow template. Edit your messages and use {variable_name} syntax to create variables.'\n )\n : 'Convert this conversation into a reusable workflow template. Edit your messages and use {variable_name} syntax to create variables.'\n }\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"flex-1 mt-6\">\n <Tabs value={activeTab} onValueChange={setActiveTab} className=\"h-full flex flex-col\">\n <TabsList className=\"grid w-full grid-cols-2 mb-6\">\n <TabsTrigger value=\"setup\" className=\"data-[state=active]:bg-background\">\n Setup & Permissions\n </TabsTrigger>\n <TabsTrigger value=\"workflow\" className=\"data-[state=active]:bg-background\">\n Workflow Steps & Variables\n </TabsTrigger>\n </TabsList>\n\n <div className=\"flex-1 pb-6\">\n <TabsContent value=\"setup\" className=\"mt-0 h-full\">\n <div className=\"space-y-6\">\n <div className=\"space-y-4\">\n <div>\n <Label htmlFor=\"workflow-name\" className=\"text-base font-semibold\">Workflow Name *</Label>\n <Input\n id=\"workflow-name\"\n value={workflowName}\n onChange={(e) => setWorkflowName(e.target.value)}\n placeholder=\"My Workflow\"\n className=\"mt-2 h-11\"\n readOnly={isReadOnly}\n />\n {!workflowName.trim() && (\n <p className=\"text-sm text-destructive mt-1 flex items-center\">\n <span className=\"mr-1\">⚠️</span>\n Workflow name is required\n </p>\n )}\n </div>\n\n <div>\n <Label htmlFor=\"workflow-description\" className=\"text-base font-semibold\">Description</Label>\n <Textarea\n id=\"workflow-description\"\n value={workflowDescription}\n onChange={(e) => setWorkflowDescription(e.target.value)}\n placeholder=\"Describe what this workflow does and when to use it...\"\n rows={3}\n className=\"mt-2 resize-none\"\n readOnly={isReadOnly}\n />\n </div>\n </div>\n\n <div className=\"border-t pt-6\">\n <div className=\"flex items-center justify-between mb-4\">\n <div>\n <h3 className=\"text-base font-semibold mb-1\">Sharing & Permissions</h3>\n <p className=\"text-sm text-muted-foreground\">Control who can view and edit this workflow</p>\n </div>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setShowAdvanced(!showAdvanced)}\n className=\"ml-4\"\n >\n {showAdvanced ? 'Hide Advanced' : 'Show Advanced'}\n <ChevronDown className={cn(\"w-4 h-4 ml-1 transition-transform\", showAdvanced && \"rotate-180\")} />\n </Button>\n </div>\n {showAdvanced && (\n <RBACControl\n initialRightsMode={existingWorkflow?.rights_mode}\n initialUsers={existingWorkflow?.RBAC?.users}\n initialRoles={existingWorkflow?.RBAC?.roles}\n // initialProjects={existingWorkflow?.RBAC?.projects}\n onChange={(rights_mode, users, roles) => {\n setRbac({\n rights_mode,\n users,\n roles,\n // projects\n })\n }}\n />\n )}\n {!showAdvanced && (\n <div className=\"text-sm text-muted-foreground bg-muted/30 p-3 rounded-md\">\n Using default permissions (private to you)\n </div>\n )}\n </div>\n </div>\n </TabsContent>\n\n <TabsContent value=\"workflow\" className=\"mt-0 h-full\">\n <div className=\"h-full flex gap-6\">\n {/* Left side - Messages */}\n <div className=\"flex-1\">\n <div className=\"mb-4\">\n <h3 className=\"text-base font-semibold mb-2\">Conversation Steps</h3>\n <div className=\"border rounded-lg p-3 mb-4\">\n <p className=\"text-sm\">\n 💡 <strong>Pro tip:</strong> Use {`{variable_name}`} syntax in your messages to create reusable variables. For example you can use {`{company_name}`} to create a variable for the company name\n so you can reuse this flow template with different companies.\n </p>\n </div>\n </div>\n\n <div className=\"space-y-4 max-h-[500px] overflow-y-auto pr-2\">\n {steps.map((step, index) => (\n <div key={step.id}>\n <div className=\"border rounded-lg p-4 bg-card\">\n <div className=\"flex items-center gap-3 mb-3\">\n <span className={cn(\n \"text-sm font-medium px-3 py-1 rounded-full\",\n step.type === 'user' ? \"bg-blue-100 text-blue-700\" :\n step.type === 'assistant' ? \"bg-green-100 text-green-700\" :\n \"bg-purple-100 text-purple-700\"\n )}>\n {step.type === 'user' ? '👤 User' :\n step.type === 'assistant' ? '🤖 Assistant' :\n `🔧 ${step.toolName}`}\n </span>\n {step.variablesUsed && step.variablesUsed.length > 0 && (\n <div className=\"flex gap-1 flex-wrap\">\n {step.variablesUsed.map(varName => (\n <span key={varName} className=\"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded font-mono border border-blue-200\">\n {`{${varName}}`}\n </span>\n ))}\n </div>\n )}\n </div>\n\n {step.type === 'user' ? (\n <div>\n <Textarea\n value={step.content || ''}\n onChange={(e) => handleStepContentChange(step.id, e.target.value)}\n placeholder=\"Enter your message...\"\n className=\"min-h-[80px] resize-none\"\n rows={3}\n readOnly={isReadOnly}\n />\n </div>\n ) : (\n <div className=\"bg-muted/50 p-3 rounded-md\">\n {step.type === 'assistant' ? (\n <div>\n <div className=\"text-xs font-medium text-muted-foreground mb-2\">Example response (will be regenerated):</div>\n <Response>\n {step.contentExample}\n </Response>\n </div>\n ) : (\n <div>\n <div className=\"text-xs font-medium text-muted-foreground mb-1\">Tool: {step.toolName}</div>\n <div className=\"text-sm text-muted-foreground\">Parameters will be generated dynamically</div>\n </div>\n )}\n </div>\n )}\n </div>\n {index < steps.length - 1 && (\n <div className=\"flex justify-center my-3\">\n <ChevronDown className=\"w-5 h-5 text-muted-foreground/50\" />\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n\n {/* Right side - Variables */}\n <div className=\"w-80\">\n <div className=\"mb-4\">\n <h3 className=\"text-base font-semibold mb-2\">Variables ({variables.length})</h3>\n <p className=\"text-sm text-muted-foreground\">Auto-detected from your messages</p>\n </div>\n\n {variables.length > 0 ? (\n <div className=\"space-y-3 max-h-[500px] overflow-y-auto\">\n {variables.map((variable) => (\n <div key={variable.name} className=\"border rounded-lg p-3 bg-card\">\n <div className=\"flex items-start justify-between mb-2\">\n <div className=\"font-mono text-blue-600 font-medium text-sm\">\n {`{${variable.name}}`}\n </div>\n {!isReadOnly && (\n <div className=\"flex gap-1\">\n {editingVariable === variable.name ? (\n <Input\n value={editingValue}\n onChange={(e) => setEditingValue(e.target.value)}\n className=\"h-6 text-xs font-mono w-20\"\n placeholder=\"variable_name\"\n autoFocus\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n if (editingValue && editingValue !== variable.name) {\n renameVariable(variable.name, editingValue)\n }\n setEditingVariable(null)\n setEditingValue('')\n } else if (e.key === 'Escape') {\n setEditingVariable(null)\n setEditingValue('')\n }\n }}\n onBlur={() => {\n if (editingValue && editingValue !== variable.name) {\n renameVariable(variable.name, editingValue)\n }\n setEditingVariable(null)\n setEditingValue('')\n }}\n />\n ) : (\n <>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-6 w-6 p-0\"\n onClick={() => {\n setEditingVariable(variable.name)\n setEditingValue(variable.name)\n }}\n >\n <Edit2 className=\"w-3 h-3\" />\n </Button>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-6 w-6 p-0 text-destructive hover:bg-destructive/10\"\n onClick={() => deleteVariable(variable.name)}\n >\n <Trash2 className=\"w-3 h-3\" />\n </Button>\n </>\n )}\n </div>\n )}\n </div>\n <div className=\"text-xs text-muted-foreground mb-2\">\n {variable.description}\n </div>\n <div className=\"flex gap-1\">\n <span className=\"text-xs bg-gray-100 text-gray-700 px-1.5 py-0.5 rounded\">\n {variable.type}\n </span>\n {variable.required && (\n <span className=\"text-xs bg-orange-100 text-orange-700 px-1.5 py-0.5 rounded\">\n required\n </span>\n )}\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"text-center py-8 text-muted-foreground border-2 border-dashed rounded-lg\">\n <div className=\"mb-3\">\n <span className=\"text-3xl\">📝</span>\n </div>\n <div className=\"text-sm mb-1 font-medium\">No variables yet</div>\n <div className=\"text-xs\">\n Use {`{variable_name}`} syntax in your messages\n </div>\n </div>\n )}\n </div>\n </div>\n </TabsContent>\n </div>\n </Tabs>\n </div>\n\n <div className=\"border-t p-4 bg-background\">\n <DialogFooter>\n <Button variant=\"outline\" onClick={onClose}>\n {isReadOnly ? 'Close' : 'Cancel'}\n </Button>\n {!isReadOnly && (\n <>\n <Button\n onClick={handleSave}\n disabled={!isValid || isCreating}\n className={cn(\n \"min-w-[140px]\",\n !isValid && \"opacity-50 cursor-not-allowed\"\n )}\n >\n {isCreating ? (\n <>\n <div className=\"animate-spin rounded-full h-4 w-4 border-b-2 border-white mr-2\"></div>\n {isEditing ? 'Updating...' : 'Saving...'}\n </>\n ) : (\n isEditing ? 'Update Workflow' : 'Save Workflow'\n )}\n </Button>\n\n </>\n\n )}\n </DialogFooter>\n </div>\n </DialogContent>\n </Dialog>\n )\n}","import { cn } from \"@/lib/utils\";\n\nexport const Loading = ({ className }: { className?: null | string }) => {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\"inline w-4 h-4 text-white animate-spin fill-inherit\", className)}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n className=\"fill-inherit opacity-20\"\n ></path>\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n className=\"fill-inherit\"\n ></path>\n </svg>\n );\n};\n"],"names":["SaveWorkflowModal","param","existingWorkflow","isOpen","onClose","messages","sessionTitle","isReadOnly","user","useContext","UserContext","toast","useToast","rbac","setRbac","useState","rights_mode","users","RBAC","roles","isEditing","Boolean","workflowName","setWorkflowName","name","workflowDescription","setWorkflowDescription","description","variables","setVariables","steps","setSteps","steps_json","isCreating","setIsCreating","activeTab","setActiveTab","showAdvanced","setShowAdvanced","editingVariable","setEditingVariable","editingValue","setEditingValue","createWorkflowTemplate","useMutation","CREATE_WORKFLOW_TEMPLATE","updateWorkflowTemplate","UPDATE_WORKFLOW_TEMPLATE","React","length","transformedSteps","forEach","message","index","messageContent","content","parts","filter","p","type","map","text","join","role","push","id","concat","variablesUsed","contentExample","part","partIndex","toolInvocation","toolName","console","log","createVariable","useCallback","match","title","variant","some","v","newVariable","required","prev","handleStepContentChange","stepId","variableNames","variableMatches","slice","step","allUsedVariables","Set","matches","add","varName","variable","has","deleteVariable","variableName","replace","renameVariable","oldName","newName","isValid","useMemo","trim","userSteps","s","every","withoutVariables","handleSave","stepsJson","owner","error","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Dialog","open","onOpenChange","jsxs","DialogContent","className","DialogHeader","DialogTitle","DialogDescription","div","Tabs","value","onValueChange","TabsList","TabsTrigger","TabsContent","Label","htmlFor","Input","onChange","e","target","placeholder","readOnly","span","Textarea","rows","h3","Button","size","onClick","ChevronDown","cn","RBACControl","initialRightsMode","initialUsers","initialRoles","strong","Response","autoFocus","onKeyDown","key","onBlur","Fragment","Edit2","Trash2","DialogFooter","disabled","Loading","svg","aria-hidden","viewBox","fill","xmlns","path","d"],"sourceRoot":""}
1
+ {"version":3,"file":"static/chunks/1957-34f17de1e14e45de.js","mappings":"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","sources":["webpack://_N_E/./components/save-workflow-modal.tsx","webpack://_N_E/./components/ui/loading.tsx"],"sourcesContent":["\"use client\"\n\nimport React, { useState, useCallback, useContext, useMemo } from 'react'\nimport type { UIMessage as Message } from 'ai'\nimport { useMutation } from '@apollo/client'\nimport { UserContext } from '@/app/(application)/authenticated'\nimport { CREATE_WORKFLOW_TEMPLATE, UPDATE_WORKFLOW_TEMPLATE } from '@/queries/queries'\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Textarea } from '@/components/ui/textarea'\nimport { Label } from '@/components/ui/label'\nimport { Trash2, Edit2, ChevronDown } from 'lucide-react'\nimport { useToast } from '@/components/ui/use-toast'\nimport { cn } from '@/lib/utils'\nimport { RBACControl } from './rbac'\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'\nimport { Response } from '@/components/ai-elements/response';\n\ninterface WorkflowVariable {\n name: string\n description?: string\n type: 'string'\n required: boolean\n defaultValue?: string\n}\n\ninterface WorkflowStep {\n id: string\n type: 'user' | 'assistant' | 'tool'\n content?: string\n contentExample?: string\n toolName?: string\n variablesUsed?: string[]\n}\n\ninterface WorkflowTemplate {\n id: string\n name: string\n description?: string\n rights_mode?: 'private' | 'users' | 'roles' | 'public' /* | 'projects' */\n RBAC?: {\n users?: Array<{ id: number; rights: 'read' | 'write' }>\n roles?: Array<{ id: string; rights: 'read' | 'write' }>\n // projects?: Array<{ id: string; rights: 'read' | 'write' }>\n }\n variables?: WorkflowVariable[]\n steps_json?: WorkflowStep[]\n}\n\ninterface SaveWorkflowModalProps {\n isOpen: boolean\n onClose: () => void\n messages: Message[]\n sessionTitle?: string\n existingWorkflow?: WorkflowTemplate\n isReadOnly?: boolean\n}\n\nexport function SaveWorkflowModal({ isOpen, onClose, messages, sessionTitle, existingWorkflow, isReadOnly = false }: SaveWorkflowModalProps) {\n const { user } = useContext(UserContext)\n const { toast } = useToast()\n const [rbac, setRbac] = useState({\n rights_mode: existingWorkflow?.rights_mode || 'private',\n users: existingWorkflow?.RBAC?.users || [],\n roles: existingWorkflow?.RBAC?.roles || [],\n // projects: existingWorkflow?.RBAC?.projects || []\n })\n const isEditing = Boolean(existingWorkflow)\n\n // Form state\n const [workflowName, setWorkflowName] = useState(existingWorkflow?.name || '')\n const [workflowDescription, setWorkflowDescription] = useState(existingWorkflow?.description || '')\n const [variables, setVariables] = useState<WorkflowVariable[]>(existingWorkflow?.variables || [])\n const [steps, setSteps] = useState<WorkflowStep[]>(existingWorkflow?.steps_json || [])\n const [isCreating, setIsCreating] = useState(false)\n const [activeTab, setActiveTab] = useState('setup')\n const [showAdvanced, setShowAdvanced] = useState(false)\n const [editingVariable, setEditingVariable] = useState<string | null>(null)\n const [editingValue, setEditingValue] = useState('')\n const [createWorkflowTemplate] = useMutation(CREATE_WORKFLOW_TEMPLATE)\n const [updateWorkflowTemplate] = useMutation(UPDATE_WORKFLOW_TEMPLATE)\n\n // Initialize steps from messages\n React.useEffect(() => {\n if (messages.length > 0) {\n const transformedSteps: WorkflowStep[] = []\n\n messages.forEach((message, index) => {\n const messageContent = (message as any).content || (message.parts ? message.parts.filter(p => p.type === 'text').map((p: any) => p.text).join('\\n') : '')\n\n if (message.role === 'user') {\n transformedSteps.push({\n id: `step_${index + 1}`,\n type: 'user',\n content: messageContent,\n variablesUsed: []\n })\n } else if (message.role === 'assistant') {\n transformedSteps.push({\n id: `step_${index + 1}`,\n type: 'assistant',\n contentExample: messageContent\n })\n } else if (message.role === 'system') {\n // Handle tool calls from message parts\n if (message.parts) {\n message.parts.forEach((part: any, partIndex: number) => {\n if (part.type === 'tool-invocation' && part.toolInvocation) {\n transformedSteps.push({\n id: `step_${index + 1}_${partIndex}`,\n type: 'tool',\n toolName: part.toolInvocation.toolName\n })\n }\n })\n }\n }\n })\n console.log(\"transformedSteps\", transformedSteps)\n setSteps(transformedSteps)\n setWorkflowName(sessionTitle || 'My Workflow')\n }\n }, [messages, sessionTitle, steps.length])\n\n // Variable management functions\n const createVariable = useCallback((name: string, description?: string) => {\n if (!name.match(/^[A-Za-z_][A-Za-z0-9_]{1,63}$/)) {\n toast({\n title: \"Invalid variable name\",\n description: \"Variable name must start with a letter or underscore, contain only letters, numbers, and underscores, and be 2-64 characters long.\",\n variant: \"destructive\"\n })\n return false\n }\n\n if (variables.some(v => v.name === name)) {\n return true // Variable already exists, that's fine\n }\n\n const newVariable: WorkflowVariable = {\n name,\n type: 'string',\n required: true,\n description: description || `Auto-detected variable`\n }\n\n setVariables(prev => [...prev, newVariable])\n return true\n }, [variables, toast])\n\n // Auto-detect variables from {variable_name} syntax and update content\n const handleStepContentChange = useCallback((stepId: string, content: string) => {\n // Extract all variables from the content\n const variableMatches = content.match(/\\{([A-Za-z_][A-Za-z0-9_]{1,63})\\}/g) || []\n const variableNames = variableMatches.map((match: string) => match.slice(1, -1)) // Remove { and }\n\n // Create variables that don't exist yet\n variableNames.forEach(name => {\n createVariable(name)\n })\n\n // Update the step content\n setSteps(prev => prev.map(step =>\n step.id === stepId\n ? { ...step, content, variablesUsed: variableNames }\n : step\n ))\n\n // Remove unused variables\n const allUsedVariables = new Set<string>()\n steps.forEach(step => {\n if (step.id === stepId) {\n // Use the new content for this step\n const matches = content.match(/\\{([A-Za-z_][A-Za-z0-9_]{1,63})\\}/g) || []\n matches.forEach((match: string) => allUsedVariables.add(match.slice(1, -1)))\n } else if (step.variablesUsed) {\n step.variablesUsed.forEach(varName => allUsedVariables.add(varName))\n }\n })\n\n // Remove variables that are no longer used anywhere\n setVariables(prev => prev.filter(variable => allUsedVariables.has(variable.name)))\n }, [steps, createVariable])\n\n const deleteVariable = useCallback((variableName: string) => {\n // Remove variable from variables list\n setVariables(prev => prev.filter(v => v.name !== variableName))\n\n // Remove variable references from steps\n setSteps(prev => prev.map(step => ({\n ...step,\n content: step.content?.replace(new RegExp(`\\\\{${variableName}\\\\}`, 'g'), ''),\n variablesUsed: step.variablesUsed?.filter(v => v !== variableName) || []\n })))\n }, [])\n\n const renameVariable = useCallback((oldName: string, newName: string) => {\n if (!newName.match(/^[A-Za-z_][A-Za-z0-9_]{1,63}$/)) {\n toast({\n title: \"Invalid variable name\",\n description: \"Variable name must start with a letter or underscore and contain only letters, numbers, and underscores.\",\n variant: \"destructive\"\n })\n return false\n }\n\n if (variables.some(v => v.name === newName && v.name !== oldName)) {\n toast({\n title: \"Variable name already exists\",\n description: \"A variable with this name already exists.\",\n variant: \"destructive\"\n })\n return false\n }\n\n // Update variable name\n setVariables(prev => prev.map(v =>\n v.name === oldName ? { ...v, name: newName } : v\n ))\n\n // Update variable references in steps\n setSteps(prev => prev.map(step => ({\n ...step,\n content: step.content?.replace(new RegExp(`\\\\{${oldName}\\\\}`, 'g'), `{${newName}}`),\n variablesUsed: step.variablesUsed?.map(v => v === oldName ? newName : v) || []\n })))\n\n return true\n }, [variables, toast])\n\n // Validation\n const isValid = useMemo(() => {\n if (!workflowName.trim()) return false\n if (steps.length === 0) return false\n if (rbac.rights_mode === 'users' && rbac.users?.length === 0) return false\n if (rbac.rights_mode === 'roles' && rbac.roles?.length === 0) return false\n // if (rbac.rights_mode === 'projects' && rbac.projects?.length === 0) return false\n\n // Check that all user steps have non-empty content after variable replacement\n const userSteps = steps.filter(s => s.type === 'user')\n return userSteps.every(step => {\n const content = step.content || ''\n const withoutVariables = content?.replace(/\\{[^}]+\\}/g, '')\n return withoutVariables.trim().length > 0\n })\n }, [workflowName, steps, rbac])\n\n // Save workflow\n const handleSave = useCallback(async () => {\n if (!isValid || !user?.id) return\n\n setIsCreating(true)\n\n try {\n\n const stepsJson = steps.map(step => ({\n id: step.id,\n type: step.type,\n ...(step.type === 'user' && { content: step.content }),\n ...(step.type === 'assistant' && { contentExample: step.contentExample }),\n ...(step.type === 'tool' && { toolName: step.toolName })\n }))\n\n if (isEditing && existingWorkflow) {\n await updateWorkflowTemplate({\n variables: {\n id: existingWorkflow.id,\n name: workflowName.trim(),\n description: workflowDescription.trim() || null,\n rights_mode: rbac.rights_mode,\n RBAC: {\n users: rbac.users,\n roles: rbac.roles,\n // projects: rbac.projects\n },\n variables,\n steps_json: stepsJson\n }\n })\n\n toast({\n title: \"Workflow updated!\",\n description: `\"${workflowName}\" has been updated successfully.`\n })\n } else {\n await createWorkflowTemplate({\n variables: {\n name: workflowName.trim(),\n description: workflowDescription.trim() || null,\n owner: user.id,\n rights_mode: rbac.rights_mode,\n RBAC: {\n users: rbac.users,\n roles: rbac.roles,\n // projects: rbac.projects\n },\n variables,\n steps_json: stepsJson\n }\n })\n\n toast({\n title: \"Workflow created!\",\n description: `\"${workflowName}\" has been saved as a workflow template.`\n })\n }\n\n onClose()\n } catch (error) {\n console.error('Error saving workflow:', error)\n toast({\n title: \"Error saving workflow\",\n description: \"There was an error saving your workflow. Please try again.\",\n variant: \"destructive\"\n })\n } finally {\n setIsCreating(false)\n }\n }, [isValid, user?.id, workflowName, workflowDescription, rbac, variables, steps, createWorkflowTemplate, updateWorkflowTemplate, toast, onClose, isEditing, existingWorkflow])\n\n if (!isOpen) return null\n\n return (\n <Dialog open={isOpen} onOpenChange={onClose}>\n <DialogContent className=\"max-w-4xl max-h-[92vh] flex flex-col\">\n <DialogHeader className=\"pb-4\">\n <DialogTitle className=\"text-lg\">\n {isEditing ? (isReadOnly ? 'View Workflow' : 'Edit Workflow') : 'Save as Workflow'}\n </DialogTitle>\n <DialogDescription className=\"text-sm\">\n {isEditing\n ? (isReadOnly\n ? 'View workflow details and configuration.'\n : 'Modify this workflow template. Edit your messages and use {variable_name} syntax to create variables.'\n )\n : 'Convert this conversation into a reusable workflow template. Edit your messages and use {variable_name} syntax to create variables.'\n }\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"flex-1 mt-6\">\n <Tabs value={activeTab} onValueChange={setActiveTab} className=\"h-full flex flex-col\">\n <TabsList className=\"grid w-full grid-cols-2 mb-6\">\n <TabsTrigger value=\"setup\" className=\"data-[state=active]:bg-background\">\n Setup & Permissions\n </TabsTrigger>\n <TabsTrigger value=\"workflow\" className=\"data-[state=active]:bg-background\">\n Workflow Steps & Variables\n </TabsTrigger>\n </TabsList>\n\n <div className=\"flex-1 pb-6\">\n <TabsContent value=\"setup\" className=\"mt-0 h-full\">\n <div className=\"space-y-6\">\n <div className=\"space-y-4\">\n <div>\n <Label htmlFor=\"workflow-name\" className=\"text-base font-semibold\">Workflow Name *</Label>\n <Input\n id=\"workflow-name\"\n value={workflowName}\n onChange={(e) => setWorkflowName(e.target.value)}\n placeholder=\"My Workflow\"\n className=\"mt-2 h-11\"\n readOnly={isReadOnly}\n />\n {!workflowName.trim() && (\n <p className=\"text-sm text-destructive mt-1 flex items-center\">\n <span className=\"mr-1\">⚠️</span>\n Workflow name is required\n </p>\n )}\n </div>\n\n <div>\n <Label htmlFor=\"workflow-description\" className=\"text-base font-semibold\">Description</Label>\n <Textarea\n id=\"workflow-description\"\n value={workflowDescription}\n onChange={(e) => setWorkflowDescription(e.target.value)}\n placeholder=\"Describe what this workflow does and when to use it...\"\n rows={3}\n className=\"mt-2 resize-none\"\n readOnly={isReadOnly}\n />\n </div>\n </div>\n\n <div className=\"border-t pt-6\">\n <div className=\"flex items-center justify-between mb-4\">\n <div>\n <h3 className=\"text-base font-semibold mb-1\">Sharing & Permissions</h3>\n <p className=\"text-sm text-muted-foreground\">Control who can view and edit this workflow</p>\n </div>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setShowAdvanced(!showAdvanced)}\n className=\"ml-4\"\n >\n {showAdvanced ? 'Hide Advanced' : 'Show Advanced'}\n <ChevronDown className={cn(\"w-4 h-4 ml-1 transition-transform\", showAdvanced && \"rotate-180\")} />\n </Button>\n </div>\n {showAdvanced && (\n <RBACControl\n initialRightsMode={existingWorkflow?.rights_mode}\n initialUsers={existingWorkflow?.RBAC?.users}\n initialRoles={existingWorkflow?.RBAC?.roles}\n // initialProjects={existingWorkflow?.RBAC?.projects}\n onChange={(rights_mode, users, roles) => {\n setRbac({\n rights_mode,\n users,\n roles,\n // projects\n })\n }}\n />\n )}\n {!showAdvanced && (\n <div className=\"text-sm text-muted-foreground bg-muted/30 p-3 rounded-md\">\n Using default permissions (private to you)\n </div>\n )}\n </div>\n </div>\n </TabsContent>\n\n <TabsContent value=\"workflow\" className=\"mt-0 h-full\">\n <div className=\"h-full flex gap-6\">\n {/* Left side - Messages */}\n <div className=\"flex-1\">\n <div className=\"mb-4\">\n <h3 className=\"text-base font-semibold mb-2\">Conversation Steps</h3>\n <div className=\"border rounded-lg p-3 mb-4\">\n <p className=\"text-sm\">\n 💡 <strong>Pro tip:</strong> Use {`{variable_name}`} syntax in your messages to create reusable variables. For example you can use {`{company_name}`} to create a variable for the company name\n so you can reuse this flow template with different companies.\n </p>\n </div>\n </div>\n\n <div className=\"space-y-4 max-h-[500px] overflow-y-auto pr-2\">\n {steps.map((step, index) => (\n <div key={step.id}>\n <div className=\"border rounded-lg p-4 bg-card\">\n <div className=\"flex items-center gap-3 mb-3\">\n <span className={cn(\n \"text-sm font-medium px-3 py-1 rounded-full\",\n step.type === 'user' ? \"bg-blue-100 text-blue-700\" :\n step.type === 'assistant' ? \"bg-green-100 text-green-700\" :\n \"bg-purple-100 text-purple-700\"\n )}>\n {step.type === 'user' ? '👤 User' :\n step.type === 'assistant' ? '🤖 Assistant' :\n `🔧 ${step.toolName}`}\n </span>\n {step.variablesUsed && step.variablesUsed.length > 0 && (\n <div className=\"flex gap-1 flex-wrap\">\n {step.variablesUsed.map(varName => (\n <span key={varName} className=\"text-xs bg-blue-50 text-blue-600 px-2 py-1 rounded font-mono border border-blue-200\">\n {`{${varName}}`}\n </span>\n ))}\n </div>\n )}\n </div>\n\n {step.type === 'user' ? (\n <div>\n <Textarea\n value={step.content || ''}\n onChange={(e) => handleStepContentChange(step.id, e.target.value)}\n placeholder=\"Enter your message...\"\n className=\"min-h-[80px] resize-none\"\n rows={3}\n readOnly={isReadOnly}\n />\n </div>\n ) : (\n <div className=\"bg-muted/50 p-3 rounded-md\">\n {step.type === 'assistant' ? (\n <div>\n <div className=\"text-xs font-medium text-muted-foreground mb-2\">Example response (will be regenerated):</div>\n <Response>\n {step.contentExample}\n </Response>\n </div>\n ) : (\n <div>\n <div className=\"text-xs font-medium text-muted-foreground mb-1\">Tool: {step.toolName}</div>\n <div className=\"text-sm text-muted-foreground\">Parameters will be generated dynamically</div>\n </div>\n )}\n </div>\n )}\n </div>\n {index < steps.length - 1 && (\n <div className=\"flex justify-center my-3\">\n <ChevronDown className=\"w-5 h-5 text-muted-foreground/50\" />\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n\n {/* Right side - Variables */}\n <div className=\"w-80\">\n <div className=\"mb-4\">\n <h3 className=\"text-base font-semibold mb-2\">Variables ({variables.length})</h3>\n <p className=\"text-sm text-muted-foreground\">Auto-detected from your messages</p>\n </div>\n\n {variables.length > 0 ? (\n <div className=\"space-y-3 max-h-[500px] overflow-y-auto\">\n {variables.map((variable) => (\n <div key={variable.name} className=\"border rounded-lg p-3 bg-card\">\n <div className=\"flex items-start justify-between mb-2\">\n <div className=\"font-mono text-blue-600 font-medium text-sm\">\n {`{${variable.name}}`}\n </div>\n {!isReadOnly && (\n <div className=\"flex gap-1\">\n {editingVariable === variable.name ? (\n <Input\n value={editingValue}\n onChange={(e) => setEditingValue(e.target.value)}\n className=\"h-6 text-xs font-mono w-20\"\n placeholder=\"variable_name\"\n autoFocus\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n if (editingValue && editingValue !== variable.name) {\n renameVariable(variable.name, editingValue)\n }\n setEditingVariable(null)\n setEditingValue('')\n } else if (e.key === 'Escape') {\n setEditingVariable(null)\n setEditingValue('')\n }\n }}\n onBlur={() => {\n if (editingValue && editingValue !== variable.name) {\n renameVariable(variable.name, editingValue)\n }\n setEditingVariable(null)\n setEditingValue('')\n }}\n />\n ) : (\n <>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-6 w-6 p-0\"\n onClick={() => {\n setEditingVariable(variable.name)\n setEditingValue(variable.name)\n }}\n >\n <Edit2 className=\"w-3 h-3\" />\n </Button>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-6 w-6 p-0 text-destructive hover:bg-destructive/10\"\n onClick={() => deleteVariable(variable.name)}\n >\n <Trash2 className=\"w-3 h-3\" />\n </Button>\n </>\n )}\n </div>\n )}\n </div>\n <div className=\"text-xs text-muted-foreground mb-2\">\n {variable.description}\n </div>\n <div className=\"flex gap-1\">\n <span className=\"text-xs bg-gray-100 text-gray-700 px-1.5 py-0.5 rounded\">\n {variable.type}\n </span>\n {variable.required && (\n <span className=\"text-xs bg-orange-100 text-orange-700 px-1.5 py-0.5 rounded\">\n required\n </span>\n )}\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"text-center py-8 text-muted-foreground border-2 border-dashed rounded-lg\">\n <div className=\"mb-3\">\n <span className=\"text-3xl\">📝</span>\n </div>\n <div className=\"text-sm mb-1 font-medium\">No variables yet</div>\n <div className=\"text-xs\">\n Use {`{variable_name}`} syntax in your messages\n </div>\n </div>\n )}\n </div>\n </div>\n </TabsContent>\n </div>\n </Tabs>\n </div>\n\n <div className=\"border-t p-4 bg-background\">\n <DialogFooter>\n <Button variant=\"outline\" onClick={onClose}>\n {isReadOnly ? 'Close' : 'Cancel'}\n </Button>\n {!isReadOnly && (\n <>\n <Button\n onClick={handleSave}\n disabled={!isValid || isCreating}\n className={cn(\n \"min-w-[140px]\",\n !isValid && \"opacity-50 cursor-not-allowed\"\n )}\n >\n {isCreating ? (\n <>\n <div className=\"animate-spin rounded-full h-4 w-4 border-b-2 border-white mr-2\"></div>\n {isEditing ? 'Updating...' : 'Saving...'}\n </>\n ) : (\n isEditing ? 'Update Workflow' : 'Save Workflow'\n )}\n </Button>\n\n </>\n\n )}\n </DialogFooter>\n </div>\n </DialogContent>\n </Dialog>\n )\n}","import { cn } from \"@/lib/utils\";\n\nexport const Loading = ({ className }: { className?: null | string }) => {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\"inline w-4 h-4 text-white animate-spin fill-inherit\", className)}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n className=\"fill-inherit opacity-20\"\n ></path>\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n className=\"fill-inherit\"\n ></path>\n </svg>\n );\n};\n"],"names":["SaveWorkflowModal","param","existingWorkflow","isOpen","onClose","messages","sessionTitle","isReadOnly","user","useContext","UserContext","toast","useToast","rbac","setRbac","useState","rights_mode","users","RBAC","roles","isEditing","Boolean","workflowName","setWorkflowName","name","workflowDescription","setWorkflowDescription","description","variables","setVariables","steps","setSteps","steps_json","isCreating","setIsCreating","activeTab","setActiveTab","showAdvanced","setShowAdvanced","editingVariable","setEditingVariable","editingValue","setEditingValue","createWorkflowTemplate","useMutation","CREATE_WORKFLOW_TEMPLATE","updateWorkflowTemplate","UPDATE_WORKFLOW_TEMPLATE","React","length","transformedSteps","forEach","message","index","messageContent","content","parts","filter","p","type","map","text","join","role","push","id","concat","variablesUsed","contentExample","part","partIndex","toolInvocation","toolName","console","log","createVariable","useCallback","match","title","variant","some","v","newVariable","required","prev","handleStepContentChange","stepId","variableNames","variableMatches","slice","step","allUsedVariables","Set","matches","add","varName","variable","has","deleteVariable","variableName","replace","renameVariable","oldName","newName","isValid","useMemo","trim","userSteps","s","every","withoutVariables","handleSave","stepsJson","owner","error","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Dialog","open","onOpenChange","jsxs","DialogContent","className","DialogHeader","DialogTitle","DialogDescription","div","Tabs","value","onValueChange","TabsList","TabsTrigger","TabsContent","Label","htmlFor","Input","onChange","e","target","placeholder","readOnly","span","Textarea","rows","h3","Button","size","onClick","ChevronDown","cn","RBACControl","initialRightsMode","initialUsers","initialRoles","strong","Response","autoFocus","onKeyDown","key","onBlur","Fragment","Edit2","Trash2","DialogFooter","disabled","Loading","svg","aria-hidden","viewBox","fill","xmlns","path","d"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
1
  "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2293],{25915:function(e,s,a){a.d(s,{z:function(){return p}});var t=a(57437),i=a(7211),l=a(35974),n=a(69304),d=a(81103),r=a(49137),o=a(53113),c=a(48736),m=a(81706),x=a(29374),u=a(29525),v=a(88906),f=a(95805),h=a(27689);function p(e){var s,a,p,g,j,N,b,y,w,C,A,k,Z,_,D,I,z,V,J,O,R,S,B,E,P;let{agentId:U,open:F,onOpenChange:G}=e,{data:H,loading:M}=(0,i.aM)(h.as,{variables:{id:U}}),{data:T,loading:Y}=(0,i.aM)(h.Ul);if(M||!(null==H?void 0:H.agentById)||Y||!(null==T?void 0:T.tools))return(0,t.jsx)(n.yo,{open:F,onOpenChange:G,children:(0,t.jsx)(n.ue,{className:"w-[400px] sm:w-[540px]",children:(0,t.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,t.jsx)("div",{className:"animate-spin h-8 w-8 border-4 border-primary border-t-transparent rounded-full"})})})});let q=H.agentById,K=T.tools;return(0,t.jsx)(n.yo,{open:F,onOpenChange:G,children:(0,t.jsxs)(n.ue,{className:"w-[400px] sm:w-[540px] overflow-y-auto",children:[(0,t.jsx)(n.Tu,{className:"space-y-4",children:(0,t.jsxs)("div",{className:"flex flex-col items-center space-y-4",children:[(0,t.jsx)("div",{className:"w-24 h-24 bg-gradient-to-br from-primary/20 to-primary/5 rounded-full flex items-center justify-center overflow-hidden",children:q.image?(0,t.jsx)("img",{src:q.image,alt:"".concat(q.name," agent"),className:"w-full h-full object-cover rounded-full"}):(0,t.jsx)("div",{className:"text-3xl font-bold text-primary",children:(null===(s=q.name)||void 0===s?void 0:s.charAt(0).toUpperCase())||"A"})}),(0,t.jsxs)("div",{className:"text-center space-y-2",children:[(0,t.jsx)(n.bC,{className:"text-xl",children:q.name}),(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,t.jsx)(l.C,{variant:q.active?"default":"secondary",children:q.active?"Active":"Inactive"}),(0,t.jsx)(l.C,{variant:"outline",children:q.modelName||"No model selected"})]})]})]})}),(0,t.jsxs)("div",{className:"py-6 space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-medium mb-2",children:"Description"}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:q.description||"No description available."})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-medium mb-3",children:"Capabilities"}),(0,t.jsx)(d.pn,{children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"p-3 rounded-md ".concat((null===(a=q.capabilities)||void 0===a?void 0:a.text)?"bg-green-500 text-primary-foreground":"bg-gray-500 text-white"),children:(0,t.jsx)(r.Z,{className:"h-4 w-4"})}),(0,t.jsxs)(d.u,{children:[(0,t.jsx)(d.aJ,{asChild:!0,children:(0,t.jsx)("div",{className:"p-3 rounded-md ".concat((null===(g=q.capabilities)||void 0===g?void 0:null===(p=g.images)||void 0===p?void 0:p.length)?"bg-primary text-primary-foreground":"bg-gray-500 text-white"),children:(0,t.jsx)(o.Z,{className:"h-4 w-4"})})}),(0,t.jsx)(d._v,{children:(0,t.jsxs)("p",{children:["Images: ",(null===(N=q.capabilities)||void 0===N?void 0:null===(j=N.images)||void 0===j?void 0:j.length)?q.capabilities.images.join(", "):"None"]})})]}),(0,t.jsxs)(d.u,{children:[(0,t.jsx)(d.aJ,{asChild:!0,children:(0,t.jsx)("div",{className:"p-3 rounded-md ".concat((null===(y=q.capabilities)||void 0===y?void 0:null===(b=y.files)||void 0===b?void 0:b.length)?"bg-primary text-primary-foreground":"bg-gray-500 text-white"),children:(0,t.jsx)(c.Z,{className:"h-4 w-4"})})}),(0,t.jsx)(d._v,{children:(0,t.jsxs)("p",{children:["Files: ",(null===(C=q.capabilities)||void 0===C?void 0:null===(w=C.files)||void 0===w?void 0:w.length)?q.capabilities.files.join(", "):"None"]})})]}),(0,t.jsxs)(d.u,{children:[(0,t.jsx)(d.aJ,{asChild:!0,children:(0,t.jsx)("div",{className:"p-3 rounded-md ".concat((null===(k=q.capabilities)||void 0===k?void 0:null===(A=k.audio)||void 0===A?void 0:A.length)?"bg-primary text-primary-foreground":"bg-gray-500 text-white"),children:(0,t.jsx)(m.Z,{className:"h-4 w-4"})})}),(0,t.jsx)(d._v,{children:(0,t.jsxs)("p",{children:["Audio: ",(null===(_=q.capabilities)||void 0===_?void 0:null===(Z=_.audio)||void 0===Z?void 0:Z.length)?q.capabilities.audio.join(", "):"None"]})})]}),(0,t.jsxs)(d.u,{children:[(0,t.jsx)(d.aJ,{asChild:!0,children:(0,t.jsx)("div",{className:"p-3 rounded-md ".concat((null===(I=q.capabilities)||void 0===I?void 0:null===(D=I.video)||void 0===D?void 0:D.length)?"bg-primary text-primary-foreground":"bg-gray-500 text-white"),children:(0,t.jsx)(x.Z,{className:"h-4 w-4"})})}),(0,t.jsx)(d._v,{children:(0,t.jsxs)("p",{children:["Video: ",(null===(V=q.capabilities)||void 0===V?void 0:null===(z=V.video)||void 0===z?void 0:z.length)?q.capabilities.video.join(", "):"None"]})})]})]})})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,t.jsx)(u.Z,{className:"h-4 w-4"}),(0,t.jsx)("h3",{className:"text-sm font-medium",children:"Tools"}),(0,t.jsxs)(l.C,{variant:"outline",className:"text-xs",children:[(null===(J=q.tools)||void 0===J?void 0:J.length)||0,"/",(null===(O=K.items)||void 0===O?void 0:O.length)||0]})]}),(0,t.jsx)("div",{className:"space-y-2",children:(null===(R=q.tools)||void 0===R?void 0:R.length)&&q.tools.length>0?null==K?void 0:null===(S=K.items)||void 0===S?void 0:S.map(e=>{var s;return(null===(s=q.tools)||void 0===s?void 0:s.some(s=>s.id===e.id))?(0,t.jsxs)("div",{className:"flex items-center justify-between p-2 rounded border",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:e.name}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:e.type})]}),(0,t.jsx)(l.C,{variant:"secondary",className:"text-xs",children:"Enabled"})]},e.id):null}):(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"No tools enabled"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,t.jsx)(v.Z,{className:"h-4 w-4"}),(0,t.jsx)("h3",{className:"text-sm font-medium",children:"Security"}),(0,t.jsx)(l.C,{variant:(null===(B=q.firewall)||void 0===B?void 0:B.enabled)?"default":"secondary",className:"text-xs",children:(null===(E=q.firewall)||void 0===E?void 0:E.enabled)?"Protected":"Unprotected"})]}),(null===(P=q.firewall)||void 0===P?void 0:P.enabled)&&q.firewall.scanners&&(0,t.jsx)("div",{className:"space-y-2",children:Object.entries(q.firewall.scanners).map(e=>{let[s,a]=e;return a?(0,t.jsxs)("div",{className:"flex items-center justify-between p-2 rounded border",children:[(0,t.jsx)("span",{className:"text-sm",children:{promptGuard:"Prompt Guard",codeShield:"Code Shield",agentAlignment:"Agent Alignment",hiddenAscii:"Hidden ASCII Detection",piiDetection:"PII Detection"}[s]||s}),(0,t.jsx)(l.C,{variant:"default",className:"text-xs",children:"Active"})]},s):null})})]}),(0,t.jsx)("div",{children:(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,t.jsx)(f.Z,{className:"h-4 w-4"}),(0,t.jsx)("h3",{className:"text-sm font-medium",children:"Access Control"}),(0,t.jsx)(l.C,{variant:"outline",className:"text-xs",children:q.rights_mode||"Open"})]})})]})]})})}},35974:function(e,s,a){a.d(s,{C:function(){return d}});var t=a(57437),i=a(90535);a(2265);var l=a(94508);let n=(0,i.j)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function d(e){let{className:s,variant:a,...i}=e;return(0,t.jsx)("div",{className:(0,l.cn)(n({variant:a}),s),...i})}},26110:function(e,s,a){a.d(s,{$N:function(){return f},Be:function(){return h},Vq:function(){return r},cN:function(){return v},cZ:function(){return x},fK:function(){return u},hg:function(){return o}});var t=a(57437),i=a(34567),l=a(32489),n=a(2265),d=a(94508);let r=i.fC,o=i.xz,c=i.h_;i.x8;let m=n.forwardRef((e,s)=>{let{className:a,...l}=e;return(0,t.jsx)(i.aV,{ref:s,className:(0,d.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...l})});m.displayName=i.aV.displayName;let x=n.forwardRef((e,s)=>{let{className:a,children:n,...r}=e;return(0,t.jsxs)(c,{children:[(0,t.jsx)(m,{}),(0,t.jsxs)(i.VY,{ref:s,className:(0,d.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...r,children:[n,(0,t.jsxs)(i.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,t.jsx)(l.Z,{className:"size-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});x.displayName=i.VY.displayName;let u=e=>{let{className:s,...a}=e;return(0,t.jsx)("div",{className:(0,d.cn)("flex flex-col space-y-1.5 text-center sm:text-left",s),...a})};u.displayName="DialogHeader";let v=e=>{let{className:s,...a}=e;return(0,t.jsx)("div",{className:(0,d.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...a})};v.displayName="DialogFooter";let f=n.forwardRef((e,s)=>{let{className:a,...l}=e;return(0,t.jsx)(i.Dx,{ref:s,className:(0,d.cn)("text-lg font-semibold leading-none tracking-tight",a),...l})});f.displayName=i.Dx.displayName;let h=n.forwardRef((e,s)=>{let{className:a,...l}=e;return(0,t.jsx)(i.dk,{ref:s,className:(0,d.cn)("text-sm text-muted-foreground",a),...l})});h.displayName=i.dk.displayName}}]);
2
- //# sourceMappingURL=2293-48a95904b834eccc.js.map
2
+ //# sourceMappingURL=2293-592e22dde70d632b.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"static/chunks/2293-48a95904b834eccc.js","mappings":"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","sources":["webpack://_N_E/./app/(application)/agents/components/agent-details-sheet.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { useQuery } from \"@apollo/client\";\nimport { Agent } from \"@EXULU_SHARED//models/agent\";\nimport { Badge } from \"@/components/ui/badge\";\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n} from \"@/components/ui/sheet\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { Image, FileText, Volume2, Video, Shield, Users, Wrench, Text } from \"lucide-react\";\nimport { GET_AGENT_BY_ID, GET_TOOLS } from \"@/queries/queries\";\nimport { Tool } from \"@/types/models/tool\";\n\ninterface AgentDetailsSheetProps {\n agentId: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nexport function AgentDetailsSheet({ agentId, open, onOpenChange }: AgentDetailsSheetProps) {\n\n const { data: agentData, loading: agentLoading } = useQuery<{\n agentById: Agent\n }>(GET_AGENT_BY_ID, {\n variables: {\n id: agentId,\n },\n });\n\n const { data: toolsData, loading: toolsLoading } = useQuery<{\n tools: {\n items: Tool[]\n }\n }>(GET_TOOLS);\n\n if (agentLoading || !agentData?.agentById || toolsLoading || !toolsData?.tools) {\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent className=\"w-[400px] sm:w-[540px]\">\n <div className=\"flex items-center justify-center h-full\">\n <div className=\"animate-spin h-8 w-8 border-4 border-primary border-t-transparent rounded-full\" />\n </div>\n </SheetContent>\n </Sheet>\n );\n }\n\n const agent = agentData.agentById;\n const tools = toolsData.tools;\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent className=\"w-[400px] sm:w-[540px] overflow-y-auto\">\n <SheetHeader className=\"space-y-4\">\n <div className=\"flex flex-col items-center space-y-4\">\n <div className=\"w-24 h-24 bg-gradient-to-br from-primary/20 to-primary/5 rounded-full flex items-center justify-center overflow-hidden\">\n {agent.image ? (\n <img\n src={agent.image}\n alt={`${agent.name} agent`}\n className=\"w-full h-full object-cover rounded-full\"\n />\n ) : (\n <div className=\"text-3xl font-bold text-primary\">\n {agent.name?.charAt(0).toUpperCase() || 'A'}\n </div>\n )}\n </div>\n <div className=\"text-center space-y-2\">\n <SheetTitle className=\"text-xl\">{agent.name}</SheetTitle>\n <div className=\"flex items-center justify-center gap-2\">\n <Badge variant={agent.active ? \"default\" : \"secondary\"}>\n {agent.active ? \"Active\" : \"Inactive\"}\n </Badge>\n <Badge variant=\"outline\">{agent.modelName || \"No model selected\"}</Badge>\n </div>\n </div>\n </div>\n </SheetHeader>\n\n <div className=\"py-6 space-y-6\">\n {/* Description */}\n <div>\n <h3 className=\"text-sm font-medium mb-2\">Description</h3>\n <p className=\"text-sm text-muted-foreground\">\n {agent.description || \"No description available.\"}\n </p>\n </div>\n\n {/* Capabilities */}\n <div>\n <h3 className=\"text-sm font-medium mb-3\">Capabilities</h3>\n <TooltipProvider>\n <div className=\"flex items-center gap-3\">\n <div className={`p-3 rounded-md ${agent.capabilities?.text ? 'bg-green-500 text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Text className=\"h-4 w-4\" />\n </div>\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-3 rounded-md ${agent.capabilities?.images?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Image className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Images: {agent.capabilities?.images?.length ? agent.capabilities.images.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-3 rounded-md ${agent.capabilities?.files?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <FileText className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Files: {agent.capabilities?.files?.length ? agent.capabilities.files.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-3 rounded-md ${agent.capabilities?.audio?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Volume2 className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Audio: {agent.capabilities?.audio?.length ? agent.capabilities.audio.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-3 rounded-md ${agent.capabilities?.video?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Video className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Video: {agent.capabilities?.video?.length ? agent.capabilities.video.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n </div>\n </TooltipProvider>\n </div>\n\n {/* Tools */}\n <div>\n <div className=\"flex items-center gap-2 mb-3\">\n <Wrench className=\"h-4 w-4\" />\n <h3 className=\"text-sm font-medium\">Tools</h3>\n <Badge variant=\"outline\" className=\"text-xs\">\n {agent.tools?.length || 0}/{tools.items?.length || 0}\n </Badge>\n </div>\n <div className=\"space-y-2\">\n {agent.tools?.length && agent.tools.length > 0 ? (\n tools?.items?.map((tool) => {\n const isEnabled = agent.tools?.some(et => et.id === tool.id);\n if (!isEnabled) return null;\n return (\n <div key={tool.id} className=\"flex items-center justify-between p-2 rounded border\">\n <div className=\"flex-1\">\n <div className=\"text-sm font-medium\">{tool.name}</div>\n <div className=\"text-xs text-muted-foreground\">{tool.type}</div>\n </div>\n <Badge variant=\"secondary\" className=\"text-xs\">Enabled</Badge>\n </div>\n );\n })\n ) : (\n <p className=\"text-sm text-muted-foreground\">No tools enabled</p>\n )}\n </div>\n </div>\n\n {/* Firewall */}\n <div>\n <div className=\"flex items-center gap-2 mb-3\">\n <Shield className=\"h-4 w-4\" />\n <h3 className=\"text-sm font-medium\">Security</h3>\n <Badge variant={agent.firewall?.enabled ? \"default\" : \"secondary\"} className=\"text-xs\">\n {agent.firewall?.enabled ? \"Protected\" : \"Unprotected\"}\n </Badge>\n </div>\n {agent.firewall?.enabled && agent.firewall.scanners && (\n <div className=\"space-y-2\">\n {Object.entries(agent.firewall.scanners).map(([scanner, enabled]) => {\n if (!enabled) return null;\n const scannerNames = {\n promptGuard: \"Prompt Guard\",\n codeShield: \"Code Shield\",\n agentAlignment: \"Agent Alignment\",\n hiddenAscii: \"Hidden ASCII Detection\",\n piiDetection: \"PII Detection\"\n };\n return (\n <div key={scanner} className=\"flex items-center justify-between p-2 rounded border\">\n <span className=\"text-sm\">{scannerNames[scanner as keyof typeof scannerNames] || scanner}</span>\n <Badge variant=\"default\" className=\"text-xs\">Active</Badge>\n </div>\n );\n })}\n </div>\n )}\n </div>\n\n {/* Access Control */}\n <div>\n <div className=\"flex items-center gap-2 mb-3\">\n <Users className=\"h-4 w-4\" />\n <h3 className=\"text-sm font-medium\">Access Control</h3>\n <Badge variant=\"outline\" className=\"text-xs\">\n {agent.rights_mode || \"Open\"}\n </Badge>\n </div>\n </div>\n </div>\n </SheetContent>\n </Sheet>\n );\n}","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n"],"names":["AgentDetailsSheet","param","agent","tools","agentId","open","onOpenChange","data","agentData","loading","agentLoading","useQuery","GET_AGENT_BY_ID","variables","id","toolsData","toolsLoading","GET_TOOLS","agentById","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Sheet","SheetContent","className","div","jsxs","SheetHeader","image","img","src","alt","concat","name","charAt","toUpperCase","SheetTitle","Badge","variant","active","modelName","h3","p","description","TooltipProvider","capabilities","text","Text","Tooltip","TooltipTrigger","asChild","images","length","Image","TooltipContent","join","files","FileText","audio","Volume2","video","Video","Wrench","items","map","isEnabled","some","et","tool","type","Shield","firewall","enabled","scanners","Object","entries","scanner","span","scannerNames","promptGuard","codeShield","agentAlignment","hiddenAscii","piiDetection","Users","rights_mode","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","props","cn","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogOverlay","React","ref","displayName","DialogContent","children","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"sourceRoot":""}
1
+ {"version":3,"file":"static/chunks/2293-592e22dde70d632b.js","mappings":"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","sources":["webpack://_N_E/./app/(application)/agents/components/agent-details-sheet.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { useQuery } from \"@apollo/client\";\nimport { Agent } from \"@EXULU_SHARED//models/agent\";\nimport { Badge } from \"@/components/ui/badge\";\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n} from \"@/components/ui/sheet\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { Image, FileText, Volume2, Video, Shield, Users, Wrench, Text } from \"lucide-react\";\nimport { GET_AGENT_BY_ID, GET_TOOLS } from \"@/queries/queries\";\nimport { Tool } from \"@/types/models/tool\";\n\ninterface AgentDetailsSheetProps {\n agentId: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nexport function AgentDetailsSheet({ agentId, open, onOpenChange }: AgentDetailsSheetProps) {\n\n const { data: agentData, loading: agentLoading } = useQuery<{\n agentById: Agent\n }>(GET_AGENT_BY_ID, {\n variables: {\n id: agentId,\n },\n });\n\n const { data: toolsData, loading: toolsLoading } = useQuery<{\n tools: {\n items: Tool[]\n }\n }>(GET_TOOLS);\n\n if (agentLoading || !agentData?.agentById || toolsLoading || !toolsData?.tools) {\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent className=\"w-[400px] sm:w-[540px]\">\n <div className=\"flex items-center justify-center h-full\">\n <div className=\"animate-spin h-8 w-8 border-4 border-primary border-t-transparent rounded-full\" />\n </div>\n </SheetContent>\n </Sheet>\n );\n }\n\n const agent = agentData.agentById;\n const tools = toolsData.tools;\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent className=\"w-[400px] sm:w-[540px] overflow-y-auto\">\n <SheetHeader className=\"space-y-4\">\n <div className=\"flex flex-col items-center space-y-4\">\n <div className=\"w-24 h-24 bg-gradient-to-br from-primary/20 to-primary/5 rounded-full flex items-center justify-center overflow-hidden\">\n {agent.image ? (\n <img\n src={agent.image}\n alt={`${agent.name} agent`}\n className=\"w-full h-full object-cover rounded-full\"\n />\n ) : (\n <div className=\"text-3xl font-bold text-primary\">\n {agent.name?.charAt(0).toUpperCase() || 'A'}\n </div>\n )}\n </div>\n <div className=\"text-center space-y-2\">\n <SheetTitle className=\"text-xl\">{agent.name}</SheetTitle>\n <div className=\"flex items-center justify-center gap-2\">\n <Badge variant={agent.active ? \"default\" : \"secondary\"}>\n {agent.active ? \"Active\" : \"Inactive\"}\n </Badge>\n <Badge variant=\"outline\">{agent.modelName || \"No model selected\"}</Badge>\n </div>\n </div>\n </div>\n </SheetHeader>\n\n <div className=\"py-6 space-y-6\">\n {/* Description */}\n <div>\n <h3 className=\"text-sm font-medium mb-2\">Description</h3>\n <p className=\"text-sm text-muted-foreground\">\n {agent.description || \"No description available.\"}\n </p>\n </div>\n\n {/* Capabilities */}\n <div>\n <h3 className=\"text-sm font-medium mb-3\">Capabilities</h3>\n <TooltipProvider>\n <div className=\"flex items-center gap-3\">\n <div className={`p-3 rounded-md ${agent.capabilities?.text ? 'bg-green-500 text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Text className=\"h-4 w-4\" />\n </div>\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-3 rounded-md ${agent.capabilities?.images?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Image className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Images: {agent.capabilities?.images?.length ? agent.capabilities.images.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-3 rounded-md ${agent.capabilities?.files?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <FileText className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Files: {agent.capabilities?.files?.length ? agent.capabilities.files.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-3 rounded-md ${agent.capabilities?.audio?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Volume2 className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Audio: {agent.capabilities?.audio?.length ? agent.capabilities.audio.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <div className={`p-3 rounded-md ${agent.capabilities?.video?.length ? 'bg-primary text-primary-foreground' : 'bg-gray-500 text-white'}`}>\n <Video className=\"h-4 w-4\" />\n </div>\n </TooltipTrigger>\n <TooltipContent>\n <p>Video: {agent.capabilities?.video?.length ? agent.capabilities.video.join(\", \") : \"None\"}</p>\n </TooltipContent>\n </Tooltip>\n </div>\n </TooltipProvider>\n </div>\n\n {/* Tools */}\n <div>\n <div className=\"flex items-center gap-2 mb-3\">\n <Wrench className=\"h-4 w-4\" />\n <h3 className=\"text-sm font-medium\">Tools</h3>\n <Badge variant=\"outline\" className=\"text-xs\">\n {agent.tools?.length || 0}/{tools.items?.length || 0}\n </Badge>\n </div>\n <div className=\"space-y-2\">\n {agent.tools?.length && agent.tools.length > 0 ? (\n tools?.items?.map((tool) => {\n const isEnabled = agent.tools?.some(et => et.id === tool.id);\n if (!isEnabled) return null;\n return (\n <div key={tool.id} className=\"flex items-center justify-between p-2 rounded border\">\n <div className=\"flex-1\">\n <div className=\"text-sm font-medium\">{tool.name}</div>\n <div className=\"text-xs text-muted-foreground\">{tool.type}</div>\n </div>\n <Badge variant=\"secondary\" className=\"text-xs\">Enabled</Badge>\n </div>\n );\n })\n ) : (\n <p className=\"text-sm text-muted-foreground\">No tools enabled</p>\n )}\n </div>\n </div>\n\n {/* Firewall */}\n <div>\n <div className=\"flex items-center gap-2 mb-3\">\n <Shield className=\"h-4 w-4\" />\n <h3 className=\"text-sm font-medium\">Security</h3>\n <Badge variant={agent.firewall?.enabled ? \"default\" : \"secondary\"} className=\"text-xs\">\n {agent.firewall?.enabled ? \"Protected\" : \"Unprotected\"}\n </Badge>\n </div>\n {agent.firewall?.enabled && agent.firewall.scanners && (\n <div className=\"space-y-2\">\n {Object.entries(agent.firewall.scanners).map(([scanner, enabled]) => {\n if (!enabled) return null;\n const scannerNames = {\n promptGuard: \"Prompt Guard\",\n codeShield: \"Code Shield\",\n agentAlignment: \"Agent Alignment\",\n hiddenAscii: \"Hidden ASCII Detection\",\n piiDetection: \"PII Detection\"\n };\n return (\n <div key={scanner} className=\"flex items-center justify-between p-2 rounded border\">\n <span className=\"text-sm\">{scannerNames[scanner as keyof typeof scannerNames] || scanner}</span>\n <Badge variant=\"default\" className=\"text-xs\">Active</Badge>\n </div>\n );\n })}\n </div>\n )}\n </div>\n\n {/* Access Control */}\n <div>\n <div className=\"flex items-center gap-2 mb-3\">\n <Users className=\"h-4 w-4\" />\n <h3 className=\"text-sm font-medium\">Access Control</h3>\n <Badge variant=\"outline\" className=\"text-xs\">\n {agent.rights_mode || \"Open\"}\n </Badge>\n </div>\n </div>\n </div>\n </SheetContent>\n </Sheet>\n );\n}","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n"],"names":["AgentDetailsSheet","param","agent","tools","agentId","open","onOpenChange","data","agentData","loading","agentLoading","useQuery","GET_AGENT_BY_ID","variables","id","toolsData","toolsLoading","GET_TOOLS","agentById","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Sheet","SheetContent","className","div","jsxs","SheetHeader","image","img","src","alt","concat","name","charAt","toUpperCase","SheetTitle","Badge","variant","active","modelName","h3","p","description","TooltipProvider","capabilities","text","Text","Tooltip","TooltipTrigger","asChild","images","length","Image","TooltipContent","join","files","FileText","audio","Volume2","video","Video","Wrench","items","map","isEnabled","some","et","tool","type","Shield","firewall","enabled","scanners","Object","entries","scanner","span","scannerNames","promptGuard","codeShield","agentAlignment","hiddenAscii","piiDetection","Users","rights_mode","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","props","cn","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogOverlay","React","ref","displayName","DialogContent","children","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2534],{82534:function(e,t,s){s.d(t,{F:function(){return k}});var a=s(57437),r=s(2265),n=s(7211),l=s(12199),i=s(33245),d=s(53417),o=s(82023),c=s(99397),u=s(22252),m=s(15863),f=s(26110),p=s(62869),x=s(95186),g=s(26815),h=s(76818),v=s(27689),b=s(77992),N=s(12339),j=s(66070),y=s(35974),w=s(19378),C=s(78361),_=s(77256),S=s(27182);function k(e){let{open:t,onClose:s,evalSetId:k,onSuccess:T,testCase:D}=e,{toast:R}=(0,b.pm)(),Z=!!D,{data:F}=(0,n.aM)(v.Ul,{variables:{page:1,limit:100}}),{regularTools:z,agentTools:E,knowledgeSourceTools:A}=(0,r.useMemo)(()=>{var e;let t=(null==F?void 0:null===(e=F.tools)||void 0===e?void 0:e.items)||[];return console.log("tools",t),{regularTools:t.filter(e=>"function"===e.type),agentTools:t.filter(e=>"agent"===e.type),knowledgeSourceTools:t.filter(e=>"context"===e.type)}},[F]),[V,q]=(0,r.useState)(""),[O,U]=(0,r.useState)(""),[K,M]=(0,r.useState)(""),[P,Y]=(0,r.useState)([]),[B,I]=(0,r.useState)(""),[H,W]=(0,r.useState)(null),[$,G]=(0,r.useState)([]),[J,L]=(0,r.useState)([]),[Q,X]=(0,r.useState)([]),[ee,et]=(0,r.useState)([]),[es,ea]=(0,r.useState)(""),[er,en]=(0,r.useState)(""),[el,ei]=(0,r.useState)("");(0,r.useEffect)(()=>{D&&t?(q(D.name),U(D.description||""),M(D.expected_output),Y(D.inputs||[]),L(D.expected_tools||[]),X(D.expected_knowledge_sources||[]),et(D.expected_agent_tools||[])):t||(q(""),U(""),M(""),Y([]),I(""),W(null),G([]),L([]),X([]),et([]),ea(""),en(""),ei(""))},[D,t]);let ed=async e=>{G(await Promise.all(e.map(async e=>({type:"file",mediaType:e.split(".").pop()||"",filename:e,url:await (0,C.NF)(e)}))))};(0,r.useEffect)(()=>{if(!H||0===H.length){G([]);return}ed(H)},[H]);let[eo,{loading:ec}]=(0,l.D)(v.hx,{onCompleted:()=>{R({title:"Test case created",description:"The test case has been successfully created."}),T()},onError:e=>{R({title:"Failed to create test case",description:e.message,variant:"destructive"})}}),[eu,{loading:em}]=(0,l.D)(v.Mh,{onCompleted:()=>{R({title:"Test case updated",description:"The test case has been successfully updated."}),T()},onError:e=>{R({title:"Failed to update test case",description:e.message,variant:"destructive"})}}),ef=()=>{if(!B.trim()&&0===$.length)return;let e=[];B.trim()&&e.push({type:"text",text:B.trim()}),$.length>0&&e.push(...$),Y([...P,{id:"msg-".concat(Date.now()),role:"user",parts:e},{id:"msg-".concat(Date.now()),role:"assistant",metadata:{type:"placeholder"},parts:[{type:"text",text:"\uD83D\uDCAC Placeholder, generated agent response will be added here when the test case is run..."}]}]),I(""),W(null),G([])},ep=ec||em;return(0,a.jsx)(f.Vq,{open:t,onOpenChange:s,children:(0,a.jsxs)(f.cZ,{className:"max-w-4xl max-h-[90vh] overflow-hidden flex flex-col",children:[(0,a.jsxs)(f.fK,{children:[(0,a.jsxs)(f.$N,{children:[Z?"Edit Test Case":"Create Test Case"," ",k?"for Eval Set: ".concat(k):""]}),(0,a.jsx)(f.Be,{children:Z?"Update the test case details.":"Create a new test case with conversation inputs and expected outputs."})]}),(0,a.jsxs)("form",{onSubmit:e=>{if(e.preventDefault(),!V.trim()||!K.trim()||0===P.length){R({title:"Validation error",description:"Name, at least one input message, and expected output are required.",variant:"destructive"});return}let t={name:V.trim(),description:O.trim()||null,inputs:P,expected_output:K.trim(),expected_tools:J.length>0?J:null,expected_knowledge_sources:Q.length>0?Q:null,expected_agent_tools:ee.length>0?ee:null,...k?{eval_set_id:k}:{}};Z?eu({variables:{id:D.id,data:t}}):eo({variables:{data:t}})},className:"flex-1 overflow-hidden flex flex-col",children:[(0,a.jsxs)(N.mQ,{defaultValue:"basic",className:"flex-1 overflow-hidden flex flex-col",children:[(0,a.jsxs)(N.dr,{className:"grid w-full grid-cols-2",children:[(0,a.jsxs)(N.SP,{value:"basic",className:"gap-2",children:[(0,a.jsx)(i.Z,{className:"h-4 w-4"}),"Basic Info"]}),(0,a.jsxs)(N.SP,{value:"conversation",className:"gap-2",children:[(0,a.jsx)(d.Z,{className:"h-4 w-4"}),"Conversation"]})]}),(0,a.jsxs)(w.x,{className:"flex-1",children:[(0,a.jsx)(N.nU,{value:"basic",className:"space-y-4 p-1 mt-4",children:(0,a.jsxs)("div",{className:"grid gap-5",children:[(0,a.jsxs)("div",{className:"grid gap-2",children:[(0,a.jsx)(g._,{htmlFor:"name",children:"Name *"}),(0,a.jsx)(x.I,{id:"name",placeholder:"e.g., Customer Support - Refund Request",value:V,onChange:e=>q(e.target.value),disabled:ep,required:!0})]}),(0,a.jsxs)("div",{className:"grid gap-2",children:[(0,a.jsx)(g._,{htmlFor:"description",children:"Description"}),(0,a.jsx)(h.g,{id:"description",placeholder:"Describe what this test case evaluates...",value:O,onChange:e=>U(e.target.value),disabled:ep,rows:3})]}),(0,a.jsxs)("div",{className:"grid gap-2",children:[(0,a.jsx)(g._,{htmlFor:"expectedOutput",children:"Expected Output *"}),(0,a.jsx)(h.g,{id:"expectedOutput",placeholder:"Describe the expected final output (e.g., 'A JSON object containing refund details', 'An empathetic response offering alternatives')",value:K,onChange:e=>M(e.target.value),disabled:ep,rows:4,required:!0}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"This can be an exact expected response or a description of what the output should contain."})]})]})}),(0,a.jsx)(N.nU,{value:"conversation",className:"space-y-4 p-1 mt-4",children:(0,a.jsxs)(j.Zb,{children:[(0,a.jsx)(j.Ol,{className:"pb-3",children:(0,a.jsx)("div",{className:"flex items-start justify-between",children:(0,a.jsxs)("div",{children:[(0,a.jsxs)(j.ll,{className:"text-sm flex items-center gap-2",children:[(0,a.jsx)(d.Z,{className:"h-4 w-4"}),"Conversation Flow",P.length>0&&(0,a.jsxs)(y.C,{variant:"secondary",className:"ml-2",children:[P.length," ",1===P.length?"message":"messages"]})]}),(0,a.jsx)(j.SZ,{className:"mt-1.5",children:"Add user messages in order. The agent will run through this conversation flow and respond between each message automatically."})]})})}),(0,a.jsxs)(j.aY,{className:"space-y-6",children:[(null==P?void 0:P.length)===0?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 px-4 text-center border-2 border-dashed border-muted rounded-lg",children:[(0,a.jsx)(o.Z,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),(0,a.jsx)("h3",{className:"font-semibold text-lg mb-2",children:"No messages yet"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground max-w-sm",children:"Start building your test conversation by adding user messages below."})]}):(0,a.jsx)(S.ri,{className:"max-h-[350px] overflow-y-auto border rounded-lg bg-muted/30 transition-all duration-300 ease-in-out",children:(0,a.jsx)(S.iG,{className:"px-6 py-4",children:(0,a.jsx)("div",{className:"animate-in fade-in duration-500",children:(0,a.jsx)(_.K,{messages:P,config:{marginTopFirstMessage:"mt-0",customAssistantClassnames:"bg-secondary/50 rounded-lg px-3 py-1 border-l-2 border-primary/30"},status:"ready",showActions:!1,writeAccess:!1})})})}),(0,a.jsxs)("div",{className:"space-y-3 pt-2 border-t",children:[(0,a.jsx)(g._,{htmlFor:"currentInput",className:"text-sm font-semibold",children:"Add User Message"}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)(h.g,{id:"currentInput",placeholder:"Type the user's message...",value:B,onChange:e=>I(e.target.value),disabled:ep,rows:2,onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),ef())}}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(C.ZP,{id:"test-case-files",selectionLimit:10,allowedFileTypes:[".png",".jpg",".jpeg",".gif",".webp",".pdf",".docx",".xlsx",".xls",".csv",".pptx",".ppt",".mp3",".wav",".m4a",".mp4",".mpeg"],dependencies:[],onConfirm:e=>{W(e)}}),(0,a.jsxs)(p.z,{type:"button",variant:"outline",onClick:ef,disabled:ep||!B.trim()&&0===$.length,className:"ml-auto",size:"default",children:[(0,a.jsx)(c.Z,{className:"h-4 w-4 mr-2"}),"Add Message"]})]}),H&&H.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"grid grid-cols-3 gap-2",children:H.map(e=>(0,a.jsx)(C.jU,{s3Key:e,disabled:!0,active:!1,onRemove:()=>{W(null==H?void 0:H.filter(t=>t!==e))}}))}),(0,a.jsxs)("div",{className:"flex items-start gap-2 p-3 bg-amber-500/10 border border-amber-500/20 rounded-lg",children:[(0,a.jsx)(u.Z,{className:"h-4 w-4 text-amber-600 dark:text-amber-500 mt-0.5 flex-shrink-0"}),(0,a.jsxs)("p",{className:"text-xs text-amber-900 dark:text-amber-200",children:[(0,a.jsx)("strong",{children:"Note:"})," When running this test case, ensure the selected agent supports the file types you've attached here (images, documents, audio, etc.)."]})]})]})]}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Press Enter to add, Shift+Enter for new line. You can attach files to messages."})]})]})]})})]})]}),(0,a.jsxs)(f.cN,{className:"mt-4 gap-2",children:[(0,a.jsx)(p.z,{type:"button",variant:"outline",onClick:s,disabled:ep,children:"Cancel"}),(0,a.jsxs)(p.z,{type:"submit",disabled:ep||!V.trim()||!K.trim()||0===P.length,className:"shadow-sm hover:shadow-md transition-all",children:[ep&&(0,a.jsx)(m.Z,{className:"mr-2 h-4 w-4 animate-spin"}),Z?"Update Test Case":"Create Test Case"]})]})]})]})})}},35974:function(e,t,s){s.d(t,{C:function(){return i}});var a=s(57437),r=s(90535);s(2265);var n=s(94508);let l=(0,r.j)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i(e){let{className:t,variant:s,...r}=e;return(0,a.jsx)("div",{className:(0,n.cn)(l({variant:s}),t),...r})}},66070:function(e,t,s){s.d(t,{Ol:function(){return i},SZ:function(){return o},Zb:function(){return l},aY:function(){return c},eW:function(){return u},ll:function(){return d}});var a=s(57437),r=s(2265),n=s(94508);let l=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",s),...r})});l.displayName="Card";let i=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",s),...r})});i.displayName="CardHeader";let d=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("h3",{ref:t,className:(0,n.cn)("text-2xl font-semibold leading-none tracking-tight",s),...r})});d.displayName="CardTitle";let o=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("p",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",s),...r})});o.displayName="CardDescription";let c=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",s),...r})});c.displayName="CardContent";let u=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",s),...r})});u.displayName="CardFooter"},26110:function(e,t,s){s.d(t,{$N:function(){return x},Be:function(){return g},Vq:function(){return d},cN:function(){return p},cZ:function(){return m},fK:function(){return f},hg:function(){return o}});var a=s(57437),r=s(34567),n=s(32489),l=s(2265),i=s(94508);let d=r.fC,o=r.xz,c=r.h_;r.x8;let u=l.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(r.aV,{ref:t,className:(0,i.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...n})});u.displayName=r.aV.displayName;let m=l.forwardRef((e,t)=>{let{className:s,children:l,...d}=e;return(0,a.jsxs)(c,{children:[(0,a.jsx)(u,{}),(0,a.jsxs)(r.VY,{ref:t,className:(0,i.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",s),...d,children:[l,(0,a.jsxs)(r.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,a.jsx)(n.Z,{className:"size-4"}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});m.displayName=r.VY.displayName;let f=e=>{let{className:t,...s}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...s})};f.displayName="DialogHeader";let p=e=>{let{className:t,...s}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...s})};p.displayName="DialogFooter";let x=l.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(r.Dx,{ref:t,className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",s),...n})});x.displayName=r.Dx.displayName;let g=l.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(r.dk,{ref:t,className:(0,i.cn)("text-sm text-muted-foreground",s),...n})});g.displayName=r.dk.displayName},26815:function(e,t,s){s.d(t,{_:function(){return o}});var a=s(57437),r=s(6394),n=s(90535),l=s(2265),i=s(94508);let d=(0,n.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),o=l.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(r.f,{ref:t,className:(0,i.cn)(d(),s),...n})});o.displayName=r.f.displayName},19378:function(e,t,s){s.d(t,{B:function(){return d},x:function(){return i}});var a=s(57437),r=s(14488),n=s(2265),l=s(94508);let i=n.forwardRef((e,t)=>{let{className:s,children:n,...i}=e;return(0,a.jsxs)(r.fC,{ref:t,className:(0,l.cn)("relative overflow-hidden",s),...i,children:[(0,a.jsx)(r.l_,{className:"size-full rounded-[inherit]",children:n}),(0,a.jsx)(d,{}),(0,a.jsx)(r.Ns,{})]})});i.displayName=r.fC.displayName;let d=n.forwardRef((e,t)=>{let{className:s,orientation:n="vertical",...i}=e;return(0,a.jsx)(r.gb,{ref:t,orientation:n,className:(0,l.cn)("flex touch-none select-none transition-colors","vertical"===n&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===n&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",s),...i,children:(0,a.jsx)(r.q4,{className:"relative flex-1 rounded-full bg-border"})})});d.displayName=r.gb.displayName},76818:function(e,t,s){s.d(t,{g:function(){return l}});var a=s(57437),r=s(2265),n=s(94508);let l=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("textarea",{className:(0,n.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",s),ref:t,...r})});l.displayName="Textarea"}}]);
2
+ //# sourceMappingURL=2534-3dd7a9fabfbdb9d8.js.map