@botonic/plugin-flow-builder 0.57.0-rslib-esm.1 → 0.57.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 (906) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/action/ai-agent-from-user-input.d.ts +3 -0
  3. package/lib/cjs/action/ai-agent-from-user-input.js +38 -0
  4. package/lib/cjs/action/ai-agent-from-user-input.js.map +1 -0
  5. package/lib/cjs/action/context.d.ts +11 -0
  6. package/lib/cjs/action/context.js +17 -0
  7. package/lib/cjs/action/context.js.map +1 -0
  8. package/lib/cjs/action/fallback.d.ts +3 -0
  9. package/lib/cjs/action/fallback.js +36 -0
  10. package/lib/cjs/action/fallback.js.map +1 -0
  11. package/lib/cjs/action/first-interaction.d.ts +3 -0
  12. package/lib/cjs/action/first-interaction.js +93 -0
  13. package/lib/cjs/action/first-interaction.js.map +1 -0
  14. package/lib/cjs/action/get-contents.d.ts +3 -0
  15. package/lib/cjs/action/get-contents.js +44 -0
  16. package/lib/cjs/action/get-contents.js.map +1 -0
  17. package/lib/cjs/action/index.d.ts +25 -0
  18. package/lib/cjs/action/index.js +95 -0
  19. package/lib/cjs/action/index.js.map +1 -0
  20. package/lib/cjs/action/payload.d.ts +3 -0
  21. package/lib/cjs/action/payload.js +74 -0
  22. package/lib/cjs/action/payload.js.map +1 -0
  23. package/lib/cjs/api.d.ts +45 -0
  24. package/lib/cjs/api.js +227 -0
  25. package/lib/cjs/api.js.map +1 -0
  26. package/lib/cjs/bot-context-manager.d.ts +17 -0
  27. package/lib/cjs/bot-context-manager.js +93 -0
  28. package/lib/cjs/bot-context-manager.js.map +1 -0
  29. package/lib/cjs/constants.d.ts +14 -0
  30. package/lib/cjs/constants.js +20 -0
  31. package/lib/cjs/constants.js.map +1 -0
  32. package/lib/cjs/content-fields/contact-reasons-conditional-matcher.d.ts +4 -0
  33. package/lib/cjs/content-fields/contact-reasons-conditional-matcher.js +12 -0
  34. package/lib/cjs/content-fields/contact-reasons-conditional-matcher.js.map +1 -0
  35. package/lib/cjs/content-fields/content-fields-base.d.ts +20 -0
  36. package/lib/cjs/content-fields/content-fields-base.js +74 -0
  37. package/lib/cjs/content-fields/content-fields-base.js.map +1 -0
  38. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +15 -0
  39. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +71 -0
  40. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +1 -0
  41. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +9 -0
  42. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js +58 -0
  43. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +1 -0
  44. package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +17 -0
  45. package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js +79 -0
  46. package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js.map +1 -0
  47. package/lib/cjs/content-fields/flow-ai-agent-base.d.ts +25 -0
  48. package/lib/cjs/content-fields/flow-ai-agent-base.js +97 -0
  49. package/lib/cjs/content-fields/flow-ai-agent-base.js.map +1 -0
  50. package/lib/cjs/content-fields/flow-ai-agent-router.d.ts +21 -0
  51. package/lib/cjs/content-fields/flow-ai-agent-router.js +126 -0
  52. package/lib/cjs/content-fields/flow-ai-agent-router.js.map +1 -0
  53. package/lib/cjs/content-fields/flow-ai-agent.d.ts +17 -0
  54. package/lib/cjs/content-fields/flow-ai-agent.js +65 -0
  55. package/lib/cjs/content-fields/flow-ai-agent.js.map +1 -0
  56. package/lib/cjs/content-fields/flow-bot-action.d.ts +14 -0
  57. package/lib/cjs/content-fields/flow-bot-action.js +45 -0
  58. package/lib/cjs/content-fields/flow-bot-action.js.map +1 -0
  59. package/lib/cjs/content-fields/flow-button.d.ts +31 -0
  60. package/lib/cjs/content-fields/flow-button.js +86 -0
  61. package/lib/cjs/content-fields/flow-button.js.map +1 -0
  62. package/lib/cjs/content-fields/flow-capture-user-input.d.ts +14 -0
  63. package/lib/cjs/content-fields/flow-capture-user-input.js +45 -0
  64. package/lib/cjs/content-fields/flow-capture-user-input.js.map +1 -0
  65. package/lib/cjs/content-fields/flow-carousel.d.ts +22 -0
  66. package/lib/cjs/content-fields/flow-carousel.js +152 -0
  67. package/lib/cjs/content-fields/flow-carousel.js.map +1 -0
  68. package/lib/cjs/content-fields/flow-channel-conditional.d.ts +14 -0
  69. package/lib/cjs/content-fields/flow-channel-conditional.js +57 -0
  70. package/lib/cjs/content-fields/flow-channel-conditional.js.map +1 -0
  71. package/lib/cjs/content-fields/flow-contact-reasons-conditional.d.ts +14 -0
  72. package/lib/cjs/content-fields/flow-contact-reasons-conditional.js +65 -0
  73. package/lib/cjs/content-fields/flow-contact-reasons-conditional.js.map +1 -0
  74. package/lib/cjs/content-fields/flow-country-conditional.d.ts +13 -0
  75. package/lib/cjs/content-fields/flow-country-conditional.js +59 -0
  76. package/lib/cjs/content-fields/flow-country-conditional.js.map +1 -0
  77. package/lib/cjs/content-fields/flow-custom-conditional.d.ts +17 -0
  78. package/lib/cjs/content-fields/flow-custom-conditional.js +89 -0
  79. package/lib/cjs/content-fields/flow-custom-conditional.js.map +1 -0
  80. package/lib/cjs/content-fields/flow-do-nothing.d.ts +9 -0
  81. package/lib/cjs/content-fields/flow-do-nothing.js +27 -0
  82. package/lib/cjs/content-fields/flow-do-nothing.js.map +1 -0
  83. package/lib/cjs/content-fields/flow-element.d.ts +22 -0
  84. package/lib/cjs/content-fields/flow-element.js +50 -0
  85. package/lib/cjs/content-fields/flow-element.js.map +1 -0
  86. package/lib/cjs/content-fields/flow-go-to-flow.d.ts +13 -0
  87. package/lib/cjs/content-fields/flow-go-to-flow.js +51 -0
  88. package/lib/cjs/content-fields/flow-go-to-flow.js.map +1 -0
  89. package/lib/cjs/content-fields/flow-handoff.d.ts +23 -0
  90. package/lib/cjs/content-fields/flow-handoff.js +104 -0
  91. package/lib/cjs/content-fields/flow-handoff.js.map +1 -0
  92. package/lib/cjs/content-fields/flow-image.d.ts +10 -0
  93. package/lib/cjs/content-fields/flow-image.js +33 -0
  94. package/lib/cjs/content-fields/flow-image.js.map +1 -0
  95. package/lib/cjs/content-fields/flow-queue-status-conditional.d.ts +30 -0
  96. package/lib/cjs/content-fields/flow-queue-status-conditional.js +95 -0
  97. package/lib/cjs/content-fields/flow-queue-status-conditional.js.map +1 -0
  98. package/lib/cjs/content-fields/flow-rating.d.ts +15 -0
  99. package/lib/cjs/content-fields/flow-rating.js +66 -0
  100. package/lib/cjs/content-fields/flow-rating.js.map +1 -0
  101. package/lib/cjs/content-fields/flow-text.d.ts +15 -0
  102. package/lib/cjs/content-fields/flow-text.js +60 -0
  103. package/lib/cjs/content-fields/flow-text.js.map +1 -0
  104. package/lib/cjs/content-fields/flow-video.d.ts +10 -0
  105. package/lib/cjs/content-fields/flow-video.js +33 -0
  106. package/lib/cjs/content-fields/flow-video.js.map +1 -0
  107. package/lib/cjs/content-fields/flow-webview.d.ts +16 -0
  108. package/lib/cjs/content-fields/flow-webview.js +78 -0
  109. package/lib/cjs/content-fields/flow-webview.js.map +1 -0
  110. package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.d.ts +21 -0
  111. package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js +92 -0
  112. package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js.map +1 -0
  113. package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.d.ts +11 -0
  114. package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.js +46 -0
  115. package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.js.map +1 -0
  116. package/lib/cjs/content-fields/flow-whatsapp-template.d.ts +37 -0
  117. package/lib/cjs/content-fields/flow-whatsapp-template.js +264 -0
  118. package/lib/cjs/content-fields/flow-whatsapp-template.js.map +1 -0
  119. package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.d.ts +21 -0
  120. package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js +3 -0
  121. package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js.map +1 -0
  122. package/lib/cjs/content-fields/hubtype-fields/ai-agent.d.ts +25 -0
  123. package/lib/cjs/content-fields/hubtype-fields/ai-agent.js +3 -0
  124. package/lib/cjs/content-fields/hubtype-fields/ai-agent.js.map +1 -0
  125. package/lib/cjs/content-fields/hubtype-fields/bot-action.d.ts +10 -0
  126. package/lib/cjs/content-fields/hubtype-fields/bot-action.js +3 -0
  127. package/lib/cjs/content-fields/hubtype-fields/bot-action.js.map +1 -0
  128. package/lib/cjs/content-fields/hubtype-fields/button.d.ts +8 -0
  129. package/lib/cjs/content-fields/hubtype-fields/button.js +3 -0
  130. package/lib/cjs/content-fields/hubtype-fields/button.js.map +1 -0
  131. package/lib/cjs/content-fields/hubtype-fields/capture-user-input.d.ts +19 -0
  132. package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js +12 -0
  133. package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js.map +1 -0
  134. package/lib/cjs/content-fields/hubtype-fields/carousel.d.ts +17 -0
  135. package/lib/cjs/content-fields/hubtype-fields/carousel.js +3 -0
  136. package/lib/cjs/content-fields/hubtype-fields/carousel.js.map +1 -0
  137. package/lib/cjs/content-fields/hubtype-fields/channel-conditional.d.ts +10 -0
  138. package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js +3 -0
  139. package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js.map +1 -0
  140. package/lib/cjs/content-fields/hubtype-fields/common.d.ts +83 -0
  141. package/lib/cjs/content-fields/hubtype-fields/common.js +3 -0
  142. package/lib/cjs/content-fields/hubtype-fields/common.js.map +1 -0
  143. package/lib/cjs/content-fields/hubtype-fields/contact-reasons-conditional.d.ts +16 -0
  144. package/lib/cjs/content-fields/hubtype-fields/contact-reasons-conditional.js +3 -0
  145. package/lib/cjs/content-fields/hubtype-fields/contact-reasons-conditional.js.map +1 -0
  146. package/lib/cjs/content-fields/hubtype-fields/country-conditional.d.ts +10 -0
  147. package/lib/cjs/content-fields/hubtype-fields/country-conditional.js +3 -0
  148. package/lib/cjs/content-fields/hubtype-fields/country-conditional.js.map +1 -0
  149. package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.d.ts +56 -0
  150. package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js +36 -0
  151. package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js.map +1 -0
  152. package/lib/cjs/content-fields/hubtype-fields/custom-conditional.d.ts +11 -0
  153. package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js +3 -0
  154. package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js.map +1 -0
  155. package/lib/cjs/content-fields/hubtype-fields/do-nothing.d.ts +6 -0
  156. package/lib/cjs/content-fields/hubtype-fields/do-nothing.js +3 -0
  157. package/lib/cjs/content-fields/hubtype-fields/do-nothing.js.map +1 -0
  158. package/lib/cjs/content-fields/hubtype-fields/fallback.d.ts +9 -0
  159. package/lib/cjs/content-fields/hubtype-fields/fallback.js +3 -0
  160. package/lib/cjs/content-fields/hubtype-fields/fallback.js.map +1 -0
  161. package/lib/cjs/content-fields/hubtype-fields/function.d.ts +30 -0
  162. package/lib/cjs/content-fields/hubtype-fields/function.js +11 -0
  163. package/lib/cjs/content-fields/hubtype-fields/function.js.map +1 -0
  164. package/lib/cjs/content-fields/hubtype-fields/go-to-flow.d.ts +9 -0
  165. package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js +3 -0
  166. package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js.map +1 -0
  167. package/lib/cjs/content-fields/hubtype-fields/handoff.d.ts +21 -0
  168. package/lib/cjs/content-fields/hubtype-fields/handoff.js +10 -0
  169. package/lib/cjs/content-fields/hubtype-fields/handoff.js.map +1 -0
  170. package/lib/cjs/content-fields/hubtype-fields/image.d.ts +8 -0
  171. package/lib/cjs/content-fields/hubtype-fields/image.js +3 -0
  172. package/lib/cjs/content-fields/hubtype-fields/image.js.map +1 -0
  173. package/lib/cjs/content-fields/hubtype-fields/index.d.ts +28 -0
  174. package/lib/cjs/content-fields/hubtype-fields/index.js +32 -0
  175. package/lib/cjs/content-fields/hubtype-fields/index.js.map +1 -0
  176. package/lib/cjs/content-fields/hubtype-fields/keyword.d.ts +9 -0
  177. package/lib/cjs/content-fields/hubtype-fields/keyword.js +3 -0
  178. package/lib/cjs/content-fields/hubtype-fields/keyword.js.map +1 -0
  179. package/lib/cjs/content-fields/hubtype-fields/node-types.d.ts +33 -0
  180. package/lib/cjs/content-fields/hubtype-fields/node-types.js +40 -0
  181. package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +1 -0
  182. package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +28 -0
  183. package/lib/cjs/content-fields/hubtype-fields/nodes.js +3 -0
  184. package/lib/cjs/content-fields/hubtype-fields/nodes.js.map +1 -0
  185. package/lib/cjs/content-fields/hubtype-fields/payload.d.ts +8 -0
  186. package/lib/cjs/content-fields/hubtype-fields/payload.js +3 -0
  187. package/lib/cjs/content-fields/hubtype-fields/payload.js.map +1 -0
  188. package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.d.ts +25 -0
  189. package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js +3 -0
  190. package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js.map +1 -0
  191. package/lib/cjs/content-fields/hubtype-fields/rating.d.ts +23 -0
  192. package/lib/cjs/content-fields/hubtype-fields/rating.js +9 -0
  193. package/lib/cjs/content-fields/hubtype-fields/rating.js.map +1 -0
  194. package/lib/cjs/content-fields/hubtype-fields/smart-intent.d.ts +12 -0
  195. package/lib/cjs/content-fields/hubtype-fields/smart-intent.js +3 -0
  196. package/lib/cjs/content-fields/hubtype-fields/smart-intent.js.map +1 -0
  197. package/lib/cjs/content-fields/hubtype-fields/text.d.ts +11 -0
  198. package/lib/cjs/content-fields/hubtype-fields/text.js +3 -0
  199. package/lib/cjs/content-fields/hubtype-fields/text.js.map +1 -0
  200. package/lib/cjs/content-fields/hubtype-fields/url.d.ts +8 -0
  201. package/lib/cjs/content-fields/hubtype-fields/url.js +3 -0
  202. package/lib/cjs/content-fields/hubtype-fields/url.js.map +1 -0
  203. package/lib/cjs/content-fields/hubtype-fields/video.d.ts +8 -0
  204. package/lib/cjs/content-fields/hubtype-fields/video.js +3 -0
  205. package/lib/cjs/content-fields/hubtype-fields/video.js.map +1 -0
  206. package/lib/cjs/content-fields/hubtype-fields/webview.d.ts +17 -0
  207. package/lib/cjs/content-fields/hubtype-fields/webview.js +3 -0
  208. package/lib/cjs/content-fields/hubtype-fields/webview.js.map +1 -0
  209. package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.d.ts +21 -0
  210. package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js +3 -0
  211. package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js.map +1 -0
  212. package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +17 -0
  213. package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js +3 -0
  214. package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +1 -0
  215. package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +10 -0
  216. package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.js +3 -0
  217. package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +1 -0
  218. package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.d.ts +96 -0
  219. package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js +9 -0
  220. package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js.map +1 -0
  221. package/lib/cjs/content-fields/index.d.ts +27 -0
  222. package/lib/cjs/content-fields/index.js +56 -0
  223. package/lib/cjs/content-fields/index.js.map +1 -0
  224. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +14 -0
  225. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +41 -0
  226. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -0
  227. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +13 -0
  228. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +36 -0
  229. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -0
  230. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +14 -0
  231. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +46 -0
  232. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -0
  233. package/lib/cjs/content-fields/whatsapp-button-list/index.d.ts +3 -0
  234. package/lib/cjs/content-fields/whatsapp-button-list/index.js +10 -0
  235. package/lib/cjs/content-fields/whatsapp-button-list/index.js.map +1 -0
  236. package/lib/cjs/filters/index.d.ts +12 -0
  237. package/lib/cjs/filters/index.js +17 -0
  238. package/lib/cjs/filters/index.js.map +1 -0
  239. package/lib/cjs/flow-factory.d.ts +12 -0
  240. package/lib/cjs/flow-factory.js +73 -0
  241. package/lib/cjs/flow-factory.js.map +1 -0
  242. package/lib/cjs/functions/index.d.ts +11 -0
  243. package/lib/cjs/functions/index.js +49 -0
  244. package/lib/cjs/functions/index.js.map +1 -0
  245. package/lib/cjs/index.d.ts +42 -0
  246. package/lib/cjs/index.js +142 -0
  247. package/lib/cjs/index.js.map +1 -0
  248. package/lib/cjs/services/hubtype-queues-api.js +26 -0
  249. package/lib/cjs/services/hubtype-queues-api.js.map +1 -0
  250. package/lib/cjs/structured-output/flow-builder-content.js +15 -0
  251. package/lib/cjs/structured-output/flow-builder-content.js.map +1 -0
  252. package/lib/cjs/tracking.d.ts +16 -0
  253. package/lib/cjs/tracking.js +71 -0
  254. package/lib/cjs/tracking.js.map +1 -0
  255. package/lib/cjs/types.d.ts +62 -0
  256. package/lib/cjs/types.js +14 -0
  257. package/lib/cjs/types.js.map +1 -0
  258. package/lib/cjs/user-input/capture-user-input-api.d.ts +21 -0
  259. package/lib/cjs/user-input/capture-user-input-api.js +88 -0
  260. package/lib/cjs/user-input/capture-user-input-api.js.map +1 -0
  261. package/lib/cjs/user-input/index.d.ts +4 -0
  262. package/lib/cjs/user-input/index.js +37 -0
  263. package/lib/cjs/user-input/index.js.map +1 -0
  264. package/lib/cjs/user-input/keyword.d.ts +27 -0
  265. package/lib/cjs/user-input/keyword.js +84 -0
  266. package/lib/cjs/user-input/keyword.js.map +1 -0
  267. package/lib/cjs/user-input/smart-intent.d.ts +24 -0
  268. package/lib/cjs/user-input/smart-intent.js +89 -0
  269. package/lib/cjs/user-input/smart-intent.js.map +1 -0
  270. package/lib/cjs/utils/ai-agent.d.ts +11 -0
  271. package/lib/cjs/utils/ai-agent.js +28 -0
  272. package/lib/cjs/utils/ai-agent.js.map +1 -0
  273. package/lib/cjs/utils/authentication.js +21 -0
  274. package/lib/cjs/utils/authentication.js.map +1 -0
  275. package/lib/cjs/utils/flow-locale.js +79 -0
  276. package/lib/cjs/utils/flow-locale.js.map +1 -0
  277. package/lib/cjs/utils/get-flow-builder-plugin.d.ts +3 -0
  278. package/lib/cjs/utils/get-flow-builder-plugin.js +16 -0
  279. package/lib/cjs/utils/get-flow-builder-plugin.js.map +1 -0
  280. package/lib/cjs/utils/hubtype-assistant-content.d.ts +13 -0
  281. package/lib/cjs/utils/hubtype-assistant-content.js +184 -0
  282. package/lib/cjs/utils/hubtype-assistant-content.js.map +1 -0
  283. package/lib/cjs/utils/input.js +35 -0
  284. package/lib/cjs/utils/input.js.map +1 -0
  285. package/lib/cjs/webview/contents-context.d.ts +2 -0
  286. package/lib/cjs/webview/contents-context.js +12 -0
  287. package/lib/cjs/webview/contents-context.js.map +1 -0
  288. package/lib/cjs/webview/index.d.ts +3 -0
  289. package/lib/cjs/webview/index.js +10 -0
  290. package/lib/cjs/webview/index.js.map +1 -0
  291. package/lib/cjs/webview/types.d.ts +47 -0
  292. package/lib/cjs/webview/types.js +9 -0
  293. package/lib/cjs/webview/types.js.map +1 -0
  294. package/lib/cjs/webview/use-webview-contents.d.ts +2 -0
  295. package/lib/cjs/webview/use-webview-contents.js +83 -0
  296. package/lib/cjs/webview/use-webview-contents.js.map +1 -0
  297. package/lib/esm/action/ai-agent-from-user-input.d.ts +3 -0
  298. package/lib/esm/action/ai-agent-from-user-input.js +38 -0
  299. package/lib/esm/action/ai-agent-from-user-input.js.map +1 -0
  300. package/lib/esm/action/context.d.ts +11 -0
  301. package/lib/esm/action/context.js +17 -0
  302. package/lib/esm/action/context.js.map +1 -0
  303. package/lib/esm/action/fallback.d.ts +3 -0
  304. package/lib/esm/action/fallback.js +36 -0
  305. package/lib/esm/action/fallback.js.map +1 -0
  306. package/lib/esm/action/first-interaction.d.ts +3 -0
  307. package/lib/esm/action/first-interaction.js +93 -0
  308. package/lib/esm/action/first-interaction.js.map +1 -0
  309. package/lib/esm/action/get-contents.d.ts +3 -0
  310. package/lib/esm/action/get-contents.js +44 -0
  311. package/lib/esm/action/get-contents.js.map +1 -0
  312. package/lib/esm/action/index.d.ts +25 -0
  313. package/lib/esm/action/index.js +95 -0
  314. package/lib/esm/action/index.js.map +1 -0
  315. package/lib/esm/action/payload.d.ts +3 -0
  316. package/lib/esm/action/payload.js +74 -0
  317. package/lib/esm/action/payload.js.map +1 -0
  318. package/lib/esm/api.d.ts +45 -0
  319. package/lib/esm/api.js +227 -0
  320. package/lib/esm/api.js.map +1 -0
  321. package/lib/esm/bot-context-manager.d.ts +17 -0
  322. package/lib/esm/bot-context-manager.js +93 -0
  323. package/lib/esm/bot-context-manager.js.map +1 -0
  324. package/lib/esm/constants.d.ts +14 -0
  325. package/lib/esm/constants.js +20 -0
  326. package/lib/esm/constants.js.map +1 -0
  327. package/lib/esm/content-fields/contact-reasons-conditional-matcher.d.ts +4 -0
  328. package/lib/esm/content-fields/contact-reasons-conditional-matcher.js +12 -0
  329. package/lib/esm/content-fields/contact-reasons-conditional-matcher.js.map +1 -0
  330. package/lib/esm/content-fields/content-fields-base.d.ts +20 -0
  331. package/lib/esm/content-fields/content-fields-base.js +74 -0
  332. package/lib/esm/content-fields/content-fields-base.js.map +1 -0
  333. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +15 -0
  334. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +71 -0
  335. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +1 -0
  336. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +9 -0
  337. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js +58 -0
  338. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +1 -0
  339. package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +17 -0
  340. package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js +79 -0
  341. package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js.map +1 -0
  342. package/lib/esm/content-fields/flow-ai-agent-base.d.ts +25 -0
  343. package/lib/esm/content-fields/flow-ai-agent-base.js +97 -0
  344. package/lib/esm/content-fields/flow-ai-agent-base.js.map +1 -0
  345. package/lib/esm/content-fields/flow-ai-agent-router.d.ts +21 -0
  346. package/lib/esm/content-fields/flow-ai-agent-router.js +126 -0
  347. package/lib/esm/content-fields/flow-ai-agent-router.js.map +1 -0
  348. package/lib/esm/content-fields/flow-ai-agent.d.ts +17 -0
  349. package/lib/esm/content-fields/flow-ai-agent.js +65 -0
  350. package/lib/esm/content-fields/flow-ai-agent.js.map +1 -0
  351. package/lib/esm/content-fields/flow-bot-action.d.ts +14 -0
  352. package/lib/esm/content-fields/flow-bot-action.js +45 -0
  353. package/lib/esm/content-fields/flow-bot-action.js.map +1 -0
  354. package/lib/esm/content-fields/flow-button.d.ts +31 -0
  355. package/lib/esm/content-fields/flow-button.js +86 -0
  356. package/lib/esm/content-fields/flow-button.js.map +1 -0
  357. package/lib/esm/content-fields/flow-capture-user-input.d.ts +14 -0
  358. package/lib/esm/content-fields/flow-capture-user-input.js +45 -0
  359. package/lib/esm/content-fields/flow-capture-user-input.js.map +1 -0
  360. package/lib/esm/content-fields/flow-carousel.d.ts +22 -0
  361. package/lib/esm/content-fields/flow-carousel.js +152 -0
  362. package/lib/esm/content-fields/flow-carousel.js.map +1 -0
  363. package/lib/esm/content-fields/flow-channel-conditional.d.ts +14 -0
  364. package/lib/esm/content-fields/flow-channel-conditional.js +57 -0
  365. package/lib/esm/content-fields/flow-channel-conditional.js.map +1 -0
  366. package/lib/esm/content-fields/flow-contact-reasons-conditional.d.ts +14 -0
  367. package/lib/esm/content-fields/flow-contact-reasons-conditional.js +65 -0
  368. package/lib/esm/content-fields/flow-contact-reasons-conditional.js.map +1 -0
  369. package/lib/esm/content-fields/flow-country-conditional.d.ts +13 -0
  370. package/lib/esm/content-fields/flow-country-conditional.js +59 -0
  371. package/lib/esm/content-fields/flow-country-conditional.js.map +1 -0
  372. package/lib/esm/content-fields/flow-custom-conditional.d.ts +17 -0
  373. package/lib/esm/content-fields/flow-custom-conditional.js +89 -0
  374. package/lib/esm/content-fields/flow-custom-conditional.js.map +1 -0
  375. package/lib/esm/content-fields/flow-do-nothing.d.ts +9 -0
  376. package/lib/esm/content-fields/flow-do-nothing.js +27 -0
  377. package/lib/esm/content-fields/flow-do-nothing.js.map +1 -0
  378. package/lib/esm/content-fields/flow-element.d.ts +22 -0
  379. package/lib/esm/content-fields/flow-element.js +50 -0
  380. package/lib/esm/content-fields/flow-element.js.map +1 -0
  381. package/lib/esm/content-fields/flow-go-to-flow.d.ts +13 -0
  382. package/lib/esm/content-fields/flow-go-to-flow.js +51 -0
  383. package/lib/esm/content-fields/flow-go-to-flow.js.map +1 -0
  384. package/lib/esm/content-fields/flow-handoff.d.ts +23 -0
  385. package/lib/esm/content-fields/flow-handoff.js +104 -0
  386. package/lib/esm/content-fields/flow-handoff.js.map +1 -0
  387. package/lib/esm/content-fields/flow-image.d.ts +10 -0
  388. package/lib/esm/content-fields/flow-image.js +33 -0
  389. package/lib/esm/content-fields/flow-image.js.map +1 -0
  390. package/lib/esm/content-fields/flow-queue-status-conditional.d.ts +30 -0
  391. package/lib/esm/content-fields/flow-queue-status-conditional.js +95 -0
  392. package/lib/esm/content-fields/flow-queue-status-conditional.js.map +1 -0
  393. package/lib/esm/content-fields/flow-rating.d.ts +15 -0
  394. package/lib/esm/content-fields/flow-rating.js +66 -0
  395. package/lib/esm/content-fields/flow-rating.js.map +1 -0
  396. package/lib/esm/content-fields/flow-text.d.ts +15 -0
  397. package/lib/esm/content-fields/flow-text.js +60 -0
  398. package/lib/esm/content-fields/flow-text.js.map +1 -0
  399. package/lib/esm/content-fields/flow-video.d.ts +10 -0
  400. package/lib/esm/content-fields/flow-video.js +33 -0
  401. package/lib/esm/content-fields/flow-video.js.map +1 -0
  402. package/lib/esm/content-fields/flow-webview.d.ts +16 -0
  403. package/lib/esm/content-fields/flow-webview.js +78 -0
  404. package/lib/esm/content-fields/flow-webview.js.map +1 -0
  405. package/lib/esm/content-fields/flow-whatsapp-cta-url-button.d.ts +21 -0
  406. package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js +92 -0
  407. package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js.map +1 -0
  408. package/lib/esm/content-fields/flow-whatsapp-request-contact-info.d.ts +11 -0
  409. package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js +46 -0
  410. package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js.map +1 -0
  411. package/lib/esm/content-fields/flow-whatsapp-template.d.ts +37 -0
  412. package/lib/esm/content-fields/flow-whatsapp-template.js +264 -0
  413. package/lib/esm/content-fields/flow-whatsapp-template.js.map +1 -0
  414. package/lib/esm/content-fields/hubtype-fields/ai-agent-router.d.ts +21 -0
  415. package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js +3 -0
  416. package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js.map +1 -0
  417. package/lib/esm/content-fields/hubtype-fields/ai-agent.d.ts +25 -0
  418. package/lib/esm/content-fields/hubtype-fields/ai-agent.js +3 -0
  419. package/lib/esm/content-fields/hubtype-fields/ai-agent.js.map +1 -0
  420. package/lib/esm/content-fields/hubtype-fields/bot-action.d.ts +10 -0
  421. package/lib/esm/content-fields/hubtype-fields/bot-action.js +3 -0
  422. package/lib/esm/content-fields/hubtype-fields/bot-action.js.map +1 -0
  423. package/lib/esm/content-fields/hubtype-fields/button.d.ts +8 -0
  424. package/lib/esm/content-fields/hubtype-fields/button.js +3 -0
  425. package/lib/esm/content-fields/hubtype-fields/button.js.map +1 -0
  426. package/lib/esm/content-fields/hubtype-fields/capture-user-input.d.ts +19 -0
  427. package/lib/esm/content-fields/hubtype-fields/capture-user-input.js +12 -0
  428. package/lib/esm/content-fields/hubtype-fields/capture-user-input.js.map +1 -0
  429. package/lib/esm/content-fields/hubtype-fields/carousel.d.ts +17 -0
  430. package/lib/esm/content-fields/hubtype-fields/carousel.js +3 -0
  431. package/lib/esm/content-fields/hubtype-fields/carousel.js.map +1 -0
  432. package/lib/esm/content-fields/hubtype-fields/channel-conditional.d.ts +10 -0
  433. package/lib/esm/content-fields/hubtype-fields/channel-conditional.js +3 -0
  434. package/lib/esm/content-fields/hubtype-fields/channel-conditional.js.map +1 -0
  435. package/lib/esm/content-fields/hubtype-fields/common.d.ts +83 -0
  436. package/lib/esm/content-fields/hubtype-fields/common.js +3 -0
  437. package/lib/esm/content-fields/hubtype-fields/common.js.map +1 -0
  438. package/lib/esm/content-fields/hubtype-fields/contact-reasons-conditional.d.ts +16 -0
  439. package/lib/esm/content-fields/hubtype-fields/contact-reasons-conditional.js +3 -0
  440. package/lib/esm/content-fields/hubtype-fields/contact-reasons-conditional.js.map +1 -0
  441. package/lib/esm/content-fields/hubtype-fields/country-conditional.d.ts +10 -0
  442. package/lib/esm/content-fields/hubtype-fields/country-conditional.js +3 -0
  443. package/lib/esm/content-fields/hubtype-fields/country-conditional.js.map +1 -0
  444. package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.d.ts +56 -0
  445. package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js +36 -0
  446. package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js.map +1 -0
  447. package/lib/esm/content-fields/hubtype-fields/custom-conditional.d.ts +11 -0
  448. package/lib/esm/content-fields/hubtype-fields/custom-conditional.js +3 -0
  449. package/lib/esm/content-fields/hubtype-fields/custom-conditional.js.map +1 -0
  450. package/lib/esm/content-fields/hubtype-fields/do-nothing.d.ts +6 -0
  451. package/lib/esm/content-fields/hubtype-fields/do-nothing.js +3 -0
  452. package/lib/esm/content-fields/hubtype-fields/do-nothing.js.map +1 -0
  453. package/lib/esm/content-fields/hubtype-fields/fallback.d.ts +9 -0
  454. package/lib/esm/content-fields/hubtype-fields/fallback.js +3 -0
  455. package/lib/esm/content-fields/hubtype-fields/fallback.js.map +1 -0
  456. package/lib/esm/content-fields/hubtype-fields/function.d.ts +30 -0
  457. package/lib/esm/content-fields/hubtype-fields/function.js +11 -0
  458. package/lib/esm/content-fields/hubtype-fields/function.js.map +1 -0
  459. package/lib/esm/content-fields/hubtype-fields/go-to-flow.d.ts +9 -0
  460. package/lib/esm/content-fields/hubtype-fields/go-to-flow.js +3 -0
  461. package/lib/esm/content-fields/hubtype-fields/go-to-flow.js.map +1 -0
  462. package/lib/esm/content-fields/hubtype-fields/handoff.d.ts +21 -0
  463. package/lib/esm/content-fields/hubtype-fields/handoff.js +10 -0
  464. package/lib/esm/content-fields/hubtype-fields/handoff.js.map +1 -0
  465. package/lib/esm/content-fields/hubtype-fields/image.d.ts +8 -0
  466. package/lib/esm/content-fields/hubtype-fields/image.js +3 -0
  467. package/lib/esm/content-fields/hubtype-fields/image.js.map +1 -0
  468. package/lib/esm/content-fields/hubtype-fields/index.d.ts +28 -0
  469. package/lib/esm/content-fields/hubtype-fields/index.js +32 -0
  470. package/lib/esm/content-fields/hubtype-fields/index.js.map +1 -0
  471. package/lib/esm/content-fields/hubtype-fields/keyword.d.ts +9 -0
  472. package/lib/esm/content-fields/hubtype-fields/keyword.js +3 -0
  473. package/lib/esm/content-fields/hubtype-fields/keyword.js.map +1 -0
  474. package/lib/esm/content-fields/hubtype-fields/node-types.d.ts +33 -0
  475. package/lib/esm/content-fields/hubtype-fields/node-types.js +40 -0
  476. package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -0
  477. package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +28 -0
  478. package/lib/esm/content-fields/hubtype-fields/nodes.js +3 -0
  479. package/lib/esm/content-fields/hubtype-fields/nodes.js.map +1 -0
  480. package/lib/esm/content-fields/hubtype-fields/payload.d.ts +8 -0
  481. package/lib/esm/content-fields/hubtype-fields/payload.js +3 -0
  482. package/lib/esm/content-fields/hubtype-fields/payload.js.map +1 -0
  483. package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.d.ts +25 -0
  484. package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js +3 -0
  485. package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js.map +1 -0
  486. package/lib/esm/content-fields/hubtype-fields/rating.d.ts +23 -0
  487. package/lib/esm/content-fields/hubtype-fields/rating.js +9 -0
  488. package/lib/esm/content-fields/hubtype-fields/rating.js.map +1 -0
  489. package/lib/esm/content-fields/hubtype-fields/smart-intent.d.ts +12 -0
  490. package/lib/esm/content-fields/hubtype-fields/smart-intent.js +3 -0
  491. package/lib/esm/content-fields/hubtype-fields/smart-intent.js.map +1 -0
  492. package/lib/esm/content-fields/hubtype-fields/text.d.ts +11 -0
  493. package/lib/esm/content-fields/hubtype-fields/text.js +3 -0
  494. package/lib/esm/content-fields/hubtype-fields/text.js.map +1 -0
  495. package/lib/esm/content-fields/hubtype-fields/url.d.ts +8 -0
  496. package/lib/esm/content-fields/hubtype-fields/url.js +3 -0
  497. package/lib/esm/content-fields/hubtype-fields/url.js.map +1 -0
  498. package/lib/esm/content-fields/hubtype-fields/video.d.ts +8 -0
  499. package/lib/esm/content-fields/hubtype-fields/video.js +3 -0
  500. package/lib/esm/content-fields/hubtype-fields/video.js.map +1 -0
  501. package/lib/esm/content-fields/hubtype-fields/webview.d.ts +17 -0
  502. package/lib/esm/content-fields/hubtype-fields/webview.js +3 -0
  503. package/lib/esm/content-fields/hubtype-fields/webview.js.map +1 -0
  504. package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.d.ts +21 -0
  505. package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js +3 -0
  506. package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js.map +1 -0
  507. package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +17 -0
  508. package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js +3 -0
  509. package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +1 -0
  510. package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +10 -0
  511. package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js +3 -0
  512. package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +1 -0
  513. package/lib/esm/content-fields/hubtype-fields/whatsapp-template.d.ts +96 -0
  514. package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js +9 -0
  515. package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js.map +1 -0
  516. package/lib/esm/content-fields/index.d.ts +27 -0
  517. package/lib/esm/content-fields/index.js +56 -0
  518. package/lib/esm/content-fields/index.js.map +1 -0
  519. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +14 -0
  520. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +41 -0
  521. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -0
  522. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +13 -0
  523. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +36 -0
  524. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -0
  525. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +14 -0
  526. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +46 -0
  527. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -0
  528. package/lib/esm/content-fields/whatsapp-button-list/index.d.ts +3 -0
  529. package/lib/esm/content-fields/whatsapp-button-list/index.js +10 -0
  530. package/lib/esm/content-fields/whatsapp-button-list/index.js.map +1 -0
  531. package/lib/esm/filters/index.d.ts +12 -0
  532. package/lib/esm/filters/index.js +17 -0
  533. package/lib/esm/filters/index.js.map +1 -0
  534. package/lib/esm/flow-factory.d.ts +12 -0
  535. package/lib/esm/flow-factory.js +73 -0
  536. package/lib/esm/flow-factory.js.map +1 -0
  537. package/lib/esm/functions/index.d.ts +11 -0
  538. package/lib/esm/functions/index.js +49 -0
  539. package/lib/esm/functions/index.js.map +1 -0
  540. package/lib/esm/index.d.ts +42 -0
  541. package/lib/esm/index.js +142 -0
  542. package/lib/esm/index.js.map +1 -0
  543. package/lib/esm/services/hubtype-queues-api.d.ts +14 -0
  544. package/lib/esm/services/hubtype-queues-api.js +26 -0
  545. package/lib/esm/services/hubtype-queues-api.js.map +1 -0
  546. package/lib/esm/structured-output/flow-builder-content.d.ts +13 -0
  547. package/lib/esm/structured-output/flow-builder-content.js +15 -0
  548. package/lib/esm/structured-output/flow-builder-content.js.map +1 -0
  549. package/lib/esm/tracking.d.ts +16 -0
  550. package/lib/esm/tracking.js +71 -0
  551. package/lib/esm/tracking.js.map +1 -0
  552. package/lib/esm/types.d.ts +62 -0
  553. package/lib/esm/types.js +14 -0
  554. package/lib/esm/types.js.map +1 -0
  555. package/lib/esm/user-input/capture-user-input-api.d.ts +21 -0
  556. package/lib/esm/user-input/capture-user-input-api.js +88 -0
  557. package/lib/esm/user-input/capture-user-input-api.js.map +1 -0
  558. package/lib/esm/user-input/index.d.ts +4 -0
  559. package/lib/esm/user-input/index.js +37 -0
  560. package/lib/esm/user-input/index.js.map +1 -0
  561. package/lib/esm/user-input/keyword.d.ts +27 -0
  562. package/lib/esm/user-input/keyword.js +84 -0
  563. package/lib/esm/user-input/keyword.js.map +1 -0
  564. package/lib/esm/user-input/smart-intent.d.ts +24 -0
  565. package/lib/esm/user-input/smart-intent.js +89 -0
  566. package/lib/esm/user-input/smart-intent.js.map +1 -0
  567. package/lib/esm/utils/ai-agent.d.ts +11 -0
  568. package/lib/esm/utils/ai-agent.js +28 -0
  569. package/lib/esm/utils/ai-agent.js.map +1 -0
  570. package/lib/esm/utils/authentication.d.ts +2 -0
  571. package/lib/esm/utils/authentication.js +21 -0
  572. package/lib/esm/utils/authentication.js.map +1 -0
  573. package/lib/esm/utils/flow-locale.d.ts +22 -0
  574. package/lib/esm/utils/flow-locale.js +79 -0
  575. package/lib/esm/utils/flow-locale.js.map +1 -0
  576. package/lib/esm/utils/get-flow-builder-plugin.d.ts +3 -0
  577. package/lib/esm/utils/get-flow-builder-plugin.js +16 -0
  578. package/lib/esm/utils/get-flow-builder-plugin.js.map +1 -0
  579. package/lib/esm/utils/hubtype-assistant-content.d.ts +13 -0
  580. package/lib/esm/utils/hubtype-assistant-content.js +184 -0
  581. package/lib/esm/utils/hubtype-assistant-content.js.map +1 -0
  582. package/lib/esm/utils/input.d.ts +6 -0
  583. package/lib/esm/utils/input.js +35 -0
  584. package/lib/esm/utils/input.js.map +1 -0
  585. package/lib/esm/webview/contents-context.d.ts +2 -0
  586. package/lib/esm/webview/contents-context.js +12 -0
  587. package/lib/esm/webview/contents-context.js.map +1 -0
  588. package/lib/esm/webview/index.d.ts +3 -0
  589. package/lib/esm/webview/index.js +10 -0
  590. package/lib/esm/webview/index.js.map +1 -0
  591. package/lib/esm/webview/types.d.ts +47 -0
  592. package/lib/esm/webview/types.js +9 -0
  593. package/lib/esm/webview/types.js.map +1 -0
  594. package/lib/esm/webview/use-webview-contents.d.ts +2 -0
  595. package/lib/esm/webview/use-webview-contents.js +83 -0
  596. package/lib/esm/webview/use-webview-contents.js.map +1 -0
  597. package/package.json +9 -11
  598. package/src/action/ai-agent-from-user-input.ts +7 -0
  599. package/src/action/first-interaction.ts +6 -0
  600. package/src/action/get-contents.ts +17 -2
  601. package/src/action/index.tsx +7 -0
  602. package/src/api.ts +52 -15
  603. package/src/bot-context-manager.ts +153 -0
  604. package/src/constants.ts +2 -1
  605. package/src/content-fields/contact-reasons-conditional-matcher.ts +24 -0
  606. package/src/content-fields/flow-ai-agent-base.tsx +12 -1
  607. package/src/content-fields/flow-ai-agent-router.tsx +1 -0
  608. package/src/content-fields/flow-ai-agent.tsx +1 -0
  609. package/src/content-fields/flow-contact-reasons-conditional.tsx +90 -0
  610. package/src/content-fields/flow-do-nothing.tsx +29 -0
  611. package/src/content-fields/flow-handoff.tsx +54 -7
  612. package/src/content-fields/flow-whatsapp-request-contact-info.tsx +19 -1
  613. package/src/content-fields/hubtype-fields/contact-reasons-conditional.ts +18 -0
  614. package/src/content-fields/hubtype-fields/do-nothing.ts +7 -0
  615. package/src/content-fields/hubtype-fields/handoff.ts +17 -1
  616. package/src/content-fields/hubtype-fields/index.ts +1 -0
  617. package/src/content-fields/hubtype-fields/node-types.ts +2 -0
  618. package/src/content-fields/hubtype-fields/nodes.ts +4 -0
  619. package/src/content-fields/hubtype-fields/whatsapp-request-contact-info.ts +2 -0
  620. package/src/content-fields/index.ts +6 -0
  621. package/src/flow-factory.ts +11 -0
  622. package/src/index.ts +26 -88
  623. package/src/types.ts +1 -2
  624. package/src/utils/hubtype-assistant-content.ts +14 -0
  625. package/lib/action/ai-agent-from-user-input.d.ts +0 -3
  626. package/lib/action/ai-agent-from-user-input.js +0 -35
  627. package/lib/action/ai-agent-from-user-input.js.map +0 -1
  628. package/lib/action/context.d.ts +0 -11
  629. package/lib/action/context.js +0 -20
  630. package/lib/action/context.js.map +0 -1
  631. package/lib/action/fallback.d.ts +0 -3
  632. package/lib/action/fallback.js +0 -41
  633. package/lib/action/fallback.js.map +0 -1
  634. package/lib/action/first-interaction.d.ts +0 -3
  635. package/lib/action/first-interaction.js +0 -100
  636. package/lib/action/first-interaction.js.map +0 -1
  637. package/lib/action/get-contents.d.ts +0 -3
  638. package/lib/action/get-contents.js +0 -56
  639. package/lib/action/get-contents.js.map +0 -1
  640. package/lib/action/index.d.ts +0 -25
  641. package/lib/action/index.js +0 -126
  642. package/lib/action/index.js.map +0 -1
  643. package/lib/action/payload.d.ts +0 -3
  644. package/lib/action/payload.js +0 -78
  645. package/lib/action/payload.js.map +0 -1
  646. package/lib/api.d.ts +0 -40
  647. package/lib/api.js +0 -216
  648. package/lib/api.js.map +0 -1
  649. package/lib/constants.d.ts +0 -13
  650. package/lib/constants.js +0 -17
  651. package/lib/constants.js.map +0 -1
  652. package/lib/content-fields/content-fields-base.d.ts +0 -20
  653. package/lib/content-fields/content-fields-base.js +0 -78
  654. package/lib/content-fields/content-fields-base.js.map +0 -1
  655. package/lib/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +0 -15
  656. package/lib/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +0 -73
  657. package/lib/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +0 -1
  658. package/lib/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +0 -9
  659. package/lib/content-fields/custom-conditional/custom-conditional-v2-resolver.js +0 -58
  660. package/lib/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +0 -1
  661. package/lib/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +0 -17
  662. package/lib/content-fields/custom-conditional/flow-custom-condition-v2.js +0 -94
  663. package/lib/content-fields/custom-conditional/flow-custom-condition-v2.js.map +0 -1
  664. package/lib/content-fields/flow-ai-agent-base.d.ts +0 -25
  665. package/lib/content-fields/flow-ai-agent-base.js +0 -100
  666. package/lib/content-fields/flow-ai-agent-base.js.map +0 -1
  667. package/lib/content-fields/flow-ai-agent-router.d.ts +0 -21
  668. package/lib/content-fields/flow-ai-agent-router.js +0 -136
  669. package/lib/content-fields/flow-ai-agent-router.js.map +0 -1
  670. package/lib/content-fields/flow-ai-agent.d.ts +0 -17
  671. package/lib/content-fields/flow-ai-agent.js +0 -75
  672. package/lib/content-fields/flow-ai-agent.js.map +0 -1
  673. package/lib/content-fields/flow-bot-action.d.ts +0 -14
  674. package/lib/content-fields/flow-bot-action.js +0 -53
  675. package/lib/content-fields/flow-bot-action.js.map +0 -1
  676. package/lib/content-fields/flow-button.d.ts +0 -31
  677. package/lib/content-fields/flow-button.js +0 -105
  678. package/lib/content-fields/flow-button.js.map +0 -1
  679. package/lib/content-fields/flow-capture-user-input.d.ts +0 -14
  680. package/lib/content-fields/flow-capture-user-input.js +0 -46
  681. package/lib/content-fields/flow-capture-user-input.js.map +0 -1
  682. package/lib/content-fields/flow-carousel.d.ts +0 -22
  683. package/lib/content-fields/flow-carousel.js +0 -193
  684. package/lib/content-fields/flow-carousel.js.map +0 -1
  685. package/lib/content-fields/flow-channel-conditional.d.ts +0 -14
  686. package/lib/content-fields/flow-channel-conditional.js +0 -61
  687. package/lib/content-fields/flow-channel-conditional.js.map +0 -1
  688. package/lib/content-fields/flow-country-conditional.d.ts +0 -13
  689. package/lib/content-fields/flow-country-conditional.js +0 -64
  690. package/lib/content-fields/flow-country-conditional.js.map +0 -1
  691. package/lib/content-fields/flow-custom-conditional.d.ts +0 -17
  692. package/lib/content-fields/flow-custom-conditional.js +0 -87
  693. package/lib/content-fields/flow-custom-conditional.js.map +0 -1
  694. package/lib/content-fields/flow-element.d.ts +0 -22
  695. package/lib/content-fields/flow-element.js +0 -67
  696. package/lib/content-fields/flow-element.js.map +0 -1
  697. package/lib/content-fields/flow-go-to-flow.d.ts +0 -13
  698. package/lib/content-fields/flow-go-to-flow.js +0 -56
  699. package/lib/content-fields/flow-go-to-flow.js.map +0 -1
  700. package/lib/content-fields/flow-handoff.d.ts +0 -17
  701. package/lib/content-fields/flow-handoff.js +0 -79
  702. package/lib/content-fields/flow-handoff.js.map +0 -1
  703. package/lib/content-fields/flow-image.d.ts +0 -10
  704. package/lib/content-fields/flow-image.js +0 -42
  705. package/lib/content-fields/flow-image.js.map +0 -1
  706. package/lib/content-fields/flow-queue-status-conditional.d.ts +0 -30
  707. package/lib/content-fields/flow-queue-status-conditional.js +0 -100
  708. package/lib/content-fields/flow-queue-status-conditional.js.map +0 -1
  709. package/lib/content-fields/flow-rating.d.ts +0 -15
  710. package/lib/content-fields/flow-rating.js +0 -88
  711. package/lib/content-fields/flow-rating.js.map +0 -1
  712. package/lib/content-fields/flow-text.d.ts +0 -15
  713. package/lib/content-fields/flow-text.js +0 -82
  714. package/lib/content-fields/flow-text.js.map +0 -1
  715. package/lib/content-fields/flow-video.d.ts +0 -10
  716. package/lib/content-fields/flow-video.js +0 -42
  717. package/lib/content-fields/flow-video.js.map +0 -1
  718. package/lib/content-fields/flow-webview.d.ts +0 -16
  719. package/lib/content-fields/flow-webview.js +0 -81
  720. package/lib/content-fields/flow-webview.js.map +0 -1
  721. package/lib/content-fields/flow-whatsapp-cta-url-button.d.ts +0 -21
  722. package/lib/content-fields/flow-whatsapp-cta-url-button.js +0 -131
  723. package/lib/content-fields/flow-whatsapp-cta-url-button.js.map +0 -1
  724. package/lib/content-fields/flow-whatsapp-request-contact-info.d.ts +0 -10
  725. package/lib/content-fields/flow-whatsapp-request-contact-info.js +0 -51
  726. package/lib/content-fields/flow-whatsapp-request-contact-info.js.map +0 -1
  727. package/lib/content-fields/flow-whatsapp-template.d.ts +0 -37
  728. package/lib/content-fields/flow-whatsapp-template.js +0 -281
  729. package/lib/content-fields/flow-whatsapp-template.js.map +0 -1
  730. package/lib/content-fields/hubtype-fields/ai-agent-router.d.ts +0 -21
  731. package/lib/content-fields/hubtype-fields/ai-agent-router.js +0 -4
  732. package/lib/content-fields/hubtype-fields/ai-agent-router.js.map +0 -1
  733. package/lib/content-fields/hubtype-fields/ai-agent.d.ts +0 -25
  734. package/lib/content-fields/hubtype-fields/ai-agent.js +0 -4
  735. package/lib/content-fields/hubtype-fields/ai-agent.js.map +0 -1
  736. package/lib/content-fields/hubtype-fields/bot-action.d.ts +0 -10
  737. package/lib/content-fields/hubtype-fields/bot-action.js +0 -4
  738. package/lib/content-fields/hubtype-fields/bot-action.js.map +0 -1
  739. package/lib/content-fields/hubtype-fields/button.d.ts +0 -8
  740. package/lib/content-fields/hubtype-fields/button.js +0 -4
  741. package/lib/content-fields/hubtype-fields/button.js.map +0 -1
  742. package/lib/content-fields/hubtype-fields/capture-user-input.d.ts +0 -19
  743. package/lib/content-fields/hubtype-fields/capture-user-input.js +0 -12
  744. package/lib/content-fields/hubtype-fields/capture-user-input.js.map +0 -1
  745. package/lib/content-fields/hubtype-fields/carousel.d.ts +0 -17
  746. package/lib/content-fields/hubtype-fields/carousel.js +0 -4
  747. package/lib/content-fields/hubtype-fields/carousel.js.map +0 -1
  748. package/lib/content-fields/hubtype-fields/channel-conditional.d.ts +0 -10
  749. package/lib/content-fields/hubtype-fields/channel-conditional.js +0 -4
  750. package/lib/content-fields/hubtype-fields/channel-conditional.js.map +0 -1
  751. package/lib/content-fields/hubtype-fields/common.d.ts +0 -83
  752. package/lib/content-fields/hubtype-fields/common.js +0 -4
  753. package/lib/content-fields/hubtype-fields/common.js.map +0 -1
  754. package/lib/content-fields/hubtype-fields/country-conditional.d.ts +0 -10
  755. package/lib/content-fields/hubtype-fields/country-conditional.js +0 -4
  756. package/lib/content-fields/hubtype-fields/country-conditional.js.map +0 -1
  757. package/lib/content-fields/hubtype-fields/custom-conditional-v2.d.ts +0 -56
  758. package/lib/content-fields/hubtype-fields/custom-conditional-v2.js +0 -36
  759. package/lib/content-fields/hubtype-fields/custom-conditional-v2.js.map +0 -1
  760. package/lib/content-fields/hubtype-fields/custom-conditional.d.ts +0 -11
  761. package/lib/content-fields/hubtype-fields/custom-conditional.js +0 -4
  762. package/lib/content-fields/hubtype-fields/custom-conditional.js.map +0 -1
  763. package/lib/content-fields/hubtype-fields/fallback.d.ts +0 -9
  764. package/lib/content-fields/hubtype-fields/fallback.js +0 -4
  765. package/lib/content-fields/hubtype-fields/fallback.js.map +0 -1
  766. package/lib/content-fields/hubtype-fields/function.d.ts +0 -30
  767. package/lib/content-fields/hubtype-fields/function.js +0 -11
  768. package/lib/content-fields/hubtype-fields/function.js.map +0 -1
  769. package/lib/content-fields/hubtype-fields/go-to-flow.d.ts +0 -9
  770. package/lib/content-fields/hubtype-fields/go-to-flow.js +0 -4
  771. package/lib/content-fields/hubtype-fields/go-to-flow.js.map +0 -1
  772. package/lib/content-fields/hubtype-fields/handoff.d.ts +0 -11
  773. package/lib/content-fields/hubtype-fields/handoff.js +0 -4
  774. package/lib/content-fields/hubtype-fields/handoff.js.map +0 -1
  775. package/lib/content-fields/hubtype-fields/image.d.ts +0 -8
  776. package/lib/content-fields/hubtype-fields/image.js +0 -4
  777. package/lib/content-fields/hubtype-fields/image.js.map +0 -1
  778. package/lib/content-fields/hubtype-fields/index.d.ts +0 -27
  779. package/lib/content-fields/hubtype-fields/index.js +0 -57
  780. package/lib/content-fields/hubtype-fields/index.js.map +0 -1
  781. package/lib/content-fields/hubtype-fields/keyword.d.ts +0 -9
  782. package/lib/content-fields/hubtype-fields/keyword.js +0 -4
  783. package/lib/content-fields/hubtype-fields/keyword.js.map +0 -1
  784. package/lib/content-fields/hubtype-fields/node-types.d.ts +0 -31
  785. package/lib/content-fields/hubtype-fields/node-types.js +0 -38
  786. package/lib/content-fields/hubtype-fields/node-types.js.map +0 -1
  787. package/lib/content-fields/hubtype-fields/nodes.d.ts +0 -26
  788. package/lib/content-fields/hubtype-fields/nodes.js +0 -4
  789. package/lib/content-fields/hubtype-fields/nodes.js.map +0 -1
  790. package/lib/content-fields/hubtype-fields/payload.d.ts +0 -8
  791. package/lib/content-fields/hubtype-fields/payload.js +0 -4
  792. package/lib/content-fields/hubtype-fields/payload.js.map +0 -1
  793. package/lib/content-fields/hubtype-fields/queue-status-conditional.d.ts +0 -25
  794. package/lib/content-fields/hubtype-fields/queue-status-conditional.js +0 -4
  795. package/lib/content-fields/hubtype-fields/queue-status-conditional.js.map +0 -1
  796. package/lib/content-fields/hubtype-fields/rating.d.ts +0 -23
  797. package/lib/content-fields/hubtype-fields/rating.js +0 -9
  798. package/lib/content-fields/hubtype-fields/rating.js.map +0 -1
  799. package/lib/content-fields/hubtype-fields/smart-intent.d.ts +0 -12
  800. package/lib/content-fields/hubtype-fields/smart-intent.js +0 -4
  801. package/lib/content-fields/hubtype-fields/smart-intent.js.map +0 -1
  802. package/lib/content-fields/hubtype-fields/text.d.ts +0 -11
  803. package/lib/content-fields/hubtype-fields/text.js +0 -4
  804. package/lib/content-fields/hubtype-fields/text.js.map +0 -1
  805. package/lib/content-fields/hubtype-fields/url.d.ts +0 -8
  806. package/lib/content-fields/hubtype-fields/url.js +0 -4
  807. package/lib/content-fields/hubtype-fields/url.js.map +0 -1
  808. package/lib/content-fields/hubtype-fields/video.d.ts +0 -8
  809. package/lib/content-fields/hubtype-fields/video.js +0 -4
  810. package/lib/content-fields/hubtype-fields/video.js.map +0 -1
  811. package/lib/content-fields/hubtype-fields/webview.d.ts +0 -17
  812. package/lib/content-fields/hubtype-fields/webview.js +0 -4
  813. package/lib/content-fields/hubtype-fields/webview.js.map +0 -1
  814. package/lib/content-fields/hubtype-fields/whatsapp-button-list.d.ts +0 -21
  815. package/lib/content-fields/hubtype-fields/whatsapp-button-list.js +0 -4
  816. package/lib/content-fields/hubtype-fields/whatsapp-button-list.js.map +0 -1
  817. package/lib/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +0 -17
  818. package/lib/content-fields/hubtype-fields/whatsapp-cta-url-button.js +0 -4
  819. package/lib/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +0 -1
  820. package/lib/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +0 -8
  821. package/lib/content-fields/hubtype-fields/whatsapp-request-contact-info.js +0 -4
  822. package/lib/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +0 -1
  823. package/lib/content-fields/hubtype-fields/whatsapp-template.d.ts +0 -96
  824. package/lib/content-fields/hubtype-fields/whatsapp-template.js +0 -9
  825. package/lib/content-fields/hubtype-fields/whatsapp-template.js.map +0 -1
  826. package/lib/content-fields/index.d.ts +0 -25
  827. package/lib/content-fields/index.js +0 -73
  828. package/lib/content-fields/index.js.map +0 -1
  829. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +0 -14
  830. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +0 -43
  831. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +0 -1
  832. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +0 -13
  833. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +0 -41
  834. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +0 -1
  835. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +0 -14
  836. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +0 -66
  837. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +0 -1
  838. package/lib/content-fields/whatsapp-button-list/index.d.ts +0 -3
  839. package/lib/content-fields/whatsapp-button-list/index.js +0 -12
  840. package/lib/content-fields/whatsapp-button-list/index.js.map +0 -1
  841. package/lib/filters/index.d.ts +0 -12
  842. package/lib/filters/index.js +0 -16
  843. package/lib/filters/index.js.map +0 -1
  844. package/lib/flow-factory.d.ts +0 -12
  845. package/lib/flow-factory.js +0 -75
  846. package/lib/flow-factory.js.map +0 -1
  847. package/lib/functions/index.d.ts +0 -11
  848. package/lib/functions/index.js +0 -55
  849. package/lib/functions/index.js.map +0 -1
  850. package/lib/index.d.ts +0 -45
  851. package/lib/index.js +0 -195
  852. package/lib/index.js.map +0 -1
  853. package/lib/services/hubtype-queues-api.js +0 -26
  854. package/lib/services/hubtype-queues-api.js.map +0 -1
  855. package/lib/structured-output/flow-builder-content.js +0 -16
  856. package/lib/structured-output/flow-builder-content.js.map +0 -1
  857. package/lib/tracking.d.ts +0 -16
  858. package/lib/tracking.js +0 -77
  859. package/lib/tracking.js.map +0 -1
  860. package/lib/types.d.ts +0 -62
  861. package/lib/types.js +0 -14
  862. package/lib/types.js.map +0 -1
  863. package/lib/user-input/capture-user-input-api.d.ts +0 -21
  864. package/lib/user-input/capture-user-input-api.js +0 -99
  865. package/lib/user-input/capture-user-input-api.js.map +0 -1
  866. package/lib/user-input/index.d.ts +0 -4
  867. package/lib/user-input/index.js +0 -46
  868. package/lib/user-input/index.js.map +0 -1
  869. package/lib/user-input/keyword.d.ts +0 -27
  870. package/lib/user-input/keyword.js +0 -89
  871. package/lib/user-input/keyword.js.map +0 -1
  872. package/lib/user-input/smart-intent.d.ts +0 -24
  873. package/lib/user-input/smart-intent.js +0 -93
  874. package/lib/user-input/smart-intent.js.map +0 -1
  875. package/lib/utils/ai-agent.d.ts +0 -11
  876. package/lib/utils/ai-agent.js +0 -33
  877. package/lib/utils/ai-agent.js.map +0 -1
  878. package/lib/utils/authentication.js +0 -24
  879. package/lib/utils/authentication.js.map +0 -1
  880. package/lib/utils/flow-locale.js +0 -75
  881. package/lib/utils/flow-locale.js.map +0 -1
  882. package/lib/utils/get-flow-builder-plugin.d.ts +0 -3
  883. package/lib/utils/get-flow-builder-plugin.js +0 -16
  884. package/lib/utils/get-flow-builder-plugin.js.map +0 -1
  885. package/lib/utils/hubtype-assistant-content.d.ts +0 -12
  886. package/lib/utils/hubtype-assistant-content.js +0 -187
  887. package/lib/utils/hubtype-assistant-content.js.map +0 -1
  888. package/lib/utils/input.js +0 -37
  889. package/lib/utils/input.js.map +0 -1
  890. package/lib/webview/contents-context.d.ts +0 -2
  891. package/lib/webview/contents-context.js +0 -14
  892. package/lib/webview/contents-context.js.map +0 -1
  893. package/lib/webview/index.d.ts +0 -3
  894. package/lib/webview/index.js +0 -11
  895. package/lib/webview/index.js.map +0 -1
  896. package/lib/webview/types.d.ts +0 -47
  897. package/lib/webview/types.js +0 -9
  898. package/lib/webview/types.js.map +0 -1
  899. package/lib/webview/use-webview-contents.d.ts +0 -2
  900. package/lib/webview/use-webview-contents.js +0 -90
  901. package/lib/webview/use-webview-contents.js.map +0 -1
  902. /package/lib/{services → cjs/services}/hubtype-queues-api.d.ts +0 -0
  903. /package/lib/{structured-output → cjs/structured-output}/flow-builder-content.d.ts +0 -0
  904. /package/lib/{utils → cjs/utils}/authentication.d.ts +0 -0
  905. /package/lib/{utils → cjs/utils}/flow-locale.d.ts +0 -0
  906. /package/lib/{utils → cjs/utils}/input.d.ts +0 -0
package/src/index.ts CHANGED
@@ -1,24 +1,16 @@
1
- import {
2
- INPUT,
3
- type Plugin,
4
- type PluginPreRequest,
5
- PROVIDER,
6
- type ResolvedPlugins,
7
- type Session,
1
+ import type {
2
+ BotContext,
3
+ Plugin,
4
+ ResolvedPlugins,
5
+ Session,
8
6
  } from '@botonic/core'
9
- import type { ActionRequest } from '@botonic/react'
10
7
  import { v7 as uuidv7 } from 'uuid'
11
8
 
12
9
  import { FlowBuilderApi } from './api'
13
- import {
14
- EMPTY_PAYLOAD,
15
- FLOW_BUILDER_API_URL_PROD,
16
- SEPARATOR,
17
- SOURCE_INFO_SEPARATOR,
18
- } from './constants'
10
+ import { BotContextManager } from './bot-context-manager'
11
+ import { FLOW_BUILDER_API_URL_PROD, SEPARATOR } from './constants'
19
12
  import type { FlowContent } from './content-fields'
20
13
  import {
21
- type HtBotActionNode,
22
14
  type HtFlowBuilderData,
23
15
  type HtNodeWithContent,
24
16
  HtNodeWithContentType,
@@ -35,10 +27,8 @@ import {
35
27
  type RatingSubmittedInfo,
36
28
  type TrackEventFunction,
37
29
  } from './types'
38
- import { getNextPayloadByUserInput } from './user-input'
39
30
  import type { SmartIntentsInferenceConfig } from './user-input/smart-intent'
40
31
  import { resolveGetAccessToken } from './utils/authentication'
41
- import { inputHasTextOrTranscript } from './utils/input'
42
32
 
43
33
  // TODO: Create a proper service to wrap all calls and allow api versioning
44
34
 
@@ -46,7 +36,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
46
36
  public cmsApi: FlowBuilderApi
47
37
  private flow?: HtFlowBuilderData
48
38
  private functions: Record<any, any>
49
- private currentRequest: PluginPreRequest
39
+ private botContext: BotContext
50
40
  public getAccessToken: (session: Session) => string
51
41
  public trackEvent?: TrackEventFunction
52
42
  public getAiAgentResponse?: AiAgentFunction
@@ -85,85 +75,33 @@ export default class BotonicPluginFlowBuilder implements Plugin {
85
75
  options.disableAIAgentInFirstInteraction || false
86
76
  }
87
77
 
88
- resolveFlowUrl(request: PluginPreRequest): string {
89
- if (request.session.is_test_integration) {
78
+ resolveFlowUrl(botContext: BotContext): string {
79
+ if (botContext.session.is_test_integration) {
90
80
  return `${this.apiUrl}/v1/bot_flows/{bot_id}/versions/${FlowBuilderJSONVersion.DRAFT}/`
91
81
  }
92
82
  return `${this.apiUrl}/v1/bot_flows/{bot_id}/versions/${this.jsonVersion}/`
93
83
  }
94
84
 
95
- async pre(request: PluginPreRequest): Promise<void> {
96
- // When AI Agent is executed in Whatsapp, button payloads come as referral and must be converted to text being processed by the agent.
97
- this.convertWhatsappAiAgentEmptyPayloads(request)
98
-
99
- this.currentRequest = request
85
+ async pre(botContext: BotContext): Promise<void> {
86
+ this.botContext = botContext
100
87
  this.cmsApi = await FlowBuilderApi.create({
101
- flowUrl: this.resolveFlowUrl(request),
88
+ flowUrl: this.resolveFlowUrl(botContext),
102
89
  url: this.apiUrl,
103
90
  flow: this.flow,
104
- accessToken: this.getAccessToken(request.session),
105
- request: this.currentRequest,
91
+ accessToken: this.getAccessToken(botContext.session),
92
+ botContext: this.botContext,
106
93
  })
107
94
 
108
- const checkUserTextInput =
109
- inputHasTextOrTranscript(request.input) && !request.input.payload
110
-
111
- if (checkUserTextInput) {
112
- const resolvedLocale = this.cmsApi.getResolvedLocale()
113
- const nextPayload = await getNextPayloadByUserInput(
114
- this.cmsApi,
115
- resolvedLocale,
116
- request as unknown as ActionRequest,
117
- this.smartIntentsConfig
118
- )
119
- request.input.payload = nextPayload
120
- }
121
-
122
- await this.updateRequestBeforeRoutes(request)
123
- }
124
-
125
- private convertWhatsappAiAgentEmptyPayloads(request: PluginPreRequest): void {
126
- if (request.session.user.provider === PROVIDER.WHATSAPP) {
127
- const shouldUseReferral =
128
- request.input.referral &&
129
- request.input.payload?.startsWith(EMPTY_PAYLOAD)
130
-
131
- if (shouldUseReferral) {
132
- request.input.type = INPUT.TEXT
133
- request.input.data = request.input.referral
134
- }
135
- }
136
- }
137
-
138
- private async updateRequestBeforeRoutes(
139
- request: PluginPreRequest
140
- ): Promise<void> {
141
- this.cmsApi.removeCaptureUserInputId()
142
- if (request.input.payload) {
143
- request.input.payload = this.removeSourceSuffix(request.input.payload)
144
-
145
- if (this.cmsApi.isBotAction(request.input.payload)) {
146
- const cmsBotAction = this.cmsApi.getNodeById<HtBotActionNode>(
147
- request.input.payload
148
- )
149
-
150
- request.input.payload =
151
- this.cmsApi.createPayloadWithParams(cmsBotAction)
152
-
153
- // Re-execute convertWhatsappAiAgentEmptyPayloads function to handle
154
- // the case that a BotAction has a payload equals to EMPTY_PAYLOAD
155
- this.convertWhatsappAiAgentEmptyPayloads(request)
156
- }
157
- }
158
- }
159
-
160
- private removeSourceSuffix(payload: string): string {
161
- return payload.split(SOURCE_INFO_SEPARATOR)[0]
95
+ const botContextManager = new BotContextManager(
96
+ this.cmsApi,
97
+ this.smartIntentsConfig
98
+ )
99
+ await botContextManager.prepareInputForRoutes(botContext)
162
100
  }
163
101
 
164
- post(request: PluginPreRequest): void {
165
- request.input.nluResolution = undefined
166
- delete request.session.user.system_locale_updated
102
+ post(botContext: BotContext): void {
103
+ botContext.input.nluResolution = undefined
104
+ delete botContext.session.user.system_locale_updated
167
105
  }
168
106
 
169
107
  async getContentsByContentID(
@@ -189,7 +127,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
189
127
 
190
128
  async getStartContents(): Promise<FlowContent[]> {
191
129
  const startNode = this.cmsApi.getStartNode()
192
- this.currentRequest.session.flow_thread_id = uuidv7()
130
+ this.botContext.session.flow_thread_id = uuidv7()
193
131
  return await this.getContentsByNode(startNode)
194
132
  }
195
133
 
@@ -206,7 +144,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
206
144
  ) {
207
145
  const customFunctionResolver = new CustomFunction(
208
146
  this.functions,
209
- this.currentRequest,
147
+ this.botContext,
210
148
  resolvedLocale
211
149
  )
212
150
  const targetId = await customFunctionResolver.call(node)
@@ -214,7 +152,7 @@ export default class BotonicPluginFlowBuilder implements Plugin {
214
152
  }
215
153
 
216
154
  const flowFactory = new FlowFactory(
217
- this.currentRequest,
155
+ this.botContext,
218
156
  this.cmsApi,
219
157
  resolvedLocale
220
158
  )
package/src/types.ts CHANGED
@@ -3,7 +3,6 @@ import type {
3
3
  BotContext,
4
4
  GuardrailRule,
5
5
  InferenceResponse,
6
- PluginPreRequest,
7
6
  ResolvedPlugins,
8
7
  } from '@botonic/core'
9
8
  import type { FlowContent } from './content-fields'
@@ -67,7 +66,7 @@ export interface FlowBuilderApiOptions {
67
66
  flowUrl: string
68
67
  flow?: HtFlowBuilderData
69
68
  accessToken: string
70
- request: PluginPreRequest
69
+ botContext: BotContext
71
70
  }
72
71
 
73
72
  export enum ProcessEnvNodeEnvs {
@@ -6,6 +6,7 @@ import { FlowImage } from '../content-fields/flow-image'
6
6
  import { FlowText } from '../content-fields/flow-text'
7
7
  import { FlowVideo } from '../content-fields/flow-video'
8
8
  import { FlowWhatsappCtaUrlButtonNode } from '../content-fields/flow-whatsapp-cta-url-button'
9
+ import { FlowWhatsappRequestContactInfoNode } from '../content-fields/flow-whatsapp-request-contact-info'
9
10
  import { FlowWhatsappTemplate } from '../content-fields/flow-whatsapp-template'
10
11
  import { HtButtonStyle } from '../content-fields/hubtype-fields'
11
12
  import { FlowWhatsappButtonList } from '../content-fields/whatsapp-button-list/flow-whatsapp-button-list'
@@ -34,6 +35,9 @@ export class HubtypeAssistantContent {
34
35
  if (content instanceof FlowWhatsappTemplate) {
35
36
  return HubtypeAssistantContent.formatWhatsappTemplateContent(content)
36
37
  }
38
+ if (content instanceof FlowWhatsappRequestContactInfoNode) {
39
+ return HubtypeAssistantContent.formatRequestContactInfoContent(content)
40
+ }
37
41
  return ''
38
42
  }
39
43
 
@@ -205,4 +209,14 @@ export class HubtypeAssistantContent {
205
209
  const { name, language } = template.htWhatsappTemplate
206
210
  return `WhatsApp Template: ${name} (${language})`
207
211
  }
212
+
213
+ private static formatRequestContactInfoContent(
214
+ requestContactInfo: FlowWhatsappRequestContactInfoNode
215
+ ): string {
216
+ const body = requestContactInfo.text?.trim() ?? ''
217
+ if (!body) {
218
+ return '[WhatsApp Request Contact Info]'
219
+ }
220
+ return requestContactInfo.text
221
+ }
208
222
  }
@@ -1,3 +0,0 @@
1
- import type { FlowContent } from '../content-fields/index.js';
2
- import type { FlowBuilderContext } from './context.js';
3
- export declare function getContentsByAiAgentFromUserInput({ cmsApi, flowBuilderPlugin, request, }: FlowBuilderContext): Promise<FlowContent[]>;
@@ -1,35 +0,0 @@
1
- import { splitAiAgentContents } from "../utils/ai-agent.js";
2
-
3
-
4
-
5
- async function getContentsByAiAgentFromUserInput({ cmsApi, flowBuilderPlugin, request }) {
6
- const startNodeAiAgentFlow = cmsApi.getStartNodeAiAgentFlow();
7
- const isAiAgentEnabled = cmsApi.isAiAgentEnabled();
8
- if (!startNodeAiAgentFlow || !isAiAgentEnabled) {
9
- return [];
10
- }
11
- const contents = await flowBuilderPlugin.getContentsByNode(startNodeAiAgentFlow);
12
- const splitContents = splitAiAgentContents(contents);
13
- if (!splitContents) {
14
- return [];
15
- }
16
- if ('aiAgentRouterContent' in splitContents) {
17
- const { aiAgentRouterContent, contentsBeforeAiAgentRouter } = splitContents;
18
- const aiAgentResponse = await aiAgentRouterContent.resolveAIAgentResponse(request, contentsBeforeAiAgentRouter);
19
- if (!aiAgentResponse || aiAgentResponse.exit) {
20
- return [];
21
- }
22
- }
23
- if ('aiAgentWorkerContent' in splitContents) {
24
- const { aiAgentWorkerContent, contentsBeforeAiAgentWorker } = splitContents;
25
- const aiAgentResponse = await aiAgentWorkerContent.resolveAIAgentResponse(request, contentsBeforeAiAgentWorker);
26
- if (!aiAgentResponse || aiAgentResponse.exit) {
27
- return [];
28
- }
29
- }
30
- return contents;
31
- }
32
-
33
- export { getContentsByAiAgentFromUserInput };
34
-
35
- //# sourceMappingURL=ai-agent-from-user-input.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action/ai-agent-from-user-input.js","sources":["../../src/action/ai-agent-from-user-input.ts"],"sourcesContent":["import type { FlowContent } from '../content-fields/index'\nimport { splitAiAgentContents } from '../utils/ai-agent'\nimport type { FlowBuilderContext } from './context'\n\nexport async function getContentsByAiAgentFromUserInput({\n cmsApi,\n flowBuilderPlugin,\n request,\n}: FlowBuilderContext): Promise<FlowContent[]> {\n const startNodeAiAgentFlow = cmsApi.getStartNodeAiAgentFlow()\n const isAiAgentEnabled = cmsApi.isAiAgentEnabled()\n if (!startNodeAiAgentFlow || !isAiAgentEnabled) {\n return []\n }\n\n const contents =\n await flowBuilderPlugin.getContentsByNode(startNodeAiAgentFlow)\n\n const splitContents = splitAiAgentContents(contents)\n\n if (!splitContents) {\n return []\n }\n\n if ('aiAgentRouterContent' in splitContents) {\n const { aiAgentRouterContent, contentsBeforeAiAgentRouter } = splitContents\n const aiAgentResponse = await aiAgentRouterContent.resolveAIAgentResponse(\n request,\n contentsBeforeAiAgentRouter\n )\n\n if (!aiAgentResponse || aiAgentResponse.exit) {\n return []\n }\n }\n\n if ('aiAgentWorkerContent' in splitContents) {\n const { aiAgentWorkerContent, contentsBeforeAiAgentWorker } = splitContents\n const aiAgentResponse = await aiAgentWorkerContent.resolveAIAgentResponse(\n request,\n contentsBeforeAiAgentWorker\n )\n\n if (!aiAgentResponse || aiAgentResponse.exit) {\n return []\n }\n }\n\n return contents\n}\n"],"names":["splitAiAgentContents","getContentsByAiAgentFromUserInput","cmsApi","flowBuilderPlugin","request","startNodeAiAgentFlow","isAiAgentEnabled","contents","splitContents","aiAgentRouterContent","contentsBeforeAiAgentRouter","aiAgentResponse","aiAgentWorkerContent","contentsBeforeAiAgentWorker"],"mappings":";;;AACwD;AAGjD,eAAeC,iCAAiCA,CAAC,EACtDC,MAAM,EACNC,iBAAiB,EACjBC,OAAO,EACY;IACnB,MAAMC,uBAAuBH,OAAO,uBAAuB;IAC3D,MAAMI,mBAAmBJ,OAAO,gBAAgB;IAChD,IAAI,CAACG,wBAAwB,CAACC,kBAAkB;QAC9C,OAAO,EAAE;IACX;IAEA,MAAMC,WACJ,MAAMJ,kBAAkB,iBAAiB,CAACE;IAE5C,MAAMG,gBAAgBR,oBAAoBA,CAACO;IAE3C,IAAI,CAACC,eAAe;QAClB,OAAO,EAAE;IACX;IAEA,IAAI,0BAA0BA,eAAe;QAC3C,MAAM,EAAEC,oBAAoB,EAAEC,2BAA2B,EAAE,GAAGF;QAC9D,MAAMG,kBAAkB,MAAMF,qBAAqB,sBAAsB,CACvEL,SACAM;QAGF,IAAI,CAACC,mBAAmBA,gBAAgB,IAAI,EAAE;YAC5C,OAAO,EAAE;QACX;IACF;IAEA,IAAI,0BAA0BH,eAAe;QAC3C,MAAM,EAAEI,oBAAoB,EAAEC,2BAA2B,EAAE,GAAGL;QAC9D,MAAMG,kBAAkB,MAAMC,qBAAqB,sBAAsB,CACvER,SACAS;QAGF,IAAI,CAACF,mBAAmBA,gBAAgB,IAAI,EAAE;YAC5C,OAAO,EAAE;QACX;IACF;IAEA,OAAOJ;AACT"}
@@ -1,11 +0,0 @@
1
- import type { BotContext } from '@botonic/core';
2
- import type { FlowBuilderApi } from '../api.js';
3
- import type BotonicPluginFlowBuilder from '../index.js';
4
- export interface FlowBuilderContext {
5
- cmsApi: FlowBuilderApi;
6
- flowBuilderPlugin: BotonicPluginFlowBuilder;
7
- request: BotContext;
8
- resolvedLocale: string;
9
- contentID?: string;
10
- }
11
- export declare function getFlowBuilderActionContext(request: BotContext, contentID?: string): FlowBuilderContext;
@@ -1,20 +0,0 @@
1
- import { getFlowBuilderPlugin } from "../utils/get-flow-builder-plugin.js";
2
-
3
-
4
-
5
- function getFlowBuilderActionContext(request, contentID) {
6
- const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
7
- const cmsApi = flowBuilderPlugin.cmsApi;
8
- const resolvedLocale = flowBuilderPlugin.cmsApi.getResolvedLocale();
9
- return {
10
- cmsApi,
11
- flowBuilderPlugin,
12
- request,
13
- resolvedLocale,
14
- contentID
15
- };
16
- }
17
-
18
- export { getFlowBuilderActionContext };
19
-
20
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action/context.js","sources":["../../src/action/context.ts"],"sourcesContent":["import type { BotContext } from '@botonic/core'\n\nimport type { FlowBuilderApi } from '../api'\nimport type BotonicPluginFlowBuilder from '../index'\nimport { getFlowBuilderPlugin } from '../utils/get-flow-builder-plugin'\n\nexport interface FlowBuilderContext {\n cmsApi: FlowBuilderApi\n flowBuilderPlugin: BotonicPluginFlowBuilder\n request: BotContext\n resolvedLocale: string\n contentID?: string\n}\n\nexport function getFlowBuilderActionContext(\n request: BotContext,\n contentID?: string\n): FlowBuilderContext {\n const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins)\n const cmsApi = flowBuilderPlugin.cmsApi\n const resolvedLocale = flowBuilderPlugin.cmsApi.getResolvedLocale()\n return {\n cmsApi,\n flowBuilderPlugin,\n request,\n resolvedLocale,\n contentID,\n }\n}\n"],"names":["getFlowBuilderPlugin","getFlowBuilderActionContext","request","contentID","flowBuilderPlugin","cmsApi","resolvedLocale"],"mappings":";;;AAIuE;AAUhE,SAASC,2BAA2BA,CACzCC,OAAmB,EACnBC,SAAkB;IAElB,MAAMC,oBAAoBJ,oBAAoBA,CAACE,QAAQ,OAAO;IAC9D,MAAMG,SAASD,kBAAkB,MAAM;IACvC,MAAME,iBAAiBF,kBAAkB,MAAM,CAAC,iBAAiB;IACjE,OAAO;QACLC;QACAD;QACAF;QACAI;QACAH;IACF;AACF"}
@@ -1,3 +0,0 @@
1
- import type { FlowContent } from '../content-fields/index.js';
2
- import type { FlowBuilderContext } from './context.js';
3
- export declare function getContentsByFallback({ cmsApi, flowBuilderPlugin, request, }: FlowBuilderContext): Promise<FlowContent[]>;
@@ -1,41 +0,0 @@
1
- import { EventAction } from "@botonic/core";
2
- import { getCommonFlowContentEventArgsForContentId, trackEvent } from "../tracking.js";
3
-
4
-
5
-
6
-
7
-
8
- async function getContentsByFallback({ cmsApi, flowBuilderPlugin, request }) {
9
- const fallbackNode = await getFallbackNode(cmsApi, request);
10
- const fallbackContents = await flowBuilderPlugin.getContentsByNode(fallbackNode);
11
- return fallbackContents;
12
- }
13
- async function getFallbackNode(cmsApi, request) {
14
- if (request.session.user.extra_data?.isFirstFallbackOption === undefined) {
15
- request.session.user.extra_data = {
16
- ...request.session.user.extra_data,
17
- isFirstFallbackOption: true
18
- };
19
- }
20
- const isFirstFallbackOption = !!request.session.user.extra_data.isFirstFallbackOption;
21
- const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption);
22
- request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption;
23
- const { flowId, flowName, flowNodeId, flowNodeContentId } = getCommonFlowContentEventArgsForContentId(request, fallbackNode.id);
24
- const event = {
25
- action: EventAction.Fallback,
26
- flowId,
27
- flowName,
28
- flowNodeId,
29
- flowNodeContentId,
30
- userInput: request.input.data,
31
- fallbackOut: isFirstFallbackOption ? 1 : 2,
32
- fallbackMessageId: request.input.message_id
33
- };
34
- const { action, ...eventArgs } = event;
35
- await trackEvent(request, action, eventArgs);
36
- return fallbackNode;
37
- }
38
-
39
- export { getContentsByFallback };
40
-
41
- //# sourceMappingURL=fallback.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action/fallback.js","sources":["../../src/action/fallback.ts"],"sourcesContent":["import { EventAction, type EventFallback } from '@botonic/core'\nimport type { ActionRequest } from '@botonic/react'\n\nimport type { FlowBuilderApi } from '../api'\nimport type { FlowContent } from '../content-fields'\nimport {\n getCommonFlowContentEventArgsForContentId,\n trackEvent,\n} from '../tracking'\nimport type { FlowBuilderContext } from './context'\n\nexport async function getContentsByFallback({\n cmsApi,\n flowBuilderPlugin,\n request,\n}: FlowBuilderContext): Promise<FlowContent[]> {\n const fallbackNode = await getFallbackNode(cmsApi, request)\n const fallbackContents =\n await flowBuilderPlugin.getContentsByNode(fallbackNode)\n\n return fallbackContents\n}\n\nasync function getFallbackNode(cmsApi: FlowBuilderApi, request: ActionRequest) {\n if (request.session.user.extra_data?.isFirstFallbackOption === undefined) {\n request.session.user.extra_data = {\n ...request.session.user.extra_data,\n isFirstFallbackOption: true,\n }\n }\n\n const isFirstFallbackOption =\n !!request.session.user.extra_data.isFirstFallbackOption\n const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption)\n request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption\n\n const { flowId, flowName, flowNodeId, flowNodeContentId } =\n getCommonFlowContentEventArgsForContentId(request, fallbackNode.id)\n\n const event: EventFallback = {\n action: EventAction.Fallback,\n flowId,\n flowName,\n flowNodeId,\n flowNodeContentId,\n userInput: request.input.data as string,\n fallbackOut: isFirstFallbackOption ? 1 : 2,\n fallbackMessageId: request.input.message_id,\n }\n const { action, ...eventArgs } = event\n\n await trackEvent(request, action, eventArgs)\n\n return fallbackNode\n}\n"],"names":["EventAction","getCommonFlowContentEventArgsForContentId","trackEvent","getContentsByFallback","cmsApi","flowBuilderPlugin","request","fallbackNode","getFallbackNode","fallbackContents","undefined","isFirstFallbackOption","flowId","flowName","flowNodeId","flowNodeContentId","event","action","eventArgs"],"mappings":";;;;;AAA+D;AAQ3C;AAGb,eAAeG,qBAAqBA,CAAC,EAC1CC,MAAM,EACNC,iBAAiB,EACjBC,OAAO,EACY;IACnB,MAAMC,eAAe,MAAMC,eAAeA,CAACJ,QAAQE;IACnD,MAAMG,mBACJ,MAAMJ,kBAAkB,iBAAiB,CAACE;IAE5C,OAAOE;AACT;AAEA,eAAeD,eAAeA,CAACJ,MAAsB,EAAEE,OAAsB;IAC3E,IAAIA,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,0BAA0BI,WAAW;QACxEJ,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG;YAChC,GAAGA,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU;YAClC,uBAAuB;QACzB;IACF;IAEA,MAAMK,wBACJ,CAAC,CAACL,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB;IACzD,MAAMC,eAAeH,OAAO,eAAe,CAACO;IAC5CL,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,CAACK;IAEzD,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,iBAAiB,EAAE,GACvDd,yCAAyCA,CAACK,SAASC,aAAa,EAAE;IAEpE,MAAMS,QAAuB;QAC3B,QAAQhB,oBAAoB;QAC5BY;QACAC;QACAC;QACAC;QACA,WAAWT,QAAQ,KAAK,CAAC,IAAI;QAC7B,aAAaK,wBAAwB,IAAI;QACzC,mBAAmBL,QAAQ,KAAK,CAAC,UAAU;IAC7C;IACA,MAAM,EAAEW,MAAM,EAAE,GAAGC,WAAW,GAAGF;IAEjC,MAAMd,UAAUA,CAACI,SAASW,QAAQC;IAElC,OAAOX;AACT"}
@@ -1,3 +0,0 @@
1
- import { type FlowContent } from '../content-fields/index.js';
2
- import type { FlowBuilderContext } from './context.js';
3
- export declare function getContentsByFirstInteraction(context: FlowBuilderContext): Promise<FlowContent[]>;
@@ -1,100 +0,0 @@
1
- import { MAIN_FLOW_NAME } from "../constants.js";
2
- import { FlowAiAgent, FlowAiAgentRouter, FlowBotAction } from "../content-fields/index.js";
3
- import { inputHasTextOrTranscript } from "../utils/input.js";
4
- import { getContentsByAiAgentFromUserInput } from "./ai-agent-from-user-input.js";
5
- import { getContentsByPayload } from "./payload.js";
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
- async function getContentsByFirstInteraction(context) {
18
- const { contentID, flowBuilderPlugin, request } = context;
19
- /*
20
- * If the contentID is provided, the firstInteractionContents are obtained even if they are not used
21
- * because when obtain this firstInteractionContents is when the session.flow_thread_id is updated.
22
- * This is needed for example when send a WhatsApp campaign is sent,
23
- * the bot not receives the message because this message is sent directly by the backend
24
- * we expect the bot to respond only with the contents of the contentID and not with the firstInteractionContents.
25
- */ const firstInteractionContents = await flowBuilderPlugin.getStartContents();
26
- if (contentID) {
27
- try {
28
- const contentsByContentID = await flowBuilderPlugin.getContentsByContentID(contentID);
29
- if (contentsByContentID.length > 0) {
30
- return contentsByContentID;
31
- }
32
- } catch (_error) {
33
- console.warn(`The contentID ${contentID} is not found. Returning the firstInteractionContents`);
34
- }
35
- }
36
- // Bot actions and AI agents already consume the user input. Matching
37
- // keywords/intents/KB/AI-agent-from-user-input on top would duplicate replies
38
- // (e.g. Main start → Go to flow → AI Agents).
39
- if (startContentsAlreadyHandleUserInput(firstInteractionContents)) {
40
- return firstInteractionContents;
41
- }
42
- if (request.input.nluResolution || inputHasTextOrTranscript(request.input)) {
43
- const contentsByUserInput = await getContentsByUserInput(context);
44
- return [
45
- ...firstInteractionContents,
46
- ...contentsByUserInput
47
- ];
48
- }
49
- return firstInteractionContents;
50
- }
51
- function startContentsAlreadyHandleUserInput(contents) {
52
- if (contents.at(-1) instanceof FlowBotAction) {
53
- return true;
54
- }
55
- // To avoid duplicated ai agent response, we check if there is an ai agent or ai agent router in the first interaction contents.
56
- return contents.some((content)=>content instanceof FlowAiAgent || content instanceof FlowAiAgentRouter);
57
- }
58
- async function getContentsByUserInput(context) {
59
- const { cmsApi, flowBuilderPlugin, request, resolvedLocale } = context;
60
- const payloadByNlu = request.input.nluResolution?.payload;
61
- if (payloadByNlu) {
62
- request.input.payload = payloadByNlu;
63
- const conversationStartId = getConversationStartId(cmsApi);
64
- if (request.input.payload === conversationStartId) {
65
- return [];
66
- }
67
- const contentsByKeywordsOrIntents = await getContentsByPayload({
68
- cmsApi,
69
- flowBuilderPlugin,
70
- request,
71
- resolvedLocale
72
- });
73
- const hasRepeatedContent = await checkRepeatedContents(flowBuilderPlugin, contentsByKeywordsOrIntents);
74
- if (hasRepeatedContent) {
75
- return [];
76
- }
77
- if (contentsByKeywordsOrIntents.length > 0) {
78
- return contentsByKeywordsOrIntents;
79
- }
80
- }
81
- if (!flowBuilderPlugin.disableAIAgentInFirstInteraction) {
82
- const contentsByAiAgent = await getContentsByAiAgentFromUserInput(context);
83
- return contentsByAiAgent;
84
- }
85
- return [];
86
- }
87
- function getConversationStartId(cmsApi) {
88
- const conversationStartId = cmsApi.flow.flows.find((flow)=>flow.name === MAIN_FLOW_NAME)?.start_node_id;
89
- return conversationStartId;
90
- }
91
- async function checkRepeatedContents(flowBuilderPlugin, contentsByKeywordsOrIntents) {
92
- const startContents = await flowBuilderPlugin.getStartContents();
93
- const contentIds = new Set(contentsByKeywordsOrIntents.map((content)=>content.id));
94
- const hasRepeatedContent = startContents.some((content)=>contentIds.has(content.id));
95
- return hasRepeatedContent;
96
- }
97
-
98
- export { getContentsByFirstInteraction };
99
-
100
- //# sourceMappingURL=first-interaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action/first-interaction.js","sources":["../../src/action/first-interaction.ts"],"sourcesContent":["import type { FlowBuilderApi } from '../api'\nimport { MAIN_FLOW_NAME } from '../constants'\nimport {\n FlowAiAgent,\n FlowAiAgentRouter,\n FlowBotAction,\n type FlowContent,\n} from '../content-fields'\nimport type BotonicPluginFlowBuilder from '../index'\nimport { inputHasTextOrTranscript } from '../utils/input'\nimport { getContentsByAiAgentFromUserInput } from './ai-agent-from-user-input'\nimport type { FlowBuilderContext } from './context'\nimport { getContentsByPayload } from './payload'\n\nexport async function getContentsByFirstInteraction(\n context: FlowBuilderContext\n): Promise<FlowContent[]> {\n const { contentID, flowBuilderPlugin, request } = context\n\n /*\n * If the contentID is provided, the firstInteractionContents are obtained even if they are not used\n * because when obtain this firstInteractionContents is when the session.flow_thread_id is updated.\n * This is needed for example when send a WhatsApp campaign is sent,\n * the bot not receives the message because this message is sent directly by the backend\n * we expect the bot to respond only with the contents of the contentID and not with the firstInteractionContents.\n */\n const firstInteractionContents = await flowBuilderPlugin.getStartContents()\n\n if (contentID) {\n try {\n const contentsByContentID =\n await flowBuilderPlugin.getContentsByContentID(contentID)\n\n if (contentsByContentID.length > 0) {\n return contentsByContentID\n }\n } catch (_error) {\n console.warn(\n `The contentID ${contentID} is not found. Returning the firstInteractionContents`\n )\n }\n }\n\n // Bot actions and AI agents already consume the user input. Matching\n // keywords/intents/KB/AI-agent-from-user-input on top would duplicate replies\n // (e.g. Main start → Go to flow → AI Agents).\n if (startContentsAlreadyHandleUserInput(firstInteractionContents)) {\n return firstInteractionContents\n }\n\n if (request.input.nluResolution || inputHasTextOrTranscript(request.input)) {\n const contentsByUserInput = await getContentsByUserInput(context)\n\n return [...firstInteractionContents, ...contentsByUserInput]\n }\n\n return firstInteractionContents\n}\n\nfunction startContentsAlreadyHandleUserInput(contents: FlowContent[]): boolean {\n if (contents.at(-1) instanceof FlowBotAction) {\n return true\n }\n\n // To avoid duplicated ai agent response, we check if there is an ai agent or ai agent router in the first interaction contents.\n return contents.some(\n content =>\n content instanceof FlowAiAgent || content instanceof FlowAiAgentRouter\n )\n}\n\nasync function getContentsByUserInput(\n context: FlowBuilderContext\n): Promise<FlowContent[]> {\n const { cmsApi, flowBuilderPlugin, request, resolvedLocale } = context\n const payloadByNlu = request.input.nluResolution?.payload\n\n if (payloadByNlu) {\n request.input.payload = payloadByNlu\n const conversationStartId = getConversationStartId(cmsApi)\n\n if (request.input.payload === conversationStartId) {\n return []\n }\n\n const contentsByKeywordsOrIntents = await getContentsByPayload({\n cmsApi,\n flowBuilderPlugin,\n request,\n resolvedLocale,\n })\n\n const hasRepeatedContent = await checkRepeatedContents(\n flowBuilderPlugin,\n contentsByKeywordsOrIntents\n )\n\n if (hasRepeatedContent) {\n return []\n }\n\n if (contentsByKeywordsOrIntents.length > 0) {\n return contentsByKeywordsOrIntents\n }\n }\n\n if (!flowBuilderPlugin.disableAIAgentInFirstInteraction) {\n const contentsByAiAgent = await getContentsByAiAgentFromUserInput(context)\n return contentsByAiAgent\n }\n\n return []\n}\n\nfunction getConversationStartId(cmsApi: FlowBuilderApi) {\n const conversationStartId = cmsApi.flow.flows.find(\n flow => flow.name === MAIN_FLOW_NAME\n )?.start_node_id\n\n return conversationStartId\n}\n\nasync function checkRepeatedContents(\n flowBuilderPlugin: BotonicPluginFlowBuilder,\n contentsByKeywordsOrIntents: FlowContent[]\n) {\n const startContents = await flowBuilderPlugin.getStartContents()\n const contentIds = new Set(\n contentsByKeywordsOrIntents.map(content => content.id)\n )\n const hasRepeatedContent = startContents.some(content =>\n contentIds.has(content.id)\n )\n\n return hasRepeatedContent\n}\n"],"names":["MAIN_FLOW_NAME","FlowAiAgent","FlowAiAgentRouter","FlowBotAction","inputHasTextOrTranscript","getContentsByAiAgentFromUserInput","getContentsByPayload","getContentsByFirstInteraction","context","contentID","flowBuilderPlugin","request","firstInteractionContents","contentsByContentID","_error","console","startContentsAlreadyHandleUserInput","contentsByUserInput","getContentsByUserInput","contents","content","cmsApi","resolvedLocale","payloadByNlu","conversationStartId","getConversationStartId","contentsByKeywordsOrIntents","hasRepeatedContent","checkRepeatedContents","contentsByAiAgent","flow","startContents","contentIds","Set"],"mappings":";;;;;;;;;;;AAC6C;AAMnB;AAE+B;AACqB;AAE9B;AAEzC,eAAeO,6BAA6BA,CACjDC,OAA2B;IAE3B,MAAM,EAAEC,SAAS,EAAEC,iBAAiB,EAAEC,OAAO,EAAE,GAAGH;IAElD;;;;;;GAMC,GACD,MAAMI,2BAA2B,MAAMF,kBAAkB,gBAAgB;IAEzE,IAAID,WAAW;QACb,IAAI;YACF,MAAMI,sBACJ,MAAMH,kBAAkB,sBAAsB,CAACD;YAEjD,IAAII,oBAAoB,MAAM,GAAG,GAAG;gBAClC,OAAOA;YACT;QACF,EAAE,OAAOC,QAAQ;YACfC,QAAQ,IAAI,CACV,CAAC,cAAc,EAAEN,UAAU,qDAAqD,CAAC;QAErF;IACF;IAEA,qEAAqE;IACrE,8EAA8E;IAC9E,8CAA8C;IAC9C,IAAIO,mCAAmCA,CAACJ,2BAA2B;QACjE,OAAOA;IACT;IAEA,IAAID,QAAQ,KAAK,CAAC,aAAa,IAAIP,wBAAwBA,CAACO,QAAQ,KAAK,GAAG;QAC1E,MAAMM,sBAAsB,MAAMC,sBAAsBA,CAACV;QAEzD,OAAO;eAAII;eAA6BK;SAAoB;IAC9D;IAEA,OAAOL;AACT;AAEA,SAASI,mCAAmCA,CAACG,QAAuB;IAClE,IAAIA,SAAS,EAAE,CAAC,CAAC,cAAchB,aAAaA,EAAE;QAC5C,OAAO;IACT;IAEA,gIAAgI;IAChI,OAAOgB,SAAS,IAAI,CAClBC,CAAAA,UACEA,mBAAmBnB,WAAWA,IAAImB,mBAAmBlB,iBAAiBA;AAE5E;AAEA,eAAegB,sBAAsBA,CACnCV,OAA2B;IAE3B,MAAM,EAAEa,MAAM,EAAEX,iBAAiB,EAAEC,OAAO,EAAEW,cAAc,EAAE,GAAGd;IAC/D,MAAMe,eAAeZ,QAAQ,KAAK,CAAC,aAAa,EAAE;IAElD,IAAIY,cAAc;QAChBZ,QAAQ,KAAK,CAAC,OAAO,GAAGY;QACxB,MAAMC,sBAAsBC,sBAAsBA,CAACJ;QAEnD,IAAIV,QAAQ,KAAK,CAAC,OAAO,KAAKa,qBAAqB;YACjD,OAAO,EAAE;QACX;QAEA,MAAME,8BAA8B,MAAMpB,oBAAoBA,CAAC;YAC7De;YACAX;YACAC;YACAW;QACF;QAEA,MAAMK,qBAAqB,MAAMC,qBAAqBA,CACpDlB,mBACAgB;QAGF,IAAIC,oBAAoB;YACtB,OAAO,EAAE;QACX;QAEA,IAAID,4BAA4B,MAAM,GAAG,GAAG;YAC1C,OAAOA;QACT;IACF;IAEA,IAAI,CAAChB,kBAAkB,gCAAgC,EAAE;QACvD,MAAMmB,oBAAoB,MAAMxB,iCAAiCA,CAACG;QAClE,OAAOqB;IACT;IAEA,OAAO,EAAE;AACX;AAEA,SAASJ,sBAAsBA,CAACJ,MAAsB;IACpD,MAAMG,sBAAsBH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAChDS,CAAAA,OAAQA,KAAK,IAAI,KAAK9B,cAAcA,GACnC;IAEH,OAAOwB;AACT;AAEA,eAAeI,qBAAqBA,CAClClB,iBAA2C,EAC3CgB,2BAA0C;IAE1C,MAAMK,gBAAgB,MAAMrB,kBAAkB,gBAAgB;IAC9D,MAAMsB,aAAa,IAAIC,IACrBP,4BAA4B,GAAG,CAACN,CAAAA,UAAWA,QAAQ,EAAE;IAEvD,MAAMO,qBAAqBI,cAAc,IAAI,CAACX,CAAAA,UAC5CY,WAAW,GAAG,CAACZ,QAAQ,EAAE;IAG3B,OAAOO;AACT"}
@@ -1,3 +0,0 @@
1
- import { type BotContext } from '@botonic/core';
2
- import type { FlowContent } from '../content-fields/index.js';
3
- export declare function getContents(botContext: BotContext, contentID?: string): Promise<FlowContent[]>;
@@ -1,56 +0,0 @@
1
- import { INPUT } from "@botonic/core";
2
- import { EMPTY_PAYLOAD } from "../constants.js";
3
- import { inputHasTextOrTranscript } from "../utils/input.js";
4
- import { getContentsByAiAgentFromUserInput } from "./ai-agent-from-user-input.js";
5
- import { getFlowBuilderActionContext } from "./context.js";
6
- import { getContentsByFallback } from "./fallback.js";
7
- import { getContentsByFirstInteraction } from "./first-interaction.js";
8
- import { getContentsByPayload } from "./payload.js";
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
- async function getContents(botContext, contentID) {
27
- const context = getFlowBuilderActionContext(botContext, contentID);
28
- if (botContext.session.is_first_interaction) {
29
- return await getContentsByFirstInteraction(context);
30
- }
31
- // TODO: Add needed logic when we can define contents for multi locale queue position message
32
- if (botContext.input.type === INPUT.EVENT_QUEUE_POSITION_CHANGED) {
33
- return [];
34
- }
35
- if (botContext.input.payload?.startsWith(EMPTY_PAYLOAD)) {
36
- botContext.input.payload = undefined;
37
- }
38
- if (botContext.input.payload || contentID) {
39
- const contentsByPayload = await getContentsByPayload(context);
40
- if (contentsByPayload.length > 0) {
41
- return contentsByPayload;
42
- }
43
- return await getContentsByFallback(context);
44
- }
45
- if (inputHasTextOrTranscript(botContext.input)) {
46
- const aiAgentContents = await getContentsByAiAgentFromUserInput(context);
47
- if (aiAgentContents.length > 0) {
48
- return aiAgentContents;
49
- }
50
- }
51
- return await getContentsByFallback(context);
52
- }
53
-
54
- export { getContents };
55
-
56
- //# sourceMappingURL=get-contents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action/get-contents.js","sources":["../../src/action/get-contents.ts"],"sourcesContent":["import { type BotContext, INPUT } from '@botonic/core'\nimport { EMPTY_PAYLOAD } from '../constants'\nimport type { FlowContent } from '../content-fields'\nimport { inputHasTextOrTranscript } from '../utils/input'\nimport { getContentsByAiAgentFromUserInput } from './ai-agent-from-user-input'\nimport { getFlowBuilderActionContext } from './context'\nimport { getContentsByFallback } from './fallback'\nimport { getContentsByFirstInteraction } from './first-interaction'\nimport { getContentsByPayload } from './payload'\n\nexport async function getContents(\n botContext: BotContext,\n contentID?: string\n): Promise<FlowContent[]> {\n const context = getFlowBuilderActionContext(botContext, contentID)\n\n if (botContext.session.is_first_interaction) {\n return await getContentsByFirstInteraction(context)\n }\n // TODO: Add needed logic when we can define contents for multi locale queue position message\n if (botContext.input.type === INPUT.EVENT_QUEUE_POSITION_CHANGED) {\n return []\n }\n\n if (botContext.input.payload?.startsWith(EMPTY_PAYLOAD)) {\n botContext.input.payload = undefined\n }\n\n if (botContext.input.payload || contentID) {\n const contentsByPayload = await getContentsByPayload(context)\n if (contentsByPayload.length > 0) {\n return contentsByPayload\n }\n\n return await getContentsByFallback(context)\n }\n\n if (inputHasTextOrTranscript(botContext.input)) {\n const aiAgentContents = await getContentsByAiAgentFromUserInput(context)\n if (aiAgentContents.length > 0) {\n return aiAgentContents\n }\n }\n\n return await getContentsByFallback(context)\n}\n"],"names":["INPUT","EMPTY_PAYLOAD","inputHasTextOrTranscript","getContentsByAiAgentFromUserInput","getFlowBuilderActionContext","getContentsByFallback","getContentsByFirstInteraction","getContentsByPayload","getContents","botContext","contentID","context","undefined","contentsByPayload","aiAgentContents"],"mappings":";;;;;;;;;;;;;;;;;AAAsD;AACV;AAEa;AACqB;AACvB;AACL;AACiB;AACnB;AAEzC,eAAeQ,WAAWA,CAC/BC,UAAsB,EACtBC,SAAkB;IAElB,MAAMC,UAAUP,2BAA2BA,CAACK,YAAYC;IAExD,IAAID,WAAW,OAAO,CAAC,oBAAoB,EAAE;QAC3C,OAAO,MAAMH,6BAA6BA,CAACK;IAC7C;IACA,6FAA6F;IAC7F,IAAIF,WAAW,KAAK,CAAC,IAAI,KAAKT,kCAAkC,EAAE;QAChE,OAAO,EAAE;IACX;IAEA,IAAIS,WAAW,KAAK,CAAC,OAAO,EAAE,WAAWR,aAAaA,GAAG;QACvDQ,WAAW,KAAK,CAAC,OAAO,GAAGG;IAC7B;IAEA,IAAIH,WAAW,KAAK,CAAC,OAAO,IAAIC,WAAW;QACzC,MAAMG,oBAAoB,MAAMN,oBAAoBA,CAACI;QACrD,IAAIE,kBAAkB,MAAM,GAAG,GAAG;YAChC,OAAOA;QACT;QAEA,OAAO,MAAMR,qBAAqBA,CAACM;IACrC;IAEA,IAAIT,wBAAwBA,CAACO,WAAW,KAAK,GAAG;QAC9C,MAAMK,kBAAkB,MAAMX,iCAAiCA,CAACQ;QAChE,IAAIG,gBAAgB,MAAM,GAAG,GAAG;YAC9B,OAAOA;QACT;IACF;IAEA,OAAO,MAAMT,qBAAqBA,CAACM;AACrC"}
@@ -1,25 +0,0 @@
1
- import { type BotContext } from '@botonic/core';
2
- import { RequestContext, type WebchatSettingsProps } from '@botonic/react';
3
- import React from 'react';
4
- import { type FlowContent } from '../content-fields/index.js';
5
- export type FlowBuilderActionProps = {
6
- contents: FlowContent[];
7
- webchatSettingsParams?: WebchatSettingsProps;
8
- };
9
- export declare class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
10
- static contextType: React.Context<import("@botonic/react").ActionRequest>;
11
- context: React.ContextType<typeof RequestContext>;
12
- static executeConversationStart(botContext: BotContext): Promise<FlowBuilderActionProps>;
13
- static botonicInit(botContext: BotContext, contentID?: string): Promise<FlowBuilderActionProps>;
14
- static prepareContentsToRender(botContext: BotContext, contents: FlowContent[]): Promise<FlowContent[]>;
15
- private static isAiAgentContent;
16
- private static processAiAgentContent;
17
- protected getWebchatSettingsParams(botContext: BotContext): {
18
- shouldSendWebchatSettings: boolean;
19
- webchatSettingsParams?: WebchatSettingsProps;
20
- };
21
- render(): JSX.Element | JSX.Element[];
22
- }
23
- export declare class FlowBuilderMultichannelAction extends FlowBuilderAction {
24
- render(): JSX.Element | JSX.Element[];
25
- }