wiil-core-js 0.0.82

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 (261) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +174 -0
  3. package/dist/core/account/index.d.ts +7 -0
  4. package/dist/core/account/index.js +23 -0
  5. package/dist/core/account/organization.schema.d.ts +118 -0
  6. package/dist/core/account/organization.schema.js +91 -0
  7. package/dist/core/account/project.schema.d.ts +121 -0
  8. package/dist/core/account/project.schema.js +102 -0
  9. package/dist/core/account/supported-business-verticals.d.ts +8 -0
  10. package/dist/core/account/supported-business-verticals.js +23 -0
  11. package/dist/core/assistant-setups/assistant-setup-result.schema.d.ts +115 -0
  12. package/dist/core/assistant-setups/assistant-setup-result.schema.js +17 -0
  13. package/dist/core/assistant-setups/base-assistant-setup.schema.d.ts +61 -0
  14. package/dist/core/assistant-setups/base-assistant-setup.schema.js +29 -0
  15. package/dist/core/assistant-setups/index.d.ts +4 -0
  16. package/dist/core/assistant-setups/index.js +21 -0
  17. package/dist/core/assistant-setups/phone-assistant-setup.schema.d.ts +63 -0
  18. package/dist/core/assistant-setups/phone-assistant-setup.schema.js +14 -0
  19. package/dist/core/assistant-setups/web-assitant-setup.schema.d.ts +56 -0
  20. package/dist/core/assistant-setups/web-assitant-setup.schema.js +17 -0
  21. package/dist/core/base.schema.d.ts +34 -0
  22. package/dist/core/base.schema.js +36 -0
  23. package/dist/core/business-mgt/appointment-additional-info.schema.d.ts +63 -0
  24. package/dist/core/business-mgt/appointment-additional-info.schema.js +53 -0
  25. package/dist/core/business-mgt/appointment-field-config.schema.d.ts +251 -0
  26. package/dist/core/business-mgt/appointment-field-config.schema.js +49 -0
  27. package/dist/core/business-mgt/bookings.shared.schema.d.ts +47 -0
  28. package/dist/core/business-mgt/bookings.shared.schema.js +60 -0
  29. package/dist/core/business-mgt/business-location.schema.d.ts +327 -0
  30. package/dist/core/business-mgt/business-location.schema.js +176 -0
  31. package/dist/core/business-mgt/customer-management/customer-group.schema.d.ts +87 -0
  32. package/dist/core/business-mgt/customer-management/customer-group.schema.js +53 -0
  33. package/dist/core/business-mgt/customer-management/customer.schema.d.ts +156 -0
  34. package/dist/core/business-mgt/customer-management/customer.schema.js +93 -0
  35. package/dist/core/business-mgt/customer-management/index.d.ts +7 -0
  36. package/dist/core/business-mgt/customer-management/index.js +23 -0
  37. package/dist/core/business-mgt/customer-management/shipping-address.schema.d.ts +112 -0
  38. package/dist/core/business-mgt/customer-management/shipping-address.schema.js +79 -0
  39. package/dist/core/business-mgt/customer.schema.d.ts +111 -0
  40. package/dist/core/business-mgt/customer.schema.js +73 -0
  41. package/dist/core/business-mgt/discount-rule.schema.d.ts +183 -0
  42. package/dist/core/business-mgt/discount-rule.schema.js +108 -0
  43. package/dist/core/business-mgt/index.d.ts +16 -0
  44. package/dist/core/business-mgt/index.js +38 -0
  45. package/dist/core/business-mgt/menu-config.schema.d.ts +165 -0
  46. package/dist/core/business-mgt/menu-config.schema.js +86 -0
  47. package/dist/core/business-mgt/menu-management/index.d.ts +11 -0
  48. package/dist/core/business-mgt/menu-management/index.js +27 -0
  49. package/dist/core/business-mgt/menu-management/menu-catalog.schema.d.ts +386 -0
  50. package/dist/core/business-mgt/menu-management/menu-catalog.schema.js +58 -0
  51. package/dist/core/business-mgt/menu-management/menu-config.schema.d.ts +301 -0
  52. package/dist/core/business-mgt/menu-management/menu-config.schema.js +169 -0
  53. package/dist/core/business-mgt/menu-management/menu-item-variant.schema.d.ts +143 -0
  54. package/dist/core/business-mgt/menu-management/menu-item-variant.schema.js +86 -0
  55. package/dist/core/business-mgt/menu-management/menu-pricing-rule.schema.d.ts +239 -0
  56. package/dist/core/business-mgt/menu-management/menu-pricing-rule.schema.js +117 -0
  57. package/dist/core/business-mgt/menu-management/menu-set.schema.d.ts +420 -0
  58. package/dist/core/business-mgt/menu-management/menu-set.schema.js +283 -0
  59. package/dist/core/business-mgt/menu-management/menu.order.schema.d.ts +654 -0
  60. package/dist/core/business-mgt/menu-management/menu.order.schema.js +204 -0
  61. package/dist/core/business-mgt/menu-management/modifier.schema.d.ts +585 -0
  62. package/dist/core/business-mgt/menu-management/modifier.schema.js +341 -0
  63. package/dist/core/business-mgt/menu.order.schema.d.ts +335 -0
  64. package/dist/core/business-mgt/menu.order.schema.js +149 -0
  65. package/dist/core/business-mgt/order.schema.d.ts +222 -0
  66. package/dist/core/business-mgt/order.schema.js +205 -0
  67. package/dist/core/business-mgt/pricing-rule.shared.schema.d.ts +56 -0
  68. package/dist/core/business-mgt/pricing-rule.shared.schema.js +68 -0
  69. package/dist/core/business-mgt/product-config.schema.d.ts +177 -0
  70. package/dist/core/business-mgt/product-config.schema.js +106 -0
  71. package/dist/core/business-mgt/product-management/index.d.ts +12 -0
  72. package/dist/core/business-mgt/product-management/index.js +28 -0
  73. package/dist/core/business-mgt/product-management/product-axis-binding.schema.d.ts +54 -0
  74. package/dist/core/business-mgt/product-management/product-axis-binding.schema.js +54 -0
  75. package/dist/core/business-mgt/product-management/product-config.schema.d.ts +1042 -0
  76. package/dist/core/business-mgt/product-management/product-config.schema.js +392 -0
  77. package/dist/core/business-mgt/product-management/product-display.schema.d.ts +548 -0
  78. package/dist/core/business-mgt/product-management/product-display.schema.js +80 -0
  79. package/dist/core/business-mgt/product-management/product-order.schema.d.ts +493 -0
  80. package/dist/core/business-mgt/product-management/product-order.schema.js +158 -0
  81. package/dist/core/business-mgt/product-management/product-pricing-rule.schema.d.ts +167 -0
  82. package/dist/core/business-mgt/product-management/product-pricing-rule.schema.js +68 -0
  83. package/dist/core/business-mgt/product-management/product-set.schema.d.ts +488 -0
  84. package/dist/core/business-mgt/product-management/product-set.schema.js +273 -0
  85. package/dist/core/business-mgt/product-management/product-variant-axis.schema.d.ts +156 -0
  86. package/dist/core/business-mgt/product-management/product-variant-axis.schema.js +98 -0
  87. package/dist/core/business-mgt/product-management/product-variant.schema.d.ts +219 -0
  88. package/dist/core/business-mgt/product-management/product-variant.schema.js +130 -0
  89. package/dist/core/business-mgt/product-order.schema.d.ts +326 -0
  90. package/dist/core/business-mgt/product-order.schema.js +153 -0
  91. package/dist/core/business-mgt/property-config.schema.d.ts +621 -0
  92. package/dist/core/business-mgt/property-config.schema.js +224 -0
  93. package/dist/core/business-mgt/property-inquiry.schema.d.ts +222 -0
  94. package/dist/core/business-mgt/property-inquiry.schema.js +112 -0
  95. package/dist/core/business-mgt/property-management/index.d.ts +6 -0
  96. package/dist/core/business-mgt/property-management/index.js +22 -0
  97. package/dist/core/business-mgt/property-management/property-config.schema.d.ts +1306 -0
  98. package/dist/core/business-mgt/property-management/property-config.schema.js +367 -0
  99. package/dist/core/business-mgt/property-management/property-inquiry.schema.d.ts +254 -0
  100. package/dist/core/business-mgt/property-management/property-inquiry.schema.js +131 -0
  101. package/dist/core/business-mgt/reservation-mgt/assignment/index.d.ts +3 -0
  102. package/dist/core/business-mgt/reservation-mgt/assignment/index.js +19 -0
  103. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-rental-assignment.schema.d.ts +139 -0
  104. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-rental-assignment.schema.js +90 -0
  105. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-room-assignment.schema.d.ts +104 -0
  106. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-room-assignment.schema.js +70 -0
  107. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-table-assignment.schema.d.ts +104 -0
  108. package/dist/core/business-mgt/reservation-mgt/assignment/reservation-table-assignment.schema.js +72 -0
  109. package/dist/core/business-mgt/reservation-mgt/index.d.ts +14 -0
  110. package/dist/core/business-mgt/reservation-mgt/index.js +31 -0
  111. package/dist/core/business-mgt/reservation-mgt/reservation-floor-plan-definition.schema.d.ts +180 -0
  112. package/dist/core/business-mgt/reservation-mgt/reservation-floor-plan-definition.schema.js +75 -0
  113. package/dist/core/business-mgt/reservation-mgt/reservation-maintenance-block.schema.d.ts +91 -0
  114. package/dist/core/business-mgt/reservation-mgt/reservation-maintenance-block.schema.js +57 -0
  115. package/dist/core/business-mgt/reservation-mgt/reservation-rental.schema.d.ts +334 -0
  116. package/dist/core/business-mgt/reservation-mgt/reservation-rental.schema.js +179 -0
  117. package/dist/core/business-mgt/reservation-mgt/reservation-room.schema.d.ts +195 -0
  118. package/dist/core/business-mgt/reservation-mgt/reservation-room.schema.js +106 -0
  119. package/dist/core/business-mgt/reservation-mgt/reservation-section.schema.d.ts +402 -0
  120. package/dist/core/business-mgt/reservation-mgt/reservation-section.schema.js +198 -0
  121. package/dist/core/business-mgt/reservation-mgt/reservation-settings.schema.d.ts +229 -0
  122. package/dist/core/business-mgt/reservation-mgt/reservation-settings.schema.js +127 -0
  123. package/dist/core/business-mgt/reservation-mgt/reservation-slot-query.schema.d.ts +382 -0
  124. package/dist/core/business-mgt/reservation-mgt/reservation-slot-query.schema.js +322 -0
  125. package/dist/core/business-mgt/reservation-mgt/reservation-table-layout.schema.d.ts +123 -0
  126. package/dist/core/business-mgt/reservation-mgt/reservation-table-layout.schema.js +83 -0
  127. package/dist/core/business-mgt/reservation-mgt/reservation-table.schema.d.ts +167 -0
  128. package/dist/core/business-mgt/reservation-mgt/reservation-table.schema.js +84 -0
  129. package/dist/core/business-mgt/reservation-mgt/reservation.schema.d.ts +0 -0
  130. package/dist/core/business-mgt/reservation-mgt/reservation.schema.js +153 -0
  131. package/dist/core/business-mgt/reservation-mgt/resource/index.d.ts +4 -0
  132. package/dist/core/business-mgt/reservation-mgt/resource/index.js +20 -0
  133. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-category.schema.d.ts +157 -0
  134. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-category.schema.js +76 -0
  135. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-instance.schema.d.ts +137 -0
  136. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource-instance.schema.js +94 -0
  137. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource.schema.d.ts +713 -0
  138. package/dist/core/business-mgt/reservation-mgt/resource/reservation-resource.schema.js +363 -0
  139. package/dist/core/business-mgt/reservation-mgt/resource/resource-versioning.schema.d.ts +151 -0
  140. package/dist/core/business-mgt/reservation-mgt/resource/resource-versioning.schema.js +147 -0
  141. package/dist/core/business-mgt/reservation-resource.schema.d.ts +154 -0
  142. package/dist/core/business-mgt/reservation-resource.schema.js +100 -0
  143. package/dist/core/business-mgt/reservation.schema.d.ts +119 -0
  144. package/dist/core/business-mgt/reservation.schema.js +89 -0
  145. package/dist/core/business-mgt/service-appointment.schema.d.ts +105 -0
  146. package/dist/core/business-mgt/service-appointment.schema.js +69 -0
  147. package/dist/core/business-mgt/service-config.schema.d.ts +453 -0
  148. package/dist/core/business-mgt/service-config.schema.js +102 -0
  149. package/dist/core/business-mgt/service-management/appointment-additional-info.schema.d.ts +110 -0
  150. package/dist/core/business-mgt/service-management/appointment-additional-info.schema.js +78 -0
  151. package/dist/core/business-mgt/service-management/appointment-field-config.schema.d.ts +304 -0
  152. package/dist/core/business-mgt/service-management/appointment-field-config.schema.js +75 -0
  153. package/dist/core/business-mgt/service-management/business-service-config.schema.d.ts +1226 -0
  154. package/dist/core/business-mgt/service-management/business-service-config.schema.js +317 -0
  155. package/dist/core/business-mgt/service-management/index.d.ts +13 -0
  156. package/dist/core/business-mgt/service-management/index.js +29 -0
  157. package/dist/core/business-mgt/service-management/service-appointment.schema.d.ts +531 -0
  158. package/dist/core/business-mgt/service-management/service-appointment.schema.js +116 -0
  159. package/dist/core/business-mgt/service-management/service-person.schema.d.ts +122 -0
  160. package/dist/core/business-mgt/service-management/service-person.schema.js +66 -0
  161. package/dist/core/business-mgt/service-management/service-pricing-rule.schema.d.ts +221 -0
  162. package/dist/core/business-mgt/service-management/service-pricing-rule.schema.js +118 -0
  163. package/dist/core/business-mgt/service-management/service-provider.schema.d.ts +90 -0
  164. package/dist/core/business-mgt/service-management/service-provider.schema.js +54 -0
  165. package/dist/core/business-mgt/service-management/service-slot-query.schema.d.ts +90 -0
  166. package/dist/core/business-mgt/service-management/service-slot-query.schema.js +113 -0
  167. package/dist/core/business-mgt/service-management/service-time-off.schema.d.ts +121 -0
  168. package/dist/core/business-mgt/service-management/service-time-off.schema.js +95 -0
  169. package/dist/core/business-mgt/service-person.schema.d.ts +43 -0
  170. package/dist/core/business-mgt/service-person.schema.js +38 -0
  171. package/dist/core/business-mgt/tax-rule.schema.d.ts +161 -0
  172. package/dist/core/business-mgt/tax-rule.schema.js +90 -0
  173. package/dist/core/conversation/conversation-config.schema.d.ts +644 -0
  174. package/dist/core/conversation/conversation-config.schema.js +351 -0
  175. package/dist/core/conversation/conversation-message.schema.d.ts +307 -0
  176. package/dist/core/conversation/conversation-message.schema.js +275 -0
  177. package/dist/core/conversation/index.d.ts +12 -0
  178. package/dist/core/conversation/index.js +28 -0
  179. package/dist/core/conversation/outbound-call.schema.d.ts +209 -0
  180. package/dist/core/conversation/outbound-call.schema.js +116 -0
  181. package/dist/core/conversation/outbound-email.schema.d.ts +338 -0
  182. package/dist/core/conversation/outbound-email.schema.js +150 -0
  183. package/dist/core/conversation/outbound-sms.schema.d.ts +163 -0
  184. package/dist/core/conversation/outbound-sms.schema.js +85 -0
  185. package/dist/core/conversation/outbound-template.schema.d.ts +375 -0
  186. package/dist/core/conversation/outbound-template.schema.js +160 -0
  187. package/dist/core/conversation/translation-config.schema.d.ts +92 -0
  188. package/dist/core/conversation/translation-config.schema.js +88 -0
  189. package/dist/core/conversation/translation-conversation.schema.d.ts +469 -0
  190. package/dist/core/conversation/translation-conversation.schema.js +175 -0
  191. package/dist/core/index.d.ts +12 -0
  192. package/dist/core/index.js +30 -0
  193. package/dist/core/service-configuration/agent-config.schema.d.ts +236 -0
  194. package/dist/core/service-configuration/agent-config.schema.js +152 -0
  195. package/dist/core/service-configuration/base-agent-setup.d.ts +147 -0
  196. package/dist/core/service-configuration/base-agent-setup.js +123 -0
  197. package/dist/core/service-configuration/call-transfer-config.schema.d.ts +60 -0
  198. package/dist/core/service-configuration/call-transfer-config.schema.js +53 -0
  199. package/dist/core/service-configuration/deployment-config.schema.d.ts +522 -0
  200. package/dist/core/service-configuration/deployment-config.schema.js +271 -0
  201. package/dist/core/service-configuration/dynamic_setup/base-agent-setup.d.ts +130 -0
  202. package/dist/core/service-configuration/dynamic_setup/base-agent-setup.js +110 -0
  203. package/dist/core/service-configuration/dynamic_setup/index.d.ts +10 -0
  204. package/dist/core/service-configuration/dynamic_setup/index.js +26 -0
  205. package/dist/core/service-configuration/dynamic_setup/phone-agent-setup.d.ts +111 -0
  206. package/dist/core/service-configuration/dynamic_setup/phone-agent-setup.js +56 -0
  207. package/dist/core/service-configuration/dynamic_setup/web-agent-setup.d.ts +113 -0
  208. package/dist/core/service-configuration/dynamic_setup/web-agent-setup.js +55 -0
  209. package/dist/core/service-configuration/index.d.ts +17 -0
  210. package/dist/core/service-configuration/index.js +33 -0
  211. package/dist/core/service-configuration/instruction-config.schema.d.ts +183 -0
  212. package/dist/core/service-configuration/instruction-config.schema.js +139 -0
  213. package/dist/core/service-configuration/interaction-channels.schema.d.ts +469 -0
  214. package/dist/core/service-configuration/interaction-channels.schema.js +390 -0
  215. package/dist/core/service-configuration/knowledge.schema.d.ts +107 -0
  216. package/dist/core/service-configuration/knowledge.schema.js +106 -0
  217. package/dist/core/service-configuration/phone-config.schema.d.ts +206 -0
  218. package/dist/core/service-configuration/phone-config.schema.js +121 -0
  219. package/dist/core/service-configuration/phone-number.schema.d.ts +236 -0
  220. package/dist/core/service-configuration/phone-number.schema.js +211 -0
  221. package/dist/core/service-configuration/provisioning-config.d.ts +429 -0
  222. package/dist/core/service-configuration/provisioning-config.js +307 -0
  223. package/dist/core/service-configuration/support-llm.d.ts +95 -0
  224. package/dist/core/service-configuration/support-llm.js +76 -0
  225. package/dist/core/service-configuration/voice-language.schema.d.ts +200 -0
  226. package/dist/core/service-configuration/voice-language.schema.js +166 -0
  227. package/dist/core/type-definitions/account-definitions.d.ts +82 -0
  228. package/dist/core/type-definitions/account-definitions.js +88 -0
  229. package/dist/core/type-definitions/business-definitions.d.ts +394 -0
  230. package/dist/core/type-definitions/business-definitions.js +447 -0
  231. package/dist/core/type-definitions/conversation.type.definition.d.ts +223 -0
  232. package/dist/core/type-definitions/conversation.type.definition.js +236 -0
  233. package/dist/core/type-definitions/display-order.d.ts +154 -0
  234. package/dist/core/type-definitions/display-order.js +154 -0
  235. package/dist/core/type-definitions/dynamic-fields/field-definition.schema.d.ts +165 -0
  236. package/dist/core/type-definitions/dynamic-fields/field-definition.schema.js +97 -0
  237. package/dist/core/type-definitions/dynamic-fields/field-types.d.ts +49 -0
  238. package/dist/core/type-definitions/dynamic-fields/field-types.js +104 -0
  239. package/dist/core/type-definitions/dynamic-fields/index.d.ts +9 -0
  240. package/dist/core/type-definitions/dynamic-fields/index.js +25 -0
  241. package/dist/core/type-definitions/index.d.ts +10 -0
  242. package/dist/core/type-definitions/index.js +26 -0
  243. package/dist/core/type-definitions/knowledge-definitions.d.ts +30 -0
  244. package/dist/core/type-definitions/knowledge-definitions.js +37 -0
  245. package/dist/core/type-definitions/service-config.definitions.d.ts +112 -0
  246. package/dist/core/type-definitions/service-config.definitions.js +135 -0
  247. package/dist/core/validators/channel-validation.d.ts +19 -0
  248. package/dist/core/validators/channel-validation.js +40 -0
  249. package/dist/core/validators/index.d.ts +5 -0
  250. package/dist/core/validators/index.js +21 -0
  251. package/dist/index.d.ts +6 -0
  252. package/dist/index.js +24 -0
  253. package/dist/request/index.d.ts +5 -0
  254. package/dist/request/index.js +21 -0
  255. package/dist/request/models/index.d.ts +6 -0
  256. package/dist/request/models/index.js +22 -0
  257. package/dist/request/models/paginated-quest.schema.d.ts +33 -0
  258. package/dist/request/models/paginated-quest.schema.js +35 -0
  259. package/dist/request/models/paginated-result.schema.d.ts +124 -0
  260. package/dist/request/models/paginated-result.schema.js +94 -0
  261. package/package.json +43 -0
@@ -0,0 +1,307 @@
1
+ import z from 'zod';
2
+ /**
3
+ * @fileoverview Conversation message schema definitions for chat and email messages.
4
+ *
5
+ * Message schemas define the structure of individual messages exchanged in conversations between users
6
+ * and AI agents. Supports multiple message types (chat, email) with distinct schemas for user-originated
7
+ * and agent-originated messages, enabling proper message threading, context tracking, and channel-specific
8
+ * formatting.
9
+ *
10
+ * @module conversation/conversation-message
11
+ */
12
+ /**
13
+ * Message type enum for distinguishing message senders.
14
+ *
15
+ * Identifies who sent a message in a conversation to enable proper message
16
+ * routing, formatting, and context tracking.
17
+ */
18
+ export declare enum MessageType {
19
+ /** Message sent by end user/customer */
20
+ USER = "user",
21
+ /** Message sent by AI agent */
22
+ AGENT = "assistant",
23
+ /** Message sent by human agent (live support) */
24
+ HUMAN_AGENT = "human_agent",
25
+ /** System-generated message (events, notifications) */
26
+ SYSTEM = "system"
27
+ }
28
+ /**
29
+ * System message event type enum.
30
+ *
31
+ * Identifies the type of system event that triggered a system message,
32
+ * used for handover tracking, agent status, and conversation transfers.
33
+ */
34
+ export declare enum SystemMessageEventType {
35
+ /** User or AI requested handover to human agent */
36
+ HANDOVER_REQUESTED = "handover_requested",
37
+ /** Human agent accepted the handover request */
38
+ HANDOVER_ACCEPTED = "handover_accepted",
39
+ /** Handover to human agent completed successfully */
40
+ HANDOVER_COMPLETED = "handover_completed",
41
+ /** Handover attempt failed */
42
+ HANDOVER_FAILED = "handover_failed",
43
+ /** Human agent joined the conversation */
44
+ AGENT_JOINED = "agent_joined",
45
+ /** Human agent left the conversation */
46
+ AGENT_LEFT = "agent_left",
47
+ /** Conversation transferred to another agent or queue */
48
+ CONVERSATION_TRANSFERRED = "conversation_transferred"
49
+ }
50
+ /**
51
+ * Base chat message schema.
52
+ *
53
+ * Foundation schema for all chat-based messages containing core fields shared by both user and
54
+ * assistant messages. Extended by UserChatMessageSchema and AssistantChatMessageSchema with
55
+ * role-specific identifiers for message threading and conversation flow tracking.
56
+ *
57
+ * @remarks
58
+ * **Architecture Context:**
59
+ * - **Extended By**: UserChatMessageSchema, AssistantChatMessageSchema for role-specific messages
60
+ * - **Relationship**: N:1 - Multiple messages belong to one conversation (via conversation_config_id)
61
+ * - **Storage**: Stored in conversation message arrays and separate message collections
62
+ * - **LLM Context**: llm_conversation_id enables multi-turn context tracking with LLM providers
63
+ *
64
+ * **Message Flow:**
65
+ * - User sends message → UserChatMessage created → Agent processes → AssistantChatMessage generated
66
+ * - Messages linked via user_message_id and assistant_message_id for threading
67
+ */
68
+ export declare const BaseChatMessageSchema: z.ZodObject<{
69
+ conversation_config_id: z.ZodString;
70
+ message: z.ZodString;
71
+ timestamp: z.ZodDefault<z.ZodNumber>;
72
+ llm_conversation_id: z.ZodNullable<z.ZodOptional<z.ZodString>>;
73
+ }, z.core.$strip>;
74
+ /**
75
+ * Base email message schema extending chat message with email-specific fields.
76
+ *
77
+ * Extends BaseChatMessageSchema with email-specific attributes including subject line and email
78
+ * identifier flag. Used as foundation for user and assistant email messages in email-based
79
+ * conversation channels.
80
+ *
81
+ * @remarks
82
+ * **Architecture Context:**
83
+ * - **Extends**: BaseChatMessageSchema with email-specific fields
84
+ * - **Extended By**: UserEmailMessageSchema, AssistantEmailMessageSchema
85
+ * - **Channel**: Used exclusively for EMAIL conversation type
86
+ * - **Threading**: Subject line enables email thread grouping and conversation continuity
87
+ *
88
+ * **Email Features:**
89
+ * - Subject line for email clients and threading
90
+ * - isEmail flag distinguishes email messages from chat messages in unified message stores
91
+ */
92
+ export declare const BaseEmailMessageSchema: z.ZodObject<{
93
+ conversation_config_id: z.ZodString;
94
+ message: z.ZodString;
95
+ timestamp: z.ZodDefault<z.ZodNumber>;
96
+ llm_conversation_id: z.ZodNullable<z.ZodOptional<z.ZodString>>;
97
+ subject: z.ZodString;
98
+ isEmail: z.ZodDefault<z.ZodLiteral<true>>;
99
+ }, z.core.$strip>;
100
+ /**
101
+ * User chat message schema.
102
+ *
103
+ * Represents a message sent by a user/customer in a chat conversation. Contains user-specific
104
+ * identifiers for message threading and links to the previous assistant message to maintain
105
+ * conversation context and flow.
106
+ *
107
+ * @remarks
108
+ * **Architecture Context:**
109
+ * - **Extends**: BaseChatMessageSchema with user-specific fields
110
+ * - **Message Type**: Always 'user' (MessageType.USER)
111
+ * - **Threading**: Links to previous assistant message via last_assistant_message_id
112
+ * - **Flow**: User message → Agent processes → AssistantChatMessage generated
113
+ *
114
+ * **Message Threading:**
115
+ * - user_message_id: Unique identifier for this user message
116
+ * - last_assistant_message_id: References the assistant's previous message being responded to
117
+ * - Enables tracking conversation turns and maintaining context
118
+ */
119
+ export declare const UserChatMessageSchema: z.ZodObject<{
120
+ conversation_config_id: z.ZodString;
121
+ message: z.ZodString;
122
+ timestamp: z.ZodDefault<z.ZodNumber>;
123
+ llm_conversation_id: z.ZodNullable<z.ZodOptional<z.ZodString>>;
124
+ message_type: z.ZodDefault<z.ZodLiteral<MessageType.USER>>;
125
+ user_message_id: z.ZodNullable<z.ZodOptional<z.ZodString>>;
126
+ last_assistant_message_id: z.ZodOptional<z.ZodString>;
127
+ }, z.core.$strip>;
128
+ /**
129
+ * Assistant chat message schema.
130
+ *
131
+ * Represents a message generated by the AI agent in a chat conversation. Contains agent-specific
132
+ * identifiers and links to the user message being responded to, enabling proper conversation
133
+ * threading and context tracking.
134
+ *
135
+ * @remarks
136
+ * **Architecture Context:**
137
+ * - **Extends**: BaseChatMessageSchema with assistant-specific fields
138
+ * - **Message Type**: Always 'assistant' (MessageType.AGENT)
139
+ * - **Threading**: Links to user message being responded to via last_user_message_id
140
+ * - **Flow**: User message received → Agent generates → AssistantChatMessage created
141
+ *
142
+ * **Message Threading:**
143
+ * - assistant_message_id: Required unique identifier for this assistant message
144
+ * - last_user_message_id: References the user message being responded to
145
+ * - Enables conversation turn tracking and response latency measurement
146
+ */
147
+ export declare const AssistantChatMessageSchema: z.ZodObject<{
148
+ conversation_config_id: z.ZodString;
149
+ message: z.ZodString;
150
+ timestamp: z.ZodDefault<z.ZodNumber>;
151
+ llm_conversation_id: z.ZodNullable<z.ZodOptional<z.ZodString>>;
152
+ message_type: z.ZodDefault<z.ZodLiteral<MessageType.AGENT>>;
153
+ assistant_message_id: z.ZodString;
154
+ last_user_message_id: z.ZodOptional<z.ZodString>;
155
+ }, z.core.$strip>;
156
+ /**
157
+ * User email message schema.
158
+ *
159
+ * Represents an email message sent by a user/customer. Extends base email schema with user-specific
160
+ * fields and optional provider message ID for integration with external email services (Gmail, Outlook, etc.).
161
+ *
162
+ * @remarks
163
+ * **Architecture Context:**
164
+ * - **Extends**: BaseEmailMessageSchema with user-specific fields
165
+ * - **Message Type**: Always 'user' (MessageType.USER)
166
+ * - **Channel**: Used exclusively for EMAIL conversation type
167
+ * - **Provider Integration**: Links to external email service message IDs
168
+ *
169
+ * **Email Integration:**
170
+ * - provider_message_id enables tracking emails across platforms
171
+ * - Supports Gmail API, Outlook Graph API, SendGrid, etc.
172
+ * - Used for reply-to threading and email service synchronization
173
+ */
174
+ export declare const UserEmailMessageSchema: z.ZodObject<{
175
+ conversation_config_id: z.ZodString;
176
+ message: z.ZodString;
177
+ timestamp: z.ZodDefault<z.ZodNumber>;
178
+ llm_conversation_id: z.ZodNullable<z.ZodOptional<z.ZodString>>;
179
+ subject: z.ZodString;
180
+ isEmail: z.ZodDefault<z.ZodLiteral<true>>;
181
+ message_type: z.ZodDefault<z.ZodLiteral<MessageType.USER>>;
182
+ provider_message_id: z.ZodNullable<z.ZodOptional<z.ZodString>>;
183
+ }, z.core.$strip>;
184
+ /**
185
+ * Assistant email message schema.
186
+ *
187
+ * Represents an email message generated by the AI agent in response to a user email. Extends base
188
+ * email schema with assistant message type, used for automated email responses and email-based
189
+ * customer support interactions.
190
+ *
191
+ * @remarks
192
+ * **Architecture Context:**
193
+ * - **Extends**: BaseEmailMessageSchema with assistant-specific fields
194
+ * - **Message Type**: Always 'assistant' (MessageType.AGENT)
195
+ * - **Channel**: Used exclusively for EMAIL conversation type
196
+ * - **Use Cases**: Automated customer support replies, FAQ responses, ticket acknowledgments
197
+ *
198
+ * **Email Response Features:**
199
+ * - Inherits subject line from BaseEmailMessageSchema for thread continuity
200
+ * - Agent-generated content formatted for email clients
201
+ * - Supports HTML formatting and attachments via message content
202
+ */
203
+ export declare const AssistantEmailMessageSchema: z.ZodObject<{
204
+ conversation_config_id: z.ZodString;
205
+ message: z.ZodString;
206
+ timestamp: z.ZodDefault<z.ZodNumber>;
207
+ llm_conversation_id: z.ZodNullable<z.ZodOptional<z.ZodString>>;
208
+ subject: z.ZodString;
209
+ isEmail: z.ZodDefault<z.ZodLiteral<true>>;
210
+ message_type: z.ZodDefault<z.ZodLiteral<MessageType.AGENT>>;
211
+ }, z.core.$strip>;
212
+ /**
213
+ * Human agent chat message schema.
214
+ *
215
+ * Represents a message sent by a human support agent in a chat conversation.
216
+ * Used when conversations are handed over from AI to live agents for complex
217
+ * issue resolution or customer preference.
218
+ *
219
+ * @remarks
220
+ * **Architecture Context:**
221
+ * - **Extends**: BaseChatMessageSchema with human agent-specific fields
222
+ * - **Message Type**: Always 'human_agent' (MessageType.HUMAN_AGENT)
223
+ * - **Triggered By**: Handover from AI agent or direct human agent assignment
224
+ * - **Session Tracking**: agent_session_id links to workforce management system
225
+ *
226
+ * @typedef {Object} HumanAgentChatMessage
227
+ * @property {string} message_type - Fixed to 'human_agent'
228
+ * @property {string} agent_message_id - Unique identifier for this human agent message
229
+ * @property {string} agent_session_id - Agent workforce session ID for tracking
230
+ * @property {string} [last_user_message_id] - ID of the user message being responded to
231
+ */
232
+ export declare const HumanAgentChatMessageSchema: z.ZodObject<{
233
+ conversation_config_id: z.ZodString;
234
+ message: z.ZodString;
235
+ timestamp: z.ZodDefault<z.ZodNumber>;
236
+ llm_conversation_id: z.ZodNullable<z.ZodOptional<z.ZodString>>;
237
+ message_type: z.ZodDefault<z.ZodLiteral<MessageType.HUMAN_AGENT>>;
238
+ agent_message_id: z.ZodString;
239
+ agent_session_id: z.ZodString;
240
+ last_user_message_id: z.ZodOptional<z.ZodString>;
241
+ }, z.core.$strip>;
242
+ /**
243
+ * Human agent email message schema.
244
+ *
245
+ * Represents an email message sent by a human support agent. Used when email
246
+ * conversations require human intervention for complex issues, escalations,
247
+ * or sensitive customer interactions.
248
+ *
249
+ * @remarks
250
+ * **Architecture Context:**
251
+ * - **Extends**: BaseEmailMessageSchema with human agent-specific fields
252
+ * - **Message Type**: Always 'human_agent' (MessageType.HUMAN_AGENT)
253
+ * - **Channel**: Used exclusively for EMAIL conversation type
254
+ * - **Session Tracking**: agent_session_id links to workforce management system
255
+ *
256
+ * @typedef {Object} HumanAgentEmailMessage
257
+ * @property {string} message_type - Fixed to 'human_agent'
258
+ * @property {string} agent_session_id - Agent workforce session ID
259
+ */
260
+ export declare const HumanAgentEmailMessageSchema: z.ZodObject<{
261
+ conversation_config_id: z.ZodString;
262
+ message: z.ZodString;
263
+ timestamp: z.ZodDefault<z.ZodNumber>;
264
+ llm_conversation_id: z.ZodNullable<z.ZodOptional<z.ZodString>>;
265
+ subject: z.ZodString;
266
+ isEmail: z.ZodDefault<z.ZodLiteral<true>>;
267
+ message_type: z.ZodDefault<z.ZodLiteral<MessageType.HUMAN_AGENT>>;
268
+ agent_session_id: z.ZodString;
269
+ }, z.core.$strip>;
270
+ /**
271
+ * System message schema.
272
+ *
273
+ * Represents system-generated messages for tracking conversation events such as
274
+ * handovers, agent joins/leaves, and transfers. Not directly visible to users
275
+ * but recorded for audit trails and conversation state tracking.
276
+ *
277
+ * @remarks
278
+ * **Architecture Context:**
279
+ * - **Extends**: BaseChatMessageSchema with system-specific fields
280
+ * - **Message Type**: Always 'system' (MessageType.SYSTEM)
281
+ * - **Purpose**: Audit trail, conversation state tracking, event logging
282
+ * - **Visibility**: Typically hidden from end users, visible in admin dashboards
283
+ *
284
+ * @typedef {Object} SystemMessage
285
+ * @property {string} message_type - Fixed to 'system'
286
+ * @property {string} system_message_id - Unique identifier for this system message
287
+ * @property {SystemMessageEventType} event_type - Type of system event
288
+ * @property {Object} [metadata] - Additional event-specific metadata
289
+ */
290
+ export declare const SystemMessageSchema: z.ZodObject<{
291
+ conversation_config_id: z.ZodString;
292
+ message: z.ZodString;
293
+ timestamp: z.ZodDefault<z.ZodNumber>;
294
+ llm_conversation_id: z.ZodNullable<z.ZodOptional<z.ZodString>>;
295
+ message_type: z.ZodDefault<z.ZodLiteral<MessageType.SYSTEM>>;
296
+ system_message_id: z.ZodString;
297
+ event_type: z.ZodEnum<typeof SystemMessageEventType>;
298
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
299
+ }, z.core.$strip>;
300
+ export type UserChatMessage = z.infer<typeof UserChatMessageSchema>;
301
+ export type AssistantChatMessage = z.infer<typeof AssistantChatMessageSchema>;
302
+ export type UserEmailMessage = z.infer<typeof UserEmailMessageSchema>;
303
+ export type AssistantEmailMessage = z.infer<typeof AssistantEmailMessageSchema>;
304
+ export type HumanAgentChatMessage = z.infer<typeof HumanAgentChatMessageSchema>;
305
+ export type HumanAgentEmailMessage = z.infer<typeof HumanAgentEmailMessageSchema>;
306
+ export type SystemMessage = z.infer<typeof SystemMessageSchema>;
307
+ export type ChatMessage = UserChatMessage | AssistantChatMessage | UserEmailMessage | AssistantEmailMessage | HumanAgentChatMessage | HumanAgentEmailMessage | SystemMessage;
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SystemMessageSchema = exports.HumanAgentEmailMessageSchema = exports.HumanAgentChatMessageSchema = exports.AssistantEmailMessageSchema = exports.UserEmailMessageSchema = exports.AssistantChatMessageSchema = exports.UserChatMessageSchema = exports.BaseEmailMessageSchema = exports.BaseChatMessageSchema = exports.SystemMessageEventType = exports.MessageType = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ /**
9
+ * @fileoverview Conversation message schema definitions for chat and email messages.
10
+ *
11
+ * Message schemas define the structure of individual messages exchanged in conversations between users
12
+ * and AI agents. Supports multiple message types (chat, email) with distinct schemas for user-originated
13
+ * and agent-originated messages, enabling proper message threading, context tracking, and channel-specific
14
+ * formatting.
15
+ *
16
+ * @module conversation/conversation-message
17
+ */
18
+ /**
19
+ * Message type enum for distinguishing message senders.
20
+ *
21
+ * Identifies who sent a message in a conversation to enable proper message
22
+ * routing, formatting, and context tracking.
23
+ */
24
+ var MessageType;
25
+ (function (MessageType) {
26
+ /** Message sent by end user/customer */
27
+ MessageType["USER"] = "user";
28
+ /** Message sent by AI agent */
29
+ MessageType["AGENT"] = "assistant";
30
+ /** Message sent by human agent (live support) */
31
+ MessageType["HUMAN_AGENT"] = "human_agent";
32
+ /** System-generated message (events, notifications) */
33
+ MessageType["SYSTEM"] = "system";
34
+ })(MessageType || (exports.MessageType = MessageType = {}));
35
+ /**
36
+ * System message event type enum.
37
+ *
38
+ * Identifies the type of system event that triggered a system message,
39
+ * used for handover tracking, agent status, and conversation transfers.
40
+ */
41
+ var SystemMessageEventType;
42
+ (function (SystemMessageEventType) {
43
+ /** User or AI requested handover to human agent */
44
+ SystemMessageEventType["HANDOVER_REQUESTED"] = "handover_requested";
45
+ /** Human agent accepted the handover request */
46
+ SystemMessageEventType["HANDOVER_ACCEPTED"] = "handover_accepted";
47
+ /** Handover to human agent completed successfully */
48
+ SystemMessageEventType["HANDOVER_COMPLETED"] = "handover_completed";
49
+ /** Handover attempt failed */
50
+ SystemMessageEventType["HANDOVER_FAILED"] = "handover_failed";
51
+ /** Human agent joined the conversation */
52
+ SystemMessageEventType["AGENT_JOINED"] = "agent_joined";
53
+ /** Human agent left the conversation */
54
+ SystemMessageEventType["AGENT_LEFT"] = "agent_left";
55
+ /** Conversation transferred to another agent or queue */
56
+ SystemMessageEventType["CONVERSATION_TRANSFERRED"] = "conversation_transferred";
57
+ })(SystemMessageEventType || (exports.SystemMessageEventType = SystemMessageEventType = {}));
58
+ /**
59
+ * Base chat message schema.
60
+ *
61
+ * Foundation schema for all chat-based messages containing core fields shared by both user and
62
+ * assistant messages. Extended by UserChatMessageSchema and AssistantChatMessageSchema with
63
+ * role-specific identifiers for message threading and conversation flow tracking.
64
+ *
65
+ * @remarks
66
+ * **Architecture Context:**
67
+ * - **Extended By**: UserChatMessageSchema, AssistantChatMessageSchema for role-specific messages
68
+ * - **Relationship**: N:1 - Multiple messages belong to one conversation (via conversation_config_id)
69
+ * - **Storage**: Stored in conversation message arrays and separate message collections
70
+ * - **LLM Context**: llm_conversation_id enables multi-turn context tracking with LLM providers
71
+ *
72
+ * **Message Flow:**
73
+ * - User sends message → UserChatMessage created → Agent processes → AssistantChatMessage generated
74
+ * - Messages linked via user_message_id and assistant_message_id for threading
75
+ */
76
+ exports.BaseChatMessageSchema = zod_1.default.object({
77
+ conversation_config_id: zod_1.default.string().describe("ID of the conversation configuration this message belongs to (N:1 relationship, references ServiceConversationConfig for conversation context and metadata)"),
78
+ message: zod_1.default.string().describe("Text content of the message sent by user or generated by agent, may include plain text or markdown formatting depending on channel capabilities"),
79
+ timestamp: zod_1.default.number().default(Date.now()).describe("Unix timestamp in milliseconds when the message was created and sent (default: current time, used for chronological ordering and latency analysis)"),
80
+ llm_conversation_id: zod_1.default.string().optional().nullable().describe("LLM provider conversation thread ID for multi-turn context tracking (OpenAI thread ID, Anthropic conversation ID) enabling context retention across messages"),
81
+ });
82
+ /**
83
+ * Base email message schema extending chat message with email-specific fields.
84
+ *
85
+ * Extends BaseChatMessageSchema with email-specific attributes including subject line and email
86
+ * identifier flag. Used as foundation for user and assistant email messages in email-based
87
+ * conversation channels.
88
+ *
89
+ * @remarks
90
+ * **Architecture Context:**
91
+ * - **Extends**: BaseChatMessageSchema with email-specific fields
92
+ * - **Extended By**: UserEmailMessageSchema, AssistantEmailMessageSchema
93
+ * - **Channel**: Used exclusively for EMAIL conversation type
94
+ * - **Threading**: Subject line enables email thread grouping and conversation continuity
95
+ *
96
+ * **Email Features:**
97
+ * - Subject line for email clients and threading
98
+ * - isEmail flag distinguishes email messages from chat messages in unified message stores
99
+ */
100
+ exports.BaseEmailMessageSchema = exports.BaseChatMessageSchema.safeExtend({
101
+ subject: zod_1.default.string().describe("Subject line of the email message used in email clients and for email thread grouping, typically maintained across conversation for proper threading"),
102
+ isEmail: zod_1.default.literal(true).default(true).describe("Flag indicating this is an email message (always true), distinguishes email messages from chat messages in unified message collections"),
103
+ });
104
+ /**
105
+ * User chat message schema.
106
+ *
107
+ * Represents a message sent by a user/customer in a chat conversation. Contains user-specific
108
+ * identifiers for message threading and links to the previous assistant message to maintain
109
+ * conversation context and flow.
110
+ *
111
+ * @remarks
112
+ * **Architecture Context:**
113
+ * - **Extends**: BaseChatMessageSchema with user-specific fields
114
+ * - **Message Type**: Always 'user' (MessageType.USER)
115
+ * - **Threading**: Links to previous assistant message via last_assistant_message_id
116
+ * - **Flow**: User message → Agent processes → AssistantChatMessage generated
117
+ *
118
+ * **Message Threading:**
119
+ * - user_message_id: Unique identifier for this user message
120
+ * - last_assistant_message_id: References the assistant's previous message being responded to
121
+ * - Enables tracking conversation turns and maintaining context
122
+ */
123
+ exports.UserChatMessageSchema = exports.BaseChatMessageSchema.safeExtend({
124
+ message_type: zod_1.default.literal(MessageType.USER).default(MessageType.USER).describe("Message type identifier fixed to 'user' indicating this message was sent by the customer/end-user"),
125
+ user_message_id: zod_1.default.string().optional().nullable().describe("Unique identifier for this user message (typically UUID) used for message threading, deduplication, and reference in assistant responses"),
126
+ last_assistant_message_id: zod_1.default.string().optional().describe("ID of the last assistant message this user message is responding to, creates bidirectional message threading for conversation flow tracking"),
127
+ });
128
+ /**
129
+ * Assistant chat message schema.
130
+ *
131
+ * Represents a message generated by the AI agent in a chat conversation. Contains agent-specific
132
+ * identifiers and links to the user message being responded to, enabling proper conversation
133
+ * threading and context tracking.
134
+ *
135
+ * @remarks
136
+ * **Architecture Context:**
137
+ * - **Extends**: BaseChatMessageSchema with assistant-specific fields
138
+ * - **Message Type**: Always 'assistant' (MessageType.AGENT)
139
+ * - **Threading**: Links to user message being responded to via last_user_message_id
140
+ * - **Flow**: User message received → Agent generates → AssistantChatMessage created
141
+ *
142
+ * **Message Threading:**
143
+ * - assistant_message_id: Required unique identifier for this assistant message
144
+ * - last_user_message_id: References the user message being responded to
145
+ * - Enables conversation turn tracking and response latency measurement
146
+ */
147
+ exports.AssistantChatMessageSchema = exports.BaseChatMessageSchema.safeExtend({
148
+ message_type: zod_1.default.literal(MessageType.AGENT).default(MessageType.AGENT).describe("Message type identifier fixed to 'assistant' indicating this message was generated by the AI agent"),
149
+ assistant_message_id: zod_1.default.string().describe("Required unique identifier for this assistant message (typically UUID) used for message threading, user response linking, and performance tracking"),
150
+ last_user_message_id: zod_1.default.string().optional().describe("ID of the user message this assistant message is responding to, creates bidirectional message threading and enables response latency measurement"),
151
+ });
152
+ /**
153
+ * User email message schema.
154
+ *
155
+ * Represents an email message sent by a user/customer. Extends base email schema with user-specific
156
+ * fields and optional provider message ID for integration with external email services (Gmail, Outlook, etc.).
157
+ *
158
+ * @remarks
159
+ * **Architecture Context:**
160
+ * - **Extends**: BaseEmailMessageSchema with user-specific fields
161
+ * - **Message Type**: Always 'user' (MessageType.USER)
162
+ * - **Channel**: Used exclusively for EMAIL conversation type
163
+ * - **Provider Integration**: Links to external email service message IDs
164
+ *
165
+ * **Email Integration:**
166
+ * - provider_message_id enables tracking emails across platforms
167
+ * - Supports Gmail API, Outlook Graph API, SendGrid, etc.
168
+ * - Used for reply-to threading and email service synchronization
169
+ */
170
+ exports.UserEmailMessageSchema = exports.BaseEmailMessageSchema.safeExtend({
171
+ message_type: zod_1.default.literal(MessageType.USER).default(MessageType.USER).describe("Message type identifier fixed to 'user' indicating this email was sent by the customer/end-user"),
172
+ provider_message_id: zod_1.default.string().optional().nullable().describe("Provider-specific email message ID from external email services (Gmail message ID, Outlook message ID, SendGrid message ID) for email tracking and reply threading"),
173
+ });
174
+ /**
175
+ * Assistant email message schema.
176
+ *
177
+ * Represents an email message generated by the AI agent in response to a user email. Extends base
178
+ * email schema with assistant message type, used for automated email responses and email-based
179
+ * customer support interactions.
180
+ *
181
+ * @remarks
182
+ * **Architecture Context:**
183
+ * - **Extends**: BaseEmailMessageSchema with assistant-specific fields
184
+ * - **Message Type**: Always 'assistant' (MessageType.AGENT)
185
+ * - **Channel**: Used exclusively for EMAIL conversation type
186
+ * - **Use Cases**: Automated customer support replies, FAQ responses, ticket acknowledgments
187
+ *
188
+ * **Email Response Features:**
189
+ * - Inherits subject line from BaseEmailMessageSchema for thread continuity
190
+ * - Agent-generated content formatted for email clients
191
+ * - Supports HTML formatting and attachments via message content
192
+ */
193
+ exports.AssistantEmailMessageSchema = exports.BaseEmailMessageSchema.safeExtend({
194
+ message_type: zod_1.default.literal(MessageType.AGENT).default(MessageType.AGENT).describe("Message type identifier fixed to 'assistant' indicating this email was generated by the AI agent"),
195
+ });
196
+ // ============================================================================
197
+ // HUMAN AGENT MESSAGE SCHEMAS
198
+ // ============================================================================
199
+ /**
200
+ * Human agent chat message schema.
201
+ *
202
+ * Represents a message sent by a human support agent in a chat conversation.
203
+ * Used when conversations are handed over from AI to live agents for complex
204
+ * issue resolution or customer preference.
205
+ *
206
+ * @remarks
207
+ * **Architecture Context:**
208
+ * - **Extends**: BaseChatMessageSchema with human agent-specific fields
209
+ * - **Message Type**: Always 'human_agent' (MessageType.HUMAN_AGENT)
210
+ * - **Triggered By**: Handover from AI agent or direct human agent assignment
211
+ * - **Session Tracking**: agent_session_id links to workforce management system
212
+ *
213
+ * @typedef {Object} HumanAgentChatMessage
214
+ * @property {string} message_type - Fixed to 'human_agent'
215
+ * @property {string} agent_message_id - Unique identifier for this human agent message
216
+ * @property {string} agent_session_id - Agent workforce session ID for tracking
217
+ * @property {string} [last_user_message_id] - ID of the user message being responded to
218
+ */
219
+ exports.HumanAgentChatMessageSchema = exports.BaseChatMessageSchema.safeExtend({
220
+ message_type: zod_1.default.literal(MessageType.HUMAN_AGENT).default(MessageType.HUMAN_AGENT).describe("Message type identifier fixed to 'human_agent' indicating this message was sent by a human support agent"),
221
+ agent_message_id: zod_1.default.string().describe("Unique identifier for this human agent message (typically UUID) used for message threading and response tracking"),
222
+ agent_session_id: zod_1.default.string().describe("Agent workforce session ID linking this message to the human agent's active support session for workload tracking and analytics"),
223
+ last_user_message_id: zod_1.default.string().optional().describe("ID of the user message this human agent message is responding to, creates bidirectional message threading"),
224
+ });
225
+ /**
226
+ * Human agent email message schema.
227
+ *
228
+ * Represents an email message sent by a human support agent. Used when email
229
+ * conversations require human intervention for complex issues, escalations,
230
+ * or sensitive customer interactions.
231
+ *
232
+ * @remarks
233
+ * **Architecture Context:**
234
+ * - **Extends**: BaseEmailMessageSchema with human agent-specific fields
235
+ * - **Message Type**: Always 'human_agent' (MessageType.HUMAN_AGENT)
236
+ * - **Channel**: Used exclusively for EMAIL conversation type
237
+ * - **Session Tracking**: agent_session_id links to workforce management system
238
+ *
239
+ * @typedef {Object} HumanAgentEmailMessage
240
+ * @property {string} message_type - Fixed to 'human_agent'
241
+ * @property {string} agent_session_id - Agent workforce session ID
242
+ */
243
+ exports.HumanAgentEmailMessageSchema = exports.BaseEmailMessageSchema.safeExtend({
244
+ message_type: zod_1.default.literal(MessageType.HUMAN_AGENT).default(MessageType.HUMAN_AGENT).describe("Message type identifier fixed to 'human_agent' indicating this email was sent by a human support agent"),
245
+ agent_session_id: zod_1.default.string().describe("Agent workforce session ID linking this email to the human agent's active support session"),
246
+ });
247
+ // ============================================================================
248
+ // SYSTEM MESSAGE SCHEMA
249
+ // ============================================================================
250
+ /**
251
+ * System message schema.
252
+ *
253
+ * Represents system-generated messages for tracking conversation events such as
254
+ * handovers, agent joins/leaves, and transfers. Not directly visible to users
255
+ * but recorded for audit trails and conversation state tracking.
256
+ *
257
+ * @remarks
258
+ * **Architecture Context:**
259
+ * - **Extends**: BaseChatMessageSchema with system-specific fields
260
+ * - **Message Type**: Always 'system' (MessageType.SYSTEM)
261
+ * - **Purpose**: Audit trail, conversation state tracking, event logging
262
+ * - **Visibility**: Typically hidden from end users, visible in admin dashboards
263
+ *
264
+ * @typedef {Object} SystemMessage
265
+ * @property {string} message_type - Fixed to 'system'
266
+ * @property {string} system_message_id - Unique identifier for this system message
267
+ * @property {SystemMessageEventType} event_type - Type of system event
268
+ * @property {Object} [metadata] - Additional event-specific metadata
269
+ */
270
+ exports.SystemMessageSchema = exports.BaseChatMessageSchema.safeExtend({
271
+ message_type: zod_1.default.literal(MessageType.SYSTEM).default(MessageType.SYSTEM).describe("Message type identifier fixed to 'system' indicating this is a system-generated event message"),
272
+ system_message_id: zod_1.default.string().describe("Unique identifier for this system message (typically UUID) used for event tracking and audit trail reference"),
273
+ event_type: zod_1.default.enum(SystemMessageEventType).describe("Type of system event that triggered this message (handover, agent status, transfer events)"),
274
+ metadata: zod_1.default.record(zod_1.default.string(), zod_1.default.unknown()).optional().describe("Additional event-specific metadata as key-value pairs (agent ID, transfer reason, queue name, etc.)"),
275
+ });
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview Central export point for conversation schemas.
3
+ * @module conversation
4
+ */
5
+ export * from './conversation-config.schema';
6
+ export * from './conversation-message.schema';
7
+ export * from './translation-config.schema';
8
+ export * from './translation-conversation.schema';
9
+ export * from './outbound-call.schema';
10
+ export * from './outbound-email.schema';
11
+ export * from './outbound-sms.schema';
12
+ export * from './outbound-template.schema';
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Central export point for conversation schemas.
4
+ * @module conversation
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ __exportStar(require("./conversation-config.schema"), exports);
22
+ __exportStar(require("./conversation-message.schema"), exports);
23
+ __exportStar(require("./translation-config.schema"), exports);
24
+ __exportStar(require("./translation-conversation.schema"), exports);
25
+ __exportStar(require("./outbound-call.schema"), exports);
26
+ __exportStar(require("./outbound-email.schema"), exports);
27
+ __exportStar(require("./outbound-sms.schema"), exports);
28
+ __exportStar(require("./outbound-template.schema"), exports);