nubot-lite 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +6 -5
  2. package/lib/api.mjs +6 -2
  3. package/lib/cloudflare.mjs +13 -12
  4. package/lib/commands/init.mjs +260 -251
  5. package/package.json +1 -1
  6. package/template/.claude/skills/nubot-lite/SKILL.md +7 -1
  7. package/template/panel/PANEL.md +1 -1
  8. package/template/panel/assets/AgendarDemoPage-Bn_BvTp1.js +1 -0
  9. package/template/panel/assets/{AgentDatasetsPage-D8vQhRWO.js → AgentDatasetsPage-wLtBtSB2.js} +2 -2
  10. package/template/panel/assets/AgentKnowledgeGroupsPage-BGHNFj-e.js +1 -0
  11. package/template/panel/assets/AgentListPage-F3ja9_o_.js +1 -0
  12. package/template/panel/assets/AgentQaTrainingPage-CojiU8_W.js +1 -0
  13. package/template/panel/assets/AiAgentWhatsappPage-Bn_BvTp1.js +1 -0
  14. package/template/panel/assets/BlogPage-Bn_BvTp1.js +1 -0
  15. package/template/panel/assets/BlogPostPage-Bn_BvTp1.js +1 -0
  16. package/template/panel/assets/CalculadoraTiempoRespuestaPage-Bn_BvTp1.js +1 -0
  17. package/template/panel/assets/{CampaignDetailPage-DFMctNEj.js → CampaignDetailPage-DUNnckvn.js} +1 -1
  18. package/template/panel/assets/CampaignsPage-CS60yZBd.js +1 -0
  19. package/template/panel/assets/ChannelSelector-C7R9zqrt.js +1 -0
  20. package/template/panel/assets/ChatbotParaWhatsappPage-Bn_BvTp1.js +1 -0
  21. package/template/panel/assets/ConfirmModal-B27OBQdm.js +1 -0
  22. package/template/panel/assets/ContactsPage-CvoDlFUN.js +14 -0
  23. package/template/panel/assets/CreateAgentPage-CbhikMY1.js +19 -0
  24. package/template/panel/assets/CreditLimitBanner-j72L7jgK.js +1 -0
  25. package/template/panel/assets/CrmParaWhatsappPage-Bn_BvTp1.js +1 -0
  26. package/template/panel/assets/DashboardPage-BGWkXY7W.js +1 -0
  27. package/template/panel/assets/{EmojiPicker-BToAe-MT.js → EmojiPicker-ByTMSXTj.js} +1 -1
  28. package/template/panel/assets/{EventTypesSettingsPage-DCedeQzM.js → EventTypesSettingsPage-CLpO1VBL.js} +1 -1
  29. package/template/panel/assets/GeneradorEnlacesPage-Bn_BvTp1.js +1 -0
  30. package/template/panel/assets/GeneradorQrWhatsappPage-Bn_BvTp1.js +1 -0
  31. package/template/panel/assets/{GeneralSettingsPage-B04ozcHb.js → GeneralSettingsPage-CY-5aGgL.js} +1 -1
  32. package/template/panel/assets/GoogleCalendarManagePage-oX7DuErV.js +1 -0
  33. package/template/panel/assets/{InvitationAcceptancePage-BPgtBFl5.js → InvitationAcceptancePage-BYllrAYs.js} +1 -1
  34. package/template/panel/assets/IrAlSitioPublico-Bn_BvTp1.js +1 -0
  35. package/template/panel/assets/LiteAiUsagePage-Dzm8jBL2.js +1 -0
  36. package/template/panel/assets/{LiteSetupPage-42rgAdnG.js → LiteSetupPage-CMSAur_e.js} +1 -1
  37. package/template/panel/assets/MarkdownRenderer-C3TD9KYa.js +3 -0
  38. package/template/panel/assets/MediaProcessingService-CG2DdSyN.js +1 -0
  39. package/template/panel/assets/NewCampaignPage-BfSEd075.js +1 -0
  40. package/template/panel/assets/OrdersConfigPage-BAKKaX0L.js +1 -0
  41. package/template/panel/assets/OrdersPage-CXiPOCXP.js +1 -0
  42. package/template/panel/assets/{PasswordStrengthIndicator-HZK_oU0W.js → PasswordStrengthIndicator-4h-Y0s2r.js} +1 -1
  43. package/template/panel/assets/PlantillaDetailPage-Bn_BvTp1.js +1 -0
  44. package/template/panel/assets/PlantillasIndexPage-Bn_BvTp1.js +1 -0
  45. package/template/panel/assets/PrivacyPolicy-Bn_BvTp1.js +1 -0
  46. package/template/panel/assets/{ProductManagementPage-DNM7DEgt.js → ProductManagementPage-CRkNTicv.js} +4 -4
  47. package/template/panel/assets/PublicFormPage-BxPxJ3Pq.js +1 -0
  48. package/template/panel/assets/QaForm-Px-cmakA.js +5 -0
  49. package/template/panel/assets/SelectPlanPage-Gyo5C1Hq.js +1 -0
  50. package/template/panel/assets/SignatureEditor-DIhmrXow.js +1 -0
  51. package/template/panel/assets/{TagSelector-ChoKzvjW.js → TagSelector-o6tVpRs9.js} +1 -1
  52. package/template/panel/assets/TagsSettingsPage-DT8MfW1H.js +2 -0
  53. package/template/panel/assets/TeamsPage-BuWuGxZo.js +1 -0
  54. package/template/panel/assets/WhatsappBusinessApiPage-Bn_BvTp1.js +1 -0
  55. package/template/panel/assets/WhatsappMultiagentePage-Bn_BvTp1.js +1 -0
  56. package/template/panel/assets/{account-D2ltXC_U.js → account-G3WXxisG.js} +1 -1
  57. package/template/panel/assets/{admin-lEgqZTsa.js → admin-CSMlOMR8.js} +1 -1
  58. package/template/panel/assets/{agent.service-BcAkMU7j.js → agent.service-BE2rJG_o.js} +1 -1
  59. package/template/panel/assets/{alert-dialog-D8P69s-m.js → alert-dialog-gzZZoAiu.js} +2 -2
  60. package/template/panel/assets/{alert-DI3GBLi1.js → alert-seLKo73M.js} +1 -1
  61. package/template/panel/assets/api-keys-BF33GS2N.js +1 -0
  62. package/template/panel/assets/{archive-LUe5bKi5.js → archive-CxUKRJwu.js} +1 -1
  63. package/template/panel/assets/{arrow-left-BeDdBs_Q.js → arrow-left-CI7mH7bD.js} +1 -1
  64. package/template/panel/assets/{arrow-up-BiBq8Pvx.js → arrow-up-DJzXCc8_.js} +1 -1
  65. package/template/panel/assets/{arrow-up-down-CaG2BONN.js → arrow-up-down-DkSCsCjR.js} +1 -1
  66. package/template/panel/assets/audit-slljESxh.js +1 -0
  67. package/template/panel/assets/{authService-Cbm8LdlJ.js → authService-CtvlzCDa.js} +1 -1
  68. package/template/panel/assets/{avatar-CILB1zwS.js → avatar-BXhSKQGY.js} +1 -1
  69. package/template/panel/assets/{billing-IVLNopU2.js → billing-Cy2XUBeY.js} +1 -1
  70. package/template/panel/assets/{brain-B9z7jZ7A.js → brain-BmrjUpsb.js} +1 -1
  71. package/template/panel/assets/{calendar-CIHhMjNy.js → calendar-Bu0aDtW1.js} +1 -1
  72. package/template/panel/assets/{calendar-days-BwJfOz8M.js → calendar-days-CXtOZxOF.js} +1 -1
  73. package/template/panel/assets/{card-DcKsxjXK.js → card-DdbmSh-v.js} +1 -1
  74. package/template/panel/assets/{checkbox-pcbjC0d3.js → checkbox-CuJh5AMO.js} +1 -1
  75. package/template/panel/assets/{chevrons-up-down-DC-BWTrj.js → chevrons-up-down-DNNdNhV8.js} +1 -1
  76. package/template/panel/assets/{circle-check-big-DzPo5zZX.js → circle-check-big-BOZQ_2Kv.js} +1 -1
  77. package/template/panel/assets/{circle-x-BwMKIs8b.js → circle-x-decmm7ip.js} +1 -1
  78. package/template/panel/assets/cloud-B3m0_VpL.js +1 -0
  79. package/template/panel/assets/{code-BMAyHFJe.js → code-C-UH-ZD-.js} +1 -1
  80. package/template/panel/assets/{cog-M7j64wa2.js → cog-BS-_-U4F.js} +1 -1
  81. package/template/panel/assets/{collapsible-B22t1J-V.js → collapsible-Ce_8EeFJ.js} +1 -1
  82. package/template/panel/assets/{command-COdSmSIB.js → command-aHRTWaYV.js} +1 -1
  83. package/template/panel/assets/connectionsService-BJg4S1e9.js +1 -0
  84. package/template/panel/assets/contactsApi-DI5dcMLo.js +1 -0
  85. package/template/panel/assets/creditErrors-DSbswjsG.js +1 -0
  86. package/template/panel/assets/{database-C1qvt3Py.js → database-Brb7Omak.js} +1 -1
  87. package/template/panel/assets/{datapath-C12uI_pT.js → datapath-CHeKabeh.js} +1 -1
  88. package/template/panel/assets/{datetime-BuZosCVk.js → datetime-D72Uxhjs.js} +1 -1
  89. package/template/panel/assets/{download-CiVQHPeB.js → download-CyfdxFCW.js} +1 -1
  90. package/template/panel/assets/{ellipsis-CMEJnUfK.js → ellipsis-GLu0u4ze.js} +1 -1
  91. package/template/panel/assets/{ellipsis-vertical-DTqbEYYp.js → ellipsis-vertical-CskGwbgN.js} +1 -1
  92. package/template/panel/assets/email-inbox-kyJ2qML5.js +1 -0
  93. package/template/panel/assets/es-BDgg6unH.js +1 -0
  94. package/template/panel/assets/external-link-w7K66ae2.js +1 -0
  95. package/template/panel/assets/{eye-HfQCUjxJ.js → eye-CR5C6hVv.js} +1 -1
  96. package/template/panel/assets/{eye-off-v1Z_lKS0.js → eye-off-CBiJXw4j.js} +1 -1
  97. package/template/panel/assets/facebook-D0SQMea2.js +1 -0
  98. package/template/panel/assets/{file-DMzjdlTL.js → file-CTZ8-xmL.js} +1 -1
  99. package/template/panel/assets/file-braces-54MsOnzo.js +1 -0
  100. package/template/panel/assets/file-spreadsheet-DpekIaV8.js +1 -0
  101. package/template/panel/assets/{folder-D0GKakGp.js → folder-DxTHNhQ_.js} +1 -1
  102. package/template/panel/assets/{folder-open-DQFc4qTJ.js → folder-open-BM4rA96e.js} +1 -1
  103. package/template/panel/assets/format-BG1mN6C0.js +1 -0
  104. package/template/panel/assets/{grip-vertical-FN-eTC2C.js → grip-vertical-CS-dU0tJ.js} +1 -1
  105. package/template/panel/assets/{hash-BoTE56iw.js → hash-ByrjK6gt.js} +1 -1
  106. package/template/panel/assets/{help-center-B1MAIBWA.js → help-center-fmvvoAkD.js} +1 -1
  107. package/template/panel/assets/{history-DhHayxUg.js → history-97D1GT_9.js} +1 -1
  108. package/template/panel/assets/house-CXew5LB-.js +1 -0
  109. package/template/panel/assets/{index-DsyZ_FlA.js → index-43NA2pdZ.js} +23 -23
  110. package/template/panel/assets/index-BG59-Kyv.js +6 -0
  111. package/template/panel/assets/{index-DUnioqCT.js → index-BGvtgHY3.js} +1 -1
  112. package/template/panel/assets/index-BL76lyPt.js +2 -0
  113. package/template/panel/assets/index-BUA9lP4J.js +1 -0
  114. package/template/panel/assets/index-Bfvq4Q3v.js +1 -0
  115. package/template/panel/assets/index-CK793Wzl.css +1 -0
  116. package/template/panel/assets/{index-BTxe6gLJ.js → index-ChrvveQm.js} +1 -1
  117. package/template/panel/assets/index-CoJIvJ6y.js +1 -0
  118. package/template/panel/assets/{index-CMEeV9dO.js → index-CsV1u-Y7.js} +2 -2
  119. package/template/panel/assets/{index-BiSc3WD9.js → index-DIxON2Dm.js} +1 -1
  120. package/template/panel/assets/index-DtoSJTyl.js +1 -0
  121. package/template/panel/assets/index-FBuxpbGF.js +36 -0
  122. package/template/panel/assets/index-YR5X3nd4.js +1 -0
  123. package/template/panel/assets/{instagram-CC7iYt7V.js → instagram-Bm17x-Fs.js} +1 -1
  124. package/template/panel/assets/interactiveLimits-C7Sx7s9W.js +1 -0
  125. package/template/panel/assets/landing-CEUFhLJ9.js +1 -0
  126. package/template/panel/assets/{layout-grid-Cm6hfBWZ.js → layout-grid-DN-t2Wjd.js} +1 -1
  127. package/template/panel/assets/{list-BKc6EXnV.js → list-B0uLKf1b.js} +1 -1
  128. package/template/panel/assets/{map-pin-CPmcofD3.js → map-pin-COYHwobx.js} +1 -1
  129. package/template/panel/assets/{maximize-2-WdbM7Kdx.js → maximize-2-SbmXBBYe.js} +1 -1
  130. package/template/panel/assets/mediaLimits-CAYdWqeQ.js +1 -0
  131. package/template/panel/assets/mediaValidation-Bg0xHQrv.js +1 -0
  132. package/template/panel/assets/message-circle-tNSzOeOW.js +1 -0
  133. package/template/panel/assets/{message-square-Dfn16oHc.js → message-square-B1_OirdW.js} +1 -1
  134. package/template/panel/assets/{meta-templates-C7yEjSOI.js → meta-templates-hhDdxBOR.js} +1 -1
  135. package/template/panel/assets/metadataSchemasApi-BmJko2eC.js +1 -0
  136. package/template/panel/assets/{mic-CT4vyzLZ.js → mic-ClFq9hMZ.js} +1 -1
  137. package/template/panel/assets/minus-vh4a51Mn.js +1 -0
  138. package/template/panel/assets/{music-Cu8AQMFp.js → music-CgtkroYi.js} +1 -1
  139. package/template/panel/assets/{page-components-o2TF52HV.js → page-components-DXOKtt_M.js} +1 -1
  140. package/template/panel/assets/{pages-Cj5Qd1QO.js → pages-BcYbyh_-.js} +1 -1
  141. package/template/panel/assets/{pages-B7digtXi.js → pages-BuibyrnC.js} +1 -1
  142. package/template/panel/assets/{pages-Dw7dvmaS.js → pages-CGXCBdff.js} +1 -1
  143. package/template/panel/assets/paperclip-DVRbzE7C.js +1 -0
  144. package/template/panel/assets/{pen-line-DLnhkIuw.js → pen-line-Cr0YFjAs.js} +1 -1
  145. package/template/panel/assets/{pencil-Cx8u1N8t.js → pencil-aqjc7AWb.js} +1 -1
  146. package/template/panel/assets/{popover-MyuU-yAK.js → popover-cWIhNmod.js} +1 -1
  147. package/template/panel/assets/{power-CdR2OkIX.js → power-CVFzhVJx.js} +1 -1
  148. package/template/panel/assets/{product.service-CRLZOQsr.js → product.service-FClit10f.js} +1 -1
  149. package/template/panel/assets/products.types-nZIsk2w8.js +1 -0
  150. package/template/panel/assets/proxy-CvX2KM2u.js +1 -0
  151. package/template/panel/assets/{save-Dua2yhWl.js → save-mwkHDnDL.js} +1 -1
  152. package/template/panel/assets/scroll-area-CSCo4HHB.js +1 -0
  153. package/template/panel/assets/{select-DlB_BbfM.js → select-DCY_lg9j.js} +1 -1
  154. package/template/panel/assets/{send-Dxmdupsl.js → send-DBQH77K9.js} +1 -1
  155. package/template/panel/assets/{separator-CPT3uVRM.js → separator-DznqP68l.js} +1 -1
  156. package/template/panel/assets/{settings-2-C-c8ECWW.js → settings-2-PhKPMrsj.js} +1 -1
  157. package/template/panel/assets/shield-alert-Fv3j9Wbv.js +1 -0
  158. package/template/panel/assets/{skeleton-B0zh8s_y.js → skeleton-CN6xlRXP.js} +1 -1
  159. package/template/panel/assets/{slider-CY71MXOW.js → slider-D0QB_Lme.js} +1 -1
  160. package/template/panel/assets/{square-BuGqLxJB.js → square-Dm5VC71z.js} +1 -1
  161. package/template/panel/assets/{square-pen-CJajoyrm.js → square-pen-Dbn7xmc-.js} +1 -1
  162. package/template/panel/assets/{star-Cuegk1GF.js → star-BMD3HmS6.js} +1 -1
  163. package/template/panel/assets/stat-card-W7s_-fHW.js +1 -0
  164. package/template/panel/assets/storage.api-C0ZJBoSz.js +20 -0
  165. package/template/panel/assets/{switch-ODBa0fCT.js → switch-C7XmAU1c.js} +1 -1
  166. package/template/panel/assets/{table-CvSELOPi.js → table-7NGq0kRw.js} +1 -1
  167. package/template/panel/assets/{tabs-DqXhuAr6.js → tabs-BGCKrmVw.js} +1 -1
  168. package/template/panel/assets/{tags-By_tlh_r.js → tags-HU2fuPFH.js} +1 -1
  169. package/template/panel/assets/{target-DEuCdeUI.js → target-CG_g4_Fj.js} +1 -1
  170. package/template/panel/assets/{textarea-BYtcLsMD.js → textarea-B1anutjq.js} +1 -1
  171. package/template/panel/assets/{ticket-CWba7G1i.js → ticket-CHs1Xojr.js} +1 -1
  172. package/template/panel/assets/{trash-2-Du2vmQCH.js → trash-2-D_kmHMwn.js} +1 -1
  173. package/template/panel/assets/{trending-up-Ba4HSvuW.js → trending-up-BnHeLWFs.js} +1 -1
  174. package/template/panel/assets/{upload-C7TwpdyA.js → upload-CQg4_W5r.js} +1 -1
  175. package/template/panel/assets/{useAiAgentsQuery-Bm6aRHKj.js → useAiAgentsQuery-CXo6TmU6.js} +1 -1
  176. package/template/panel/assets/useFunnelStats-Bk8wTET5.js +1 -0
  177. package/template/panel/assets/useFunnelsQuery-vDrahaDr.js +1 -0
  178. package/template/panel/assets/{useInfiniteQuery-BXUM1Z9V.js → useInfiniteQuery-D0sFT2K2.js} +1 -1
  179. package/template/panel/assets/{useMutation-a5tIBvQY.js → useMutation-0ypmz8SO.js} +1 -1
  180. package/template/panel/assets/useOrgSyncedFetch-FSgwRhpR.js +1 -0
  181. package/template/panel/assets/usePipelineBoardQuery-BysscZXI.js +9 -0
  182. package/template/panel/assets/{useUploadConfig-BuiF0X-3.js → useUploadConfig-CvVmSc6S.js} +1 -1
  183. package/template/panel/assets/{user-DwCALzIG.js → user-l48WDfDH.js} +1 -1
  184. package/template/panel/assets/{user-plus-BiUjcHil.js → user-plus-CWaaUP-O.js} +1 -1
  185. package/template/panel/assets/{video-VfwKgB6z.js → video-CILE66CA.js} +1 -1
  186. package/template/panel/assets/{volume-2-C5DMdOVq.js → volume-2-DfFqN0dw.js} +1 -1
  187. package/template/panel/assets/wrench-Dcbk4scY.js +1 -0
  188. package/template/panel/index.html +2 -2
  189. package/template/panel/version.json +2 -2
  190. package/template/worker/migrations/0006_ai_usage.sql +33 -0
  191. package/template/worker/migrations/0007_channels.sql +18 -0
  192. package/template/worker/src/agent/pricing.ts +37 -0
  193. package/template/worker/src/agent/prompt.ts +137 -134
  194. package/template/worker/src/agent/run.ts +350 -243
  195. package/template/worker/src/agent/sandbox.ts +2 -2
  196. package/template/worker/src/agent/tools.ts +463 -463
  197. package/template/worker/src/channels/accounts.ts +177 -0
  198. package/template/worker/src/channels/zernio.ts +161 -148
  199. package/template/worker/src/inbox/contacts.ts +2 -0
  200. package/template/worker/src/inbox/store.ts +199 -187
  201. package/template/worker/src/index.ts +2 -0
  202. package/template/worker/src/nubot/account.ts +163 -178
  203. package/template/worker/src/nubot/ai-usage.ts +197 -0
  204. package/template/worker/src/nubot/channels.ts +159 -0
  205. package/template/worker/src/nubot/contacts.ts +387 -386
  206. package/template/worker/src/nubot/funnels.ts +672 -670
  207. package/template/worker/src/nubot/inbox.ts +623 -616
  208. package/template/worker/src/nubot/index.ts +127 -122
  209. package/template/worker/src/nubot/mappers.ts +12 -5
  210. package/template/worker/src/routes/channels.ts +13 -0
  211. package/template/worker/src/routes/system.ts +110 -100
  212. package/template/worker/src/webhooks/zernio.ts +154 -125
  213. package/template/panel/assets/AgendarDemoPage-DOiS40FL.js +0 -1
  214. package/template/panel/assets/AgentKnowledgeGroupsPage-DEPS1lsk.js +0 -1
  215. package/template/panel/assets/AgentListPage-DqY9rze5.js +0 -1
  216. package/template/panel/assets/AgentQaTrainingPage-Ecis7xoc.js +0 -1
  217. package/template/panel/assets/AiAgentWhatsappPage-DOiS40FL.js +0 -1
  218. package/template/panel/assets/AiMetricsPage-DEPS1lsk.js +0 -1
  219. package/template/panel/assets/BlogPage-DOiS40FL.js +0 -1
  220. package/template/panel/assets/BlogPostPage-DOiS40FL.js +0 -1
  221. package/template/panel/assets/CalculadoraTiempoRespuestaPage-DOiS40FL.js +0 -1
  222. package/template/panel/assets/CampaignsPage-CLRaXGlj.js +0 -1
  223. package/template/panel/assets/ChannelSelector-q9tTirNo.js +0 -1
  224. package/template/panel/assets/ChatbotParaWhatsappPage-DOiS40FL.js +0 -1
  225. package/template/panel/assets/ConfirmModal-W7VUI3Z_.js +0 -1
  226. package/template/panel/assets/ContactsPage-CsOFsOPw.js +0 -14
  227. package/template/panel/assets/CreateAgentPage-Ifxx6_UX.js +0 -19
  228. package/template/panel/assets/CreditLimitBanner-J49rSVEn.js +0 -1
  229. package/template/panel/assets/CrmParaWhatsappPage-DOiS40FL.js +0 -1
  230. package/template/panel/assets/DashboardPage-3Viy83dd.js +0 -1
  231. package/template/panel/assets/GeneradorEnlacesPage-DOiS40FL.js +0 -1
  232. package/template/panel/assets/GeneradorQrWhatsappPage-DOiS40FL.js +0 -1
  233. package/template/panel/assets/IrAlSitioPublico-DOiS40FL.js +0 -1
  234. package/template/panel/assets/MediaProcessingService-glHGiE_o.js +0 -1
  235. package/template/panel/assets/NewCampaignPage-Cw99m3W8.js +0 -1
  236. package/template/panel/assets/OrdersConfigPage-B6BfM3lf.js +0 -1
  237. package/template/panel/assets/OrdersPage-Du7CJjty.js +0 -1
  238. package/template/panel/assets/PlantillaDetailPage-DOiS40FL.js +0 -1
  239. package/template/panel/assets/PlantillasIndexPage-DOiS40FL.js +0 -1
  240. package/template/panel/assets/PrivacyPolicy-DOiS40FL.js +0 -1
  241. package/template/panel/assets/PublicFormPage-DDb4OXEM.js +0 -1
  242. package/template/panel/assets/QaForm-BDboHNKo.js +0 -5
  243. package/template/panel/assets/SelectPlanPage-DALaf8E5.js +0 -1
  244. package/template/panel/assets/TagsSettingsPage-DYCKveQq.js +0 -2
  245. package/template/panel/assets/TeamsPage-DPUcRdlh.js +0 -1
  246. package/template/panel/assets/WhatsappBusinessApiPage-DOiS40FL.js +0 -1
  247. package/template/panel/assets/WhatsappMultiagentePage-DOiS40FL.js +0 -1
  248. package/template/panel/assets/api-keys-B0UQNR5E.js +0 -1
  249. package/template/panel/assets/audit-BrdHcTNl.js +0 -1
  250. package/template/panel/assets/connections-Dqwd01UI.js +0 -1
  251. package/template/panel/assets/connectionsService-BsJf8pFz.js +0 -3
  252. package/template/panel/assets/contactsApi-B851NME_.js +0 -1
  253. package/template/panel/assets/creditErrors-CrpkwwUI.js +0 -1
  254. package/template/panel/assets/email-inbox-LbGeQCty.js +0 -1
  255. package/template/panel/assets/es-BG480iA5.js +0 -1
  256. package/template/panel/assets/facebook-RxMBweMB.js +0 -1
  257. package/template/panel/assets/index-B183O0S5.js +0 -1
  258. package/template/panel/assets/index-BJCPaymI.css +0 -1
  259. package/template/panel/assets/index-BtxJGfLL.js +0 -6
  260. package/template/panel/assets/index-Bz-ixwph.js +0 -1
  261. package/template/panel/assets/index-CjQSv8hF.js +0 -2
  262. package/template/panel/assets/index-D3vkHHjD.js +0 -9
  263. package/template/panel/assets/index-D4WhIkMN.js +0 -1
  264. package/template/panel/assets/interactiveLimits-CfLJ1O4_.js +0 -1
  265. package/template/panel/assets/landing-If3oVsS0.js +0 -1
  266. package/template/panel/assets/mediaValidation-BR-ZOj5w.js +0 -1
  267. package/template/panel/assets/minus-CyVEzdqL.js +0 -1
  268. package/template/panel/assets/products.types-46xSxBS8.js +0 -1
  269. package/template/panel/assets/scroll-area-CavEOIyz.js +0 -1
  270. package/template/panel/assets/shield-alert-04pSYngI.js +0 -1
  271. package/template/panel/assets/storage.api-CFU3KJNp.js +0 -20
  272. package/template/panel/assets/useFunnelStats-tvjpmWIC.js +0 -1
@@ -0,0 +1,19 @@
1
+ import{c as se,j as e,F as oe,l as q,b as V,i as Se,o as O,V as ae,t as A,S as pe,I as P,ax as cs,X as ue,g as he,B as z,r as ee,x as ms,ai as us,a7 as ge,a9 as _e,at as xs,L as ps,Z as Ve,T as hs,s as gs,v as bs,n as _,ar as fs,aG as js,aB as De,E as Be,Y as xe,w as vs,c6 as Ge,C as Ns,aC as Me,aU as ys,u as ws,h as ks}from"./index-43NA2pdZ.js";import{b as u}from"./recharts-DrC5kNsx.js";import{C as D,b as G,c as H,a as B,d as X}from"./card-DdbmSh-v.js";import{C as He}from"./calendar-Bu0aDtW1.js";import{H as Cs}from"./house-CXew5LB-.js";import{T as be}from"./textarea-B1anutjq.js";import{S as fe}from"./slider-D0QB_Lme.js";import{T as Ss,a as _s,b as de,c as ce}from"./tabs-BGCKrmVw.js";import{S as je,a as ve,b as Ne,c as ye,d as ne}from"./select-DCY_lg9j.js";import{S as me}from"./switch-C7XmAU1c.js";import{C as ie}from"./checkbox-CuJh5AMO.js";import{a as Q}from"./agent.service-BE2rJG_o.js";import{U as we}from"./upload-CQg4_W5r.js";import{Q as ze}from"./QaForm-Px-cmakA.js";import{u as Qe}from"./index-CCTahcpv.js";import{u as As,a as qe,K as Is,P as Ts,D as Fs,c as Es,C as Ms}from"./core.esm-Dq12RbIP.js";import{s as zs,S as qs,v as Ps,a as $s,u as Rs}from"./sortable.esm-CF3ooibJ.js";import{u as Ue}from"./useDebounce-Bfcb_jpD.js";import{M as le}from"./mediaValidation-Bg0xHQrv.js";import{P as Oe}from"./pencil-aqjc7AWb.js";import{G as Ls}from"./grip-vertical-CS-dU0tJ.js";import{D as te}from"./database-Brb7Omak.js";import{S as Ke}from"./save-mwkHDnDL.js";import{c as Vs}from"./connectionsService-BJg4S1e9.js";import{U as Ds}from"./user-plus-CWaaUP-O.js";import{T as We}from"./target-CG_g4_Fj.js";import{H as Ye}from"./history-97D1GT_9.js";import{T as Ae}from"./trash-2-D_kmHMwn.js";import{p as Bs}from"./product.service-FClit10f.js";import{B as Gs}from"./brain-BmrjUpsb.js";import{S as Hs}from"./settings-2-PhKPMrsj.js";import{M as Qs}from"./message-square-B1_OirdW.js";import{S as Us}from"./shield-alert-Fv3j9Wbv.js";import{A as ke,a as Os,b as Ce}from"./avatar-BXhSKQGY.js";import{a as Ks}from"./datetime-D72Uxhjs.js";import{M as Ws}from"./MarkdownRenderer-C3TD9KYa.js";import{P as Ys}from"./paperclip-DVRbzE7C.js";import{S as Xs}from"./square-Dm5VC71z.js";import{M as Xe}from"./mic-ClFq9hMZ.js";import{S as Zs}from"./send-DBQH77K9.js";import{U as Js}from"./user-l48WDfDH.js";import{V as ea,I as sa}from"./video-CILE66CA.js";import{V as aa}from"./volume-2-DfFqN0dw.js";import{D as ta}from"./download-CyfdxFCW.js";import{A as ra}from"./arrow-left-CI7mH7bD.js";import"./index-KbFmSzBE.js";import"./storage.api-C0ZJBoSz.js";import"./mediaLimits-CAYdWqeQ.js";import"./code-C-UH-ZD-.js";import"./list-B0uLKf1b.js";import"./eye-CR5C6hVv.js";import"./music-CgtkroYi.js";import"./index-DIxON2Dm.js";const na=[["path",{d:"M12 17V3",key:"1cwfxf"}],["path",{d:"m6 11 6 6 6-6",key:"12ii2o"}],["path",{d:"M19 21H5",key:"150jfl"}]],la=se("arrow-down-to-line",na);const oa=[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],ia=se("briefcase",oa);const da=[["path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4",key:"1nerag"}],["path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88",key:"o46ks0"}],["path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02",key:"ptglia"}],["path",{d:"M2 12a10 10 0 0 1 18-6",key:"ydlgp0"}],["path",{d:"M2 16h.01",key:"1gqxmh"}],["path",{d:"M21.8 16c.2-2 .131-5.354 0-6",key:"drycrb"}],["path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2",key:"1tidbn"}],["path",{d:"M8.65 22c.21-.66.45-1.32.57-2",key:"13wd9y"}],["path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2",key:"1fr1j5"}]],Ze=se("fingerprint-pattern",da);const ca=[["path",{d:"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3",key:"1xhozi"}]],ma=se("headphones",ca);const ua=[["path",{d:"m16 6 4 14",key:"ji33uf"}],["path",{d:"M12 6v14",key:"1n7gus"}],["path",{d:"M8 8v12",key:"1gg7y9"}],["path",{d:"M4 4v16",key:"6qkkli"}]],xa=se("library",ua);const pa=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"M15 9h.01",key:"x1ddxp"}]],ha=se("scan-face",pa),Pe={template_sales:ia,template_support:ma,template_real_estate:Cs,template_appointments:He,default:oe};function ga({templates:s,selectedTemplateId:n,onSelect:d}){return e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:s.map(l=>{const o=Pe[l.id]||Pe.default,t=n===l.id;return e.jsxs(D,{className:q("cursor-pointer transition-all hover:border-primary/50 hover:shadow-md",t?"border-primary bg-primary/5 ring-2 ring-primary/20":"border-border"),onClick:()=>d(l),children:[e.jsxs(G,{className:"space-y-1 pb-2",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-primary/10 flex items-center justify-center mb-2 text-primary",children:e.jsx(o,{className:"w-5 h-5"})}),e.jsx(H,{className:"text-lg font-semibold",children:l.name})]}),e.jsx(B,{children:e.jsx(X,{className:"text-sm text-muted-foreground line-clamp-3",children:l.description})})]},l.id)})})}const Y={list:async()=>{const{data:s}=await V.get("/knowledge/groups");return s},listSources:async s=>{const{data:n}=await V.get(`/knowledge/groups/${s}/sources`);return n},create:async s=>{const{data:n}=await V.post("/knowledge/groups",s);return n},update:async(s,n)=>{const{data:d}=await V.patch(`/knowledge/groups/${s}`,n);return d},remove:async(s,n)=>{await V.delete(`/knowledge/groups/${s}`,{params:n?{deleteSources:"true"}:void 0})},deletePreview:async s=>{const{data:n}=await V.get(`/knowledge/groups/${s}/delete-preview`);return n},assignSources:async(s,n)=>{const{data:d}=await V.post(`/knowledge/groups/${s}/sources`,{sourceIds:n});return d},unassignSource:async(s,n)=>{const{data:d}=await V.delete(`/knowledge/groups/${s}/sources/${n}`);return d},reorderSources:async(s,n)=>{const{data:d}=await V.patch(`/knowledge/groups/${s}/sources/reorder`,{sourceIds:n});return d},getAgentPrimaryBox:async s=>{const{data:n}=await V.get(`/ai-agents/${s}/knowledge/primary`);return n},addSourcesToAgentBox:async(s,n)=>{const{data:d}=await V.post(`/ai-agents/${s}/knowledge/sources`,{sourceIds:n});return d}};function ba({organizationId:s,onUploaded:n,compact:d}){const l=Se(),[o,t]=u.useState(!1),p=async r=>{const i=r.target.files?.[0];if(i){t(!0);try{const b=await Q.uploadKnowledge(i,s);await l.invalidateQueries({queryKey:["knowledge","sources","all"]}),A.success("Documento procesado e indexado"),b?.sourceId&&n(b.sourceId)}catch(b){console.error(b),A.error("Error al subir el documento")}finally{t(!1),r.target.value=""}}};return e.jsxs("div",{className:`border-2 border-dashed border-border rounded-lg text-center hover:bg-muted/40 transition-colors relative ${d?"p-4":"p-6"}`,children:[e.jsx("input",{type:"file",className:"absolute inset-0 opacity-0 cursor-pointer",accept:".pdf,.txt",onChange:p,disabled:o}),e.jsx("div",{className:"flex flex-col items-center gap-2 text-muted-foreground",children:o?e.jsxs(e.Fragment,{children:[e.jsx(O,{className:"h-5 w-5 animate-spin"}),e.jsx("span",{className:"text-sm font-medium text-foreground",children:"Procesando e indexando…"}),e.jsx("span",{className:"text-xs",children:"Puede tardar unos segundos según el tamaño"})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-9 w-9 rounded-full bg-primary/10 flex items-center justify-center text-primary",children:e.jsx(we,{className:"h-4 w-4"})}),e.jsx("span",{className:"text-sm font-medium text-foreground",children:"Subir documento"}),e.jsxs("span",{className:"text-xs flex items-center gap-1",children:[e.jsx(ae,{className:"h-3 w-3"})," PDF o TXT · máx. 10MB"]})]})})]})}const fa=[{key:"all",label:"Todos"},{key:"document",label:"Documentos"},{key:"qa",label:"Q&A"}],ja=50;function va({items:s,loading:n,onEdit:d,onRemove:l,removeLabel:o="Quitar",heightClass:t="max-h-[360px]",onReorder:p}){const[r,i]=u.useState(""),[b,a]=u.useState("all"),c=Ue(r,300),C=u.useRef(null),f=u.useMemo(()=>{const N=c.trim().toLowerCase();return s.filter(S=>b!=="all"&&S.type!==b?!1:N?S.title.toLowerCase().includes(N)||(S.details||"").toLowerCase().includes(N):!0)},[s,c,b]),h=Qe({count:f.length,getScrollElement:()=>C.current,estimateSize:()=>56,overscan:8}),k=N=>!N.missing&&(N.type==="document"||!!N.id),j=As(qe(Ts,{activationConstraint:{distance:5}}),qe(Is,{coordinateGetter:zs})),m=!!c.trim()||b!=="all",x=!!p&&!m&&s.length>1&&s.length<=ja,v=!!p&&m&&s.length>1,R=N=>{const{active:S,over:$}=N;if(!$||S.id===$.id)return;const U=s.findIndex(y=>y.sourceId===S.id),w=s.findIndex(y=>y.sourceId===$.id);U<0||w<0||p?.($s(s,U,w).map(y=>y.sourceId))};return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-2 items-stretch sm:items-center",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(pe,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(P,{placeholder:"Buscar en lo que ya sabe...",className:"pl-9",value:r,onChange:N=>i(N.target.value)})]}),e.jsx("div",{className:"flex items-center rounded-lg border border-border p-0.5 bg-muted/30 shrink-0",children:fa.map(N=>e.jsx("button",{type:"button",onClick:()=>a(N.key),className:`px-3 py-1.5 text-xs font-medium rounded-md transition-colors ${b===N.key?"bg-background shadow-sm text-foreground":"text-muted-foreground hover:text-foreground"}`,children:N.label},N.key))})]}),e.jsx("div",{className:"text-xs text-muted-foreground",children:f.length===s.length?`${s.length} ${s.length===1?"fuente":"fuentes"}`:`${f.length} visibles · ${s.length} en total`}),v&&e.jsx("div",{className:"text-[11px] text-muted-foreground/80 italic",children:"Limpia el buscador y el filtro para reordenar arrastrando."}),e.jsx("div",{className:"border rounded-lg overflow-hidden",children:n?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(O,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):s.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center text-muted-foreground px-6",children:[e.jsx(cs,{className:"h-7 w-7 mb-2 opacity-30"}),e.jsx("span",{className:"text-sm",children:"Aún no le has dado conocimiento. Sube un documento o agrega una pregunta para empezar."})]}):f.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[e.jsx(pe,{className:"h-7 w-7 mb-2 opacity-30"}),e.jsx("span",{className:"text-sm",children:"No hay coincidencias"})]}):x?e.jsx("div",{className:`${t} overflow-y-auto`,children:e.jsx(Fs,{sensors:j,collisionDetection:Es,onDragEnd:R,children:e.jsx(qs,{items:s.map(N=>N.sourceId),strategy:Ps,children:s.map(N=>e.jsx(Na,{item:N,canEdit:k(N),onEdit:d,onRemove:l,removeLabel:o},N.sourceId))})})}):e.jsx("div",{ref:C,className:`${t} overflow-y-auto`,children:e.jsx("div",{style:{height:`${h.getTotalSize()}px`,width:"100%",position:"relative"},children:h.getVirtualItems().map(N=>{const S=f[N.index],$=k(S);return e.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:`${N.size}px`,transform:`translateY(${N.start}px)`},children:e.jsxs("div",{className:"group flex items-center gap-3 px-3 h-full border-b last:border-b-0 hover:bg-muted/40",children:[S.type==="document"?e.jsx(ae,{className:"h-4 w-4 text-blue-500 shrink-0"}):e.jsx(le,{className:"h-4 w-4 text-violet-500 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium truncate",title:S.title,children:S.missing?"(fuente no disponible)":S.title}),e.jsx("p",{className:"text-xs text-muted-foreground truncate",children:S.type==="document"?`${S.chunkCount??0} chunks`:S.details||"Sin respuesta"})]}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[e.jsx("button",{type:"button",onClick:()=>$&&d(S),disabled:!$,className:"h-7 w-7 inline-flex items-center justify-center rounded-md text-muted-foreground hover:text-foreground hover:bg-muted opacity-100 sm:opacity-0 sm:group-hover:opacity-100 sm:focus:opacity-100 transition-opacity disabled:opacity-0","aria-label":S.type==="document"?"Renombrar":"Editar",title:S.type==="document"?"Renombrar documento":"Editar pregunta y respuesta",children:e.jsx(Oe,{className:"h-3.5 w-3.5"})}),e.jsx("button",{type:"button",onClick:()=>l(S),className:"h-7 w-7 inline-flex items-center justify-center rounded-md text-muted-foreground hover:text-destructive hover:bg-destructive/10 opacity-100 sm:opacity-0 sm:group-hover:opacity-100 sm:focus:opacity-100 transition-opacity","aria-label":o,title:o,children:e.jsx(ue,{className:"h-4 w-4"})})]})]})},S.sourceId)})})})})]})}function Na({item:s,canEdit:n,onEdit:d,onRemove:l,removeLabel:o}){const{attributes:t,listeners:p,setNodeRef:r,transform:i,transition:b,isDragging:a}=Rs({id:s.sourceId}),c={transform:Ms.Transform.toString(i),transition:b,zIndex:a?10:void 0};return e.jsxs("div",{ref:r,style:c,className:`group flex items-center gap-2 px-2 h-14 border-b last:border-b-0 bg-background hover:bg-muted/40 ${a?"opacity-80 shadow-md rounded-md":""}`,children:[e.jsx("button",{type:"button",className:"h-7 w-6 inline-flex items-center justify-center text-muted-foreground hover:text-foreground cursor-grab active:cursor-grabbing shrink-0 touch-none","aria-label":"Arrastrar para reordenar",...t,...p,children:e.jsx(Ls,{className:"h-4 w-4"})}),s.type==="document"?e.jsx(ae,{className:"h-4 w-4 text-blue-500 shrink-0"}):e.jsx(le,{className:"h-4 w-4 text-violet-500 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium truncate",title:s.title,children:s.missing?"(fuente no disponible)":s.title}),e.jsx("p",{className:"text-xs text-muted-foreground truncate",children:s.type==="document"?`${s.chunkCount??0} chunks`:s.details||"Sin respuesta"})]}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[e.jsx("button",{type:"button",onClick:()=>n&&d(s),disabled:!n,className:"h-7 w-7 inline-flex items-center justify-center rounded-md text-muted-foreground hover:text-foreground hover:bg-muted opacity-100 sm:opacity-0 sm:group-hover:opacity-100 sm:focus:opacity-100 transition-opacity disabled:opacity-0","aria-label":s.type==="document"?"Renombrar":"Editar",title:s.type==="document"?"Renombrar documento":"Editar pregunta y respuesta",children:e.jsx(Oe,{className:"h-3.5 w-3.5"})}),e.jsx("button",{type:"button",onClick:()=>l(s),className:"h-7 w-7 inline-flex items-center justify-center rounded-md text-muted-foreground hover:text-destructive hover:bg-destructive/10 opacity-100 sm:opacity-0 sm:group-hover:opacity-100 sm:focus:opacity-100 transition-opacity","aria-label":o,title:o,children:e.jsx(ue,{className:"h-4 w-4"})})]})]})}function ya(){return he({queryKey:["knowledge","sources","all"],queryFn:async()=>{const[s,n]=await Promise.all([Q.listKnowledgeCollections(),Q.getQaList()]),d=(s||[]).map(o=>({sourceId:o.sourceId,filename:o.filename,uploadedAt:o.createdAt||o.uploadedAt,chunkCount:o.chunkCount,type:"document"}));return[...(n||[]).map(o=>({sourceId:o.sourceId,filename:o.question,uploadedAt:o.createdAt,type:"qa",details:(o.answer||"").substring(0,60)+((o.answer||"").length>60?"...":"")})),...d].sort((o,t)=>new Date(t.uploadedAt).getTime()-new Date(o.uploadedAt).getTime())},staleTime:0,refetchOnWindowFocus:!1})}function wa({selectedIds:s,onChange:n,heightClass:d="max-h-[420px]"}){const{data:l=[],isLoading:o}=ya(),[t,p]=u.useState(""),[r,i]=u.useState("all"),b=Ue(t,300),a=u.useRef(null),c=u.useMemo(()=>new Set(s),[s]),C=u.useMemo(()=>{const x=b.trim().toLowerCase();return l.filter(v=>r!=="all"&&v.type!==r?!1:x?v.filename.toLowerCase().includes(x)||(v.details||"").toLowerCase().includes(x):!0)},[l,b,r]),f=Qe({count:C.length,getScrollElement:()=>a.current,estimateSize:()=>56,overscan:8}),h=x=>{c.has(x)?n(s.filter(v=>v!==x)):n([...s,x])},k=()=>{const x=new Set(s);for(const v of C)x.add(v.sourceId);n(Array.from(x))},j=()=>{const x=new Set(C.map(v=>v.sourceId));n(s.filter(v=>!x.has(v)))},m=[{key:"all",label:"Todos"},{key:"document",label:"Documentos"},{key:"qa",label:"Q&A"}];return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-2 items-stretch sm:items-center",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(pe,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(P,{placeholder:"Buscar fuentes...",className:"pl-9",value:t,onChange:x=>p(x.target.value)})]}),e.jsx("div",{className:"flex items-center rounded-lg border border-border p-0.5 bg-muted/30 shrink-0",children:m.map(x=>e.jsx("button",{type:"button",onClick:()=>i(x.key),className:`px-3 py-1.5 text-xs font-medium rounded-md transition-colors ${r===x.key?"bg-background shadow-sm text-foreground":"text-muted-foreground hover:text-foreground"}`,children:x.label},x.key))})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsxs("span",{className:"text-muted-foreground",children:[s.length," seleccionadas · ",C.length," visibles"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(z,{type:"button",variant:"ghost",size:"sm",className:"h-7 text-xs",onClick:k,disabled:C.length===0,children:"Seleccionar visibles"}),e.jsx(z,{type:"button",variant:"ghost",size:"sm",className:"h-7 text-xs",onClick:j,disabled:C.length===0,children:"Limpiar"})]})]}),e.jsx("div",{className:"border rounded-lg overflow-hidden",children:o?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(O,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):C.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[e.jsx(te,{className:"h-7 w-7 mb-2 opacity-30"}),e.jsx("span",{className:"text-sm",children:"No hay fuentes que coincidan"})]}):e.jsx("div",{ref:a,className:`${d} overflow-y-auto`,children:e.jsx("div",{style:{height:`${f.getTotalSize()}px`,width:"100%",position:"relative"},children:f.getVirtualItems().map(x=>{const v=C[x.index],R=c.has(v.sourceId);return e.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:`${x.size}px`,transform:`translateY(${x.start}px)`},children:e.jsxs("div",{className:`flex items-center gap-3 px-3 h-full border-b last:border-b-0 cursor-pointer transition-colors border-l-2 ${R?"bg-primary/5 dark:bg-primary/10 border-l-primary":"border-l-transparent hover:bg-muted/40"}`,onClick:()=>h(v.sourceId),children:[e.jsx(ie,{checked:R,onCheckedChange:()=>h(v.sourceId),onClick:N=>N.stopPropagation()}),v.type==="document"?e.jsx(ae,{className:"h-4 w-4 text-blue-500 shrink-0"}):e.jsx(le,{className:"h-4 w-4 text-purple-500 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium truncate",title:v.filename,children:v.filename}),e.jsx("p",{className:"text-xs text-muted-foreground truncate",children:v.type==="document"?`${v.chunkCount??0} chunks`:v.details})]}),e.jsx(ee,{variant:"outline",className:"text-[10px] shrink-0",children:v.type==="document"?"Documento":"Q&A"})]})},v.sourceId)})})})})]})}function ka({groupIds:s,onGroupsChange:n,organizationId:d,agentName:l,agentId:o,sources:t=[],onSourcesChange:p}){const r=Se(),{data:i}=he({queryKey:["ai-agent",o,"primary-box"],queryFn:()=>Y.getAgentPrimaryBox(o),enabled:!!o,staleTime:1e3*60}),[b,a]=u.useState(null);u.useEffect(()=>{a(i?.group?.id??null)},[i]);const c=b,C=i?.group?.name||`Conocimiento de ${l?.trim()||"mi agente"}`,[f,h]=u.useState([]),[k,j]=u.useState(!1),[m,x]=u.useState(null),[v,R]=u.useState(!1),[N,S]=u.useState([]),[$,U]=u.useState(!1),{data:w=[],isLoading:y}=he({queryKey:["knowledge","groups"],queryFn:Y.list,staleTime:1e3*60*5}),I=w.filter(g=>!g.ownerAgentId),E=I.filter(g=>s.includes(g.id)).length,M=u.useCallback(async g=>{j(!0);try{h(await Y.listSources(g))}catch{h([])}finally{j(!1)}},[]);u.useEffect(()=>{c?M(c):h([])},[c,M]);const T=()=>r.invalidateQueries({queryKey:["knowledge","groups"]}),L=()=>r.invalidateQueries({queryKey:["ai-agent",o,"primary-box"]}),K=async g=>{if(!o)return A.error("Guarda el agente primero para agregarle conocimiento"),null;const{groupId:F}=await Y.addSourcesToAgentBox(o,g);return a(F),s.includes(F)||n([F,...s]),M(F),L(),T(),F},re=async g=>{try{await K([g])}catch{A.error("No se pudo agregar al agente")}},ss=async g=>{if(!c)return;const F=c;try{await Y.unassignSource(F,g),A.success("Quitado de este agente · sigue en tus fuentes",{action:{label:"Deshacer",onClick:async()=>{try{await Y.assignSources(F,[g]),M(F),T()}catch{A.error("No se pudo deshacer")}}}}),M(F),T()}catch{A.error("No se pudo quitar")}},as=async g=>{if(c){h(F=>{const Z=new Map(F.map(J=>[J.sourceId,J]));return g.map(J=>Z.get(J)).filter(J=>!!J)});try{await Y.reorderSources(c,g)}catch{A.error("No se pudo reordenar"),M(c)}}},ts=g=>{x(g.type==="qa"?{kind:"edit-qa",item:g}:{kind:"rename-doc",item:g})},rs=()=>{c&&M(c),T(),x(null)},ns=async(g,F)=>{const Z=F.trim();if(Z)try{await Q.updateSource(g.sourceId,{filename:Z}),A.success("Documento renombrado"),c&&M(c),T(),x(null)}catch{A.error("No se pudo renombrar")}},Ie=g=>{s.includes(g)?n(s.filter(F=>F!==g)):n([...s,g])},ls=async()=>{if(!(!o||N.length===0)){U(!0);try{await K(N),S([]),A.success("Agregado a tu dataset")}catch{A.error("No se pudo agregar")}finally{U(!1)}}},os=async()=>{if(!(!o||t.length===0))try{await K(t),p?.([]),A.success("Fuentes movidas a tu dataset")}catch{A.error("No se pudo mover")}},W=!!o,Te=g=>{if(!W){A.error("Guarda el agente primero para agregarle conocimiento");return}x(m?.kind==="add"&&m.type===g?null:{kind:"add",type:g})},is=m?.kind==="add"&&m.type==="document",Fe=m?.kind==="add"&&m.type==="qa",Ee=!!m&&(m.kind==="edit-qa"||Fe),ds=m?m.kind==="edit-qa"?"Editar pregunta y respuesta":m.kind==="rename-doc"?"Renombrar documento":m.type==="qa"?"Nueva pregunta y respuesta":"Subir documento":"";return e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[e.jsxs("button",{type:"button",onClick:()=>Te("document"),disabled:!W,title:W?void 0:"Guarda el agente primero",className:`border-2 border-dashed rounded-xl p-5 text-center transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${is?"border-primary bg-primary/5":"border-border hover:bg-muted/40"}`,children:[e.jsx("div",{className:"h-11 w-11 rounded-xl bg-blue-500/10 flex items-center justify-center mx-auto mb-2 text-blue-600 dark:text-blue-400",children:e.jsx(we,{className:"h-5 w-5"})}),e.jsx("div",{className:"text-sm font-medium",children:"Subir documento"}),e.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:"PDF o TXT · máx. 10MB"})]}),e.jsxs("button",{type:"button",onClick:()=>Te("qa"),disabled:!W,title:W?void 0:"Guarda el agente primero",className:`border-2 border-dashed rounded-xl p-5 text-center transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${Fe?"border-primary bg-primary/5":"border-border hover:bg-muted/40"}`,children:[e.jsx("div",{className:"h-11 w-11 rounded-xl bg-violet-500/10 flex items-center justify-center mx-auto mb-2 text-violet-600 dark:text-violet-400",children:e.jsx(le,{className:"h-5 w-5"})}),e.jsx("div",{className:"text-sm font-medium",children:"Agregar pregunta y respuesta"}),e.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:"Ej. horarios, precios, dirección"})]})]}),m&&e.jsxs("div",{className:"rounded-xl border border-slate-200 dark:border-slate-700 bg-card overflow-hidden",children:[e.jsxs("div",{className:`flex items-center justify-between px-4 py-2.5 border-b ${Ee?"bg-violet-50 dark:bg-violet-950/20 border-violet-100 dark:border-violet-900/30":"bg-blue-50 dark:bg-blue-950/20 border-blue-100 dark:border-blue-900/30"}`,children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[Ee?e.jsx(le,{className:"h-4 w-4 text-violet-600 dark:text-violet-400"}):e.jsx(we,{className:"h-4 w-4 text-blue-600 dark:text-blue-400"}),ds]}),e.jsx("button",{type:"button",onClick:()=>x(null),className:"text-muted-foreground hover:text-foreground","aria-label":"Cerrar",children:e.jsx(ue,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"p-4",children:[m.kind==="add"&&m.type==="document"&&e.jsx(ba,{organizationId:d,onUploaded:g=>re(g)}),m.kind==="add"&&m.type==="qa"&&e.jsx(ze,{organizationId:d,submitLabel:"Agregar al agente",onSaved:g=>{g&&re(g)}},"add-qa"),m.kind==="edit-qa"&&e.jsx(ze,{organizationId:d,item:{id:m.item.id||"",question:m.item.title,answer:m.item.details||"",mediaUrl:m.item.mediaUrl,mediaSignedUrl:m.item.mediaSignedUrl},submitLabel:"Guardar cambios",onSaved:rs,onCancel:()=>x(null)},`edit-${m.item.sourceId}`),m.kind==="rename-doc"&&e.jsx(Ca,{initial:m.item.title,onSave:g=>ns(m.item,g),onCancel:()=>x(null)},`rename-${m.item.sourceId}`)]})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(ms,{className:"h-4 w-4 text-emerald-500"}),"Tu agente ya sabe"]}),e.jsxs("span",{className:"inline-flex items-center gap-1.5 max-w-[55%] text-xs text-muted-foreground bg-muted/60 border border-border/60 rounded-full px-2.5 py-1",title:"Tu dataset principal: aquí se guarda todo lo que agregas",children:[e.jsx(te,{className:"h-3 w-3 shrink-0 text-primary"}),e.jsx("span",{className:"truncate",children:C})]})]}),e.jsx(va,{items:f,loading:k,onEdit:ts,onRemove:g=>ss(g.sourceId),onReorder:as,removeLabel:"Quitar de este agente · el archivo sigue en tus fuentes"})]}),e.jsxs("div",{className:"border-t border-border/60 pt-4",children:[e.jsxs("button",{type:"button",onClick:()=>R(g=>!g),className:"flex items-center gap-2 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors",children:[v?e.jsx(us,{className:"h-4 w-4"}):e.jsx(ge,{className:"h-4 w-4"}),"Opciones avanzadas",E>0&&e.jsxs("span",{className:"text-xs text-muted-foreground font-normal",children:["· ",E," dataset",E===1?"":"s"," compartido",E===1?"":"s"]})]}),v&&e.jsxs("div",{className:"mt-4 space-y-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(xa,{className:"h-4 w-4 text-muted-foreground"}),"Agregar fuentes existentes"]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Suma fuentes que ya existen a la caja de este agente."}),e.jsx(wa,{selectedIds:N,onChange:S,heightClass:"max-h-[260px]"}),e.jsx(z,{type:"button",className:"w-full",disabled:!W||N.length===0||$,onClick:ls,children:$?e.jsxs(e.Fragment,{children:[e.jsx(O,{className:"mr-2 h-4 w-4 animate-spin"})," Agregando…"]}):e.jsxs(e.Fragment,{children:[e.jsx(_e,{className:"mr-2 h-4 w-4"})," Agregar",N.length>0?` ${N.length}`:""," a tu dataset"]})})]}),t.length>0&&e.jsxs("div",{className:"flex items-center justify-between gap-3 p-3 border border-amber-200 dark:border-amber-900/40 bg-amber-50 dark:bg-amber-950/20 rounded-md",children:[e.jsxs("div",{className:"text-xs text-amber-800 dark:text-amber-300",children:[t.length," fuente",t.length===1?"":"s"," suelta",t.length===1?"":"s"," del modo anterior."]}),e.jsxs(z,{type:"button",variant:"outline",size:"sm",className:"h-8 text-xs shrink-0",disabled:!W,onClick:os,children:[e.jsx(la,{className:"h-3.5 w-3.5 mr-1"})," Mover a tu dataset"]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(xs,{className:"h-4 w-4 text-muted-foreground"}),"Datasets compartidos"]}),e.jsx(z,{asChild:!0,variant:"ghost",size:"sm",className:"h-8 text-xs shrink-0",children:e.jsx(ps,{to:"/ai-agents/training/groups",children:"Ver todos"})})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Reutilizables entre agentes (por referencia). Se crean y editan en Ver todos."}),y?e.jsx("div",{className:"border rounded-lg divide-y",children:[0,1,2].map(g=>e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2.5",children:[e.jsx("div",{className:"h-4 w-4 rounded bg-muted animate-pulse shrink-0"}),e.jsx("div",{className:"h-2.5 w-2.5 rounded-full bg-muted animate-pulse shrink-0"}),e.jsxs("div",{className:"flex-1 space-y-1.5",children:[e.jsx("div",{className:"h-3 w-2/3 bg-muted rounded animate-pulse"}),e.jsx("div",{className:"h-2.5 w-1/3 bg-muted rounded animate-pulse"})]})]},g))}):I.length===0?e.jsx("div",{className:"border border-dashed rounded-lg p-4 text-center text-xs text-muted-foreground",children:"No hay datasets compartidos todavía."}):e.jsx(Ve,{delayDuration:200,children:e.jsx("div",{className:"border rounded-lg divide-y max-h-56 overflow-y-auto",children:I.map(g=>{const F=s.includes(g.id);return e.jsxs("div",{className:`flex items-center gap-3 px-3 py-2.5 cursor-pointer transition-colors border-l-2 ${F?"bg-primary/5 dark:bg-primary/10 border-l-primary":"border-l-transparent hover:bg-muted/30"}`,onClick:()=>Ie(g.id),children:[e.jsx(ie,{checked:F,onCheckedChange:()=>Ie(g.id),onClick:Z=>Z.stopPropagation(),className:"shrink-0","aria-label":`Asignar ${g.name}`}),e.jsx("span",{className:"h-2.5 w-2.5 rounded-full shrink-0",style:{backgroundColor:g.color}}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs(hs,{children:[e.jsx(gs,{asChild:!0,children:e.jsx("p",{className:"text-sm font-medium truncate",children:g.name})}),e.jsx(bs,{children:g.name})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[g.docCount??0," doc · ",g.qaCount??0," Q&A"]})]}),F&&e.jsx(ee,{variant:"outline",className:"text-[10px] shrink-0 border-primary/30 bg-primary/10 text-primary",children:"Asignado"})]},g.id)})})})]})]})]})]})}function Ca({initial:s,onSave:n,onCancel:d}){const[l,o]=u.useState(s),[t,p]=u.useState(!1),r=async i=>{if(i?.preventDefault(),!!l.trim()){p(!0);try{await n(l)}finally{p(!1)}}};return e.jsxs("form",{onSubmit:r,className:"space-y-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(_,{className:"text-xs font-medium text-slate-600 dark:text-slate-300",children:"Nombre del documento"}),e.jsx(P,{autoFocus:!0,value:l,onChange:i=>o(i.target.value),className:"bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700 focus-visible:ring-blue-500/30"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(z,{type:"button",variant:"ghost",className:"flex-1",onClick:d,disabled:t,children:"Cancelar"}),e.jsx(z,{type:"submit",className:"flex-[2] font-medium",disabled:t||!l.trim(),children:t?e.jsxs(e.Fragment,{children:[e.jsx(O,{className:"mr-2 h-4 w-4 animate-spin"})," Guardando..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Ke,{className:"mr-2 h-4 w-4"})," Renombrar"]})})]})]})}function Sa({groupIds:s,onGroupsChange:n,sources:d,onSourcesChange:l,organizationId:o,agentName:t,agentId:p}){return e.jsx("div",{className:"space-y-6",children:e.jsxs(D,{className:"border-slate-100 dark:border-slate-800 shadow-sm overflow-hidden",children:[e.jsxs(G,{className:"bg-slate-50/50 dark:bg-slate-900/50 pb-4",children:[e.jsx(H,{className:"text-lg",children:"Conocimiento del Agente"}),e.jsx(X,{children:"¿Qué debe saber tu agente? Sube documentos o agrega preguntas frecuentes; los usará para responder."})]}),e.jsx(B,{className:"pt-6",children:e.jsx(ka,{groupIds:s,onGroupsChange:n,organizationId:o,agentName:t,agentId:p,sources:d,onSourcesChange:l})})]})})}function _a({value:s,onChange:n}){const[d,l]=u.useState([]),[o,t]=u.useState(!0);if(u.useEffect(()=>{(async()=>{try{const i=await Vs.fetchGoogleCalendarConnections();l(i.filter(b=>b.status==="connected"))}catch(i){console.error("Failed to fetch calendar connections",i)}finally{t(!1)}})()},[]),o)return e.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-500",children:[e.jsx(O,{className:"w-4 h-4 animate-spin"})," Cargando calendarios..."]});if(d.length===0)return e.jsx("div",{className:"text-sm text-amber-600 bg-amber-50 p-3 rounded-lg border border-amber-200",children:"No hay cuentas de Google Calendar conectadas. Ve a Conexiones para agregar una."});const p=s.length>0?s[0]:"";return e.jsxs("div",{className:"space-y-2",children:[e.jsxs(je,{value:p,onValueChange:r=>n([r]),children:[e.jsx(ve,{className:"bg-white dark:bg-slate-900 border-slate-200 dark:border-slate-700",children:e.jsx(Ne,{placeholder:"Selecciona un calendario"})}),e.jsx(ye,{children:d.map(r=>e.jsx(ne,{value:r.channelId||"google-auth",children:r.metadata?.email?`${r.metadata.email} (Google)`:"Cuenta de Google Calendar"},r.channelId||"google-auth"))})]}),e.jsx("p",{className:"text-[10px] text-slate-500",children:"El agente usará este calendario para buscar disponibilidad y crear nuevos eventos al agendar citas."})]})}const $e=[{key:"take_order",label:"Tomar Pedido",description:"Procesar un pedido de venta completo.",icon:e.jsx(js,{className:"h-5 w-5 text-blue-500"}),defaultFields:[{name:"customer_name",label:"Nombre del Cliente",type:"string",required:!0,locked:!0},{name:"phone_number",label:"Teléfono",type:"string",required:!0,locked:!0},{name:"delivery_address",label:"Dirección de Entrega",type:"string",required:!0},{name:"items",label:"Lista de Productos",type:"array",required:!0,locked:!0},{name:"payment_method",label:"Método de Pago",type:"string",required:!0},{name:"notes",label:"Notas Adicionales",type:"string",required:!1}]},{key:"book_appointment",label:"Reservar Cita",description:"Agendar una reunión o servicio.",icon:e.jsx(He,{className:"h-5 w-5 text-purple-500"}),disabled:!1,defaultFields:[{name:"customer_name",label:"Nombre del Cliente",type:"string",required:!0,locked:!0},{name:"phone_number",label:"Teléfono",type:"string",required:!0,locked:!0},{name:"appointment_date",label:"Fecha Deseada",type:"date",required:!0,locked:!0},{name:"appointment_time",label:"Hora Deseada",type:"time",required:!0,locked:!0},{name:"service_type",label:"Tipo de Servicio",type:"string",required:!1,locked:!1},{name:"email",label:"Correo Electrónico",type:"email",required:!0,locked:!0}]},{key:"register_lead",label:"Registrar Lead/Cliente",description:"Capturar datos de un prospecto interesado.",icon:e.jsx(Ds,{className:"h-5 w-5 text-green-500"}),disabled:!0,defaultFields:[{name:"full_name",label:"Nombre Completo",type:"string",required:!0,locked:!0},{name:"phone_number",label:"WhatsApp / Teléfono",type:"string",required:!0,locked:!0},{name:"email",label:"Correo Electrónico",type:"email",required:!1,locked:!1},{name:"interest",label:"Interés Principal",type:"string",required:!1,locked:!1},{name:"company_name",label:"Empresa",type:"string",required:!1,locked:!1}]}];function Aa({value:s={},onChange:n}){const d=(t,p)=>{const r={...s};if(p){const i=$e.find(b=>b.key===t);r[t]={fields:i?.defaultFields.filter(b=>b.required).map(b=>({name:b.name,required:!0,type:b.type,description:b.label}))}}else delete r[t];n(r)},l=(t,p,r)=>{const i={...s};if(!i[t])return;let b=i[t].fields||[];r?b.find(a=>a.name===p.name)||b.push({name:p.name,required:!0,type:p.type,description:p.label}):b=b.filter(a=>a.name!==p.name),i[t]={...i[t],fields:b},n(i)},o=(t,p)=>{const r=s[t];return!r||!r.fields?!1:r.fields.some(i=>i.name===p)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(fs,{className:"h-5 w-5 text-orange-500"}),e.jsx("h3",{className:"text-lg font-medium",children:"Protocolos de Cierre (Guardrails)"})]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Configura qué datos son ",e.jsx("strong",{children:"obligatorios"})," antes de que el agente pueda ejecutar una acción crítica. El agente validará pasivamente estos datos durante la conversación."]}),e.jsx("div",{className:"grid grid-cols-1 gap-4",children:$e.map(t=>{const p=!!s[t.key];return e.jsxs(D,{className:`border-l-4 ${p?"border-l-blue-500":"border-l-gray-200"} ${t.disabled?"opacity-50":""}`,children:[e.jsx(G,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center space-x-3",children:[t.icon,e.jsxs("div",{children:[e.jsxs(H,{className:"text-base",children:[t.label,t.disabled&&e.jsx(ee,{variant:"outline",className:"ml-2 text-[10px]",children:"Próximamente"})]}),e.jsx(X,{children:t.description})]})]}),e.jsx(me,{checked:p,disabled:t.disabled,onCheckedChange:r=>d(t.key,r)})]})}),p&&e.jsxs(B,{className:"pt-0 pb-4 pl-12",children:[e.jsx(_,{className:"text-xs font-semibold uppercase text-muted-foreground mb-3 block",children:"Datos Requeridos para procesar"}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:t.defaultFields.map(r=>e.jsxs("div",{className:"flex items-start space-x-2",children:[e.jsx(ie,{id:`${t.key}-${r.name}`,checked:o(t.key,r.name),disabled:r.locked,onCheckedChange:i=>l(t.key,r,i===!0)}),e.jsx("div",{className:"grid gap-1.5 leading-none",children:e.jsx("label",{htmlFor:`${t.key}-${r.name}`,className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:r.label})}),r.required&&e.jsx(ee,{variant:"outline",className:"text-[10px] h-4 px-1 text-muted-foreground",children:"Sug"})]},r.name))}),t.key==="book_appointment"&&e.jsxs("div",{className:"mt-5 border-t pt-4 space-y-4",children:[e.jsxs("div",{children:[e.jsx(_,{className:"text-xs font-semibold uppercase text-muted-foreground mb-3 block",children:"Calendario Asociado"}),e.jsx(_a,{value:s[t.key]?.calendarConnectionIds||[],onChange:r=>{n({...s,[t.key]:{...s[t.key],calendarConnectionIds:r}})}})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(_,{className:"text-xs font-semibold uppercase text-muted-foreground mb-1 block",children:"Título del Evento (Plantilla)"}),e.jsx(P,{value:s[t.key]?.eventTitleTemplate||"",onChange:r=>{n({...s,[t.key]:{...s[t.key],eventTitleTemplate:r.target.value}})}})]}),e.jsxs("div",{children:[e.jsx(_,{className:"text-xs font-semibold uppercase text-muted-foreground mb-1 block",children:"Descripción (Plantilla)"}),e.jsx(be,{className:"h-20",value:s[t.key]?.eventDescriptionTemplate||"",onChange:r=>{n({...s,[t.key]:{...s[t.key],eventDescriptionTemplate:r.target.value}})}})]}),e.jsxs("p",{className:"text-[11px] text-muted-foreground",children:["Variables disponibles: ","{{customer_name}}, {{service_type}}, {{email}}, {{phone_number}}, {{appointment_date}}, {{appointment_time}}"]})]})]}),e.jsxs("div",{className:"mt-4 bg-blue-100 p-3 rounded text-sm text-blue-900 border border-blue-200 font-medium",children:[e.jsx("strong",{children:"ℹ️ Nota:"})," Si el usuario no proporciona estos datos, el agente se los pedirá explícitamente antes de continuar."]})]})]},t.key)})})]})}const Re=[{id:"current_interest_level",label:"Nivel de Interés",description:"Clasifica como LOW, MEDIUM, o HIGH según la intención.",icon:We},{id:"products_interest",label:"Interés en Productos",description:"Extrae nombres de productos mencionados.",icon:te},{id:"last_product_interest",label:"Último Producto",description:"Identifica el producto específico más reciente.",icon:Ye},{id:"last_active_funnel_stage",label:"Etapa del Embudo",description:"Mapea la conversación a una etapa del CRM.",icon:De},{id:"session_source",label:"Fuente de Sesión",description:"Infiere de dónde viene el usuario.",icon:Ze}];function Ia({tools:s=[],metadata:n={},onChange:d}){const[l,o]=u.useState(""),[t,p]=u.useState(""),r=s.includes("update_lead_info"),i=n.tool_config?.update_lead_info||{enabled:!0,auto_mode:!0,fields:["current_interest_level","products_interest","last_active_funnel_stage","last_product_interest","session_source"],customFields:[]},b=i.customFields||[],a=Re.map(h=>h.id),c=h=>{let k=[...s];h?k.includes("update_lead_info")||k.push("update_lead_info"):k=k.filter(m=>m!=="update_lead_info");const j={...n,tool_config:{...n.tool_config,update_lead_info:{...i,fields:a}}};d({tools:k,metadata:j})},C=()=>{if(!l.trim())return;const h={id:`custom_${Date.now()}`,name:l.trim(),description:t.trim()||"Campo personalizado"},k={...n,tool_config:{...n.tool_config,update_lead_info:{...i,customFields:[...b,h]}}};d({metadata:k}),o(""),p("")},f=h=>{const k={...n,tool_config:{...n.tool_config,update_lead_info:{...i,customFields:b.filter(j=>j.id!==h)}}};d({metadata:k})};return e.jsxs("div",{className:q("flex flex-col border rounded-xl transition-all duration-300",r?"border-violet-200 dark:border-violet-900/50 bg-violet-50/30 dark:bg-violet-900/10":"border-slate-100 dark:border-slate-800 bg-white dark:bg-slate-900 hover:border-primary/20"),children:[e.jsxs("div",{className:"flex items-center justify-between p-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:q("p-2 rounded-lg transition-colors",r?"bg-violet-100 dark:bg-violet-900/50 text-violet-600":"bg-slate-100 dark:bg-slate-800 text-slate-500"),children:e.jsx(ha,{className:"w-5 h-5"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(_,{className:"text-base font-bold cursor-pointer",onClick:()=>c(!r),children:"Auto-Profiler (CRM)"}),r&&e.jsx(ee,{variant:"secondary",className:"bg-violet-100 text-violet-700 dark:bg-violet-900 dark:text-violet-300 text-[10px] h-5",children:"Premium"})]}),e.jsx("p",{className:"text-xs text-slate-500 max-w-[340px] leading-relaxed",children:"Analiza pasivamente la conversación para extraer datos valiosos y actualizar el CRM automáticamente."})]})]}),e.jsx(me,{checked:r,onCheckedChange:c,className:"data-[state=checked]:bg-violet-600"})]}),r&&e.jsx("div",{className:"px-4 pb-4 animate-in slide-in-from-top-2 fade-in duration-300",children:e.jsx(D,{className:"border-0 shadow-none bg-white/50 dark:bg-slate-950/30",children:e.jsxs(B,{className:"p-4 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(_,{className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Campos a Extraer"}),e.jsx("span",{className:"text-[10px] text-slate-400",children:"Todos los campos se activan automáticamente"})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:Re.map(h=>{const k=h.icon;return e.jsxs("div",{className:"relative flex items-center gap-3 p-3 rounded-lg border border-violet-200 bg-white dark:bg-slate-900 dark:border-violet-900/50 shadow-sm",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-md border border-violet-100 bg-violet-50 text-violet-600 dark:border-violet-900 dark:bg-violet-900/20",children:e.jsx(k,{className:"h-4 w-4"})}),e.jsxs("div",{className:"flex-1 space-y-0.5",children:[e.jsx(_,{className:"text-sm font-semibold text-slate-900 dark:text-slate-100",children:h.label}),e.jsx("p",{className:"text-[10px] text-slate-500 line-clamp-1",children:h.description})]}),e.jsx(ie,{checked:!0,disabled:!0,className:"data-[state=checked]:bg-violet-600 data-[state=checked]:border-violet-600"})]},h.id)})}),e.jsxs("div",{className:"space-y-3 pt-4 border-t border-slate-100 dark:border-slate-800",children:[e.jsxs("div",{children:[e.jsx(_,{className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Campos Personalizados"}),e.jsx("p",{className:"text-xs text-slate-500 mt-1",children:"Añade campos adicionales que deseas extraer de las conversaciones."})]}),b.length>0&&e.jsx("div",{className:"space-y-2",children:b.map(h=>e.jsxs("div",{className:"flex items-center gap-2 p-2 rounded-lg bg-white dark:bg-slate-900 border border-violet-100 dark:border-violet-900/30",children:[e.jsx(Be,{className:"h-4 w-4 text-violet-500 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium truncate",children:h.name}),e.jsx("p",{className:"text-[10px] text-slate-500 truncate",children:h.description})]}),e.jsx(z,{variant:"ghost",size:"sm",onClick:()=>f(h.id),className:"h-7 w-7 p-0 text-red-500 hover:text-red-700 hover:bg-red-50",children:e.jsx(Ae,{className:"h-3.5 w-3.5"})})]},h.id))}),e.jsxs("div",{className:"flex flex-col gap-2 p-3 rounded-lg bg-white/50 dark:bg-slate-900/50 border border-dashed border-violet-200 dark:border-violet-900/30",children:[e.jsx(P,{placeholder:"Nombre del campo (ej: Edad)",value:l,onChange:h=>o(h.target.value),className:"h-9 bg-white dark:bg-slate-900"}),e.jsx(P,{placeholder:"Descripción (ej: Edad del cliente)",value:t,onChange:h=>p(h.target.value),className:"h-9 bg-white dark:bg-slate-900"}),e.jsxs(z,{variant:"outline",size:"sm",onClick:C,disabled:!l.trim(),className:"w-full border-violet-200 text-violet-700 hover:bg-violet-50 dark:border-violet-800 dark:text-violet-400",children:[e.jsx(_e,{className:"h-4 w-4 mr-2"}),"Agregar Campo"]})]})]}),e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-lg bg-blue-50/50 dark:bg-blue-900/10 text-blue-600 text-xs border border-blue-100 dark:border-blue-900/20 mt-2",children:[e.jsx(te,{className:"w-3.5 h-3.5 shrink-0"}),e.jsxs("span",{children:["Los datos se guardarán automáticamente en los metadatos del ",e.jsx("strong",{children:"Contacto"})," y ",e.jsx("strong",{children:"Ticket"}),"."]})]})]})})})]})}const Ta=[{id:"current_interest_level",label:"Nivel de Interés",description:"Clasifica como LOW, MEDIUM, o HIGH",icon:We},{id:"products_interest",label:"Interés en Productos",description:"Extrae nombres de productos mencionados",icon:te},{id:"last_product_interest",label:"Último Producto",description:"Identifica el producto más reciente",icon:Ye},{id:"last_active_funnel_stage",label:"Etapa del Embudo",description:"Mapea la conversación a una etapa del CRM",icon:De},{id:"session_source",label:"Fuente de Sesión",description:"Infiere de dónde viene el usuario",icon:Ze}];function Le({metadata:s={},onChange:n}){const d=s.analyzerConfig||{},l=d.batchSize??s.batchSize??5,o=d.targetFields||s.targetFields||[],t=d.customFields||s.customFields||[],p=o.length===0&&t.length===0,[r,i]=u.useState(""),[b,a]=u.useState(""),c=j=>{const m={batchSize:l,targetFields:o,customFields:t,...d,...j},x={};for(const v of Object.keys(s))["batchSize","targetFields","customFields"].includes(v)||(x[v]=s[v]);x.analyzerConfig=m,n(x)},C=j=>{c({batchSize:j[0]})},f=(j,m)=>{const x=m?[...o,j]:o.filter(v=>v!==j);c({targetFields:x})},h=()=>{if(!r.trim())return;const j={id:`custom_${Date.now()}`,name:r.trim(),description:b.trim()||"Campo personalizado"};c({customFields:[...t,j]}),i(""),a("")},k=j=>{c({customFields:t.filter(m=>m.id!==j)})};return e.jsxs(D,{className:"border-amber-200 dark:border-amber-800 shadow-sm overflow-hidden bg-amber-50/30 dark:bg-amber-900/10",children:[e.jsxs(G,{className:"bg-amber-100/50 dark:bg-amber-900/30 pb-4",children:[e.jsxs(H,{className:"text-lg flex items-center gap-2",children:[e.jsx(xe,{className:"w-5 h-5 text-amber-500"}),"Configuración de Analyzer"]}),e.jsx(X,{children:"Este agente analiza conversaciones en segundo plano para etiquetar leads automáticamente."})]}),e.jsxs(B,{className:"space-y-6 pt-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex justify-between items-center",children:e.jsxs(_,{className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:["Frecuencia de Análisis: ",l," mensajes"]})}),e.jsx(fe,{value:[l],min:3,max:15,step:1,onValueChange:C,className:"py-2"}),e.jsxs("div",{className:"flex justify-between text-[10px] font-bold text-slate-400 uppercase tracking-widest",children:[e.jsx("span",{children:"Frecuente (3)"}),e.jsx("span",{children:"Balanceado (8)"}),e.jsx("span",{children:"Económico (15)"})]})]}),p&&e.jsxs("div",{className:"flex gap-3 p-3 rounded-lg bg-amber-500/10 border border-amber-500/30",children:[e.jsx(vs,{className:"w-4 h-4 text-amber-600 dark:text-amber-400 shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-sm",children:[e.jsx("p",{className:"font-semibold text-amber-700 dark:text-amber-400",children:"Este analizador todavía no extrae nada"}),e.jsx("p",{className:"text-slate-600 dark:text-slate-400 mt-1",children:"Elige al menos un campo para que empiece a analizar las conversaciones. Hasta entonces no se ejecuta ni consume créditos."})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(_,{className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Campos a Extraer"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:Ta.map(j=>{const m=o.includes(j.id),x=j.icon;return e.jsxs("div",{onClick:()=>f(j.id,!m),className:q("flex items-center gap-3 p-3 rounded-lg border cursor-pointer transition-all hover:shadow-sm",m?"border-amber-200 bg-white dark:bg-slate-900 dark:border-amber-900/50 shadow-sm":"border-transparent hover:bg-white/50 dark:hover:bg-slate-800/50"),children:[e.jsx("div",{className:q("flex h-8 w-8 items-center justify-center rounded-md border",m?"border-amber-100 bg-amber-50 text-amber-600":"border-slate-100 bg-slate-50 text-slate-400"),children:e.jsx(x,{className:"h-4 w-4"})}),e.jsxs("div",{className:"flex-1 space-y-0.5",children:[e.jsx(_,{className:q("text-sm font-semibold cursor-pointer",m?"text-slate-900 dark:text-slate-100":"text-slate-500"),children:j.label}),e.jsx("p",{className:"text-[10px] text-slate-500 line-clamp-1",children:j.description})]}),e.jsx(ie,{checked:m,className:"data-[state=checked]:bg-amber-600 data-[state=checked]:border-amber-600"})]},j.id)})})]}),e.jsxs("div",{className:"space-y-3 pt-4 border-t border-amber-200/50 dark:border-amber-900/30",children:[e.jsx(_,{className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Campos Personalizados"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Añade campos adicionales que deseas extraer de las conversaciones."}),t.length>0&&e.jsx("div",{className:"space-y-2",children:t.map(j=>e.jsxs("div",{className:"flex items-center gap-2 p-2 rounded-lg bg-white dark:bg-slate-900 border border-amber-100 dark:border-amber-900/30",children:[e.jsx(Be,{className:"h-4 w-4 text-amber-500 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium truncate",children:j.name}),e.jsx("p",{className:"text-[10px] text-slate-500 truncate",children:j.description})]}),e.jsx(z,{variant:"ghost",size:"sm",onClick:()=>k(j.id),className:"h-7 w-7 p-0 text-red-500 hover:text-red-700 hover:bg-red-50",children:e.jsx(Ae,{className:"h-3.5 w-3.5"})})]},j.id))}),e.jsxs("div",{className:"flex flex-col gap-2 p-3 rounded-lg bg-white/50 dark:bg-slate-900/50 border border-dashed border-amber-200 dark:border-amber-900/30",children:[e.jsx(P,{placeholder:"Nombre del campo (ej: Presupuesto)",value:r,onChange:j=>i(j.target.value),className:"h-9 bg-white dark:bg-slate-900"}),e.jsx(P,{placeholder:"Descripción (ej: Rango de presupuesto del cliente)",value:b,onChange:j=>a(j.target.value),className:"h-9 bg-white dark:bg-slate-900"}),e.jsxs(z,{variant:"outline",size:"sm",onClick:h,disabled:!r.trim(),className:"w-full border-amber-200 text-amber-700 hover:bg-amber-50 dark:border-amber-800 dark:text-amber-400",children:[e.jsx(_e,{className:"h-4 w-4 mr-2"}),"Agregar Campo"]})]})]})]})]})}function Fa({formData:s,agentId:n,onChange:d}){const l=(a,c)=>{d({[a]:c})},o=s.agentType==="analyzer",[t,p]=u.useState([]),[r,i]=u.useState(!1);u.useEffect(()=>{s.tools?.includes("search_products")&&(i(!0),Bs.getCatalogs().then(p).catch(()=>p([])).finally(()=>i(!1)))},[s.tools?.includes("search_products")]);const b=s.metadata?.tool_config?.search_products?.catalog_ids||[];return e.jsxs(Ss,{defaultValue:"general",className:"w-full",children:[e.jsxs(_s,{className:"flex flex-wrap w-fit bg-slate-100/50 dark:bg-slate-800/50 p-1.5 rounded-2xl mb-10 gap-2 border border-slate-200/50 dark:border-slate-700/30 h-auto",children:[e.jsxs(de,{value:"general",className:`flex items-center gap-2.5 px-6 py-2.5 rounded-xl text-sm font-semibold transition-all\r
2
+ data-[state=active]:bg-white dark:data-[state=active]:bg-slate-900 \r
3
+ data-[state=active]:text-blue-600 dark:data-[state=active]:text-blue-400 \r
4
+ data-[state=active]:shadow-md data-[state=active]:shadow-blue-500/10\r
5
+ text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200 border-none`,children:[e.jsx(oe,{className:"w-4 h-4"}),"General"]}),!o&&e.jsxs(e.Fragment,{children:[e.jsxs(de,{value:"behavior",className:`flex items-center gap-2.5 px-6 py-2.5 rounded-xl text-sm font-semibold transition-all\r
6
+ data-[state=active]:bg-white dark:data-[state=active]:bg-slate-900 \r
7
+ data-[state=active]:text-blue-600 dark:data-[state=active]:text-blue-400 \r
8
+ data-[state=active]:shadow-md data-[state=active]:shadow-blue-500/10\r
9
+ text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200 border-none`,children:[e.jsx(Gs,{className:"w-4 h-4"}),"Comportamiento"]}),e.jsxs(de,{value:"knowledge",className:`flex items-center gap-2.5 px-6 py-2.5 rounded-xl text-sm font-semibold transition-all\r
10
+ data-[state=active]:bg-white dark:data-[state=active]:bg-slate-900 \r
11
+ data-[state=active]:text-blue-600 dark:data-[state=active]:text-blue-400 \r
12
+ data-[state=active]:shadow-md data-[state=active]:shadow-blue-500/10\r
13
+ text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200 border-none`,children:[e.jsx(te,{className:"w-4 h-4"}),"Conocimiento"]}),e.jsxs(de,{value:"advanced",className:`flex items-center gap-2.5 px-6 py-2.5 rounded-xl text-sm font-semibold transition-all\r
14
+ data-[state=active]:bg-white dark:data-[state=active]:bg-slate-900 \r
15
+ data-[state=active]:text-blue-600 dark:data-[state=active]:text-blue-400 \r
16
+ data-[state=active]:shadow-md data-[state=active]:shadow-blue-500/10\r
17
+ text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200 border-none`,children:[e.jsx(Hs,{className:"w-4 h-4"}),"Avanzado"]})]})]}),e.jsx(ce,{value:"general",className:"space-y-6 animate-in slide-in-from-bottom-2 duration-500",children:e.jsxs("div",{className:"grid gap-6",children:[e.jsxs(D,{className:"border-slate-100 dark:border-slate-800 shadow-sm overflow-hidden",children:[e.jsxs(G,{className:"bg-slate-50/50 dark:bg-slate-900/50 pb-4",children:[e.jsx(H,{className:"text-lg",children:"Identidad del Agente"}),e.jsx(X,{children:o?"Configura el agente de análisis.":"Define quién es tu agente y cómo se presenta."})]}),e.jsxs(B,{className:"space-y-6 pt-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(_,{htmlFor:"name",className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Nombre Interno"}),e.jsx(P,{id:"name",value:s.name,onChange:a=>l("name",a.target.value),placeholder:o?"Ej: Auto-Tagger Leads":"Ej: Agente de Ventas Q1",className:"bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700"})]}),!o&&e.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(_,{htmlFor:"assistantName",className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Nombre del Asistente"}),e.jsx(P,{id:"assistantName",value:s.assistantName,onChange:a=>l("assistantName",a.target.value),placeholder:"Ej: Ana",className:"bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(_,{htmlFor:"assistantRole",className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Rol"}),e.jsx(P,{id:"assistantRole",value:s.assistantRole||"",onChange:a=>l("assistantRole",a.target.value),placeholder:"Ej: Asistente Virtual",className:"bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(_,{htmlFor:"description",className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Descripción (Interna)"}),e.jsx(P,{id:"description",value:s.description||"",onChange:a=>l("description",a.target.value),placeholder:"Descripción para uso administrativo",className:"bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-6 pt-4 border-t border-slate-100 dark:border-slate-800",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(_,{htmlFor:"executionMode",className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Modo de Ejecución"}),e.jsxs(je,{value:s.executionMode||"platform",onValueChange:a=>{l("executionMode",a),a!=="custom"&&l("strategyId",void 0)},children:[e.jsx(ve,{className:"bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700",children:e.jsx(Ne,{placeholder:"Selecciona modo"})}),e.jsxs(ye,{children:[e.jsx(ne,{value:"platform",children:"Plataforma (Estándar)"}),e.jsx(ne,{value:"custom",children:"Custom / Enterprise"}),e.jsx(ne,{value:"delegated",children:"Delegado (Webhook)"})]})]})]}),s.executionMode==="custom"&&e.jsxs("div",{className:"space-y-2 animate-in slide-in-from-left-2",children:[e.jsx(_,{htmlFor:"strategyId",className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Strategy ID"}),e.jsx(P,{id:"strategyId",value:s.strategyId||"",onChange:a=>l("strategyId",a.target.value),placeholder:"Ej: timprimo",className:"bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700 font-mono"})]})]})]})]}),o&&e.jsx(Le,{metadata:s.metadata||{},onChange:a=>l("metadata",a)})]})}),e.jsx(ce,{value:"behavior",className:"space-y-6 animate-in slide-in-from-bottom-2 duration-500",children:e.jsxs(D,{className:"border-slate-100 dark:border-slate-800 shadow-sm overflow-hidden",children:[e.jsxs(G,{className:"bg-slate-50/50 dark:bg-slate-900/50 pb-4",children:[e.jsx(H,{className:"text-lg",children:"Prompting & Personalidad"}),e.jsx(X,{children:'Define la "mente" del agente, sus reglas y objetivos.'})]}),e.jsxs(B,{className:"space-y-6 pt-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(_,{htmlFor:"conversationPurpose",className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Objetivo de la Conversación"}),e.jsxs("div",{className:"relative",children:[e.jsx(be,{id:"conversationPurpose",value:s.conversationPurpose||"",onChange:a=>l("conversationPurpose",a.target.value),placeholder:"Ej: Ayudar al cliente a elegir un producto y agendar una demo.",className:"min-h-[100px] bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700 resize-none p-4 leading-relaxed"}),e.jsx(Qs,{className:"absolute top-4 right-4 w-4 h-4 text-slate-300"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(_,{htmlFor:"customInstructions",className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Instrucciones del Sistema (Prompt)"}),e.jsxs("div",{className:"relative",children:[e.jsx(be,{id:"customInstructions",value:s.customInstructions||"",onChange:a=>l("customInstructions",a.target.value),placeholder:"Instrucciones detalladas sobre tono, restricciones, y lógica de negocio...",className:"font-mono text-sm min-h-[300px] bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700 resize-y p-4 leading-relaxed"}),e.jsx(xe,{className:"absolute top-4 right-4 w-4 h-4 text-violet-300"})]}),e.jsx("p",{className:"text-[10px] text-slate-400 text-right",children:"Markdown soportado. Sé específico con las reglas."})]})]})]})}),e.jsx(ce,{value:"knowledge",className:"space-y-6 animate-in slide-in-from-bottom-2 duration-500",children:e.jsx(Sa,{groupIds:s.knowledgeGroupIds||[],onGroupsChange:a=>l("knowledgeGroupIds",a),sources:s.knowledgeSources||[],onSourcesChange:a=>l("knowledgeSources",a),organizationId:s.organizationId,agentName:s.name,agentId:n,agentMetadata:s.metadata,onMetadataChange:a=>l("metadata",a)})}),e.jsx(ce,{value:"advanced",className:"space-y-6 animate-in slide-in-from-bottom-2 duration-500",children:e.jsxs("div",{className:"grid gap-6",children:[e.jsxs(D,{className:"border-slate-100 dark:border-slate-800 shadow-sm",children:[e.jsx(G,{className:"bg-slate-50/50 dark:bg-slate-900/50 pb-4",children:e.jsx(H,{className:"text-lg",children:"Configuración de Modelo"})}),e.jsx(B,{className:"space-y-8 pt-6",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(_,{className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Modelo IA"}),e.jsxs(je,{value:s.model,onValueChange:a=>l("model",a),children:[e.jsx(ve,{className:"h-10 bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700",children:e.jsx(Ne,{placeholder:"Selecciona modelo"})}),e.jsx(ye,{children:Ge.map(a=>e.jsx(ne,{value:a.id,children:a.name},a.id))})]})]}),e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"flex justify-between items-center",children:e.jsxs(_,{className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:["Creatividad (Temperatura): ",s.temperature]})}),e.jsx(fe,{value:[s.temperature],max:1,step:.1,onValueChange:a=>l("temperature",a[0]),className:"py-2"}),e.jsxs("div",{className:"flex justify-between text-[10px] font-bold text-slate-400 uppercase tracking-widest",children:[e.jsx("span",{children:"Preciso (0.0)"}),e.jsx("span",{children:"Balanceado (0.5)"}),e.jsx("span",{children:"Creativo (1.0)"})]})]})]})})]}),e.jsxs(D,{className:"border-slate-100 dark:border-slate-800 shadow-sm",children:[e.jsxs(G,{className:"bg-slate-50/50 dark:bg-slate-900/50 pb-4",children:[e.jsxs(H,{className:"text-lg flex items-center gap-2",children:[e.jsx(Us,{className:"w-5 h-5 text-amber-500"}),"Límites de Conversación"]}),e.jsx(X,{children:"Protección contra bucles infinitos entre el cliente y el agente AI"})]}),e.jsx(B,{className:"space-y-6 pt-6",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsxs(_,{className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:["Máximo de Turnos: ",s.maxConversationTurns||50]}),e.jsx("span",{className:"text-xs text-muted-foreground",children:s.maxConversationTurns===0?"Sin límite (no recomendado)":`Tras ${s.maxConversationTurns||50} respuestas → transferir a humano`})]}),e.jsx(fe,{value:[s.maxConversationTurns??50],min:0,max:200,step:5,onValueChange:a=>l("maxConversationTurns",a[0]),className:"py-2"}),e.jsxs("div",{className:"flex justify-between text-[10px] font-bold text-slate-400 uppercase tracking-widest",children:[e.jsx("span",{children:"Sin límite"}),e.jsx("span",{children:"50 (Recomendado)"}),e.jsx("span",{children:"200"})]}),s.maxConversationTurns===0&&e.jsx("p",{className:"text-xs text-amber-600 bg-amber-50 dark:bg-amber-950/20 dark:text-amber-400 px-3 py-2 rounded-md border border-amber-200 dark:border-amber-800",children:"⚠️ Sin límite de turnos, el agente AI podría conversar indefinidamente con un cliente. Se recomienda establecer un límite."})]})})]}),e.jsxs(D,{className:"border-slate-100 dark:border-slate-800 shadow-sm",children:[e.jsx(G,{className:"bg-slate-50/50 dark:bg-slate-900/50 pb-4",children:e.jsx(H,{className:"text-lg",children:"Herramientas y Capacidades"})}),e.jsxs(B,{className:"grid gap-4 pt-6",children:[e.jsx(Ia,{tools:s.tools||[],metadata:s.metadata||{},onChange:a=>{a.tools&&l("tools",a.tools),a.metadata&&l("metadata",a.metadata)}}),e.jsxs("div",{className:`flex flex-col border rounded-xl transition-all duration-300 ${s.tools?.includes("transfer_to_human")?"border-amber-200 dark:border-amber-900/50 bg-amber-50/30 dark:bg-amber-900/10":"border-slate-100 dark:border-slate-800 bg-white dark:bg-slate-900 hover:border-primary/20"}`,children:[e.jsxs("div",{className:"flex items-center justify-between p-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(_,{className:"text-base font-bold",children:"Transferencia a Humano"}),e.jsxs("p",{className:"text-xs text-slate-500 max-w-[300px]",children:["Habilita la herramienta ",e.jsx("code",{children:"transfer_to_human"})," para que el agente escale casos complejos."]})]}),e.jsx(me,{checked:s.tools?.includes("transfer_to_human"),onCheckedChange:a=>{const c=s.tools||[],C=a?[...c,"transfer_to_human"]:c.filter(h=>h!=="transfer_to_human"),f={...s.metadata||{}};a&&!f.tool_config?.transfer_to_human&&(f.tool_config={...f.tool_config,transfer_to_human:{enabled:!0,trigger_description:""}}),!a&&f.tool_config?.transfer_to_human&&(f.tool_config.transfer_to_human.enabled=!1),l("tools",C),l("metadata",f)}})]}),s.tools?.includes("transfer_to_human")&&e.jsx("div",{className:"px-4 pb-4 animate-in slide-in-from-top-2 fade-in duration-300",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx(_,{className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"¿Cuándo debe transferir a un humano?"}),e.jsx("textarea",{className:"w-full min-h-[80px] p-3 text-sm rounded-lg border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 resize-y focus:ring-2 focus:ring-amber-500/20 focus:border-amber-400 transition-colors placeholder:text-slate-400",placeholder:"Ej: Cuando el cliente solicite una devolución, tenga una queja grave, pida hablar con un representante, o pregunte por temas legales...",value:s.metadata?.tool_config?.transfer_to_human?.trigger_description||"",onChange:a=>{const c={...s.metadata||{}};c.tool_config={...c.tool_config,transfer_to_human:{...c.tool_config?.transfer_to_human||{},enabled:!0,trigger_description:a.target.value}},l("metadata",c)}}),e.jsx("p",{className:"text-[10px] text-slate-400",children:"Describe los escenarios en que el agente debe escalar la conversación a un agente humano."})]})})]}),e.jsxs("div",{className:`flex flex-col border rounded-xl transition-all duration-300 ${s.tools?.includes("search_products")?"border-blue-200 dark:border-blue-900/50 bg-blue-50/30 dark:bg-blue-900/10":"border-slate-100 dark:border-slate-800 bg-white dark:bg-slate-900 hover:border-primary/20"}`,children:[e.jsxs("div",{className:"flex items-center justify-between p-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(_,{className:"text-base font-bold",children:"Búsqueda de Productos"}),e.jsxs("p",{className:"text-xs text-slate-500 max-w-[300px]",children:["Habilita ",e.jsx("code",{children:"search_products"})," para consultar el catálogo disponible."]})]}),e.jsx(me,{checked:s.tools?.includes("search_products"),onCheckedChange:a=>{const c=s.tools||[],C=a?[...c,"search_products"]:c.filter(h=>h!=="search_products"),f={...s.metadata||{}};a&&(f.tool_config={...f.tool_config,search_products:{...f.tool_config?.search_products||{},catalog_ids:f.tool_config?.search_products?.catalog_ids||[]}}),l("tools",C),l("metadata",f)}})]}),s.tools?.includes("search_products")&&e.jsx("div",{className:"px-4 pb-4 animate-in slide-in-from-top-2 fade-in duration-300",children:e.jsxs("div",{className:"space-y-3",children:[e.jsx(_,{className:"text-xs font-bold uppercase text-slate-500 tracking-wider",children:"Catálogos accesibles para este agente"}),r?e.jsxs("div",{className:"flex items-center gap-2 text-xs text-slate-400 py-2",children:[e.jsx(O,{className:"h-3 w-3 animate-spin"}),"Cargando catálogos..."]}):t.length===0?e.jsx("p",{className:"text-xs text-slate-400 py-2",children:"No hay catálogos creados. El agente buscará en todos los productos."}):e.jsx("div",{className:"space-y-2 max-h-[200px] overflow-y-auto",children:t.map(a=>{const c=b.includes(a.id);return e.jsxs("label",{className:`flex items-center gap-3 p-2.5 rounded-lg border cursor-pointer transition-all ${c?"border-blue-300 dark:border-blue-700 bg-blue-50 dark:bg-blue-900/20":"border-slate-200 dark:border-slate-700 hover:border-blue-200 dark:hover:border-blue-800"}`,children:[e.jsx("input",{type:"checkbox",checked:c,className:"h-4 w-4 rounded-full appearance-none border-2 border-slate-400 dark:border-slate-500 checked:border-blue-500 checked:bg-blue-500 checked:dark:border-blue-400 checked:dark:bg-blue-400 bg-transparent focus:ring-0 focus:ring-offset-0 cursor-pointer transition-colors",onChange:C=>{const f=C.target.checked?[...b,a.id]:b.filter(k=>k!==a.id),h={...s.metadata||{}};h.tool_config={...h.tool_config,search_products:{...h.tool_config?.search_products||{},catalog_ids:f}},l("metadata",h)}}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"text-sm font-medium",children:a.name}),a.description&&e.jsx("p",{className:"text-[10px] text-slate-400 truncate",children:a.description})]}),a.productCount!==void 0&&e.jsxs("span",{className:"text-[10px] text-slate-400 shrink-0",children:[a.productCount," productos"]})]},a.id)})}),b.length===0&&t.length>0&&e.jsx("p",{className:"text-[10px] text-amber-500",children:"Sin catálogos seleccionados, el agente buscará en todos los productos."})]})})]})]})]}),e.jsxs(D,{className:"border-slate-100 dark:border-slate-800 shadow-sm overflow-hidden",children:[e.jsx(G,{className:"bg-slate-50/50 dark:bg-slate-900/50 pb-4",children:e.jsx(H,{className:"text-lg",children:"Protocolos de Acción (Guardrails)"})}),e.jsx(B,{className:"pt-6",children:e.jsx(Aa,{value:s.actionSchemas||{},onChange:a=>l("actionSchemas",a)})})]}),s.agentType==="analyzer"&&e.jsx(Le,{metadata:s.metadata||{},onChange:a=>l("metadata",a)})]})})]})}function Ea(s){return s.type.startsWith("image/")?"image":s.type.startsWith("video/")?"video":s.type.startsWith("audio/")?"audio":"document"}function Je(s){switch(s){case"image":return e.jsx(sa,{className:"w-3.5 h-3.5"});case"video":return e.jsx(ea,{className:"w-3.5 h-3.5"});case"audio":return e.jsx(Xe,{className:"w-3.5 h-3.5"});default:return e.jsx(ae,{className:"w-3.5 h-3.5"})}}function Ma({images:s}){const[n,d]=u.useState(0),[l,o]=u.useState(!1);if(s.length===0)return null;const t=()=>d(r=>(r-1+s.length)%s.length),p=()=>d(r=>(r+1)%s.length);return s.length===1?e.jsxs("div",{className:"relative group rounded-xl overflow-hidden bg-slate-100 dark:bg-slate-800",children:[e.jsx("img",{src:s[0].url,alt:s[0].title||"Imagen",className:"w-full max-h-[220px] object-cover cursor-pointer hover:scale-[1.02] transition-transform duration-300",onClick:()=>o(!0),loading:"lazy"}),l&&e.jsx("div",{className:"fixed inset-0 z-50 bg-black/80 flex items-center justify-center p-4 animate-in fade-in duration-200",onClick:()=>o(!1),children:e.jsx("img",{src:s[0].url,alt:"",className:"max-w-[90vw] max-h-[85vh] rounded-lg shadow-2xl object-contain"})})]}):e.jsxs("div",{className:"relative",children:[e.jsxs("div",{className:"relative rounded-xl overflow-hidden bg-slate-100 dark:bg-slate-800 group",children:[e.jsx("img",{src:s[n].url,alt:`Imagen ${n+1}`,className:"w-full h-[200px] object-cover cursor-pointer animate-in fade-in duration-200",onClick:()=>o(!0),loading:"lazy"},n),e.jsx("button",{type:"button",onClick:t,className:"absolute left-2 top-1/2 -translate-y-1/2 bg-black/60 hover:bg-black/80 text-white rounded-full p-1.5 opacity-0 group-hover:opacity-100 transition-all z-10",children:e.jsx(Me,{className:"w-4 h-4"})}),e.jsx("button",{type:"button",onClick:p,className:"absolute right-2 top-1/2 -translate-y-1/2 bg-black/60 hover:bg-black/80 text-white rounded-full p-1.5 opacity-0 group-hover:opacity-100 transition-all z-10",children:e.jsx(ge,{className:"w-4 h-4"})}),e.jsxs("div",{className:"absolute top-2 right-2 bg-black/60 text-white text-[10px] font-bold px-2 py-0.5 rounded-full backdrop-blur-sm",children:[n+1," / ",s.length]})]}),e.jsx("div",{className:"flex justify-center gap-1.5 mt-2",children:s.map((r,i)=>e.jsx("button",{type:"button",onClick:()=>d(i),className:q("h-1.5 rounded-full transition-all duration-200",i===n?"bg-primary w-4":"bg-slate-300 dark:bg-slate-600 hover:bg-slate-400 w-1.5")},i))}),e.jsx("div",{className:"flex gap-1 mt-1.5",children:s.map((r,i)=>e.jsx("button",{type:"button",onClick:()=>d(i),className:q("flex-1 h-12 rounded-lg overflow-hidden transition-all duration-200",i===n?"ring-2 ring-primary ring-offset-1 dark:ring-offset-slate-900 opacity-100":"opacity-50 hover:opacity-75"),children:e.jsx("img",{src:r.url,alt:"",className:"w-full h-full object-cover",loading:"lazy"})},i))}),l&&e.jsxs("div",{className:"fixed inset-0 z-50 bg-black/80 flex items-center justify-center p-4 animate-in fade-in duration-200",onClick:()=>o(!1),children:[e.jsx("button",{type:"button",onClick:r=>{r.stopPropagation(),t()},className:"absolute left-4 top-1/2 -translate-y-1/2 bg-white/20 hover:bg-white/30 text-white rounded-full p-2 z-10",children:e.jsx(Me,{className:"w-6 h-6"})}),e.jsx("img",{src:s[n].url,alt:"",className:"max-w-[90vw] max-h-[85vh] rounded-lg shadow-2xl object-contain",onClick:r=>r.stopPropagation()}),e.jsx("button",{type:"button",onClick:r=>{r.stopPropagation(),p()},className:"absolute right-4 top-1/2 -translate-y-1/2 bg-white/20 hover:bg-white/30 text-white rounded-full p-2 z-10",children:e.jsx(ge,{className:"w-6 h-6"})}),e.jsxs("div",{className:"absolute bottom-6 left-1/2 -translate-x-1/2 bg-black/60 text-white text-xs px-3 py-1 rounded-full",children:[n+1," / ",s.length]})]})]})}function za({url:s,title:n}){return e.jsxs("div",{className:"flex items-center gap-3 bg-gradient-to-r from-slate-100 to-slate-50 dark:from-slate-800 dark:to-slate-800/50 rounded-xl p-3 border border-slate-200/50 dark:border-slate-700/50",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-primary/10 flex items-center justify-center shrink-0",children:e.jsx(aa,{className:"w-5 h-5 text-primary"})}),e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx("audio",{controls:!0,className:"w-full h-8",preload:"metadata",children:e.jsx("source",{src:s})})})]})}function qa({url:s}){return e.jsx("div",{className:"rounded-xl overflow-hidden bg-black",children:e.jsx("video",{controls:!0,preload:"metadata",className:"w-full max-h-[220px]",playsInline:!0,children:e.jsx("source",{src:s})})})}function Pa({url:s,title:n}){return e.jsxs("a",{href:s,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 bg-slate-100 dark:bg-slate-800 hover:bg-slate-200 dark:hover:bg-slate-700 rounded-lg px-3 py-2 transition-colors group",children:[e.jsx("div",{className:"w-8 h-8 rounded-lg bg-primary/10 flex items-center justify-center shrink-0",children:e.jsx(ae,{className:"w-4 h-4 text-primary"})}),e.jsx("span",{className:"text-xs font-medium text-slate-600 dark:text-slate-300 truncate flex-1",children:n||"Documento adjunto"}),e.jsx(ta,{className:"w-3.5 h-3.5 text-slate-400 group-hover:text-primary transition-colors shrink-0"})]})}function $a(s){const n=[];let d=0;for(;d<s.length;)if(s[d].type==="image"){const l=[];for(;d<s.length&&s[d].type==="image";)l.push(s[d]),d++;n.push({kind:"images",items:l})}else n.push({kind:"single",item:s[d]}),d++;return n}const es=u.memo(({msg:s})=>{const n=d=>{const l=d.mediaAttachments||[],o=d.text.replace(/\[MEDIA_PLACEHOLDER:\d+\]/g,"").replace(/\n{3,}/g,`
18
+
19
+ `).trim(),t=$a(l);return e.jsxs("div",{className:"space-y-2.5",children:[o&&e.jsx(Ws,{content:o,variant:"whatsapp",className:"text-sm leading-relaxed [&_p]:mb-1.5 [&_p:last-child]:mb-0"}),t.map((p,r)=>{if(p.kind==="images")return e.jsx(Ma,{images:p.items},`img-group-${r}`);const{item:i}=p;return i.type==="audio"?e.jsx(za,{url:i.url,title:i.title},`media-${r}`):i.type==="video"?e.jsx(qa,{url:i.url},`media-${r}`):e.jsx(Pa,{url:i.url,title:i.title},`media-${r}`)})]})};return e.jsxs("div",{className:q("flex gap-3 max-w-[90%]",s.role==="user"?"ml-auto flex-row-reverse":""),children:[e.jsx(ke,{className:"h-6 w-6 mt-1 flex-shrink-0",children:e.jsx(Ce,{className:q("text-[10px] font-bold",s.role==="assistant"?"bg-primary/10 text-primary":"bg-slate-200 text-slate-500"),children:s.role==="assistant"?e.jsx(oe,{className:"w-3.5 h-3.5"}):e.jsx(Js,{className:"w-3.5 h-3.5"})})}),e.jsxs("div",{className:q("p-3.5 shadow-sm text-sm leading-relaxed animate-in fade-in zoom-in-95 duration-200",s.role==="user"?"bg-primary text-white rounded-2xl rounded-tr-sm":q("bg-white dark:bg-slate-900 border border-slate-100 dark:border-slate-800 rounded-2xl rounded-tl-sm text-slate-700 dark:text-slate-200",s.isError&&"bg-rose-50 border-rose-100 text-rose-700")),children:[s.attachment&&e.jsx("div",{className:q("flex items-center gap-2 text-xs mb-2 pb-2 border-b",s.role==="user"?"border-white/20":"border-slate-100 dark:border-slate-800"),children:s.attachment.preview?e.jsx("img",{src:s.attachment.preview,alt:s.attachment.name,className:"w-16 h-16 rounded-lg object-cover"}):e.jsxs("div",{className:q("flex items-center gap-1.5 px-2 py-1 rounded-lg",s.role==="user"?"bg-white/15":"bg-slate-50 dark:bg-slate-800"),children:[Je(s.attachment.type),e.jsx("span",{className:"truncate max-w-[150px]",children:s.attachment.name})]})}),s.isError&&e.jsx(Ns,{className:"w-4 h-4 inline-block mr-1.5 -mt-0.5"}),n(s),e.jsx("div",{className:q("text-[9px] mt-1.5 opacity-70 flex justify-end font-medium",s.role==="user"?"text-primary-foreground/80":"text-slate-400"),children:Ks(s.createdAt,{style:"time-only"})})]})]})});es.displayName="MessageBubble";function Ra({assistantName:s,assistantRole:n,welcomeMessage:d,agentId:l,agentConfig:o}){const[t,p]=u.useState(""),[r,i]=u.useState([]),[b,a]=u.useState(void 0),[c,C]=u.useState(!1),[f,h]=u.useState(null),k=u.useRef(null),j=u.useRef(null),[m,x]=u.useState(!1),v=u.useRef(null),R=u.useRef([]),N=d||`Hola, soy ${s||"el Asistente"}, tu ${n||"asistente virtual"}. ¿En qué puedo ayudarte hoy?`,S=s||"Asistente";u.useEffect(()=>{a(void 0),i([{id:"welcome",role:"assistant",text:N,createdAt:new Date}])},[N,S,l]),u.useEffect(()=>{k.current&&(k.current.scrollTop=k.current.scrollHeight)},[r,c]);const $=()=>{i([{id:"welcome",role:"assistant",text:N,createdAt:new Date}]),a(void 0),h(null),p(""),A.success("Chat reiniciado (Nueva Sesión)")},U=I=>{const E=I.target.files?.[0];if(!E)return;const M=Ea(E),T={file:E,type:M};if(M==="image"){const L=new FileReader;L.onload=()=>{T.preview=L.result,h({...T})},L.readAsDataURL(E)}else h(T);j.current&&(j.current.value="")},w=async()=>{if(m){v.current?.stop(),x(!1);return}try{const I=await navigator.mediaDevices.getUserMedia({audio:!0}),E=new MediaRecorder(I);R.current=[],E.ondataavailable=M=>{M.data.size>0&&R.current.push(M.data)},E.onstop=()=>{const M=new Blob(R.current,{type:"audio/webm"}),T=new File([M],`audio_${Date.now()}.webm`,{type:"audio/webm"});h({file:T,type:"audio"}),I.getTracks().forEach(L=>L.stop())},E.start(),v.current=E,x(!0)}catch{A.error("No se pudo acceder al micrófono.")}},y=async()=>{if(!t.trim()&&!f)return;if(!l&&!o){A.error("El agente aún no está listo para pruebas.");return}const I={id:Date.now().toString(),role:"user",text:t||(f?`${f.file.name}`:""),createdAt:new Date,attachment:f?{name:f.file.name,type:f.type,preview:f.preview}:void 0};i(T=>[...T,I]);const E=t||(f?.type==="audio"?"":`[Archivo subido: ${f?.file.name}]`),M=f?.file;p(""),h(null),C(!0);try{let T;if(l){const K=r.map(re=>({role:re.role,content:re.text}));T=await Q.simulateWithAgent(l,E,M,b,K),T?.metadata?.sessionId&&a(T.metadata.sessionId)}else T=await Q.simulate(o,E);const L={id:(Date.now()+1).toString(),role:"assistant",text:T.text||"No obtuve respuesta del modelo.",createdAt:new Date,mediaAttachments:T.attachments?.length?T.attachments:void 0};i(K=>[...K,L])}catch(T){console.error(T),A.error("Error simulando respuesta"),i(L=>[...L,{id:Date.now().toString(),role:"assistant",text:"Disculpa, tuve un problema interno al procesar tu solicitud. Verifica mi configuración.",createdAt:new Date,isError:!0}])}finally{C(!1)}};return e.jsxs("div",{className:"flex flex-col h-full max-h-full bg-slate-50 dark:bg-slate-950 font-sans overflow-hidden",children:[e.jsxs("div",{className:"px-4 py-3 bg-white dark:bg-slate-900 border-b border-slate-100 dark:border-slate-800 flex items-center justify-between shrink-0 shadow-sm",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsxs(ke,{className:"h-9 w-9 border-2 border-white dark:border-slate-800 shadow-sm",children:[e.jsx(Os,{src:"/bot-avatar.png"}),e.jsx(Ce,{className:"bg-gradient-to-br from-primary to-violet-500 text-white font-bold text-xs",children:S.substring(0,2).toUpperCase()})]}),e.jsx("div",{className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 bg-emerald-500 border-2 border-white dark:border-slate-900 rounded-full"})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-sm text-slate-900 dark:text-white leading-none",children:S}),e.jsxs("div",{className:"flex items-center gap-1 mt-0.5",children:[e.jsx(xe,{className:"w-2.5 h-2.5 text-violet-400"}),e.jsx("p",{className:"text-[10px] font-medium text-slate-500 uppercase tracking-wide",children:n||"IA"})]})]})]}),e.jsx(z,{variant:"ghost",size:"icon",className:"h-8 w-8 text-slate-400 hover:text-red-500 hover:bg-red-50 dark:hover:bg-red-950 transition-colors",onClick:$,title:"Reiniciar chat (Borrar memoria)",children:e.jsx(Ae,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-5 min-h-0",ref:k,children:[e.jsx("div",{className:"flex justify-center my-2",children:e.jsx("span",{className:"bg-slate-200/50 dark:bg-slate-800/50 text-slate-500 text-[10px] font-bold px-2 py-0.5 rounded-full uppercase tracking-wider",children:"Hoy"})}),r.map(I=>e.jsx(es,{msg:I},I.id)),c&&e.jsxs("div",{className:"flex gap-3 max-w-[90%]",children:[e.jsx(ke,{className:"h-6 w-6 mt-1 flex-shrink-0",children:e.jsx(Ce,{className:"bg-primary/10 text-primary",children:e.jsx(oe,{className:"w-3.5 h-3.5"})})}),e.jsx("div",{className:"bg-white dark:bg-slate-900 border border-slate-100 dark:border-slate-800 p-3 rounded-2xl rounded-tl-sm shadow-sm flex items-center gap-2",children:e.jsxs("span",{className:"flex gap-1",children:[e.jsx("span",{className:"w-1.5 h-1.5 bg-slate-400 rounded-full animate-bounce [animation-delay:-0.3s]"}),e.jsx("span",{className:"w-1.5 h-1.5 bg-slate-400 rounded-full animate-bounce [animation-delay:-0.15s]"}),e.jsx("span",{className:"w-1.5 h-1.5 bg-slate-400 rounded-full animate-bounce"})]})})]})]}),f&&e.jsx("div",{className:"px-3 py-2 bg-white dark:bg-slate-900 border-t border-slate-100 dark:border-slate-800 shrink-0",children:e.jsxs("div",{className:"flex items-center gap-2 bg-slate-50 dark:bg-slate-800 rounded-lg px-3 py-2",children:[f.preview?e.jsx("img",{src:f.preview,alt:f.file.name,className:"w-10 h-10 rounded-md object-cover"}):e.jsx("div",{className:"w-10 h-10 rounded-md bg-primary/10 flex items-center justify-center",children:Je(f.type)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-xs font-medium text-slate-700 dark:text-slate-200 truncate",children:f.file.name}),e.jsxs("p",{className:"text-[10px] text-slate-400",children:[(f.file.size/1024).toFixed(0)," KB"]})]}),e.jsx(z,{variant:"ghost",size:"icon",className:"h-6 w-6 rounded-full shrink-0",onClick:()=>h(null),children:e.jsx(ue,{className:"w-3.5 h-3.5"})})]})}),e.jsxs("div",{className:"p-3 bg-white dark:bg-slate-900 border-t border-slate-100 dark:border-slate-800 shrink-0",children:[e.jsx("input",{ref:j,type:"file",className:"hidden",accept:"image/*,video/*,audio/*,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt",onChange:U}),e.jsxs("form",{className:"flex items-center gap-2 bg-slate-50 dark:bg-slate-800 p-1.5 rounded-full border border-slate-200 dark:border-slate-700 focus-within:ring-2 focus-within:ring-primary/20 focus-within:border-primary/50 transition-all",onSubmit:I=>{I.preventDefault(),y()},children:[e.jsx(z,{type:"button",variant:"ghost",size:"icon",className:"h-9 w-9 rounded-full shrink-0 text-slate-400 hover:text-primary",onClick:()=>j.current?.click(),disabled:c||m,children:e.jsx(Ys,{className:"w-4 h-4"})}),e.jsx(z,{type:"button",variant:"ghost",size:"icon",className:q("h-9 w-9 rounded-full shrink-0 transition-all",m?"text-red-500 bg-red-50 dark:bg-red-950 hover:bg-red-100 dark:hover:bg-red-900 animate-pulse":"text-slate-400 hover:text-primary"),onClick:w,disabled:c,children:m?e.jsx(Xs,{className:"w-4 h-4 fill-current"}):e.jsx(Xe,{className:"w-4 h-4"})}),e.jsx(P,{value:t,onChange:I=>p(I.target.value),placeholder:m?"Grabando audio...":"Escribe un mensaje...",className:"flex-1 border-none bg-transparent shadow-none focus-visible:ring-0 px-2 h-9 text-sm",disabled:c||m||!o&&!l}),e.jsx(z,{size:"icon",type:"submit",disabled:c||m||!t.trim()&&!f||!o&&!l,className:"h-9 w-9 rounded-full shrink-0 shadow-sm",children:e.jsx(Zs,{className:"w-4 h-4 ml-0.5"})})]}),e.jsx("div",{className:"text-[9px] text-center text-slate-400 mt-2 font-medium tracking-wide",children:`Powered by ${Ge.find(I=>I.id===o?.model)?.name.replace(/ \(.*\)$/,"")??"Claude"}`})]})]})}function Rt(){const{id:s}=ys(),n=ws(),d=Se(),[l,o]=u.useState(1),[t,p]=u.useState([]),[r,i]=u.useState(!1),[b,a]=u.useState(!1),[c,C]=u.useState(null),[f,h]=u.useState(!1),k=u.useRef(null),j=u.useRef(!1),{currentOrganization:m}=ks(),[x,v]=u.useState({name:"",organizationId:m?.id||"",model:"gemini-2.5-flash",temperature:.3,assistantName:"",assistantRole:"",conversationPurpose:"",processingMode:"sync",tools:[],status:"active"});u.useEffect(()=>{m?.id&&v(w=>({...w,organizationId:m.id}))},[m?.id]),u.useEffect(()=>{if(s){if(k.current===s)return;k.current=s,R(s)}else{if(j.current)return;j.current=!0,N()}},[s]);const R=async w=>{i(!0);try{const y=await Q.getAgent(w);v({name:y.name,organizationId:y.organizationId,model:y.model,temperature:Number(y.temperature),assistantName:y.assistantName,assistantRole:y.assistantRole,conversationPurpose:y.conversationPurpose,customInstructions:y.customInstructions,description:y.description,companyName:y.companyName,companyActivity:y.companyActivity,executionMode:y.executionMode,strategyId:y.strategyId,processingMode:y.processingMode,tools:y.tools,status:y.status,knowledgeSources:y.knowledgeSources,knowledgeGroupIds:y.knowledgeGroupIds,metadata:y.metadata,actionSchemas:y.actionSchemas,agentType:y.agentType,maxConversationTurns:y.maxConversationTurns}),C(w),o(2)}catch{A.error("Error cargando agente"),n("/ai-agents")}finally{i(!1)}},N=async()=>{i(!0);try{const w=await Q.getTemplates();p(w)}catch{A.error("Error cargando plantillas")}finally{i(!1)}},S=async w=>{const y={...x,model:w.model,temperature:w.temperature,assistantName:w.assistantName,assistantRole:w.assistantRole,conversationPurpose:w.conversationPurpose,customInstructions:w.customInstructions,tools:w.tools,name:w.name,agentType:w.agentType||"chat"};v(y),a(!0);try{const I=await Q.createAgent(y);C(I.id),A.success("Agente creado. Ahora puedes configurarlo."),o(2)}catch(I){const E=I.response?.data?.message||I.message||"Error al crear agente";A.error(E),console.error(I)}finally{a(!1)}},$=async()=>{if(!x.name)return A.error("El nombre es requerido");if(!c)return A.error("Error: Agente no creado");a(!0);try{await Q.updateAgent(c,x),h(!1),await d.invalidateQueries({queryKey:["ai-agents"]}),A.success("Agente actualizado exitosamente")}catch(w){A.error("Error al actualizar agente: "+(w.response?.data?.message||w.message))}finally{a(!1)}},U=w=>{switch(w){case"active":return"bg-emerald-50 text-emerald-700 border-emerald-200";case"inactive":return"bg-slate-100 text-slate-600 border-slate-200";case"draft":return"bg-amber-50 text-amber-700 border-amber-200";default:return"bg-slate-100 text-slate-700"}};return e.jsx(Ve,{children:e.jsxs("div",{className:"w-full min-h-screen bg-slate-50/50 dark:bg-slate-950 pb-20 font-sans",children:[e.jsx("div",{className:"bg-white/80 dark:bg-slate-900/80 backdrop-blur-md sticky top-0 z-50 border-b border-slate-100 dark:border-slate-800 transition-all duration-200",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-6 h-16 flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(z,{variant:"ghost",size:"icon",onClick:()=>{f?confirm("¿Salir sin guardar los cambios?")&&n("/ai-agents"):n("/ai-agents")},className:"rounded-full hover:bg-slate-100 dark:hover:bg-slate-800",children:e.jsx(ra,{className:"w-5 h-5 text-slate-500"})}),e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"bg-primary/10 p-1 rounded-lg",children:e.jsx(oe,{className:"w-4 h-4 text-primary"})}),e.jsx("h1",{className:"text-lg font-bold text-slate-900 dark:text-white leading-tight tracking-tight line-clamp-1 max-w-[300px]",children:x.name||(l===1?"Nuevo Agente":"Sin Nombre")}),c&&e.jsx(ee,{variant:"secondary",className:q(U(x.status||"draft"),"border font-bold px-2 py-0.5 rounded-lg text-[10px] shadow-sm uppercase tracking-wider"),children:x.status==="active"?"ACTIVO":"INACTIVO"})]}),e.jsxs("div",{className:"flex items-center gap-2 text-[10px] text-slate-400 font-medium pl-9",children:[c&&e.jsxs("span",{children:["ID: ",c]}),x.model&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"w-1 h-1 rounded-full bg-slate-300"}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(xe,{className:"w-3 h-3 text-violet-400"}),x.model]})]})]})]})]}),e.jsx("div",{className:"flex items-center gap-3",children:l===2&&e.jsxs(z,{onClick:$,disabled:b,className:"bg-primary hover:bg-primary/90 text-white shadow-lg shadow-primary/20 rounded-full px-6 font-bold",children:[b?e.jsx(O,{className:"mr-2 h-4 w-4 animate-spin"}):e.jsx(Ke,{className:"mr-2 h-4 w-4"}),c?"Guardar Cambios":"Crear Agente"]})})]})}),e.jsx("div",{className:"max-w-7xl mx-auto px-6 py-8 animate-in fade-in duration-500",children:l===1?e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsxs("div",{className:"text-center mb-10",children:[e.jsx("h2",{className:"text-2xl font-bold text-slate-900 dark:text-white mb-2",children:"Elige una Plantilla"}),e.jsx("p",{className:"text-slate-500",children:"Comienza con una configuración predefinida o crea uno desde cero."})]}),r?e.jsx("div",{className:"flex justify-center py-20",children:e.jsx(O,{className:"h-8 w-8 animate-spin text-primary"})}):e.jsx(ga,{templates:t,onSelect:S})]}):e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-8 items-start h-[calc(100vh-140px)]",children:[e.jsx("div",{className:"lg:col-span-7 h-full overflow-y-auto pr-2 no-scrollbar pb-20",children:e.jsx(Fa,{formData:x,agentId:c||void 0,onChange:w=>{v(y=>({...y,...w})),h(!0)}})}),e.jsx("div",{className:"hidden lg:block lg:col-span-5 sticky top-24",children:e.jsxs("div",{className:"bg-white dark:bg-slate-900 rounded-3xl border border-slate-200 dark:border-slate-800 shadow-xl overflow-hidden h-[75vh] flex flex-col p-2 bg-[url('/grid-pattern.svg')]",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-slate-100 dark:border-slate-800 mb-2 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-red-400"}),e.jsx("div",{className:"w-2 h-2 rounded-full bg-amber-400"}),e.jsx("div",{className:"w-2 h-2 rounded-full bg-emerald-400"})]}),e.jsx("span",{className:"text-[10px] font-bold text-slate-400 uppercase tracking-widest",children:"Vista Previa"})]}),e.jsx("div",{className:"flex-1 overflow-hidden rounded-2xl border border-slate-100 dark:border-slate-800 shadow-inner bg-slate-50 dark:bg-slate-950 min-h-0",children:e.jsx(Ra,{assistantName:x.assistantName,assistantRole:x.assistantRole,agentId:c||void 0,agentConfig:x})}),e.jsx("div",{className:"text-[10px] text-center text-slate-400 mt-2 font-medium shrink-0",children:"Esta es una simulación en tiempo real con tu configuración actual."})]})})]})})]})})}export{Rt as default};
@@ -0,0 +1 @@
1
+ import{j as r,aE as p,b8 as R,b9 as k,ba as f,w}from"./index-43NA2pdZ.js";const c={rose:"bg-rose-50 text-rose-700 border border-rose-200 dark:bg-rose-950/30 dark:text-rose-400 dark:border-rose-800",amber:"bg-amber-50 text-amber-700 border border-amber-200 dark:bg-amber-950/30 dark:text-amber-400 dark:border-amber-800",blue:"bg-blue-50 text-blue-700 border border-blue-200 dark:bg-blue-950/30 dark:text-blue-400 dark:border-blue-800"};function E({pool:e,lowThreshold:m,messages:t,resourceLabel:u}){if(!e)return null;if(e.blocked)return r.jsxs("div",{className:`flex items-center gap-2 px-3 py-2 rounded-lg text-xs font-medium ${c.rose}`,children:[r.jsx(p,{className:"w-3.5 h-3.5 shrink-0"}),r.jsx("span",{children:"Recurso bloqueado por el administrador."})]});if(!e.limitEnabled)return null;const a=R(e),s=a<=0,n=k[e.resourceType],i=f[e.resourceType],o=u||n?.label||i?.label||e.resourceType,d=n?.icon||i?.icon,x=m??n?.lowThreshold??2,b=!s&&a<=x,g=s?"rose":b?"amber":"blue",l={limitReached:`Limite de ${o.toLowerCase()} alcanzado. No puedes crear mas.`,low:`${a} ${o.toLowerCase()} disponibles en tu plan.`,available:`${a.toLocaleString()} ${o.toLowerCase()} disponibles en tu plan.`},h=s?t?.limitReached||l.limitReached:b?t?.low||l.low:t?.available||l.available;return r.jsxs("div",{className:`flex items-center gap-2 px-3 py-2 rounded-lg text-xs font-medium ${c[g]}`,children:[s?r.jsx(w,{className:"w-3.5 h-3.5 shrink-0"}):d?r.jsx(d,{className:"w-3.5 h-3.5 shrink-0"}):null,r.jsx("span",{children:h})]})}export{E as C};
@@ -0,0 +1 @@
1
+ import{ay as e}from"./index-43NA2pdZ.js";import"./recharts-DrC5kNsx.js";export{e as default};
@@ -0,0 +1 @@
1
+ import{c as Y,b as J,d as X,p as Z,e as ee,f as ae,g as te,h as se,k as re,i as ne,t as T,j as e,l as f,B as I,R as $,u as le,m as O,C as de,A as oe,U as L,n as ie,o as ce,q as G,r as me}from"./index-43NA2pdZ.js";import{P as z,a as M,b as U}from"./page-components-DXOKtt_M.js";import{C as v,a as N,b as S,c as R}from"./card-DdbmSh-v.js";import{S as C}from"./skeleton-CN6xlRXP.js";import{b,g as F,A as ue,C as xe,X as ge,Y as pe,T as V,h as he,P as be,i as fe,j as je,L as ve}from"./recharts-DrC5kNsx.js";import{P as Ne,a as ke,b as we}from"./popover-cWIhNmod.js";import{f as _}from"./format-BG1mN6C0.js";import{e as q}from"./es-BDgg6unH.js";import{C as ye}from"./calendar-days-CXtOZxOF.js";import{C as Ce}from"./ChannelSelector-C7R9zqrt.js";import{S as De}from"./switch-C7XmAU1c.js";import{M as Se}from"./message-square-B1_OirdW.js";import{T as H}from"./trending-up-BnHeLWFs.js";import"./select-DCY_lg9j.js";import"./index-KbFmSzBE.js";import"./index-YR5X3nd4.js";import"./instagram-Bm17x-Fs.js";const Re=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],Ee=Y("arrow-up-right",Re),Pe={getFullDashboard:async s=>(await J.get("/analytics/dashboard",{params:s})).data},m=X()(Z((s,l)=>({dateRangePreset:"30d",customStartDate:null,customEndDate:null,channelId:null,excludeCampaigns:!1,setDateRangePreset:t=>s({dateRangePreset:t}),setCustomDateRange:(t,u)=>s({customStartDate:t,customEndDate:u,dateRangePreset:"custom"}),setChannelId:t=>s({channelId:t}),setExcludeCampaigns:t=>s({excludeCampaigns:t}),getDateRange:()=>{const t=l(),u=new Date;if(t.dateRangePreset==="custom"&&t.customStartDate&&t.customEndDate)return{startDate:t.customStartDate,endDate:t.customEndDate};let r=7;t.dateRangePreset==="today"&&(r=0),t.dateRangePreset==="30d"&&(r=30);const d=new Date(u);return d.setDate(d.getDate()-r),d.setHours(0,0,0,0),{startDate:d.toISOString(),endDate:u.toISOString()}},getTimezone:()=>ae.getState().getEffectiveTimezone(),clearFilters:()=>s({dateRangePreset:"30d",customStartDate:null,customEndDate:null,channelId:null,excludeCampaigns:!1})}),{name:"dashboard-filters",storage:ee(()=>localStorage),partialize:s=>({dateRangePreset:s.dateRangePreset,customStartDate:s.customStartDate,customEndDate:s.customEndDate,channelId:s.channelId,excludeCampaigns:s.excludeCampaigns})})),Ie=300*1e3,Ae=600*1e3;function Te(){const s=m(o=>o.getDateRange),l=m(o=>o.getTimezone),t=m(o=>o.dateRangePreset),u=m(o=>o.customStartDate),r=m(o=>o.customEndDate),d=s(),x=l(),g=se(o=>o.currentOrganization?.id),i=m(o=>o.channelId),j=m(o=>o.excludeCampaigns);let p;return i&&i!=="all"&&(i.startsWith("id:")?p=i.replace("id:",""):i.startsWith("type:")||(p=i)),{params:{...d,timezone:x,channelId:p||void 0,excludeCampaigns:j||void 0},orgId:g,keyDeps:[g,t,u,r,x,i,j]}}const Oe=()=>{const{params:s,keyDeps:l,orgId:t}=Te();return te({queryKey:["dashboard",...l],queryFn:()=>(console.log("[useDashboardStats] Fetching dashboard for org:",t,"Params:",s),Pe.getFullDashboard(s)),enabled:!!t,staleTime:Ie,gcTime:Ae,refetchOnWindowFocus:!1,retry:1,placeholderData:re})},Le=[{value:"today",label:"Hoy"},{value:"7d",label:"7 días"},{value:"30d",label:"30 días"}],ze=10;function Me(){const s=m(n=>n.dateRangePreset);m(n=>n.getDateRange);const l=m(n=>n.setDateRangePreset),t=m(n=>n.setCustomDateRange),u=m(n=>n.customStartDate),r=m(n=>n.customEndDate),d=ne(),[x,g]=b.useState(!1),[i,j]=b.useState(""),[p,o]=b.useState(""),[k,D]=b.useState(!1),[h,w]=b.useState(0),a=b.useRef(null);b.useEffect(()=>()=>{a.current&&clearInterval(a.current)},[]);const c=k||h>0,W=b.useCallback(async()=>{c||(D(!0),await d.invalidateQueries({queryKey:["dashboard"]}),T.success("Dashboard actualizado"),D(!1),w(ze),a.current=setInterval(()=>{w(n=>n<=1?(a.current&&clearInterval(a.current),a.current=null,0):n-1)},1e3))},[c,d]),B=()=>{if(i&&p){const n=new Date(i+"T00:00:00"),A=new Date(p+"T23:59:59");n<=A?(t(n.toISOString(),A.toISOString()),g(!1)):T.error("La fecha de inicio debe ser anterior a la fecha de fin")}},Q=s==="custom"&&u&&r?`${_(new Date(u),"dd MMM",{locale:q})} - ${_(new Date(r),"dd MMM yyyy",{locale:q})}`:null;return e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 focus:outline-none",children:[e.jsx("div",{className:"flex items-center rounded-lg border border-slate-200 dark:border-slate-700 bg-slate-50 dark:bg-slate-800/50 p-0.5",children:Le.map(n=>e.jsx("button",{onClick:()=>l(n.value),className:f("px-3 py-1.5 text-[11px] font-bold uppercase tracking-wider rounded-md transition-all duration-200",s===n.value?"bg-white dark:bg-slate-700 text-foreground shadow-sm border border-slate-200 dark:border-slate-600":"text-muted-foreground hover:text-foreground"),children:n.label},n.value))}),e.jsxs(Ne,{open:x,onOpenChange:g,children:[e.jsx(ke,{asChild:!0,children:e.jsxs("button",{className:f("flex items-center gap-1.5 px-3 py-1.5 text-[11px] font-bold uppercase tracking-wider rounded-lg border transition-all duration-200",s==="custom"?"bg-white dark:bg-slate-700 text-foreground shadow-sm border-slate-200 dark:border-slate-600":"border-slate-200 dark:border-slate-700 text-muted-foreground hover:text-foreground hover:border-slate-300 bg-slate-50 dark:bg-slate-800/50"),children:[e.jsx(ye,{className:"w-3.5 h-3.5"}),Q||"Personalizado"]})}),e.jsx(we,{className:"w-auto p-4 rounded-xl border-slate-200 dark:border-slate-700 shadow-lg",align:"start",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-[11px] font-bold text-muted-foreground uppercase tracking-widest",children:"Rango personalizado"}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-[10px] font-bold text-muted-foreground uppercase tracking-wider mb-1 block",children:"Desde"}),e.jsx("input",{type:"date",className:"flex h-9 w-full rounded-lg border border-slate-200 dark:border-slate-700 bg-transparent px-3 py-1 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/50",value:i,max:p||void 0,onChange:n=>j(n.target.value)})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-[10px] font-bold text-muted-foreground uppercase tracking-wider mb-1 block",children:"Hasta"}),e.jsx("input",{type:"date",className:"flex h-9 w-full rounded-lg border border-slate-200 dark:border-slate-700 bg-transparent px-3 py-1 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary/50",value:p,min:i||void 0,onChange:n=>o(n.target.value)})]})]}),e.jsx(I,{size:"sm",className:"w-full rounded-lg",onClick:B,disabled:!i||!p,children:"Aplicar"})]})})]}),e.jsxs("button",{onClick:W,disabled:c,className:f("flex items-center gap-1 px-1.5 py-1.5 rounded-lg border transition-all duration-200 ml-1",c?"border-slate-200 dark:border-slate-700 bg-slate-100 dark:bg-slate-800/80 text-muted-foreground/40 cursor-not-allowed":"border-slate-200 dark:border-slate-700 bg-slate-50 dark:bg-slate-800/50 text-muted-foreground hover:text-foreground hover:border-slate-300"),title:h>0?`Disponible en ${h}s`:"Actualizar",children:[e.jsx($,{className:f("w-3.5 h-3.5",k&&"animate-spin")}),h>0&&e.jsxs("span",{className:"text-[10px] font-bold tabular-nums text-muted-foreground/50 pr-0.5",children:[h,"s"]})]})]})}const E=["#3b82f6","#10b981","#8b5cf6","#f59e0b","#ec4899"],Ue={blue:{bg:"bg-blue-50 dark:bg-blue-900/20",icon:"text-blue-500 dark:text-blue-400"},emerald:{bg:"bg-emerald-50 dark:bg-emerald-900/20",icon:"text-emerald-500 dark:text-emerald-400"},purple:{bg:"bg-purple-50 dark:bg-purple-900/20",icon:"text-purple-500 dark:text-purple-400"},amber:{bg:"bg-amber-50 dark:bg-amber-900/20",icon:"text-amber-500 dark:text-amber-400"}},K=({active:s,payload:l,label:t,isHourly:u})=>{if(!s||!l?.length)return null;let r=t;return u&&t&&typeof t=="string"&&t.includes(" ")&&(r=`${t.split(" ")[1]||t} hrs`),e.jsxs("div",{className:"bg-popover border border-border rounded-lg p-3 shadow-lg text-xs",children:[e.jsx("p",{className:"font-medium text-foreground mb-1",children:r}),l.map((d,x)=>e.jsxs("p",{style:{color:d.color},className:"flex justify-between gap-4",children:[e.jsxs("span",{children:[d.name,":"]}),e.jsx("span",{className:"font-semibold",children:d.value?.toLocaleString()})]},x))]})},ta=()=>{const{data:s,isLoading:l,error:t,refetch:u}=Oe(),r=s?.summary,d=s?.activity,x=s?.channels,g=s?.agents,i=le(),j=m(a=>a.channelId),p=m(a=>a.setChannelId),o=m(a=>a.excludeCampaigns),k=m(a=>a.setExcludeCampaigns),h=m(a=>a.dateRangePreset)==="today",w=j||"all";return t&&!s?e.jsxs(z,{children:[e.jsx(M,{title:"Dashboard",description:"Vista general de tu actividad y métricas clave.",icon:O}),e.jsx(U,{children:e.jsx(v,{className:"border-rose-200/50 bg-rose-50/30 dark:bg-rose-950/10",children:e.jsxs(N,{className:"flex flex-col items-center justify-center py-12 gap-4",children:[e.jsx(de,{className:"h-12 w-12 text-rose-500/70"}),e.jsx("p",{className:"text-rose-600 dark:text-rose-400 font-medium",children:"Error al cargar el dashboard"}),e.jsxs(I,{variant:"outline",onClick:()=>u(),size:"sm",children:[e.jsx($,{className:"h-4 w-4 mr-2"})," Reintentar"]})]})})})]}):e.jsxs(z,{children:[e.jsx(M,{title:"Dashboard",description:"Vista general de tu actividad y métricas clave.",icon:O,actions:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ce,{value:w,onChange:a=>p(a==="all"?null:a),className:"w-[200px]"}),e.jsx(Me,{}),e.jsxs(I,{size:"sm",children:[e.jsx(oe,{className:"mr-2 h-4 w-4"}),"Ver Reportes"]})]})}),e.jsx(U,{children:e.jsxs("div",{className:"space-y-6 animate-in fade-in duration-500",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4",children:[e.jsx(y,{icon:Se,label:"CONVERSACIONES ACTIVAS",value:r?.activeConversations?.value,trend:r?.activeConversations?.trend,trendUp:r?.activeConversations?.trendUp,color:"blue",isLoading:l}),e.jsx(y,{icon:L,label:"NUEVOS CONTACTOS",value:r?.newContacts?.value,trend:r?.newContacts?.trend,trendUp:r?.newContacts?.trendUp,color:"emerald",isLoading:l}),e.jsx(y,{icon:H,label:"TASA DE RESPUESTA",value:r?.responseRate?.value!=null?`${r.responseRate.value}%`:void 0,trend:r?.responseRate?.trend,trendUp:r?.responseRate?.trendUp,color:"purple",isLoading:l}),e.jsx(y,{icon:Ee,label:"MENSAJES ENVIADOS",value:r?.messagesSent?.value,trend:r?.messagesSent?.trend,trendUp:r?.messagesSent?.trendUp,color:"amber",isLoading:l,action:e.jsxs("div",{className:"flex items-center gap-2 mt-4 pt-3 border-t border-border/50",children:[e.jsx(De,{id:"exclude-campaigns",checked:o,onCheckedChange:k,className:"scale-75 data-[state=checked]:bg-amber-500"}),e.jsx(ie,{htmlFor:"exclude-campaigns",className:"text-[10px] text-muted-foreground cursor-pointer uppercase tracking-wider font-semibold",children:"Excluir Campañas"})]})})]}),e.jsxs(v,{className:"border border-slate-200/60 dark:border-slate-800 shadow-sm rounded-2xl bg-white dark:bg-slate-900 overflow-hidden",children:[e.jsx(S,{className:"pb-2",children:e.jsxs(R,{className:"text-sm font-bold text-slate-500 uppercase tracking-widest flex items-center gap-2",children:[e.jsx("div",{className:"p-2 rounded-lg bg-blue-500/10",children:e.jsx(H,{className:"w-4 h-4 text-blue-600 dark:text-blue-400"})}),"Actividad de Mensajería",l&&!d&&e.jsx(ce,{className:"h-3 w-3 animate-spin text-muted-foreground"})]})}),e.jsx(N,{children:l&&!d?e.jsx("div",{className:"space-y-3 py-4",children:e.jsx(C,{className:"h-[280px] w-full rounded-xl"})}):d&&d.length>0?e.jsx("div",{className:"h-[300px] w-full pt-4",children:e.jsx(F,{width:"100%",height:"100%",children:e.jsxs(ue,{data:d,children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"activityGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"hsl(var(--primary))",stopOpacity:.3}),e.jsx("stop",{offset:"100%",stopColor:"hsl(var(--primary))",stopOpacity:.02})]})}),e.jsx(xe,{strokeDasharray:"3 3",className:"stroke-border",vertical:!1}),e.jsx(ge,{dataKey:"date",tickFormatter:a=>h||a&&a.includes(" ")?a.split(" ")[1]||a:a.split("-").slice(1).join("/"),axisLine:!1,tickLine:!1,tick:{fontSize:11,fill:"hsl(var(--muted-foreground))"},dy:10,interval:h?1:"preserveStartEnd"}),e.jsx(pe,{axisLine:!1,tickLine:!1,tick:{fontSize:11,fill:"hsl(var(--muted-foreground))"},width:40}),e.jsx(V,{content:e.jsx(K,{isHourly:h})}),e.jsx(he,{type:"monotone",dataKey:"count",name:"Mensajes",stroke:"hsl(var(--primary))",strokeWidth:2,fill:"url(#activityGradient)"})]})})}):e.jsx(P,{label:"No hay actividad para el período seleccionado"})})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v,{className:"border border-slate-200/60 dark:border-slate-800 shadow-sm rounded-2xl bg-white dark:bg-slate-900 overflow-hidden hover:shadow-md transition-shadow duration-300",children:[e.jsx(S,{className:"pb-2",children:e.jsxs(R,{className:"text-sm font-bold text-slate-500 uppercase tracking-widest flex items-center gap-2",children:[e.jsx("div",{className:"p-2 rounded-lg bg-indigo-500/10",children:e.jsx(G,{className:"w-4 h-4 text-indigo-600 dark:text-indigo-400"})}),"Canales Más Activos"]})}),e.jsx(N,{children:l&&!x?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(C,{className:"h-[200px] w-[200px] rounded-full"})}):x&&x.length>0?e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx(F,{width:"100%",height:220,children:e.jsxs(be,{children:[e.jsx(fe,{data:x,cx:"50%",cy:"50%",innerRadius:55,outerRadius:85,paddingAngle:3,dataKey:"count",nameKey:"name",children:x.map((a,c)=>e.jsx(je,{fill:E[c%E.length]},c))}),e.jsx(V,{content:e.jsx(K,{})}),e.jsx(ve,{wrapperStyle:{fontSize:"11px"},formatter:a=>e.jsx("span",{className:"text-foreground",children:a})})]})}),e.jsx("div",{className:"grid grid-cols-3 gap-2 mt-2 w-full",children:x.slice(0,3).map((a,c)=>e.jsxs("div",{className:"text-center p-2 rounded-lg bg-slate-50 dark:bg-slate-800/50",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1.5 mb-1",children:[e.jsx("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:E[c]}}),e.jsx("span",{className:"text-[10px] font-bold text-muted-foreground uppercase tracking-wider truncate",children:a.name})]}),e.jsxs("div",{className:"text-lg font-bold text-foreground",children:[a.value,"%"]}),e.jsxs("div",{className:"text-[10px] text-muted-foreground",children:[a.count," tickets"]})]},c))})]}):e.jsx(P,{label:"No hay datos de canales"})})]}),e.jsxs(v,{className:"border border-slate-200/60 dark:border-slate-800 shadow-sm rounded-2xl bg-white dark:bg-slate-900 overflow-hidden hover:shadow-md transition-shadow duration-300",children:[e.jsx(S,{className:"pb-2",children:e.jsxs(R,{className:"text-sm font-bold text-slate-500 uppercase tracking-widest flex items-center gap-2",children:[e.jsx("div",{className:"p-2 rounded-lg bg-emerald-500/10",children:e.jsx(L,{className:"w-4 h-4 text-emerald-600 dark:text-emerald-400"})}),"Rendimiento por Agente"]})}),e.jsx(N,{children:l&&!g?e.jsx("div",{className:"space-y-3",children:[1,2,3].map(a=>e.jsx(C,{className:"h-14 w-full rounded-xl"},a))}):g&&g.length>0?e.jsx("div",{className:"space-y-2",children:g.map((a,c)=>e.jsxs("div",{className:"flex items-center justify-between p-3 rounded-xl bg-slate-50 dark:bg-slate-800/50 border border-slate-100 dark:border-slate-700/50 hover:bg-slate-100/80 dark:hover:bg-slate-800 transition-colors cursor-pointer group/agent",onClick:()=>i(`/configuracion/equipo?tab=stats&memberId=${a.agentId}&from=dashboard`),children:[e.jsxs("div",{className:"flex items-center gap-3",children:[c<3?e.jsx("span",{className:f("inline-flex items-center justify-center w-7 h-7 rounded-lg text-[11px] font-bold border",c===0&&"bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 border-amber-200 dark:border-amber-500/30",c===1&&"bg-slate-100 dark:bg-slate-500/20 text-slate-600 dark:text-slate-400 border-slate-200 dark:border-slate-500/30",c===2&&"bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400 border-orange-200 dark:border-orange-500/30"),children:c+1}):e.jsx("span",{className:"inline-flex items-center justify-center w-7 h-7 text-xs font-medium text-muted-foreground",children:c+1}),a.avatarUrl?e.jsx("img",{src:a.avatarUrl,alt:a.agentName,className:"h-9 w-9 rounded-full border-2 border-white dark:border-slate-800 shadow-sm object-cover"}):e.jsx("div",{className:"h-9 w-9 rounded-full bg-slate-200 dark:bg-slate-700 flex items-center justify-center text-xs font-bold text-slate-600 dark:text-slate-300 border-2 border-white dark:border-slate-800 shadow-sm",children:(a.agentName||"?").charAt(0).toUpperCase()}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-foreground group-hover/agent:text-primary transition-colors",children:a.agentName||"Agente"}),e.jsxs("p",{className:"text-[10px] text-muted-foreground tabular-nums",children:[a.percentage,"% del total"]})]})]}),e.jsxs(me,{variant:"secondary",className:"tabular-nums font-bold text-xs bg-slate-100 dark:bg-slate-700 text-foreground",children:[a.ticketCount," tickets"]})]},a.agentId))}):e.jsx(P,{label:"No hay datos de agentes"})})]})]})]})})]})};function y({icon:s,label:l,value:t,trend:u,trendUp:r,color:d,isLoading:x,action:g}){const i=Ue[d];return e.jsx(v,{className:"border border-slate-200/60 dark:border-slate-800 shadow-sm rounded-2xl bg-white dark:bg-slate-900 overflow-hidden hover:shadow-md transition-shadow duration-300",children:e.jsxs(N,{className:"p-5",children:[e.jsxs("div",{className:"flex items-start justify-between mb-3",children:[e.jsx("div",{className:f("w-10 h-10 rounded-xl flex items-center justify-center",i.bg),children:e.jsx(s,{className:f("h-5 w-5",i.icon)})}),!x&&u!=null&&e.jsxs("span",{className:f("inline-flex items-center px-2 py-0.5 rounded-md text-[11px] font-bold tabular-nums",r?"text-emerald-600 dark:text-emerald-400 bg-emerald-50 dark:bg-emerald-500/10":"text-rose-600 dark:text-rose-400 bg-rose-50 dark:bg-rose-500/10"),children:[r?"+":"",u,"%"]})]}),x?e.jsx(C,{className:"h-8 w-20 mb-1"}):e.jsx("div",{className:"text-2xl font-bold text-slate-900 dark:text-white tracking-tight",children:typeof t=="number"?t.toLocaleString():t??"-"}),e.jsx("div",{className:"text-[10px] font-bold text-slate-400 uppercase tracking-wider mt-1",children:l}),g&&e.jsx("div",{children:g})]})})}function P({label:s}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-slate-300 dark:text-slate-600",children:[e.jsx(G,{className:"h-10 w-10 mb-3 opacity-50"}),e.jsx("p",{className:"text-xs font-semibold text-slate-400 dark:text-slate-500",children:s})]})}export{ta as DashboardPage,ta as default};