@8wave/ai-elements 0.74.0 → 0.77.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/_chunks/{PkStreamingMarkdown-orhL2kzD.js → PkStreamingMarkdown-COZApJzT.js} +22 -22
  2. package/dist/_chunks/PkStreamingMarkdown-COZApJzT.js.map +1 -0
  3. package/dist/_chunks/{PkToolShowArtifact-c_vCWUpQ.js → PkToolShowArtifact-BZQixk9z.js} +7 -7
  4. package/dist/_chunks/{PkToolShowArtifact-c_vCWUpQ.js.map → PkToolShowArtifact-BZQixk9z.js.map} +1 -1
  5. package/dist/_chunks/{PkToolShowCalendarEvent-D2VHu1V3.js → PkToolShowCalendarEvent-BEqn5iEb.js} +12 -12
  6. package/dist/_chunks/{PkToolShowCalendarEvent-D2VHu1V3.js.map → PkToolShowCalendarEvent-BEqn5iEb.js.map} +1 -1
  7. package/dist/_chunks/{PkToolShowComparison-C2ZUH0w4.js → PkToolShowComparison-p34r0Hhd.js} +7 -7
  8. package/dist/_chunks/{PkToolShowComparison-C2ZUH0w4.js.map → PkToolShowComparison-p34r0Hhd.js.map} +1 -1
  9. package/dist/_chunks/PkToolShowContactForm-thS7c8iL.js +1658 -0
  10. package/dist/_chunks/PkToolShowContactForm-thS7c8iL.js.map +1 -0
  11. package/dist/_chunks/{PkToolShowEmail-BuyCHUU5.js → PkToolShowEmail-Be8FvWjw.js} +11 -11
  12. package/dist/_chunks/{PkToolShowEmail-BuyCHUU5.js.map → PkToolShowEmail-Be8FvWjw.js.map} +1 -1
  13. package/dist/_chunks/{PkToolShowImageGallery-ByldZ0nj.js → PkToolShowImageGallery-DmJztS-Z.js} +5 -5
  14. package/dist/_chunks/{PkToolShowImageGallery-ByldZ0nj.js.map → PkToolShowImageGallery-DmJztS-Z.js.map} +1 -1
  15. package/dist/_chunks/{PkToolShowLocation-BCFnC5c7.js → PkToolShowLocation-DOoLCHzS.js} +9 -9
  16. package/dist/_chunks/{PkToolShowLocation-BCFnC5c7.js.map → PkToolShowLocation-DOoLCHzS.js.map} +1 -1
  17. package/dist/_chunks/{PkToolShowMessage-6Bsfi3BC.js → PkToolShowMessage-DgeULbdQ.js} +10 -10
  18. package/dist/_chunks/{PkToolShowMessage-6Bsfi3BC.js.map → PkToolShowMessage-DgeULbdQ.js.map} +1 -1
  19. package/dist/_chunks/{PkToolShowMultipleChoice-BLNTD2lK.js → PkToolShowMultipleChoice-CpGyn_bZ.js} +3 -3
  20. package/dist/_chunks/{PkToolShowMultipleChoice-BLNTD2lK.js.map → PkToolShowMultipleChoice-CpGyn_bZ.js.map} +1 -1
  21. package/dist/_chunks/{PkToolShowProductList-B4S5_m-f.js → PkToolShowProductList-DEo7XogW.js} +4 -4
  22. package/dist/_chunks/{PkToolShowProductList-B4S5_m-f.js.map → PkToolShowProductList-DEo7XogW.js.map} +1 -1
  23. package/dist/_chunks/{PkToolShowQrCode-BVZlzYDq.js → PkToolShowQrCode-UE4uSyvJ.js} +7 -7
  24. package/dist/_chunks/{PkToolShowQrCode-BVZlzYDq.js.map → PkToolShowQrCode-UE4uSyvJ.js.map} +1 -1
  25. package/dist/_chunks/{PkToolShowSources-BQo5DRwt.js → PkToolShowSources-BMXftK6O.js} +10 -9
  26. package/dist/_chunks/PkToolShowSources-BMXftK6O.js.map +1 -0
  27. package/dist/_chunks/{PkToolShowSuggestedReply-BxDI6yp_.js → PkToolShowSuggestedReply-CPAnHI0c.js} +3 -3
  28. package/dist/_chunks/{PkToolShowSuggestedReply-BxDI6yp_.js.map → PkToolShowSuggestedReply-CPAnHI0c.js.map} +1 -1
  29. package/dist/_chunks/{PkToolShowWeather-DR6egBIP.js → PkToolShowWeather-DcSUbzx0.js} +4 -4
  30. package/dist/_chunks/{PkToolShowWeather-DR6egBIP.js.map → PkToolShowWeather-DcSUbzx0.js.map} +1 -1
  31. package/dist/_chunks/{PkToolShowWebPages-D8RngE-F.js → PkToolShowWebPages-aH_GarEV.js} +5 -5
  32. package/dist/_chunks/{PkToolShowWebPages-D8RngE-F.js.map → PkToolShowWebPages-aH_GarEV.js.map} +1 -1
  33. package/dist/_chunks/{PkUrl-CI17WkYu.js → PkUrl-BHD0_pal.js} +2 -2
  34. package/dist/_chunks/{PkUrl-CI17WkYu.js.map → PkUrl-BHD0_pal.js.map} +1 -1
  35. package/dist/_chunks/{VvCheckbox.es-kmMsWlkU.js → VvCheckbox.es-ohF87NOe.js} +3 -3
  36. package/dist/_chunks/{VvCheckbox.es-kmMsWlkU.js.map → VvCheckbox.es-ohF87NOe.js.map} +1 -1
  37. package/dist/_chunks/{VvCheckboxGroup.es-BRRmuO9h.js → VvCheckboxGroup.es-DZCbyLN0.js} +109 -109
  38. package/dist/_chunks/{VvCheckboxGroup.es-BRRmuO9h.js.map → VvCheckboxGroup.es-DZCbyLN0.js.map} +1 -1
  39. package/dist/_chunks/{VvCombobox.es-pTM53Z4B.js → VvCombobox.es-YLPD7MpO.js} +256 -256
  40. package/dist/_chunks/{VvCombobox.es-pTM53Z4B.js.map → VvCombobox.es-YLPD7MpO.js.map} +1 -1
  41. package/dist/_chunks/{VvInputText.es-DO39OSWk.js → VvInputText.es-DAnAXfBO.js} +190 -190
  42. package/dist/_chunks/{VvInputText.es-DO39OSWk.js.map → VvInputText.es-DAnAXfBO.js.map} +1 -1
  43. package/dist/_chunks/{VvRadio.es-BpQAJbon.js → VvRadio.es-Do9oyNtV.js} +3 -3
  44. package/dist/_chunks/{VvRadio.es-BpQAJbon.js.map → VvRadio.es-Do9oyNtV.js.map} +1 -1
  45. package/dist/_chunks/{VvRadioGroup.es-BSBrmx9w.js → VvRadioGroup.es-BHcqcJFC.js} +11 -11
  46. package/dist/_chunks/{VvRadioGroup.es-BSBrmx9w.js.map → VvRadioGroup.es-BHcqcJFC.js.map} +1 -1
  47. package/dist/_chunks/{VvSelect.es-DALpUK5j.js → VvSelect.es-CP_y02fy.js} +8 -8
  48. package/dist/_chunks/{VvSelect.es-DALpUK5j.js.map → VvSelect.es-CP_y02fy.js.map} +1 -1
  49. package/dist/_chunks/{VvTextarea.es-C9dwYLOG.js → VvTextarea.es-DetA_2DM.js} +250 -250
  50. package/dist/_chunks/{VvTextarea.es-C9dwYLOG.js.map → VvTextarea.es-DetA_2DM.js.map} +1 -1
  51. package/dist/_chunks/{dist-DtF6poRc.js → dist-yqV26MWM.js} +132 -120
  52. package/dist/_chunks/dist-yqV26MWM.js.map +1 -0
  53. package/dist/_chunks/{esm-0nyRYwmP.js → esm-DLxNpT06.js} +7 -7
  54. package/dist/_chunks/{esm-0nyRYwmP.js.map → esm-DLxNpT06.js.map} +1 -1
  55. package/dist/_chunks/{floating-ui.vue-B5ZV-j8C.js → floating-ui.vue-tVPpNXUc.js} +3 -3
  56. package/dist/_chunks/{floating-ui.vue-B5ZV-j8C.js.map → floating-ui.vue-tVPpNXUc.js.map} +1 -1
  57. package/dist/_chunks/{iconify-C1EOwL90.js → iconify-y0w2FIJH.js} +3 -3
  58. package/dist/_chunks/{iconify-C1EOwL90.js.map → iconify-y0w2FIJH.js.map} +1 -1
  59. package/dist/_chunks/{index.es-BGFmj59S.js → index.es-7fUi-rc0.js} +452 -452
  60. package/dist/_chunks/{index.es-BGFmj59S.js.map → index.es-7fUi-rc0.js.map} +1 -1
  61. package/dist/_chunks/{schemas-Bp3a8tYV.js → schemas-aPiXCaCc.js} +1309 -945
  62. package/dist/_chunks/schemas-aPiXCaCc.js.map +1 -0
  63. package/dist/_chunks/{src-C_wl-KYN.js → src-BfoQF6Z3.js} +2 -2
  64. package/dist/_chunks/{src-C_wl-KYN.js.map → src-BfoQF6Z3.js.map} +1 -1
  65. package/dist/_chunks/{useLightbox-CH1KeVqr.js → useLightbox-DL_oVBep.js} +3 -3
  66. package/dist/_chunks/{useLightbox-CH1KeVqr.js.map → useLightbox-DL_oVBep.js.map} +1 -1
  67. package/dist/_chunks/{vue-i18n-KvYvoek4.js → vue-i18n-DAH6nDTN.js} +3 -3
  68. package/dist/_chunks/{vue-i18n-KvYvoek4.js.map → vue-i18n-DAH6nDTN.js.map} +1 -1
  69. package/dist/_chunks/{vue.runtime.esm-bundler-BmggS4HU.js → vue.runtime.esm-bundler-Dq29dQrz.js} +16 -10
  70. package/dist/_chunks/vue.runtime.esm-bundler-Dq29dQrz.js.map +1 -0
  71. package/dist/ai-elements.es.js +4637 -3428
  72. package/dist/ai-elements.es.js.map +1 -1
  73. package/dist-vue/PkChatbot.js +1 -1
  74. package/dist-vue/PkChatbotFeedbackForm.js +1 -1
  75. package/dist-vue/PkChatbotInput.js +1 -1
  76. package/dist-vue/PkChatbotMessages.js +1 -1
  77. package/dist-vue/PkChatbotViewChat.js +1 -1
  78. package/dist-vue/PkChatbotViewConversations.js +1 -1
  79. package/dist-vue/PkChatbotViewProfile.js +1 -1
  80. package/dist-vue/_chunks/{Media-Bic_vfSX.js → Media-kK7BnZGr.js} +4 -4
  81. package/dist-vue/_chunks/Media-kK7BnZGr.js.map +1 -0
  82. package/dist-vue/_chunks/{PkChatbot-woRkjgP5.js → PkChatbot-B9RSkQmJ.js} +7 -7
  83. package/dist-vue/_chunks/{PkChatbot-woRkjgP5.js.map → PkChatbot-B9RSkQmJ.js.map} +1 -1
  84. package/dist-vue/_chunks/{PkChatbotFeedbackForm-D-lx1URv.js → PkChatbotFeedbackForm-lj9CHdhn.js} +3 -3
  85. package/dist-vue/_chunks/{PkChatbotFeedbackForm-D-lx1URv.js.map → PkChatbotFeedbackForm-lj9CHdhn.js.map} +1 -1
  86. package/dist-vue/_chunks/{PkChatbotInput-LHE0HZ9z.js → PkChatbotInput-C5QSmt21.js} +2 -2
  87. package/dist-vue/_chunks/{PkChatbotInput-LHE0HZ9z.js.map → PkChatbotInput-C5QSmt21.js.map} +1 -1
  88. package/dist-vue/_chunks/{PkChatbotMessages-BxTeEm3j.js → PkChatbotMessages-DOeUT6YL.js} +7 -7
  89. package/dist-vue/_chunks/PkChatbotMessages-DOeUT6YL.js.map +1 -0
  90. package/dist-vue/_chunks/{PkChatbotViewChat-BoEfZeco.js → PkChatbotViewChat-C2FuDayB.js} +6 -6
  91. package/dist-vue/_chunks/{PkChatbotViewChat-BoEfZeco.js.map → PkChatbotViewChat-C2FuDayB.js.map} +1 -1
  92. package/dist-vue/_chunks/{PkChatbotViewConversations-DvVc1arX.js → PkChatbotViewConversations-2xc0o-fO.js} +2 -2
  93. package/dist-vue/_chunks/{PkChatbotViewConversations-DvVc1arX.js.map → PkChatbotViewConversations-2xc0o-fO.js.map} +1 -1
  94. package/dist-vue/_chunks/{PkChatbotViewProfile-Dev_6pki.js → PkChatbotViewProfile-CoT1JnMk.js} +2 -2
  95. package/dist-vue/_chunks/{PkChatbotViewProfile-Dev_6pki.js.map → PkChatbotViewProfile-CoT1JnMk.js.map} +1 -1
  96. package/dist-vue/_chunks/{PkStreamingMarkdown-B4gnJ4hk.js → PkStreamingMarkdown-BAhC3uGK.js} +20 -20
  97. package/dist-vue/_chunks/PkStreamingMarkdown-BAhC3uGK.js.map +1 -0
  98. package/dist-vue/_chunks/{PkToolShowArtifact-EvbUZSOf.js → PkToolShowArtifact-RzrDPcEQ.js} +2 -2
  99. package/dist-vue/_chunks/{PkToolShowArtifact-EvbUZSOf.js.map → PkToolShowArtifact-RzrDPcEQ.js.map} +1 -1
  100. package/dist-vue/_chunks/{PkToolShowContactForm-CsDOqSJK.js → PkToolShowContactForm-5H4jfq1F.js} +4 -4
  101. package/dist-vue/_chunks/{PkToolShowContactForm-CsDOqSJK.js.map → PkToolShowContactForm-5H4jfq1F.js.map} +1 -1
  102. package/dist-vue/_chunks/{PkToolShowSources-ZtXFkIHt.js → PkToolShowSources-Dv0uuvqS.js} +5 -4
  103. package/dist-vue/_chunks/PkToolShowSources-Dv0uuvqS.js.map +1 -0
  104. package/dist-vue/_chunks/{ZodError-Ca0wCsGp.js → ZodError-C_est8SY.js} +2 -2
  105. package/dist-vue/_chunks/{ZodError-Ca0wCsGp.js.map → ZodError-C_est8SY.js.map} +1 -1
  106. package/dist-vue/_chunks/{createChatbotApiClient-YJegM3ni.js → createChatbotApiClient-CvDRMmDa.js} +3 -3
  107. package/dist-vue/_chunks/createChatbotApiClient-CvDRMmDa.js.map +1 -0
  108. package/dist-vue/_chunks/{index.es-CrPSzhoZ.js → index.es-Dk_HaA08.js} +4 -4
  109. package/dist-vue/_chunks/{index.es-CrPSzhoZ.js.map → index.es-Dk_HaA08.js.map} +1 -1
  110. package/dist-vue/_chunks/{schemas-sa2dDEGb.js → schemas-Clx4oKCB.js} +1309 -945
  111. package/dist-vue/_chunks/schemas-Clx4oKCB.js.map +1 -0
  112. package/dist-vue/_chunks/{useChatbotStore-DGL81KJa.js → useChatbotStore-DMDbzuub.js} +1061 -1000
  113. package/dist-vue/_chunks/useChatbotStore-DMDbzuub.js.map +1 -0
  114. package/dist-vue/api.js +1 -1
  115. package/dist-vue/apps/web-component/src/composables/useChatbotAgent.d.ts +6 -6
  116. package/dist-vue/apps/web-component/src/composables/useChatbotAuth.d.ts +8 -8
  117. package/dist-vue/apps/web-component/src/lib.d.ts +29 -0
  118. package/dist-vue/apps/web-component/src/main.d.ts +0 -0
  119. package/dist-vue/apps/web-component/src/modules/applicationInsights.d.ts +38 -0
  120. package/dist-vue/composables.js +2 -2
  121. package/dist-vue/index.js +2852 -2876
  122. package/dist-vue/index.js.map +1 -1
  123. package/dist-vue/packages/auth/src/add-member-to-organization.d.ts +5 -0
  124. package/dist-vue/packages/auth/src/anonymous-reauth-plugin.d.ts +11 -0
  125. package/dist-vue/packages/auth/src/external-auth-plugin.d.ts +2 -0
  126. package/dist-vue/packages/auth/src/index.d.ts +3477 -8
  127. package/dist-vue/packages/auth/src/media-helpers.d.ts +13 -0
  128. package/dist-vue/packages/auth/src/organization-auto-join.d.ts +1 -0
  129. package/dist-vue/packages/components/src/PkEditorMarkdown.d.ts +1 -1
  130. package/dist-vue/packages/components/src/PkEditorRepeater.d.ts +2 -2
  131. package/dist-vue/packages/components/src/PkEditorWyswyg.d.ts +1 -1
  132. package/dist-vue/packages/components/src/PkFieldset.d.ts +3 -3
  133. package/dist-vue/packages/components/src/composables/index.d.ts +3 -0
  134. package/dist-vue/packages/components/src/composables/useChatbotError.d.ts +11 -11
  135. package/dist-vue/packages/composable/src/constants.d.ts +5 -0
  136. package/dist-vue/packages/composable/src/useDialog.d.ts +3 -3
  137. package/dist-vue/packages/composable/src/useSettingsStore.d.ts +4 -5
  138. package/dist-vue/packages/models/src/schema/Agent.d.ts +27 -27
  139. package/dist-vue/packages/models/src/schema/AgentEndpoint.d.ts +1 -1
  140. package/dist-vue/packages/models/src/schema/Document.d.ts +2 -0
  141. package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +5 -5
  142. package/dist-vue/packages/models/src/schema/SubAgent.d.ts +10 -10
  143. package/dist-vue/packages/models/src/schema/constants.d.ts +3 -1
  144. package/package.json +4 -4
  145. package/dist/_chunks/PkStreamingMarkdown-orhL2kzD.js.map +0 -1
  146. package/dist/_chunks/PkToolShowContactForm-6C4uWDtf.js +0 -1103
  147. package/dist/_chunks/PkToolShowContactForm-6C4uWDtf.js.map +0 -1
  148. package/dist/_chunks/PkToolShowSources-BQo5DRwt.js.map +0 -1
  149. package/dist/_chunks/dist-DtF6poRc.js.map +0 -1
  150. package/dist/_chunks/schemas-Bp3a8tYV.js.map +0 -1
  151. package/dist/_chunks/vue.runtime.esm-bundler-BmggS4HU.js.map +0 -1
  152. package/dist-vue/_chunks/Media-Bic_vfSX.js.map +0 -1
  153. package/dist-vue/_chunks/PkChatbotMessages-BxTeEm3j.js.map +0 -1
  154. package/dist-vue/_chunks/PkStreamingMarkdown-B4gnJ4hk.js.map +0 -1
  155. package/dist-vue/_chunks/PkToolShowSources-ZtXFkIHt.js.map +0 -1
  156. package/dist-vue/_chunks/createChatbotApiClient-YJegM3ni.js.map +0 -1
  157. package/dist-vue/_chunks/schemas-sa2dDEGb.js.map +0 -1
  158. package/dist-vue/_chunks/useChatbotStore-DGL81KJa.js.map +0 -1
  159. package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +0 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PkToolShowSources-Dv0uuvqS.js","names":["$t"],"sources":["../../../../packages/models/src/schema/Header.ts","../../../../packages/models/src/schema/Document.ts","../../../../packages/components/src/chat/PkChunkPreview.vue","../../../../packages/components/src/chat/PkChunkPreview.vue","../../../../packages/components/src/chat/PkDocumentHeader.vue","../../../../packages/components/src/chat/PkDocumentHeader.vue","../../../../packages/components/src/chat/PkToolShowSources.vue","../../../../packages/components/src/chat/PkToolShowSources.vue"],"sourcesContent":["import * as z from 'zod'\n\nexport const HeaderSchema = z.object({\n key: z.string().optional(),\n value: z.string().optional(),\n})\n\nexport const HeadesSchema = z.array(HeaderSchema).transform((headers) => {\n return headers?.filter(\n (header) => header.key?.trim() && header.value?.trim(),\n ) as Array<{ key: string; value: string }>\n})\n\nexport type Header = z.infer<typeof HeaderSchema>\nexport type Headers = z.infer<typeof HeadesSchema>\n","import * as z from 'zod'\nimport { zodQs } from '../utils'\nimport {\n SupportedLanguage,\n ExtractionStrategy,\n BrowserEngine,\n} from './constants'\nimport { MediaSchema } from './Media'\nimport { HeadesSchema } from './Header'\n\n/**\n * Processing status for document indexing and embedding generation\n */\nexport enum IndexStatus {\n Pending = 'pending',\n Processing = 'processing',\n Success = 'success',\n Failed = 'failed',\n}\n\n// ===== Document Source Types =====\n\n/**\n * Conversion options for document processing\n * Used when creating or reprocessing documents\n */\nexport const ConversionOptionsSchema = z.object({\n extractionStrategy: z.enum(ExtractionStrategy).optional(),\n browserEngine: z.enum(BrowserEngine).optional(),\n headers: HeadesSchema.nullish(),\n aiDescriptionModel: z.string().optional(),\n aiDescriptionPrompt: z.string().max(5000).optional(),\n language: z.string().optional(),\n forceOcr: z.boolean().default(false),\n pages: z\n .string()\n .max(100)\n .regex(/^\\d+(\\s*-\\s*\\d+)?(\\s*,\\s*\\d+(\\s*-\\s*\\d+)?)*$/)\n .optional(),\n})\n\nexport type ConversionOptions = z.infer<typeof ConversionOptionsSchema>\n\n/**\n * Metadata structure for document.metadata column\n * Consolidates all metadata from converters and source info\n */\nexport const DocumentMetadataSchema = z\n .object({\n // === Source Info (URL documents only) ===\n source: z\n .object({\n url: z.string(),\n lastScrapedAt: z.string(),\n })\n .optional(),\n\n // === Media Info (File documents only) ===\n media: MediaSchema.optional(),\n\n // === Common Fields (all document types) ===\n title: z.string().optional(),\n author: z.string().optional(),\n description: z.string().optional(),\n summary: z.string().optional(),\n keywords: z.array(z.string()).optional(),\n\n // === PDF Specific ===\n subject: z.string().optional(),\n creator: z.string().optional(), // Original application\n producer: z.string().optional(), // PDF generator software\n creationDate: z.string().optional(),\n modificationDate: z.string().optional(),\n pageCount: z\n .union([z.number(), z.array(z.unknown())])\n .transform((val) => (Array.isArray(val) ? val.length : val))\n .optional(),\n encrypted: z.boolean().optional(),\n\n // === DOCX Specific ===\n characterCount: z.number().optional(),\n lineCount: z.number().optional(),\n\n // === URL Specific ===\n siteName: z.string().optional(),\n canonicalUrl: z.url().optional(),\n imageUrl: z.url().optional(),\n favicon: z.url().optional(),\n type: z.string().optional(), // og:type (article, website, etc.)\n locale: z.string().optional(),\n tags: z.array(z.string()).optional(),\n publishedTime: z.string().optional(),\n modifiedTime: z.string().optional(),\n\n // === Metrics (all document types) ===\n wordCount: z.number().optional(),\n paragraphCount: z.number().optional(),\n readingTime: z.number().optional(), // in minutes\n\n // === OCR (PDF documents) ===\n ocrUsed: z.boolean().optional(),\n ocrProvider: z.string().optional(),\n ocrModel: z.string().optional(),\n ocrPages: z.string().optional(),\n ocrCost: z.number().optional(),\n ocrError: z.string().optional(),\n\n // === Conversion Options (for reprocessing) ===\n conversionOptions: ConversionOptionsSchema.optional(),\n })\n .loose() // Allow additional custom fields\n\nexport type DocumentMetadata = z.infer<typeof DocumentMetadataSchema>\n\n/**\n * Document type enum\n *\n * - 'file': Document created from uploaded file (PDF, DOCX)\n * - 'url': Document created from web scraping\n * - 'revised-answer': Document created from revised AI answer\n * - 'plain-text': Document created from plain text input\n */\nexport enum DocumentType {\n File = 'file',\n Url = 'url',\n RevisedAnswer = 'revised-answer',\n PlainText = 'plain-text',\n}\n\n// ===== Schemas =====\n\n/**\n * Full document schema from database\n * Extended with computed field chunksCount\n */\nconst BaseDocumentSchema = z.object({\n id: z.string(),\n externalId: z.string().nullable(),\n name: z.string(),\n content: z.string(),\n type: z.string(),\n language: z.string(),\n metadata: z.record(z.string(), z.unknown()),\n indexStatus: z.string(),\n processedAt: z.coerce.date().nullable(),\n createdAt: z.coerce.date(),\n createdBy: z.string(),\n updatedAt: z.coerce.date(),\n updatedBy: z.string(),\n deleted: z.boolean(),\n deletedAt: z.coerce.date().nullable(),\n deletedBy: z.string().nullable(),\n organizationId: z.string(),\n})\n\nexport const DocumentSchema = BaseDocumentSchema.extend({\n type: z.enum(DocumentType),\n indexStatus: z.enum(IndexStatus),\n metadata: DocumentMetadataSchema,\n // Add computed field for chunks count (populated by service layer)\n chunksCount: z.number().optional(),\n})\n\n/**\n * Query parameters for listing documents with pagination, sorting, and filters\n */\nexport const DocumentQuerystringSchema = z.object({\n ...zodQs.pagination(),\n ...zodQs.sort(['id', 'updatedAt', 'createdAt', 'name']),\n ...zodQs.filters(['type', 'language', 'agentId', 'indexStatus']),\n ...zodQs.fullText(),\n ...zodQs.ids(),\n 'filter[similarity]': z.string().optional(),\n})\n\n/**\n * Document creation schema for POST /documents endpoint\n *\n * Supports three types:\n * - 'file': Requires media object with uploaded file info\n * - 'url': Requires url string for web scraping\n * - 'revised-answer': Requires content (created from revisedAnswer service)\n */\nexport const DocumentCreateDtoSchema = z\n .object({\n type: z.enum(DocumentType).default(DocumentType.File),\n name: z.string().min(1).max(255).optional(),\n language: z.enum(SupportedLanguage).optional(),\n organizationId: z.string(),\n agentIds: z.array(z.string()).min(1, 'At least one agent is required'),\n media: MediaSchema.optional(),\n url: z.url().optional(),\n content: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n extractionStrategy: z.enum(ExtractionStrategy).optional(),\n browserEngine: z.enum(BrowserEngine).optional(),\n headers: HeadesSchema.nullish().default([]),\n aiDescriptionModel: z.string().optional(),\n aiDescriptionPrompt: z.string().max(5000).optional(),\n forceOcr: z.boolean().default(false),\n pages: z\n .string()\n .max(100)\n .regex(/^\\d+(\\s*-\\s*\\d+)?(\\s*,\\s*\\d+(\\s*-\\s*\\d+)?)*$/)\n .optional(),\n })\n .superRefine((data, ctx) => {\n if (data.type === DocumentType.File && !data.media) {\n ctx.addIssue({\n code: 'custom',\n params: {\n i18n: 'errors.required',\n },\n path: ['media'],\n })\n return\n }\n if (data.type === DocumentType.Url && !data.url) {\n ctx.addIssue({\n code: 'custom',\n params: {\n i18n: 'errors.required',\n },\n path: ['url'],\n })\n }\n if (\n data.type === DocumentType.PlainText &&\n !(data.name || data.language)\n ) {\n if (!data.name) {\n ctx.addIssue({\n code: 'custom',\n params: {\n i18n: 'errors.required',\n },\n path: ['name'],\n })\n }\n if (!data.language) {\n ctx.addIssue({\n code: 'custom',\n params: {\n i18n: 'errors.required',\n },\n path: ['language'],\n })\n }\n }\n })\n\n/**\n * Document update schema for PUT /documents/:id endpoint\n *\n * All fields are optional, but at least one must be provided\n */\nexport const DocumentUpdateDtoSchema = z.object({\n id: z.string(),\n organizationId: z.string(),\n content: z.string().optional(),\n name: z.string().min(1).max(255).optional(),\n language: z.enum(SupportedLanguage).optional(),\n agentIds: z.array(z.string()).min(1).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\n// ===== Type Exports =====\n\nexport type Document = z.infer<typeof DocumentSchema>\nexport type DocumentQuerystring = z.infer<typeof DocumentQuerystringSchema>\nexport type DocumentCreateDto = z.infer<typeof DocumentCreateDtoSchema>\nexport type DocumentUpdateDto = z.infer<typeof DocumentUpdateDtoSchema>\n\n// ===== Helper Functions =====\n\nexport const getStatusColor = (status: IndexStatus) => {\n switch (status) {\n case IndexStatus.Success:\n return 'success'\n case IndexStatus.Failed:\n return 'danger'\n case IndexStatus.Processing:\n return 'warning'\n default:\n return 'info'\n }\n}\n\nexport const getStatusIcon = (status: IndexStatus) => {\n switch (status) {\n case IndexStatus.Success:\n return 'ri:check-line'\n case IndexStatus.Failed:\n return 'ri:error-warning-line'\n case IndexStatus.Processing:\n return 'ri:hourglass-line'\n default:\n return 'ri:time-line'\n }\n}\n\nexport const getTypeIcon = (type: DocumentType) => {\n switch (type) {\n case DocumentType.File:\n return 'ri:file-line'\n case DocumentType.Url:\n return 'ri:link'\n case DocumentType.RevisedAnswer:\n return 'ri:feedback-line'\n default:\n return 'ri:input-method-line'\n }\n}\n\nexport const getFileIcon = (extension: string) => {\n const ext = (\n extension.startsWith('.') ? extension.slice(1) : extension\n ).toLowerCase()\n switch (ext) {\n case 'pdf':\n return 'ri:file-pdf-2-line'\n case 'doc':\n case 'docx':\n return 'ri:file-word-line'\n case 'xls':\n case 'xlsx':\n return 'ri:file-excel-line'\n case 'ppt':\n case 'pptx':\n return 'ri:file-ppt-line'\n case 'txt':\n return 'ri:file-text-line'\n case 'mp3':\n case 'wav':\n case 'ogg':\n return 'ri:file-music-line'\n case 'mp4':\n case 'avi':\n case 'mkv':\n return 'ri:file-video-line'\n case 'jpg':\n case 'jpeg':\n case 'png':\n case 'gif':\n case 'bmp':\n case 'svg':\n return 'ri:file-image-line'\n case 'zip':\n case 'rar':\n case '7z':\n return 'ri:file-zip-line'\n default:\n return 'ri:file-line'\n }\n}\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { stripMarkdown } from 'utils'\n\n const props = defineProps<{\n content: string\n similarity?: number\n maxSimilarity?: number\n expanded: boolean\n }>()\n\n const similarityPercent = computed(() => {\n if (props.similarity == null) {\n return null\n }\n const max =\n props.maxSimilarity && props.maxSimilarity > 0\n ? props.maxSimilarity\n : 1\n return Math.round((props.similarity / max) * 100)\n })\n</script>\n\n<template>\n <VvIcon name=\"ri:text-snippet\" class=\"shrink-0 text-12 text-word-4\" />\n <span class=\"text-10 text-word-2 truncate flex-1\" :title=\"content\">\n {{ stripMarkdown(content) }}\n </span>\n <span v-if=\"similarityPercent != null\" class=\"text-10 text-word-4 shrink-0\">\n {{ similarityPercent }}%\n </span>\n <VvIcon\n :name=\"expanded ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"text-14 text-word-4 shrink-0\" />\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { stripMarkdown } from 'utils'\n\n const props = defineProps<{\n content: string\n similarity?: number\n maxSimilarity?: number\n expanded: boolean\n }>()\n\n const similarityPercent = computed(() => {\n if (props.similarity == null) {\n return null\n }\n const max =\n props.maxSimilarity && props.maxSimilarity > 0\n ? props.maxSimilarity\n : 1\n return Math.round((props.similarity / max) * 100)\n })\n</script>\n\n<template>\n <VvIcon name=\"ri:text-snippet\" class=\"shrink-0 text-12 text-word-4\" />\n <span class=\"text-10 text-word-2 truncate flex-1\" :title=\"content\">\n {{ stripMarkdown(content) }}\n </span>\n <span v-if=\"similarityPercent != null\" class=\"text-10 text-word-4 shrink-0\">\n {{ similarityPercent }}%\n </span>\n <VvIcon\n :name=\"expanded ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"text-14 text-word-4 shrink-0\" />\n</template>\n","<script setup lang=\"ts\">\n import type { DocumentType } from 'models'\n import { getTypeIcon } from 'models'\n import PkUrl from '../PkUrl.vue'\n\n defineProps<{\n type: string\n name: string\n url?: string\n filename?: string\n }>()\n</script>\n\n<template>\n <VvIcon\n :name=\"getTypeIcon(type as DocumentType)\"\n class=\"shrink-0 text-14 text-word-3\" />\n <div class=\"flex flex-col gap-2 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate block\">\n {{ name }}\n </strong>\n <span v-if=\"filename\" class=\"text-10 text-word-4 truncate\">\n {{ filename }}\n </span>\n <span\n v-if=\"url\"\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-10\" />\n <PkUrl :url=\"url\" />\n </span>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import type { DocumentType } from 'models'\n import { getTypeIcon } from 'models'\n import PkUrl from '../PkUrl.vue'\n\n defineProps<{\n type: string\n name: string\n url?: string\n filename?: string\n }>()\n</script>\n\n<template>\n <VvIcon\n :name=\"getTypeIcon(type as DocumentType)\"\n class=\"shrink-0 text-14 text-word-3\" />\n <div class=\"flex flex-col gap-2 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate block\">\n {{ name }}\n </strong>\n <span v-if=\"filename\" class=\"text-10 text-word-4 truncate\">\n {{ filename }}\n </span>\n <span\n v-if=\"url\"\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-10\" />\n <PkUrl :url=\"url\" />\n </span>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref, reactive } from 'vue'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n import PkChunkPreview from './PkChunkPreview.vue'\n import PkDocumentHeader from './PkDocumentHeader.vue'\n\n interface SourceItem {\n chunkId: string\n documentId: string\n documentName: string\n documentType: string\n language: string\n content: string\n chunkIndex?: number | null\n similarity?: number\n sourceUrl?: string\n sourceFilename?: string\n sourceDescription?: string\n sourceImageUrl?: string\n }\n\n const props = defineProps<{\n part: unknown\n onExpandContext?: (payload: {\n documentId: string\n chunkIndex: number\n }) => Promise<string>\n onDownload?: (documentId: string) => void\n }>()\n\n const toolPart = computed(() => {\n return props.part as {\n input?: {\n sources: SourceItem[]\n }\n }\n })\n\n const sources = computed(() => toolPart.value.input?.sources || [])\n\n const groupedSources = computed(() => {\n const groups = new Map<\n string,\n { document: SourceItem; chunks: SourceItem[] }\n >()\n for (const source of sources.value) {\n const existing = groups.get(source.documentId)\n if (existing) {\n existing.chunks.push(source)\n } else {\n groups.set(source.documentId, {\n document: source,\n chunks: [source],\n })\n }\n }\n return [...groups.values()]\n })\n\n const maxSimilarity = computed(() => {\n return Math.max(...sources.value.map((s) => s.similarity ?? 0), 0)\n })\n\n const expandedDocuments = reactive(new Set<string>())\n const expandedChunks = reactive(new Set<string>())\n const contextData = reactive(new Map<string, string>())\n const loadingContext = reactive(new Set<string>())\n\n const toggleDocument = (documentId: string) => {\n if (expandedDocuments.has(documentId)) {\n expandedDocuments.delete(documentId)\n } else {\n expandedDocuments.add(documentId)\n }\n }\n\n const toggleChunk = (chunkId: string) => {\n if (expandedChunks.has(chunkId)) {\n expandedChunks.delete(chunkId)\n } else {\n expandedChunks.add(chunkId)\n }\n }\n\n const handleExpandContext = async (source: SourceItem) => {\n if (source.chunkIndex == null || !props.onExpandContext) {\n return\n }\n loadingContext.add(source.chunkId)\n try {\n const content = await props.onExpandContext({\n documentId: source.documentId,\n chunkIndex: source.chunkIndex,\n })\n contextData.set(source.chunkId, content)\n } finally {\n loadingContext.delete(source.chunkId)\n }\n }\n\n const clearContext = (chunkId: string) => {\n contextData.delete(chunkId)\n }\n\n const showMore = ref(false)\n const visibleGroups = computed(() => {\n if (showMore.value) {\n return groupedSources.value\n }\n return groupedSources.value.slice(0, 3)\n })\n const hasMore = computed(() => groupedSources.value.length > 3)\n</script>\n\n<template>\n <div v-if=\"sources.length\" class=\"flex flex-col gap-xs w-full\">\n <div class=\"flex items-center gap-4 text-12 text-word-3 font-semibold\">\n <VvIcon name=\"ri:article-line\" class=\"text-14\" />\n {{ $t('label.sources') }}\n <span class=\"text-word-4 font-normal\">\n ({{ groupedSources.length }})\n </span>\n </div>\n\n <ul class=\"flex flex-col gap-xs\">\n <li\n v-for=\"group in visibleGroups\"\n :key=\"group.document.documentId\"\n class=\"border border-surface-3 rounded-lg overflow-hidden\">\n <!-- Document header -->\n <button\n class=\"flex items-center gap-8 p-8 w-full text-left hover:bg-surface-1 transition-colors cursor-pointer\"\n @click=\"toggleDocument(group.document.documentId)\">\n <PkDocumentHeader\n :type=\"group.document.documentType\"\n :name=\"group.document.documentName\"\n :url=\"group.document.sourceUrl\"\n :filename=\"group.document.sourceFilename\" />\n <div class=\"flex items-center gap-4 shrink-0\">\n <span\n v-if=\"group.chunks.length > 1\"\n class=\"text-10 text-word-4 bg-surface-2 rounded px-4 py-2\">\n {{ group.chunks.length }}\n </span>\n <span\n class=\"text-10 text-word-4 bg-surface-2 rounded px-4 py-2 uppercase\">\n {{ group.document.language }}\n </span>\n <VvIcon\n :name=\"\n expandedDocuments.has(group.document.documentId)\n ? 'ri:arrow-up-s-line'\n : 'ri:arrow-down-s-line'\n \"\n class=\"text-16 text-word-3\" />\n </div>\n </button>\n\n <!-- Expanded content -->\n <div\n v-if=\"expandedDocuments.has(group.document.documentId)\"\n class=\"border-t border-surface-3\">\n <PkStreamingMarkdown\n v-if=\"group.document.sourceDescription\"\n :markdown=\"group.document.sourceDescription\"\n class=\"px-8 py-4 text-10 text-word-3 bg-surface-1 border-b border-surface-3\" />\n\n <!-- Chunk excerpts -->\n <div\n v-for=\"chunk in group.chunks\"\n :key=\"chunk.chunkId\"\n class=\"border-b border-surface-3 last:border-b-0\">\n <button\n class=\"flex items-center gap-8 px-8 py-6 w-full text-left hover:bg-surface-1 transition-colors cursor-pointer\"\n @click=\"toggleChunk(chunk.chunkId)\">\n <PkChunkPreview\n :content=\"chunk.content\"\n :similarity=\"chunk.similarity\"\n :max-similarity=\"maxSimilarity\"\n :expanded=\"expandedChunks.has(chunk.chunkId)\" />\n </button>\n\n <!-- Expanded chunk content -->\n <div\n v-if=\"expandedChunks.has(chunk.chunkId)\"\n class=\"bg-surface-1 border-t border-surface-3\">\n <div class=\"p-8 text-10 text-word-3\">\n <transition mode=\"out-in\">\n <!-- Context expansion -->\n <PkStreamingMarkdown\n v-if=\"contextData.has(chunk.chunkId)\"\n :markdown=\"\n contextData.get(chunk.chunkId)!\n \"\n class=\"wysiwyg\" />\n\n <!-- Chunk content -->\n <PkStreamingMarkdown\n v-else\n :markdown=\"chunk.content\"\n class=\"wysiwyg\" />\n </transition>\n </div>\n\n <!-- Actions bar -->\n <div\n class=\"flex items-center gap-8 px-8 py-6 border-t border-surface-3 bg-surface\">\n <!-- Expand / collapse context -->\n <button\n v-if=\"\n onExpandContext &&\n chunk.chunkIndex != null &&\n !contextData.has(chunk.chunkId)\n \"\n class=\"text-10 text-word-3 hover:text-word flex items-center gap-4 cursor-pointer\"\n :disabled=\"\n loadingContext.has(chunk.chunkId)\n \"\n @click=\"handleExpandContext(chunk)\">\n <VvIcon\n :name=\"\n loadingContext.has(chunk.chunkId)\n ? 'line-md:loading-loop'\n : 'ri:expand-up-down-line'\n \"\n class=\"text-12\" />\n {{ $t('label.expandContext') }}\n </button>\n <button\n v-else-if=\"contextData.has(chunk.chunkId)\"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 cursor-pointer\"\n @click=\"clearContext(chunk.chunkId)\">\n <VvIcon\n name=\"ri:collapse-vertical-line\"\n class=\"text-12\" />\n {{ $t('label.collapseContext') }}\n </button>\n\n <!-- Open source URL -->\n <a\n v-if=\"chunk.sourceUrl\"\n :href=\"chunk.sourceUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 ml-auto\">\n <VvIcon\n name=\"ri:external-link-line\"\n class=\"text-12\" />\n {{ $t('label.openSource') }}\n </a>\n\n <!-- Download file -->\n <button\n v-if=\"\n onDownload &&\n chunk.documentType === 'file'\n \"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 cursor-pointer\"\n :class=\"{\n 'ml-auto': !chunk.sourceUrl,\n }\"\n @click=\"onDownload(chunk.documentId)\">\n <VvIcon\n name=\"ri:download-line\"\n class=\"text-12\" />\n {{ $t('label.downloadFile') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </li>\n </ul>\n\n <!-- Show more -->\n <button\n v-if=\"hasMore\"\n class=\"text-12 text-word-3 cursor-pointer hover:underline flex items-center gap-4 mx-auto\"\n @click=\"showMore = !showMore\">\n <VvIcon\n :name=\"showMore ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"text-16\" />\n {{\n showMore\n ? $t('action.showLess')\n : $t('action.showMore', {\n count: groupedSources.length - 3,\n })\n }}\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref, reactive } from 'vue'\n import PkStreamingMarkdown from './PkStreamingMarkdown.vue'\n import PkChunkPreview from './PkChunkPreview.vue'\n import PkDocumentHeader from './PkDocumentHeader.vue'\n\n interface SourceItem {\n chunkId: string\n documentId: string\n documentName: string\n documentType: string\n language: string\n content: string\n chunkIndex?: number | null\n similarity?: number\n sourceUrl?: string\n sourceFilename?: string\n sourceDescription?: string\n sourceImageUrl?: string\n }\n\n const props = defineProps<{\n part: unknown\n onExpandContext?: (payload: {\n documentId: string\n chunkIndex: number\n }) => Promise<string>\n onDownload?: (documentId: string) => void\n }>()\n\n const toolPart = computed(() => {\n return props.part as {\n input?: {\n sources: SourceItem[]\n }\n }\n })\n\n const sources = computed(() => toolPart.value.input?.sources || [])\n\n const groupedSources = computed(() => {\n const groups = new Map<\n string,\n { document: SourceItem; chunks: SourceItem[] }\n >()\n for (const source of sources.value) {\n const existing = groups.get(source.documentId)\n if (existing) {\n existing.chunks.push(source)\n } else {\n groups.set(source.documentId, {\n document: source,\n chunks: [source],\n })\n }\n }\n return [...groups.values()]\n })\n\n const maxSimilarity = computed(() => {\n return Math.max(...sources.value.map((s) => s.similarity ?? 0), 0)\n })\n\n const expandedDocuments = reactive(new Set<string>())\n const expandedChunks = reactive(new Set<string>())\n const contextData = reactive(new Map<string, string>())\n const loadingContext = reactive(new Set<string>())\n\n const toggleDocument = (documentId: string) => {\n if (expandedDocuments.has(documentId)) {\n expandedDocuments.delete(documentId)\n } else {\n expandedDocuments.add(documentId)\n }\n }\n\n const toggleChunk = (chunkId: string) => {\n if (expandedChunks.has(chunkId)) {\n expandedChunks.delete(chunkId)\n } else {\n expandedChunks.add(chunkId)\n }\n }\n\n const handleExpandContext = async (source: SourceItem) => {\n if (source.chunkIndex == null || !props.onExpandContext) {\n return\n }\n loadingContext.add(source.chunkId)\n try {\n const content = await props.onExpandContext({\n documentId: source.documentId,\n chunkIndex: source.chunkIndex,\n })\n contextData.set(source.chunkId, content)\n } finally {\n loadingContext.delete(source.chunkId)\n }\n }\n\n const clearContext = (chunkId: string) => {\n contextData.delete(chunkId)\n }\n\n const showMore = ref(false)\n const visibleGroups = computed(() => {\n if (showMore.value) {\n return groupedSources.value\n }\n return groupedSources.value.slice(0, 3)\n })\n const hasMore = computed(() => groupedSources.value.length > 3)\n</script>\n\n<template>\n <div v-if=\"sources.length\" class=\"flex flex-col gap-xs w-full\">\n <div class=\"flex items-center gap-4 text-12 text-word-3 font-semibold\">\n <VvIcon name=\"ri:article-line\" class=\"text-14\" />\n {{ $t('label.sources') }}\n <span class=\"text-word-4 font-normal\">\n ({{ groupedSources.length }})\n </span>\n </div>\n\n <ul class=\"flex flex-col gap-xs\">\n <li\n v-for=\"group in visibleGroups\"\n :key=\"group.document.documentId\"\n class=\"border border-surface-3 rounded-lg overflow-hidden\">\n <!-- Document header -->\n <button\n class=\"flex items-center gap-8 p-8 w-full text-left hover:bg-surface-1 transition-colors cursor-pointer\"\n @click=\"toggleDocument(group.document.documentId)\">\n <PkDocumentHeader\n :type=\"group.document.documentType\"\n :name=\"group.document.documentName\"\n :url=\"group.document.sourceUrl\"\n :filename=\"group.document.sourceFilename\" />\n <div class=\"flex items-center gap-4 shrink-0\">\n <span\n v-if=\"group.chunks.length > 1\"\n class=\"text-10 text-word-4 bg-surface-2 rounded px-4 py-2\">\n {{ group.chunks.length }}\n </span>\n <span\n class=\"text-10 text-word-4 bg-surface-2 rounded px-4 py-2 uppercase\">\n {{ group.document.language }}\n </span>\n <VvIcon\n :name=\"\n expandedDocuments.has(group.document.documentId)\n ? 'ri:arrow-up-s-line'\n : 'ri:arrow-down-s-line'\n \"\n class=\"text-16 text-word-3\" />\n </div>\n </button>\n\n <!-- Expanded content -->\n <div\n v-if=\"expandedDocuments.has(group.document.documentId)\"\n class=\"border-t border-surface-3\">\n <PkStreamingMarkdown\n v-if=\"group.document.sourceDescription\"\n :markdown=\"group.document.sourceDescription\"\n class=\"px-8 py-4 text-10 text-word-3 bg-surface-1 border-b border-surface-3\" />\n\n <!-- Chunk excerpts -->\n <div\n v-for=\"chunk in group.chunks\"\n :key=\"chunk.chunkId\"\n class=\"border-b border-surface-3 last:border-b-0\">\n <button\n class=\"flex items-center gap-8 px-8 py-6 w-full text-left hover:bg-surface-1 transition-colors cursor-pointer\"\n @click=\"toggleChunk(chunk.chunkId)\">\n <PkChunkPreview\n :content=\"chunk.content\"\n :similarity=\"chunk.similarity\"\n :max-similarity=\"maxSimilarity\"\n :expanded=\"expandedChunks.has(chunk.chunkId)\" />\n </button>\n\n <!-- Expanded chunk content -->\n <div\n v-if=\"expandedChunks.has(chunk.chunkId)\"\n class=\"bg-surface-1 border-t border-surface-3\">\n <div class=\"p-8 text-10 text-word-3\">\n <transition mode=\"out-in\">\n <!-- Context expansion -->\n <PkStreamingMarkdown\n v-if=\"contextData.has(chunk.chunkId)\"\n :markdown=\"\n contextData.get(chunk.chunkId)!\n \"\n class=\"wysiwyg\" />\n\n <!-- Chunk content -->\n <PkStreamingMarkdown\n v-else\n :markdown=\"chunk.content\"\n class=\"wysiwyg\" />\n </transition>\n </div>\n\n <!-- Actions bar -->\n <div\n class=\"flex items-center gap-8 px-8 py-6 border-t border-surface-3 bg-surface\">\n <!-- Expand / collapse context -->\n <button\n v-if=\"\n onExpandContext &&\n chunk.chunkIndex != null &&\n !contextData.has(chunk.chunkId)\n \"\n class=\"text-10 text-word-3 hover:text-word flex items-center gap-4 cursor-pointer\"\n :disabled=\"\n loadingContext.has(chunk.chunkId)\n \"\n @click=\"handleExpandContext(chunk)\">\n <VvIcon\n :name=\"\n loadingContext.has(chunk.chunkId)\n ? 'line-md:loading-loop'\n : 'ri:expand-up-down-line'\n \"\n class=\"text-12\" />\n {{ $t('label.expandContext') }}\n </button>\n <button\n v-else-if=\"contextData.has(chunk.chunkId)\"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 cursor-pointer\"\n @click=\"clearContext(chunk.chunkId)\">\n <VvIcon\n name=\"ri:collapse-vertical-line\"\n class=\"text-12\" />\n {{ $t('label.collapseContext') }}\n </button>\n\n <!-- Open source URL -->\n <a\n v-if=\"chunk.sourceUrl\"\n :href=\"chunk.sourceUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 ml-auto\">\n <VvIcon\n name=\"ri:external-link-line\"\n class=\"text-12\" />\n {{ $t('label.openSource') }}\n </a>\n\n <!-- Download file -->\n <button\n v-if=\"\n onDownload &&\n chunk.documentType === 'file'\n \"\n class=\"text-10 text-word-3 hover:text-word-1 flex items-center gap-4 cursor-pointer\"\n :class=\"{\n 'ml-auto': !chunk.sourceUrl,\n }\"\n @click=\"onDownload(chunk.documentId)\">\n <VvIcon\n name=\"ri:download-line\"\n class=\"text-12\" />\n {{ $t('label.downloadFile') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </li>\n </ul>\n\n <!-- Show more -->\n <button\n v-if=\"hasMore\"\n class=\"text-12 text-word-3 cursor-pointer hover:underline flex items-center gap-4 mx-auto\"\n @click=\"showMore = !showMore\">\n <VvIcon\n :name=\"showMore ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"text-16\" />\n {{\n showMore\n ? $t('action.showLess')\n : $t('action.showMore', {\n count: groupedSources.length - 3,\n })\n }}\n </button>\n </div>\n</template>\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/util.js
1
+ //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/helpers/util.js
2
2
  var e;
3
3
  (function(e) {
4
4
  e.assertEqual = (e) => {};
@@ -148,4 +148,4 @@ a.create = (e) => new a(e);
148
148
  //#endregion
149
149
  export { e as a, r as i, i as n, n as r, a as t };
150
150
 
151
- //# sourceMappingURL=ZodError-Ca0wCsGp.js.map
151
+ //# sourceMappingURL=ZodError-C_est8SY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ZodError-Ca0wCsGp.js","names":[],"sources":["../../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/util.js","../../../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/ZodError.js"],"sourcesContent":["export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = Object.create(null);\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
1
+ {"version":3,"file":"ZodError-C_est8SY.js","names":[],"sources":["../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/helpers/util.js","../../../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v3/ZodError.js"],"sourcesContent":["export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = Object.create(null);\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { a as e, d as t, g as n, h as r, m as i, n as a, o, p as s, u as ee, v as c, x as l } from "./schemas-sa2dDEGb.js";
2
- import { c as u, l as d, n as te, o as ne, t as re } from "./Media-Bic_vfSX.js";
1
+ import { a as e, d as t, g as n, h as r, m as i, n as a, o, p as s, u as ee, v as c, x as l } from "./schemas-Clx4oKCB.js";
2
+ import { c as u, l as d, n as te, o as ne, t as re } from "./Media-kK7BnZGr.js";
3
3
  import { r as ie, t as ae } from "./src-EtGd6cRz.js";
4
4
  import { PureAbility as f, buildMongoQueryMatcher as oe, createAliasResolver as se } from "@casl/ability";
5
5
  import { createAccessControl as ce } from "better-auth/plugins";
@@ -508,4 +508,4 @@ function je(e) {
508
508
  //#endregion
509
509
  export { G as a, I as c, Y as i, H as n, B as o, K as r, W as s, je as t };
510
510
 
511
- //# sourceMappingURL=createChatbotApiClient-YJegM3ni.js.map
511
+ //# sourceMappingURL=createChatbotApiClient-CvDRMmDa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createChatbotApiClient-CvDRMmDa.js","names":["c","l","u","d","f","s","n","e","t","i","r"],"sources":["../../../../node_modules/.pnpm/@ucast+core@2.0.0/node_modules/@ucast/core/dist/esm/index.mjs","../../../../node_modules/.pnpm/@ucast+mongo@3.0.0/node_modules/@ucast/mongo/dist/esm/index.mjs","../../../../packages/ability/src/types.ts","../../../../packages/models/src/schema/Agent.ts","../../../../packages/ability/src/roles/User.ts","../../../../packages/ability/src/index.ts","../../../../packages/composable/src/chatbot/api/createChatbotApiClient.ts"],"sourcesContent":["var e=class{constructor(e,t){this.operator=e,this.value=t,Object.defineProperty(this,`_notes`,{writable:!0})}get notes(){return this._notes}addNote(e){this._notes=this._notes||[],this._notes.push(e)}},t=class extends e{},n=class extends t{constructor(e,t){if(!Array.isArray(t))throw Error(`\"${e}\" operator expects to receive an array of conditions`);super(e,t)}};const r=`__itself__`;var i=class extends e{constructor(e,t,n){super(e,n),this.field=t}};const a=new t(`__null__`,null),o=Object.hasOwn||((e,t)=>Object.prototype.hasOwnProperty.call(e,t));function s(e,t){return t instanceof n&&t.operator===e}function c(e,t){let r;for(let i=0,a=t.length;i<a;i++){let a=t[i];if(a instanceof n){if(a.operator!==e){r&&r.push(a);continue}if(a.value.length===0)continue;r||(r=t.slice(0,i));let n=a.value;for(let e=0,t=n.length;e<t;e++)r.push(n[e])}else r&&r.push(a)}return r||t}function l(e,t){if(t.length===1)return t[0];if(t.length===0)return new n(e,t);let r=c(e,t);return r.length===1?r[0]:(r.length,new n(e,r))}const u=e=>e,d=()=>Object.create(null),f=Object.defineProperty(d(),`__@type@__`,{value:`ignore value`});function p(e,t,n=!1){if(!e||e&&e.constructor!==Object)return!1;for(let r in e)if(o(e,r)&&o(t,r)&&(!n||e[r]!==f))return!0;return!1}function m(e){let t=[];for(let n in e)o(e,n)&&e[n]!==f&&t.push(n);return t}function h(e,t){t!==a&&e.push(t)}const g=e=>l(`and`,e),_=e=>l(`or`,e);function v(e,t){let n=e[t];if(typeof n!=`function`)throw Error(`Unable to interpret \"${String(t)}\" condition. Did you forget to register interpreter for it?`);return n}function y(e){return e.operator}function b(e,t){let n=t,r=n&&n.getInterpreterName||y,i;switch(n?n.numberOfArguments:0){case 1:i=(t=>v(e,r(t,n))(t,a));break;case 3:i=((t,i,o)=>v(e,r(t,n))(t,i,o,a));break;default:i=((t,i)=>v(e,r(t,n))(t,i,a));break}let a={...n,interpret:i};return a.interpret}const x={compound(e,t,r){let i=(Array.isArray(t)?t:[t]).map(e=>r.parse(e));return new n(e.name,i)},field(e,t,n){return new i(e.name,n.field,t)},document(e,n){return new t(e.name,n)}};var S=class{constructor(e,t=d()){this.parse=this.parse.bind(this),this._options={operatorToConditionName:t.operatorToConditionName||u,defaultOperatorName:t.defaultOperatorName||`eq`,mergeFinalConditions:t.mergeFinalConditions||g},this._instructions=Object.keys(e).reduce((t,n)=>(t[n]={name:this._options.operatorToConditionName(n),...e[n]},t),{}),this._fieldInstructionContext={...t.fieldContext,field:``,query:{},parse:this.parse,hasOperators:e=>p(e,this._instructions,t.useIgnoreValue)},this._documentInstructionContext={...t.documentContext,parse:this.parse,query:{}},this._objectKeys=t.useIgnoreValue?m:Object.keys}setParse(e){this.parse=e,this._fieldInstructionContext.parse=e,this._documentInstructionContext.parse=e}parseField(e,t,n,r){let i=this._instructions[t];if(!i)throw Error(`Unsupported operator \"${t}\"`);if(i.type!==`field`)throw Error(`Unexpected ${i.type} operator \"${t}\" at field level`);return this._fieldInstructionContext.field=e,this._fieldInstructionContext.query=r,this.parseInstruction(i,n,this._fieldInstructionContext)}parseInstruction(e,t,n){return typeof e.validate==`function`&&e.validate(e,t),(e.parse||x[e.type])(e,t,n)}parseFieldOperators(e,t){let n=[],r=this._objectKeys(t);for(let i=0,a=r.length;i<a;i++){let a=r[i];if(!this._instructions[a])throw Error(`Field query for \"${e}\" may contain only operators or a plain object as a value`);h(n,this.parseField(e,a,t[a],t))}return n}parse(e){let t=[],n=this._objectKeys(e);this._documentInstructionContext.query=e;for(let r=0,i=n.length;r<i;r++){let i=n[r],a=e[i],o=this._instructions[i];if(o){if(o.type!==`document`&&o.type!==`compound`)throw Error(`Cannot use parsing instruction for operator \"${i}\" in \"document\" context as it is supposed to be used in \"${o.type}\" context`);h(t,this.parseInstruction(o,a,this._documentInstructionContext))}else this._fieldInstructionContext.hasOperators(a)?t.push(...this.parseFieldOperators(i,a)):h(t,this.parseField(i,this._options.defaultOperatorName,a,e))}return this._options.mergeFinalConditions(t)}};function C(e,t){return(n,...r)=>{let i=e(n,...r),a=t.bind(null,i);return Object.defineProperty(a,`ast`,{value:i}),a}}export{n as CompoundCondition,e as Condition,t as DocumentCondition,i as FieldCondition,r as ITSELF,a as NULL_CONDITION,S as ObjectQueryParser,g as buildAnd,_ as buildOr,b as createInterpreter,C as createTranslatorFactory,x as defaultInstructionParsers,p as hasOperators,u as identity,f as ignoreValue,s as isCompound,d as object,l as optimizedCompoundCondition};\n//# sourceMappingURL=index.mjs.map","import{CompoundCondition as e,FieldCondition as t,ITSELF as n,NULL_CONDITION as r,ObjectQueryParser as i,buildAnd as a,defaultInstructionParsers as o,optimizedCompoundCondition as s}from\"@ucast/core\";var c=Object.defineProperty,l=((e,t)=>{let n={};for(var r in e)c(n,r,{get:e[r],enumerable:!0});return t||c(n,Symbol.toStringTag,{value:`Module`}),n})({$all:()=>y,$and:()=>u,$elemMatch:()=>h,$eq:()=>E,$exists:()=>x,$gt:()=>C,$gte:()=>S,$in:()=>_,$lt:()=>w,$lte:()=>T,$mod:()=>b,$ne:()=>D,$nin:()=>v,$nor:()=>f,$not:()=>m,$options:()=>k,$or:()=>d,$regex:()=>O,$size:()=>g,$where:()=>A});const u={type:`compound`,validate:M,parse(e,t,n){let r=p(e,t,n);return s(e.name,r)}},d=u,f={type:`compound`,validate:M,parse(t,n,r){let i=p(t,n,r);return new e(t.name,i)}};function p(e,t,n){let r=Array(t.length);for(let i=0;i<t.length;i++){let a=t[i];F(e,a,i),r[i]=n.parse(a)}return r}const m={type:`field`,validate(e,t){if(!(t&&(t instanceof RegExp||t.constructor===Object)))throw Error(`\"${e.name}\" expects to receive either regular expression or object of field operators`)},parse(n,r,i){let a=r instanceof RegExp?new t(`regex`,i.field,r):i.parse(r,i);return new e(n.name,[a])}},h={type:`field`,validate(e,t){if(!t||t.constructor!==Object)throw Error(`\"${e.name}\" expects to receive an object with nested query or field level operators`)},parse(e,r,{parse:i,field:a,hasOperators:o}){let s=o(r)?i(r,{field:n}):i(r);return new t(e.name,a,s)}},g={type:`field`,validate:P(`number`)},_={type:`field`,validate:j},v=_,y=_,b={type:`field`,validate(e,t){if(!Array.isArray(t)||t.length!==2)throw Error(`\"${e.name}\" expects an array with 2 numeric elements`)}},x={type:`field`,validate:P(`boolean`)},S={type:`field`,validate:N},C=S,w=C,T=C,E={type:`field`},D=E,O={type:`field`,validate(e,t){if(!(t instanceof RegExp)&&typeof t!=`string`)throw Error(`\"${e.name}\" expects value to be a regular expression or a string that represents regular expression`)},parse(e,n,r){let i=typeof n==`string`?new RegExp(n,r.query.$options||``):n;return new t(e.name,r.field,i)}},k={type:`field`,parse:()=>r},A={type:`document`,validate:P(`function`)};function j(e,t){if(!Array.isArray(t))throw Error(`\"${e.name}\" expects value to be an array`)}function M(e,t){if(j(e,t),!t.length)throw Error(`\"${e.name}\" expects to have at least one element in array`)}function N(e,t){if(!(typeof t==`string`||typeof t==`number`||t instanceof Date))throw Error(`\"${e.name}\" expects value to be comparable (i.e., string, number or date)`)}function P(e){return(t,n)=>{if(typeof n!==e)throw Error(`\"${t.name}\" expects value to be a \"${e}\"`)}}function F(e,t,n){let r=t;if(!r||r.constructor!==Object)throw Error(`\"${e.name}\" expects item at index ${n} to be an object`)}var I=class extends i{constructor(e){super(e,{defaultOperatorName:`$eq`,operatorToConditionName:e=>e.slice(1)})}parse(e,t){return t&&t.field?a(this.parseFieldOperators(t.field,e)):super.parse(e)}};const L=l;export{y as $all,u as $and,h as $elemMatch,E as $eq,x as $exists,C as $gt,S as $gte,_ as $in,w as $lt,T as $lte,b as $mod,D as $ne,v as $nin,f as $nor,m as $not,k as $options,d as $or,O as $regex,g as $size,A as $where,I as MongoQueryParser,L as allParsingInstructions,o as defaultParsers};\n//# sourceMappingURL=index.mjs.map","import type { MongoQuery } from '@ucast/mongo2js'\nimport type { Session } from 'auth'\n\nexport enum Audience {\n Backoffice = 'backoffice',\n Frontoffice = 'frontoffice',\n System = 'system',\n Public = 'public',\n}\n\nexport enum Subject {\n All = 'all',\n Todo = 'todo',\n User = 'user',\n Chat = 'chat',\n Agent = 'agent',\n SubAgent = 'subAgent',\n Document = 'document',\n AgentDocument = 'agent_document',\n AgentAnalytic = 'agent_analytic',\n McpServer = 'mcp_server',\n Media = 'media',\n RevisedAnswer = 'revised_answer',\n Organization = 'organization',\n Member = 'member',\n Lead = 'lead',\n MessageFeedback = 'message_feedback',\n Backoffice = 'backoffice',\n Frontoffice = 'frontoffice',\n System = 'system',\n Invitation = 'invitation',\n Crawler = 'crawler',\n ReasoningChat = 'reasoning_chat',\n TimeTrackerChat = 'time_tracker_chat',\n OrganizationExternalAuth = 'organization_external_auth',\n AgentEndpoint = 'agent_endpoint',\n AgentEndpointLog = 'agent_endpoint_log',\n AgentApiTool = 'agent_api_tool',\n}\n\n// action\nexport type Action =\n | 'create'\n | 'read'\n | 'update'\n | 'delete'\n | 'manage'\n | 'impersonate'\n | 'invite'\n | 'access'\n | 'clone'\n | 'ban'\n | 'unban'\n | 'change-role'\n | 'resend'\n | 'cancel'\n | 'execute'\n | 'refill'\n\nexport type Capability = {\n action: Action\n subject: Subject\n fields?: string[]\n condition?: MongoQuery\n inverted?: boolean\n}\n\nexport type CapabilitiesFactory = (\n currentSession?: Session | null,\n) => Capability[]\n","import * as z from 'zod'\nimport { zodQs } from '../utils'\nimport { LanguageModel } from './constants'\nimport { MediaSchema, MIME_TYPE_REGEX } from './Media'\n\nexport enum AgentStatus {\n Draft = 'draft',\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum AgentVisibility {\n Public = 'public',\n Private = 'private',\n Organization = 'organization',\n}\n\nexport enum AgentType {\n Chat = 'chat',\n Reasoning = 'reasoning',\n}\n\nexport enum AgentSearchMode {\n Semantic = 'semantic',\n Balanced = 'balanced',\n Keyword = 'keyword',\n}\n\n/**\n * Provider-agnostic reasoning configuration.\n *\n * Maps to provider-specific options:\n * - OpenAI (GPT-5, o-series): `reasoningEffort` + `reasoningSummary`\n * - Anthropic Claude 4.6: thinking via `thinking: { type: 'enabled' }`\n * - Google Gemini 3/3.1: `thinkingConfig.thinkingLevel`\n */\nexport const AgentReasoningSchema = z\n .object({\n /**\n * Reasoning effort level:\n * - `off` → disables reasoning (where supported)\n * - `low` → minimal thinking, fast and cheap\n * - `medium` → balanced reasoning (recommended default)\n * - `high` → deep reasoning, slower and more expensive\n */\n effort: z.enum(['off', 'low', 'medium', 'high']).optional(),\n /**\n * OpenAI only: format of the reasoning summary returned in the response.\n */\n reasoningSummary: z.enum(['auto', 'detailed', 'concise']).optional(),\n })\n .optional()\n\nexport type AgentReasoning = z.infer<typeof AgentReasoningSchema>\n\nexport enum AgentBuiltInTool {\n SearchInKnowledgeBase = 'searchInKnowledgeBase',\n ShowSources = 'showSources',\n RetrieveRevisedAnswers = 'retrieveRevisedAnswers',\n ShowMultipleChoice = 'showMultipleChoice',\n ShowArtifact = 'showArtifact',\n ShowEmail = 'showEmail',\n ShowMessage = 'showMessage',\n ShowWebPages = 'showWebPages',\n ShowProductList = 'showProductList',\n ShowContactForm = 'showContactForm',\n ShowCalendarEvent = 'showCalendarEvent',\n ShowComparison = 'showComparison',\n ShowLocation = 'showLocation',\n ShowQrCode = 'showQrCode',\n ShowImageGallery = 'showImageGallery',\n ShowSuggestedReply = 'showSuggestedReply',\n RequestGeolocation = 'requestGeolocation',\n GetWeather = 'getWeather',\n ShowWeather = 'showWeather',\n Geocode = 'geocode',\n ReadDocumentFile = 'readDocumentFile',\n}\n\nexport const AgentToolsSchema = z.object({\n disabled: z.array(z.enum(AgentBuiltInTool)).default([]),\n})\nexport type AgentTools = z.infer<typeof AgentToolsSchema>\n\nexport const DEFAULT_MAX_STEP_COUNT = 10\nexport const DEFAULT_SUB_AGENT_MAX_STEP_COUNT = 6\nexport const DEFAULT_ENDPOINT_MAX_STEP_COUNT = 5\n\nexport const AgentModelSchema = z.object({\n prompt: z.string().optional(),\n temperature: z.number().min(0).max(2).optional().default(0.6),\n maxOutputTokens: z.number().positive().optional(),\n presencePenalty: z.number().min(-2).max(2).optional(),\n frequencyPenalty: z.number().min(-2).max(2).optional(),\n searchMode: z\n .enum(AgentSearchMode)\n .optional()\n .default(AgentSearchMode.Balanced),\n limit: z.number().positive().max(100).optional().default(10),\n maxStepCount: z\n .number()\n .int()\n .min(1)\n .max(20)\n .optional()\n .default(DEFAULT_MAX_STEP_COUNT),\n reasoning: AgentReasoningSchema,\n})\nexport type AgentModel = z.infer<typeof AgentModelSchema>\n\nexport const LocalizedStringSchema = z.preprocess(\n (val) => (typeof val === 'string' ? { it: val } : val),\n z.record(z.string(), z.string()),\n)\nexport type LocalizedString = z.infer<typeof LocalizedStringSchema>\n\nexport const DEFAULT_WIDGET_URL =\n 'https://cdn.jsdelivr.net/npm/@8wave/ai-elements/dist/ai-elements.es.js'\n\nexport enum AgentLoaderStrategy {\n InlineModule = 'inline-module',\n ScriptSrc = 'script-src',\n DynamicImport = 'dynamic-import',\n}\n\nexport enum AgentChannel {\n Frontoffice = 'frontoffice',\n App = 'app',\n Widget = 'widget',\n}\n\nexport const ALL_AGENT_CHANNELS = Object.values(AgentChannel) as AgentChannel[]\n\nexport const AgentInterfaceSchema = z.object({\n media: MediaSchema.optional(),\n logo: z.string().optional(),\n theme: z.enum(['light', 'dark', 'auto']).optional().default('auto'),\n mainColor: z\n .string()\n .regex(/^#[0-9A-Fa-f]{6}$/)\n .optional()\n .default('#000000'),\n textColor: z.enum(['auto', 'white', 'black']).optional().default('auto'),\n useColorsForAgentHeader: z.boolean().optional().default(false),\n initialMessage: LocalizedStringSchema.optional(),\n messagePlaceholder: LocalizedStringSchema.optional(),\n dismissableNotice: LocalizedStringSchema.optional(),\n footerMessage: LocalizedStringSchema.optional(),\n privacyPolicyNotice: LocalizedStringSchema.optional(),\n welcomePopup: z.boolean().optional().default(false),\n floatingButtonPosition: z\n .enum(['left', 'right'])\n .optional()\n .default('right'),\n maxMessageLength: z.number().int().positive().optional(),\n widgetUrl: z.url().default(DEFAULT_WIDGET_URL),\n loadDelay: z.number().int().min(0).max(30000).optional().default(0),\n loaderStrategy: z\n .enum(AgentLoaderStrategy)\n .optional()\n .default(AgentLoaderStrategy.InlineModule),\n customCss: z.string().optional(),\n})\nexport type AgentInterface = z.infer<typeof AgentInterfaceSchema>\n\nexport const CHAT_FILE_UPLOAD_DEFAULT_MIME_TYPES = [\n 'image/jpeg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n 'application/pdf',\n 'text/plain',\n 'text/markdown',\n 'text/csv',\n] as const\n\nexport type ChatFileUploadMimeType =\n (typeof CHAT_FILE_UPLOAD_DEFAULT_MIME_TYPES)[number]\n\nexport const CHAT_FILE_UPLOAD_MAX_FILE_SIZE_BYTES = 104_857_600 // 100 MB\n\nexport const AgentFileUploadSchema = z.object({\n enabled: z.boolean().default(false),\n maxFileSizeBytes: z\n .number()\n .int()\n .positive()\n .max(CHAT_FILE_UPLOAD_MAX_FILE_SIZE_BYTES)\n .optional()\n .default(20_971_520),\n allowedMimeTypes: z\n .array(z.string().regex(MIME_TYPE_REGEX))\n .optional()\n .default([...CHAT_FILE_UPLOAD_DEFAULT_MIME_TYPES]),\n maxFilesPerMessage: z\n .number()\n .int()\n .positive()\n .max(10)\n .optional()\n .default(5),\n maxFilesPerChat: z.number().int().positive().max(50).optional().default(20),\n})\nexport type AgentFileUpload = z.infer<typeof AgentFileUploadSchema>\n\nexport const AgentGatewayOptionsSchema = z.object({\n zeroDataRetention: z.boolean().default(true),\n disallowPromptTraining: z.boolean().default(true),\n providerTimeoutMs: z.number().int().min(1000).max(789000).optional(),\n})\nexport type AgentGatewayOptions = z.infer<typeof AgentGatewayOptionsSchema>\n\nexport const AgentSettingsSchema = z.object({\n model: AgentModelSchema,\n interface: AgentInterfaceSchema,\n tools: AgentToolsSchema.default({ disabled: [] }),\n fileUpload: AgentFileUploadSchema.optional().default(() =>\n AgentFileUploadSchema.parse({}),\n ),\n gatewayOptions: AgentGatewayOptionsSchema.optional().default(() =>\n AgentGatewayOptionsSchema.parse({}),\n ),\n channels: z\n .array(z.enum(AgentChannel))\n .optional()\n .default(() => [...ALL_AGENT_CHANNELS]),\n})\nexport type AgentSettings = z.infer<typeof AgentSettingsSchema>\n\nexport const AgentSecuritySchema = z.object({\n rateLimits: z.object({\n minuteRateLimit: z.number().int().min(0).optional(),\n hourRateLimit: z.number().int().min(0).optional(),\n dayRateLimit: z.number().int().min(0).optional(),\n monthRateLimit: z.number().int().min(0).optional(),\n }),\n trustedOrigins: z\n .object({\n origins: z\n .array(z.url().or(z.literal('')))\n .transform((items) => {\n return items?.filter((item) => item?.trim())\n })\n .default([]),\n })\n .default({ origins: [] }),\n})\nexport type AgentSecurity = z.infer<typeof AgentSecuritySchema>\n\nexport const AgentDtoSchema = z.object({\n id: z.string().optional(),\n name: z.string(),\n prompt: z.string().optional(),\n model: z.string().default(LanguageModel.gpt52Chat),\n fallbackModels: z.array(z.string()).default([]),\n status: z.enum(AgentStatus).default(AgentStatus.Draft),\n visibility: z.enum(AgentVisibility).default(AgentVisibility.Organization),\n settings: AgentSettingsSchema,\n security: AgentSecuritySchema.nullish(),\n type: z.enum(AgentType).default(AgentType.Chat),\n organizationId: z.string(),\n})\n\nexport const AgentSchema = z.lazy(() =>\n z.object({\n id: z.string(),\n name: z.string(),\n prompt: z.string(),\n model: z.string(),\n fallbackModels: z.array(z.string()).nullable().default([]),\n status: z.enum(AgentStatus).default(AgentStatus.Draft),\n visibility: z\n .enum(AgentVisibility)\n .default(AgentVisibility.Organization),\n settings: AgentSettingsSchema,\n security: AgentSecuritySchema.nullable(),\n type: z.enum(AgentType).default(AgentType.Chat),\n organizationId: z.string(),\n createdAt: z.coerce.date(),\n createdBy: z.string(),\n updatedAt: z.coerce.date(),\n updatedBy: z.string(),\n deleted: z.boolean(),\n deletedAt: z.coerce.date().nullable(),\n deletedBy: z.string().nullable(),\n outOfBudget: z.boolean().optional().default(false),\n outOfBudgetReason: z.string().optional().default(''),\n }),\n)\n\nexport const AgentPublicSchema = z.object({\n id: z.string(),\n name: z.string(),\n status: z.enum(AgentStatus),\n visibility: z.enum(AgentVisibility),\n organizationId: z.string(),\n interface: AgentInterfaceSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n logo: z.string().optional(),\n capabilities: z.object({\n fileUpload: AgentFileUploadSchema,\n }),\n channels: z\n .array(z.enum(AgentChannel))\n .default(() => [...ALL_AGENT_CHANNELS]),\n})\n\nexport const AgentsQuerystringSchema = z.object({\n ...zodQs.pagination(),\n ...zodQs.sort([\n 'id',\n 'updatedAt',\n 'createdAt',\n 'name',\n 'type',\n 'status',\n 'visibility',\n 'model',\n ]),\n ...zodQs.filters(['done', 'type']),\n ...zodQs.fullText(),\n ...zodQs.ids(),\n})\n\nexport type AgentDto = z.infer<typeof AgentDtoSchema>\nexport type Agent = z.infer<typeof AgentSchema>\nexport type AgentPublic = z.infer<typeof AgentPublicSchema>\n\nexport type AgentQuerystring = z.infer<typeof AgentsQuerystringSchema>\n","import { AgentStatus } from 'models'\nimport type { CapabilitiesFactory } from '../types'\nimport { Subject } from '../types'\n\nconst GuestCapabilities: CapabilitiesFactory = (currentSession) => {\n if (!currentSession) {\n return []\n }\n return [\n // chats\n {\n subject: Subject.Chat,\n action: 'create',\n },\n {\n subject: Subject.Chat,\n action: 'read',\n condition: {\n createdBy: {\n $eq: currentSession.user.id,\n },\n },\n },\n {\n subject: Subject.Chat,\n action: 'update',\n },\n {\n subject: Subject.Chat,\n action: 'delete',\n },\n // agents\n {\n subject: Subject.Agent,\n action: 'read',\n condition: {\n status: {\n $eq: AgentStatus.Active,\n },\n },\n },\n // feedbacks\n {\n subject: Subject.MessageFeedback,\n action: 'create',\n },\n {\n subject: Subject.MessageFeedback,\n action: 'read',\n condition: {\n createdBy: {\n $eq: currentSession.user.id,\n },\n },\n },\n ]\n}\nexport default GuestCapabilities\n","import type { MongoAbility, InferSubjects, ForcedSubject } from '@casl/ability'\nimport type { MongoQuery } from '@ucast/mongo2js'\nimport { Action, Capability, Subject } from './types'\nimport { $or } from '@ucast/mongo2js'\nimport {\n AbilityBuilder,\n createMongoAbility,\n buildMongoQueryMatcher,\n PureAbility,\n createAliasResolver,\n FieldMatcher,\n} from '@casl/ability'\nimport { organizationCapabilitiesByRole, userCapabilitiesByRole } from './roles'\nimport type { Session } from 'auth'\nimport DefaultCapabilities from './roles/User'\nimport { createAccessControl } from 'better-auth/plugins'\nimport {\n adminAc,\n defaultStatements,\n memberAc,\n ownerAc,\n} from 'better-auth/plugins/organization/access'\n\nexport const OrganizationRoles = {\n admin: 'admin',\n owner: 'owner',\n member: 'member',\n user: 'user',\n} as const\n\nexport const UserRoles = {\n admin: 'admin',\n user: 'user',\n} as const\n\n// action alias\nconst resolveAction = createAliasResolver({\n modify: ['read', 'update', 'delete'],\n})\n\n// subject\nexport type AbilitySubject =\n | InferSubjects<'all' | Subject, true>\n | ForcedSubject<InferSubjects<'all' | Subject, true>>\ntype Ability = MongoAbility<[Action, AbilitySubject]>\n\n// matcher\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst conditionsMatcher = buildMongoQueryMatcher({ $or } as Record<string, any>)\nconst fieldMatcher: FieldMatcher = (fields) => (field) => fields.includes(field)\n\n// ability\nexport const ability = new PureAbility<[Action, AbilitySubject], MongoQuery>(\n DefaultCapabilities(),\n {\n conditionsMatcher,\n resolveAction,\n fieldMatcher,\n },\n)\n\nexport const isValidOrganizationRole = (\n role?: string | null,\n): role is keyof typeof OrganizationRoles => {\n if (!role) {\n return false\n }\n return role in OrganizationRoles\n}\n\nexport const isValidUserRole = (\n role?: string | null,\n): role is keyof typeof UserRoles => {\n if (!role) {\n return false\n }\n return role in UserRoles\n}\n\nexport const getOrganizationRoleCapabilities = (\n currentSession?: Session | null,\n): Capability[] => {\n if (!isValidOrganizationRole(currentSession?.session.organizationRole)) {\n return DefaultCapabilities(currentSession)\n }\n const capabilities =\n organizationCapabilitiesByRole[currentSession.session.organizationRole]\n if (typeof capabilities === 'function') {\n return capabilities(currentSession)\n }\n return capabilities\n}\n\nexport const getUserRoleCapabilities = (\n currentSession?: Session | null,\n): Capability[] => {\n if (!isValidUserRole(currentSession?.user.role)) {\n return DefaultCapabilities(currentSession)\n }\n const capabilities = userCapabilitiesByRole[currentSession.user.role]\n if (typeof capabilities === 'function') {\n return capabilities(currentSession)\n }\n return capabilities\n}\n\nexport const updateAbilityFromSession = (currentSession?: Session | null) => {\n const { can, build, cannot } = new AbilityBuilder<Ability>(\n createMongoAbility,\n )\n const organizationRoleCapabilities =\n getOrganizationRoleCapabilities(currentSession)\n const userRoleCapabilities = getUserRoleCapabilities(currentSession)\n const capabilities = [\n ...organizationRoleCapabilities,\n ...userRoleCapabilities,\n ]\n capabilities.forEach((capability) => {\n const { action, subject, fields, condition, inverted } = capability\n if (inverted) {\n cannot(action, subject, fields, condition)\n return\n }\n can(action, subject, fields, condition)\n })\n ability.update(\n build({\n conditionsMatcher,\n resolveAction,\n fieldMatcher,\n }).rules,\n )\n}\n\nconst ac = createAccessControl(defaultStatements)\nconst adminRole = ac.newRole(adminAc.statements)\nconst ownerRole = ac.newRole(ownerAc.statements)\nconst memberRole = ac.newRole(memberAc.statements)\nconst userRole = ac.newRole(memberAc.statements)\n\nexport const betterAuthOrganizationSettings = {\n ac,\n roles: {\n owner: ownerRole,\n admin: adminRole,\n member: memberRole,\n user: userRole,\n },\n}\n\nexport * from './types'\nexport { subject } from '@casl/ability'\n","import { Audience } from 'ability'\nimport type { Chat, MessageFeedback, AgentPublic, MediaSource } from 'models'\nimport { addInitialSlash, removeTrailingSlash } from 'utils'\n\nexport interface ChatbotApiClientOptions {\n baseUrl: string\n basePath?: string\n headers?: () => Record<string, string> | undefined\n credentials?: RequestCredentials\n}\n\nexport interface SubmitFeedbackPayload {\n messageId: string\n chatId: string\n agentId: string\n vote?: 'upvote' | 'downvote'\n userQuestion: string\n assistantMessage: string\n comment?: string\n}\n\nexport interface SubmitLeadPayload {\n agentId: string\n chatId: string\n [key: string]: unknown\n}\n\nexport interface ChatbotApiClient {\n getConversations(\n agentId: string,\n userId: string | undefined,\n ): Promise<Chat[]>\n getChat(agentId: string, chatId: string): Promise<Chat | null>\n updateChatTitle(\n agentId: string,\n chatId: string,\n title: string,\n ): Promise<Chat>\n deleteChat(agentId: string, chatId: string): Promise<void>\n getMessageFeedbacks(chatId: string): Promise<MessageFeedback[]>\n submitMessageFeedback(\n payload: SubmitFeedbackPayload,\n ): Promise<MessageFeedback>\n submitLead(payload: SubmitLeadPayload): Promise<void>\n getAgent(orgSlug: string, agentId: string): Promise<AgentPublic>\n getMediaUrl(agentId: string, chatId: string, storedFileName: string): string\n appendAuthToken(url: string): string\n uploadMedia(\n agentId: string,\n chatId: string,\n file: File,\n ): Promise<MediaSource>\n getChatEndpoint(agentId: string, type?: 'chat' | 'reasoning'): string\n expandSourceContext(\n agentId: string,\n documentId: string,\n chunkIndex: number,\n windowSize?: number,\n ): Promise<{ content: string }>\n downloadSourceDocument(\n agentId: string,\n documentId: string,\n ): Promise<{ downloadUrl: string; filename: string; mimeType: string }>\n reverseGeocode(\n lat: number,\n lon: number,\n lang?: string,\n ): Promise<string | undefined>\n forwardGeocode(\n query: string,\n lang?: string,\n ): Promise<\n { latitude: number; longitude: number; displayName: string } | undefined\n >\n}\n\nexport function createChatbotApiClient(\n options: ChatbotApiClientOptions,\n): ChatbotApiClient {\n const basePath = options.basePath\n ? addInitialSlash(options.basePath)\n : `/api/v1/${Audience.Public}`\n\n const baseUrl = `${removeTrailingSlash(options.baseUrl)}${basePath}`\n\n async function request<T>(\n url: string,\n init?: RequestInit,\n responseType: 'json' | 'void' = 'json',\n ): Promise<T> {\n const response = await fetch(`${baseUrl}${url}`, {\n credentials: options.credentials ?? 'include',\n ...init,\n headers: {\n ...options.headers?.(),\n ...init?.headers,\n },\n })\n\n if (!response.ok) {\n throw new Error(\n `API error: ${response.status} ${response.statusText}`,\n )\n }\n\n if (responseType === 'void' || response.status === 204) {\n return undefined as T\n }\n\n return response.json() as Promise<T>\n }\n\n return {\n async getConversations(agentId, userId) {\n const userFilter = userId\n ? `&filter[userId]=${encodeURIComponent(userId)}`\n : ''\n return request<Chat[]>(\n `/agents/${encodeURIComponent(agentId)}/chats?sort=-lastMessageAt&page[size]=100${userFilter}`,\n )\n },\n\n async getChat(agentId, chatId) {\n const result = await request<Chat | undefined>(\n `/agents/${encodeURIComponent(agentId)}/chats/${encodeURIComponent(chatId)}`,\n )\n return result ?? null\n },\n\n async updateChatTitle(agentId, chatId, title) {\n return request<Chat>(\n `/agents/${encodeURIComponent(agentId)}/chats/${encodeURIComponent(chatId)}`,\n {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ title }),\n },\n )\n },\n\n async deleteChat(agentId, chatId) {\n await request<void>(\n `/agents/${encodeURIComponent(agentId)}/chats/${encodeURIComponent(chatId)}`,\n { method: 'DELETE' },\n 'void',\n )\n },\n\n async getMessageFeedbacks(chatId) {\n return request<MessageFeedback[]>(\n `/message-feedbacks?filter[chatId]=${encodeURIComponent(chatId)}&page[size]=200`,\n )\n },\n\n async submitMessageFeedback(payload) {\n return request<MessageFeedback>('/message-feedbacks', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload),\n })\n },\n\n async submitLead(payload) {\n await request<void>(\n '/leads',\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload),\n },\n 'void',\n )\n },\n\n async getAgent(orgSlug, agentId) {\n return request<AgentPublic>(\n `/organizations/${encodeURIComponent(orgSlug)}/agents/${encodeURIComponent(agentId)}`,\n )\n },\n\n async uploadMedia(agentId, chatId, file) {\n const formData = new FormData()\n formData.append('file', file)\n const response = await fetch(\n `${baseUrl}/agents/${encodeURIComponent(agentId)}/chats/${encodeURIComponent(chatId)}/media/upload`,\n {\n method: 'POST',\n credentials: options.credentials ?? 'include',\n // Do NOT set Content-Type — browser sets multipart/form-data with boundary automatically\n headers: options.headers?.(),\n body: formData,\n },\n )\n if (!response.ok) {\n const text = await response.text().catch(() => '')\n let title = `Upload failed: ${response.status}`\n try {\n title =\n (JSON.parse(text) as { title?: string }).title ?? title\n } catch {\n // ignore parse errors\n }\n throw new Error(title)\n }\n return response.json() as Promise<MediaSource>\n },\n\n getChatEndpoint(agentId, type = 'chat') {\n const path = type === 'reasoning' ? 'reasoning-chat' : 'chat'\n return `${baseUrl}/agents/${encodeURIComponent(agentId)}/${path}`\n },\n\n appendAuthToken(url) {\n const bearer = options\n .headers?.()\n ?.[`Authorization`]?.slice('Bearer '.length)\n if (!bearer) {\n return url\n }\n const separator = url.includes('?') ? '&' : '?'\n return `${url}${separator}token=${encodeURIComponent(bearer)}`\n },\n\n getMediaUrl(agentId, chatId, storedFileName) {\n const base = `${baseUrl}/agents/${encodeURIComponent(agentId)}/chats/${encodeURIComponent(chatId)}/media/${encodeURIComponent(storedFileName)}/view`\n return this.appendAuthToken(base)\n },\n\n async expandSourceContext(\n agentId,\n documentId,\n chunkIndex,\n windowSize = 2,\n ) {\n return request<{ content: string }>(\n `/agents/${encodeURIComponent(agentId)}/sources/expand-context`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n documentId,\n chunkIndex,\n windowSize,\n }),\n },\n )\n },\n\n async downloadSourceDocument(agentId, documentId) {\n return request<{\n downloadUrl: string\n filename: string\n mimeType: string\n }>(\n `/agents/${encodeURIComponent(agentId)}/sources/documents/${encodeURIComponent(documentId)}/download`,\n )\n },\n\n async reverseGeocode(lat, lon, lang) {\n const params = new URLSearchParams({\n lat: String(lat),\n lon: String(lon),\n })\n if (lang) {\n params.set('lang', lang)\n }\n try {\n const data = await request<{ displayName?: string }>(\n `/geocoder/reverse?${params}`,\n )\n return data.displayName\n } catch {\n return undefined\n }\n },\n\n async forwardGeocode(query, lang) {\n const params = new URLSearchParams({ q: query })\n if (lang) {\n params.set('lang', lang)\n }\n try {\n return await request<{\n latitude: number\n longitude: number\n displayName: string\n }>(`/geocoder/forward?${params}`)\n } catch {\n return undefined\n }\n },\n }\n}\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { D as e, E as t, O as n, T as r } from "./schemas-sa2dDEGb.js";
2
- import { t as i } from "./ZodError-Ca0wCsGp.js";
1
+ import { D as e, E as t, O as n, T as r } from "./schemas-Clx4oKCB.js";
2
+ import { t as i } from "./ZodError-C_est8SY.js";
3
3
  import { computed as a, defineAsyncComponent as o, defineComponent as s, getCurrentInstance as c, h as l, inject as u, isProxy as d, onBeforeUnmount as f, onMounted as p, provide as m, readonly as h, ref as g, resolveComponent as _, toRaw as v, toRefs as y, unref as b, useId as x, watch as S, withModifiers as C } from "vue";
4
4
  import { throttleFilter as w, watchIgnorable as T } from "@vueuse/core";
5
5
  //#region ../../node_modules/.pnpm/dot-prop@10.1.0/node_modules/dot-prop/index.js
@@ -130,7 +130,7 @@ function F(e, t, n) {
130
130
  return r;
131
131
  }
132
132
  //#endregion
133
- //#region ../../node_modules/.pnpm/@volverjs+form-vue@1.1.1_@volverjs+ui-vue@0.0.13-beta.8_@volverjs+style@0.1.24-beta.3_@_7bbe5f849af2a651f01330e8c0996f87/node_modules/@volverjs/form-vue/dist/index.es.js
133
+ //#region ../../node_modules/.pnpm/@volverjs+form-vue@1.1.1_@volverjs+ui-vue@0.0.13-beta.8_@volverjs+style@0.1.24-beta.3_@_8eaf8a064fcd23c20757f706f5acdc49/node_modules/@volverjs/form-vue/dist/index.es.js
134
134
  var I = /* @__PURE__ */ ((e) => (e.text = "text", e.number = "number", e.email = "email", e.password = "password", e.tel = "tel", e.url = "url", e.search = "search", e.date = "date", e.time = "time", e.datetimeLocal = "datetime-local", e.month = "month", e.week = "week", e.color = "color", e.select = "select", e.checkbox = "checkbox", e.radio = "radio", e.textarea = "textarea", e.radioGroup = "radioGroup", e.checkboxGroup = "checkboxGroup", e.combobox = "combobox", e.custom = "custom", e))(I || {}), L = /* @__PURE__ */ ((e) => (e.invalid = "invalid", e.valid = "valid", e.submitting = "submitting", e.reset = "reset", e.updated = "updated", e.unknown = "unknown", e))(L || {}), R = (e) => e._def.typeName === "ZodObject", z = (e) => e._zod.def.type === "object", B = (e) => e._def.typeName === "ZodDefault", ee = (e) => e._zod.def.type === "default", te = (e) => e._def.typeName === "ZodNullable", ne = (e) => e._zod.def.type === "nullable", re = (e) => e._def.typeName === "ZodRecord", V = (e) => e._zod.def.type === "record", H = (e) => e._def.typeName === "ZodArray", U = (e) => e._zod.def.type === "array", ie = (e) => e._def.typeName === "ZodEffects", W = (e) => e._def.typeName === "ZodOptional", G = (e) => e._zod.def.type === "optional", ae = (e) => e._zod.def.type === "pipe", oe = (e) => e._zod.def.type === "transform";
135
135
  function K(e) {
136
136
  let t = e;
@@ -947,4 +947,4 @@ function ve(e, t = {}) {
947
947
  //#endregion
948
948
  export { ve as t };
949
949
 
950
- //# sourceMappingURL=index.es-CrPSzhoZ.js.map
950
+ //# sourceMappingURL=index.es-Dk_HaA08.js.map