bereach-openclaw 1.4.7 → 1.4.8-beta.1

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 (1605) hide show
  1. package/__tests__/hooks.test.ts +260 -870
  2. package/node_modules/bereach/FUNCTIONS.md +90 -0
  3. package/node_modules/bereach/README.md +737 -0
  4. package/node_modules/bereach/RUNTIMES.md +48 -0
  5. package/node_modules/bereach/esm/core.d.ts +10 -0
  6. package/node_modules/bereach/esm/core.d.ts.map +1 -0
  7. package/node_modules/bereach/esm/core.js +13 -0
  8. package/node_modules/bereach/esm/core.js.map +1 -0
  9. package/node_modules/bereach/esm/funcs/actions-accept-invitation.d.ts +18 -0
  10. package/node_modules/bereach/esm/funcs/actions-accept-invitation.d.ts.map +1 -0
  11. package/node_modules/bereach/esm/funcs/actions-accept-invitation.js +97 -0
  12. package/node_modules/bereach/esm/funcs/actions-accept-invitation.js.map +1 -0
  13. package/node_modules/bereach/esm/funcs/actions-connect-profile.d.ts +18 -0
  14. package/node_modules/bereach/esm/funcs/actions-connect-profile.d.ts.map +1 -0
  15. package/node_modules/bereach/esm/funcs/actions-connect-profile.js +97 -0
  16. package/node_modules/bereach/esm/funcs/actions-connect-profile.js.map +1 -0
  17. package/node_modules/bereach/esm/funcs/actions-create-comment.d.ts +18 -0
  18. package/node_modules/bereach/esm/funcs/actions-create-comment.d.ts.map +1 -0
  19. package/node_modules/bereach/esm/funcs/actions-create-comment.js +97 -0
  20. package/node_modules/bereach/esm/funcs/actions-create-comment.js.map +1 -0
  21. package/node_modules/bereach/esm/funcs/actions-decline-invitation.d.ts +18 -0
  22. package/node_modules/bereach/esm/funcs/actions-decline-invitation.d.ts.map +1 -0
  23. package/node_modules/bereach/esm/funcs/actions-decline-invitation.js +97 -0
  24. package/node_modules/bereach/esm/funcs/actions-decline-invitation.js.map +1 -0
  25. package/node_modules/bereach/esm/funcs/actions-edit-comment.d.ts +18 -0
  26. package/node_modules/bereach/esm/funcs/actions-edit-comment.d.ts.map +1 -0
  27. package/node_modules/bereach/esm/funcs/actions-edit-comment.js +97 -0
  28. package/node_modules/bereach/esm/funcs/actions-edit-comment.js.map +1 -0
  29. package/node_modules/bereach/esm/funcs/actions-edit-post.d.ts +18 -0
  30. package/node_modules/bereach/esm/funcs/actions-edit-post.d.ts.map +1 -0
  31. package/node_modules/bereach/esm/funcs/actions-edit-post.js +97 -0
  32. package/node_modules/bereach/esm/funcs/actions-edit-post.js.map +1 -0
  33. package/node_modules/bereach/esm/funcs/actions-follow-company.d.ts +18 -0
  34. package/node_modules/bereach/esm/funcs/actions-follow-company.d.ts.map +1 -0
  35. package/node_modules/bereach/esm/funcs/actions-follow-company.js +97 -0
  36. package/node_modules/bereach/esm/funcs/actions-follow-company.js.map +1 -0
  37. package/node_modules/bereach/esm/funcs/actions-follow-profile.d.ts +18 -0
  38. package/node_modules/bereach/esm/funcs/actions-follow-profile.d.ts.map +1 -0
  39. package/node_modules/bereach/esm/funcs/actions-follow-profile.js +97 -0
  40. package/node_modules/bereach/esm/funcs/actions-follow-profile.js.map +1 -0
  41. package/node_modules/bereach/esm/funcs/actions-like-comment.d.ts +18 -0
  42. package/node_modules/bereach/esm/funcs/actions-like-comment.d.ts.map +1 -0
  43. package/node_modules/bereach/esm/funcs/actions-like-comment.js +97 -0
  44. package/node_modules/bereach/esm/funcs/actions-like-comment.js.map +1 -0
  45. package/node_modules/bereach/esm/funcs/actions-like-post.d.ts +18 -0
  46. package/node_modules/bereach/esm/funcs/actions-like-post.d.ts.map +1 -0
  47. package/node_modules/bereach/esm/funcs/actions-like-post.js +97 -0
  48. package/node_modules/bereach/esm/funcs/actions-like-post.js.map +1 -0
  49. package/node_modules/bereach/esm/funcs/actions-list-invitations.d.ts +18 -0
  50. package/node_modules/bereach/esm/funcs/actions-list-invitations.d.ts.map +1 -0
  51. package/node_modules/bereach/esm/funcs/actions-list-invitations.js +99 -0
  52. package/node_modules/bereach/esm/funcs/actions-list-invitations.js.map +1 -0
  53. package/node_modules/bereach/esm/funcs/actions-list-sent-invitations.d.ts +18 -0
  54. package/node_modules/bereach/esm/funcs/actions-list-sent-invitations.d.ts.map +1 -0
  55. package/node_modules/bereach/esm/funcs/actions-list-sent-invitations.js +97 -0
  56. package/node_modules/bereach/esm/funcs/actions-list-sent-invitations.js.map +1 -0
  57. package/node_modules/bereach/esm/funcs/actions-publish-post.d.ts +18 -0
  58. package/node_modules/bereach/esm/funcs/actions-publish-post.d.ts.map +1 -0
  59. package/node_modules/bereach/esm/funcs/actions-publish-post.js +97 -0
  60. package/node_modules/bereach/esm/funcs/actions-publish-post.js.map +1 -0
  61. package/node_modules/bereach/esm/funcs/actions-reply-to-comment.d.ts +18 -0
  62. package/node_modules/bereach/esm/funcs/actions-reply-to-comment.d.ts.map +1 -0
  63. package/node_modules/bereach/esm/funcs/actions-reply-to-comment.js +97 -0
  64. package/node_modules/bereach/esm/funcs/actions-reply-to-comment.js.map +1 -0
  65. package/node_modules/bereach/esm/funcs/actions-repost-post.d.ts +18 -0
  66. package/node_modules/bereach/esm/funcs/actions-repost-post.d.ts.map +1 -0
  67. package/node_modules/bereach/esm/funcs/actions-repost-post.js +97 -0
  68. package/node_modules/bereach/esm/funcs/actions-repost-post.js.map +1 -0
  69. package/node_modules/bereach/esm/funcs/actions-save-post.d.ts +18 -0
  70. package/node_modules/bereach/esm/funcs/actions-save-post.d.ts.map +1 -0
  71. package/node_modules/bereach/esm/funcs/actions-save-post.js +97 -0
  72. package/node_modules/bereach/esm/funcs/actions-save-post.js.map +1 -0
  73. package/node_modules/bereach/esm/funcs/actions-send-message.d.ts +18 -0
  74. package/node_modules/bereach/esm/funcs/actions-send-message.d.ts.map +1 -0
  75. package/node_modules/bereach/esm/funcs/actions-send-message.js +97 -0
  76. package/node_modules/bereach/esm/funcs/actions-send-message.js.map +1 -0
  77. package/node_modules/bereach/esm/funcs/actions-unfollow-company.d.ts +18 -0
  78. package/node_modules/bereach/esm/funcs/actions-unfollow-company.d.ts.map +1 -0
  79. package/node_modules/bereach/esm/funcs/actions-unfollow-company.js +97 -0
  80. package/node_modules/bereach/esm/funcs/actions-unfollow-company.js.map +1 -0
  81. package/node_modules/bereach/esm/funcs/actions-unfollow-profile.d.ts +18 -0
  82. package/node_modules/bereach/esm/funcs/actions-unfollow-profile.d.ts.map +1 -0
  83. package/node_modules/bereach/esm/funcs/actions-unfollow-profile.js +97 -0
  84. package/node_modules/bereach/esm/funcs/actions-unfollow-profile.js.map +1 -0
  85. package/node_modules/bereach/esm/funcs/actions-unlike-comment.d.ts +18 -0
  86. package/node_modules/bereach/esm/funcs/actions-unlike-comment.d.ts.map +1 -0
  87. package/node_modules/bereach/esm/funcs/actions-unlike-comment.js +97 -0
  88. package/node_modules/bereach/esm/funcs/actions-unlike-comment.js.map +1 -0
  89. package/node_modules/bereach/esm/funcs/actions-unlike-post.d.ts +18 -0
  90. package/node_modules/bereach/esm/funcs/actions-unlike-post.d.ts.map +1 -0
  91. package/node_modules/bereach/esm/funcs/actions-unlike-post.js +97 -0
  92. package/node_modules/bereach/esm/funcs/actions-unlike-post.js.map +1 -0
  93. package/node_modules/bereach/esm/funcs/actions-unsave-post.d.ts +18 -0
  94. package/node_modules/bereach/esm/funcs/actions-unsave-post.d.ts.map +1 -0
  95. package/node_modules/bereach/esm/funcs/actions-unsave-post.js +97 -0
  96. package/node_modules/bereach/esm/funcs/actions-unsave-post.js.map +1 -0
  97. package/node_modules/bereach/esm/funcs/actions-withdraw-invitation.d.ts +18 -0
  98. package/node_modules/bereach/esm/funcs/actions-withdraw-invitation.d.ts.map +1 -0
  99. package/node_modules/bereach/esm/funcs/actions-withdraw-invitation.js +97 -0
  100. package/node_modules/bereach/esm/funcs/actions-withdraw-invitation.js.map +1 -0
  101. package/node_modules/bereach/esm/funcs/campaigns-filter.d.ts +20 -0
  102. package/node_modules/bereach/esm/funcs/campaigns-filter.d.ts.map +1 -0
  103. package/node_modules/bereach/esm/funcs/campaigns-filter.js +108 -0
  104. package/node_modules/bereach/esm/funcs/campaigns-filter.js.map +1 -0
  105. package/node_modules/bereach/esm/funcs/campaigns-get-status.d.ts +18 -0
  106. package/node_modules/bereach/esm/funcs/campaigns-get-status.d.ts.map +1 -0
  107. package/node_modules/bereach/esm/funcs/campaigns-get-status.js +103 -0
  108. package/node_modules/bereach/esm/funcs/campaigns-get-status.js.map +1 -0
  109. package/node_modules/bereach/esm/funcs/campaigns-stats.d.ts +18 -0
  110. package/node_modules/bereach/esm/funcs/campaigns-stats.d.ts.map +1 -0
  111. package/node_modules/bereach/esm/funcs/campaigns-stats.js +102 -0
  112. package/node_modules/bereach/esm/funcs/campaigns-stats.js.map +1 -0
  113. package/node_modules/bereach/esm/funcs/campaigns-sync.d.ts +18 -0
  114. package/node_modules/bereach/esm/funcs/campaigns-sync.d.ts.map +1 -0
  115. package/node_modules/bereach/esm/funcs/campaigns-sync.js +103 -0
  116. package/node_modules/bereach/esm/funcs/campaigns-sync.js.map +1 -0
  117. package/node_modules/bereach/esm/funcs/chat-archive.d.ts +18 -0
  118. package/node_modules/bereach/esm/funcs/chat-archive.d.ts.map +1 -0
  119. package/node_modules/bereach/esm/funcs/chat-archive.js +97 -0
  120. package/node_modules/bereach/esm/funcs/chat-archive.js.map +1 -0
  121. package/node_modules/bereach/esm/funcs/chat-find-conversation.d.ts +18 -0
  122. package/node_modules/bereach/esm/funcs/chat-find-conversation.d.ts.map +1 -0
  123. package/node_modules/bereach/esm/funcs/chat-find-conversation.js +97 -0
  124. package/node_modules/bereach/esm/funcs/chat-find-conversation.js.map +1 -0
  125. package/node_modules/bereach/esm/funcs/chat-get-messages.d.ts +22 -0
  126. package/node_modules/bereach/esm/funcs/chat-get-messages.d.ts.map +1 -0
  127. package/node_modules/bereach/esm/funcs/chat-get-messages.js +105 -0
  128. package/node_modules/bereach/esm/funcs/chat-get-messages.js.map +1 -0
  129. package/node_modules/bereach/esm/funcs/chat-get-unread-count.d.ts +18 -0
  130. package/node_modules/bereach/esm/funcs/chat-get-unread-count.d.ts.map +1 -0
  131. package/node_modules/bereach/esm/funcs/chat-get-unread-count.js +86 -0
  132. package/node_modules/bereach/esm/funcs/chat-get-unread-count.js.map +1 -0
  133. package/node_modules/bereach/esm/funcs/chat-list-archived.d.ts +18 -0
  134. package/node_modules/bereach/esm/funcs/chat-list-archived.d.ts.map +1 -0
  135. package/node_modules/bereach/esm/funcs/chat-list-archived.js +100 -0
  136. package/node_modules/bereach/esm/funcs/chat-list-archived.js.map +1 -0
  137. package/node_modules/bereach/esm/funcs/chat-list-inbox.d.ts +18 -0
  138. package/node_modules/bereach/esm/funcs/chat-list-inbox.d.ts.map +1 -0
  139. package/node_modules/bereach/esm/funcs/chat-list-inbox.js +99 -0
  140. package/node_modules/bereach/esm/funcs/chat-list-inbox.js.map +1 -0
  141. package/node_modules/bereach/esm/funcs/chat-list-starred.d.ts +18 -0
  142. package/node_modules/bereach/esm/funcs/chat-list-starred.d.ts.map +1 -0
  143. package/node_modules/bereach/esm/funcs/chat-list-starred.js +100 -0
  144. package/node_modules/bereach/esm/funcs/chat-list-starred.js.map +1 -0
  145. package/node_modules/bereach/esm/funcs/chat-mark-all-read.d.ts +18 -0
  146. package/node_modules/bereach/esm/funcs/chat-mark-all-read.d.ts.map +1 -0
  147. package/node_modules/bereach/esm/funcs/chat-mark-all-read.js +87 -0
  148. package/node_modules/bereach/esm/funcs/chat-mark-all-read.js.map +1 -0
  149. package/node_modules/bereach/esm/funcs/chat-mark-seen.d.ts +18 -0
  150. package/node_modules/bereach/esm/funcs/chat-mark-seen.d.ts.map +1 -0
  151. package/node_modules/bereach/esm/funcs/chat-mark-seen.js +97 -0
  152. package/node_modules/bereach/esm/funcs/chat-mark-seen.js.map +1 -0
  153. package/node_modules/bereach/esm/funcs/chat-react.d.ts +18 -0
  154. package/node_modules/bereach/esm/funcs/chat-react.d.ts.map +1 -0
  155. package/node_modules/bereach/esm/funcs/chat-react.js +97 -0
  156. package/node_modules/bereach/esm/funcs/chat-react.js.map +1 -0
  157. package/node_modules/bereach/esm/funcs/chat-search-conversations.d.ts +18 -0
  158. package/node_modules/bereach/esm/funcs/chat-search-conversations.d.ts.map +1 -0
  159. package/node_modules/bereach/esm/funcs/chat-search-conversations.js +101 -0
  160. package/node_modules/bereach/esm/funcs/chat-search-conversations.js.map +1 -0
  161. package/node_modules/bereach/esm/funcs/chat-send-typing-indicator.d.ts +18 -0
  162. package/node_modules/bereach/esm/funcs/chat-send-typing-indicator.d.ts.map +1 -0
  163. package/node_modules/bereach/esm/funcs/chat-send-typing-indicator.js +97 -0
  164. package/node_modules/bereach/esm/funcs/chat-send-typing-indicator.js.map +1 -0
  165. package/node_modules/bereach/esm/funcs/chat-star.d.ts +18 -0
  166. package/node_modules/bereach/esm/funcs/chat-star.d.ts.map +1 -0
  167. package/node_modules/bereach/esm/funcs/chat-star.js +97 -0
  168. package/node_modules/bereach/esm/funcs/chat-star.js.map +1 -0
  169. package/node_modules/bereach/esm/funcs/chat-unarchive.d.ts +18 -0
  170. package/node_modules/bereach/esm/funcs/chat-unarchive.d.ts.map +1 -0
  171. package/node_modules/bereach/esm/funcs/chat-unarchive.js +97 -0
  172. package/node_modules/bereach/esm/funcs/chat-unarchive.js.map +1 -0
  173. package/node_modules/bereach/esm/funcs/chat-unreact.d.ts +18 -0
  174. package/node_modules/bereach/esm/funcs/chat-unreact.d.ts.map +1 -0
  175. package/node_modules/bereach/esm/funcs/chat-unreact.js +97 -0
  176. package/node_modules/bereach/esm/funcs/chat-unreact.js.map +1 -0
  177. package/node_modules/bereach/esm/funcs/chat-unstar.d.ts +18 -0
  178. package/node_modules/bereach/esm/funcs/chat-unstar.d.ts.map +1 -0
  179. package/node_modules/bereach/esm/funcs/chat-unstar.js +97 -0
  180. package/node_modules/bereach/esm/funcs/chat-unstar.js.map +1 -0
  181. package/node_modules/bereach/esm/funcs/company-pages-get-analytics.d.ts +18 -0
  182. package/node_modules/bereach/esm/funcs/company-pages-get-analytics.d.ts.map +1 -0
  183. package/node_modules/bereach/esm/funcs/company-pages-get-analytics.js +97 -0
  184. package/node_modules/bereach/esm/funcs/company-pages-get-analytics.js.map +1 -0
  185. package/node_modules/bereach/esm/funcs/company-pages-get-permissions.d.ts +18 -0
  186. package/node_modules/bereach/esm/funcs/company-pages-get-permissions.d.ts.map +1 -0
  187. package/node_modules/bereach/esm/funcs/company-pages-get-permissions.js +97 -0
  188. package/node_modules/bereach/esm/funcs/company-pages-get-permissions.js.map +1 -0
  189. package/node_modules/bereach/esm/funcs/company-pages-list.d.ts +18 -0
  190. package/node_modules/bereach/esm/funcs/company-pages-list.d.ts.map +1 -0
  191. package/node_modules/bereach/esm/funcs/company-pages-list.js +86 -0
  192. package/node_modules/bereach/esm/funcs/company-pages-list.js.map +1 -0
  193. package/node_modules/bereach/esm/funcs/company-pages-posts.d.ts +18 -0
  194. package/node_modules/bereach/esm/funcs/company-pages-posts.d.ts.map +1 -0
  195. package/node_modules/bereach/esm/funcs/company-pages-posts.js +97 -0
  196. package/node_modules/bereach/esm/funcs/company-pages-posts.js.map +1 -0
  197. package/node_modules/bereach/esm/funcs/contacts-add-activities.d.ts +18 -0
  198. package/node_modules/bereach/esm/funcs/contacts-add-activities.d.ts.map +1 -0
  199. package/node_modules/bereach/esm/funcs/contacts-add-activities.js +103 -0
  200. package/node_modules/bereach/esm/funcs/contacts-add-activities.js.map +1 -0
  201. package/node_modules/bereach/esm/funcs/contacts-add-to-campaign.d.ts +18 -0
  202. package/node_modules/bereach/esm/funcs/contacts-add-to-campaign.d.ts.map +1 -0
  203. package/node_modules/bereach/esm/funcs/contacts-add-to-campaign.js +103 -0
  204. package/node_modules/bereach/esm/funcs/contacts-add-to-campaign.js.map +1 -0
  205. package/node_modules/bereach/esm/funcs/contacts-bulk-update.d.ts +18 -0
  206. package/node_modules/bereach/esm/funcs/contacts-bulk-update.d.ts.map +1 -0
  207. package/node_modules/bereach/esm/funcs/contacts-bulk-update.js +97 -0
  208. package/node_modules/bereach/esm/funcs/contacts-bulk-update.js.map +1 -0
  209. package/node_modules/bereach/esm/funcs/contacts-campaign-status-transition.d.ts +18 -0
  210. package/node_modules/bereach/esm/funcs/contacts-campaign-status-transition.d.ts.map +1 -0
  211. package/node_modules/bereach/esm/funcs/contacts-campaign-status-transition.js +103 -0
  212. package/node_modules/bereach/esm/funcs/contacts-campaign-status-transition.js.map +1 -0
  213. package/node_modules/bereach/esm/funcs/contacts-create-campaign.d.ts +18 -0
  214. package/node_modules/bereach/esm/funcs/contacts-create-campaign.d.ts.map +1 -0
  215. package/node_modules/bereach/esm/funcs/contacts-create-campaign.js +97 -0
  216. package/node_modules/bereach/esm/funcs/contacts-create-campaign.js.map +1 -0
  217. package/node_modules/bereach/esm/funcs/contacts-delete-agent-state.d.ts +18 -0
  218. package/node_modules/bereach/esm/funcs/contacts-delete-agent-state.d.ts.map +1 -0
  219. package/node_modules/bereach/esm/funcs/contacts-delete-agent-state.js +102 -0
  220. package/node_modules/bereach/esm/funcs/contacts-delete-agent-state.js.map +1 -0
  221. package/node_modules/bereach/esm/funcs/contacts-delete-campaign.d.ts +18 -0
  222. package/node_modules/bereach/esm/funcs/contacts-delete-campaign.d.ts.map +1 -0
  223. package/node_modules/bereach/esm/funcs/contacts-delete-campaign.js +102 -0
  224. package/node_modules/bereach/esm/funcs/contacts-delete-campaign.js.map +1 -0
  225. package/node_modules/bereach/esm/funcs/contacts-get-agent-state.d.ts +18 -0
  226. package/node_modules/bereach/esm/funcs/contacts-get-agent-state.d.ts.map +1 -0
  227. package/node_modules/bereach/esm/funcs/contacts-get-agent-state.js +102 -0
  228. package/node_modules/bereach/esm/funcs/contacts-get-agent-state.js.map +1 -0
  229. package/node_modules/bereach/esm/funcs/contacts-get-by-url.d.ts +18 -0
  230. package/node_modules/bereach/esm/funcs/contacts-get-by-url.d.ts.map +1 -0
  231. package/node_modules/bereach/esm/funcs/contacts-get-by-url.js +100 -0
  232. package/node_modules/bereach/esm/funcs/contacts-get-by-url.js.map +1 -0
  233. package/node_modules/bereach/esm/funcs/contacts-get-campaign.d.ts +18 -0
  234. package/node_modules/bereach/esm/funcs/contacts-get-campaign.d.ts.map +1 -0
  235. package/node_modules/bereach/esm/funcs/contacts-get-campaign.js +102 -0
  236. package/node_modules/bereach/esm/funcs/contacts-get-campaign.js.map +1 -0
  237. package/node_modules/bereach/esm/funcs/contacts-get.d.ts +18 -0
  238. package/node_modules/bereach/esm/funcs/contacts-get.d.ts.map +1 -0
  239. package/node_modules/bereach/esm/funcs/contacts-get.js +102 -0
  240. package/node_modules/bereach/esm/funcs/contacts-get.js.map +1 -0
  241. package/node_modules/bereach/esm/funcs/contacts-list-activities.d.ts +18 -0
  242. package/node_modules/bereach/esm/funcs/contacts-list-activities.d.ts.map +1 -0
  243. package/node_modules/bereach/esm/funcs/contacts-list-activities.js +108 -0
  244. package/node_modules/bereach/esm/funcs/contacts-list-activities.js.map +1 -0
  245. package/node_modules/bereach/esm/funcs/contacts-list-agent-states.d.ts +18 -0
  246. package/node_modules/bereach/esm/funcs/contacts-list-agent-states.d.ts.map +1 -0
  247. package/node_modules/bereach/esm/funcs/contacts-list-agent-states.js +100 -0
  248. package/node_modules/bereach/esm/funcs/contacts-list-agent-states.js.map +1 -0
  249. package/node_modules/bereach/esm/funcs/contacts-list-by-campaign.d.ts +18 -0
  250. package/node_modules/bereach/esm/funcs/contacts-list-by-campaign.d.ts.map +1 -0
  251. package/node_modules/bereach/esm/funcs/contacts-list-by-campaign.js +111 -0
  252. package/node_modules/bereach/esm/funcs/contacts-list-by-campaign.js.map +1 -0
  253. package/node_modules/bereach/esm/funcs/contacts-list-campaigns.d.ts +18 -0
  254. package/node_modules/bereach/esm/funcs/contacts-list-campaigns.d.ts.map +1 -0
  255. package/node_modules/bereach/esm/funcs/contacts-list-campaigns.js +103 -0
  256. package/node_modules/bereach/esm/funcs/contacts-list-campaigns.js.map +1 -0
  257. package/node_modules/bereach/esm/funcs/contacts-patch-agent-state.d.ts +18 -0
  258. package/node_modules/bereach/esm/funcs/contacts-patch-agent-state.d.ts.map +1 -0
  259. package/node_modules/bereach/esm/funcs/contacts-patch-agent-state.js +103 -0
  260. package/node_modules/bereach/esm/funcs/contacts-patch-agent-state.js.map +1 -0
  261. package/node_modules/bereach/esm/funcs/contacts-search.d.ts +18 -0
  262. package/node_modules/bereach/esm/funcs/contacts-search.d.ts.map +1 -0
  263. package/node_modules/bereach/esm/funcs/contacts-search.js +112 -0
  264. package/node_modules/bereach/esm/funcs/contacts-search.js.map +1 -0
  265. package/node_modules/bereach/esm/funcs/contacts-set-agent-state.d.ts +18 -0
  266. package/node_modules/bereach/esm/funcs/contacts-set-agent-state.d.ts.map +1 -0
  267. package/node_modules/bereach/esm/funcs/contacts-set-agent-state.js +103 -0
  268. package/node_modules/bereach/esm/funcs/contacts-set-agent-state.js.map +1 -0
  269. package/node_modules/bereach/esm/funcs/contacts-stats.d.ts +18 -0
  270. package/node_modules/bereach/esm/funcs/contacts-stats.d.ts.map +1 -0
  271. package/node_modules/bereach/esm/funcs/contacts-stats.js +100 -0
  272. package/node_modules/bereach/esm/funcs/contacts-stats.js.map +1 -0
  273. package/node_modules/bereach/esm/funcs/contacts-update-campaign.d.ts +18 -0
  274. package/node_modules/bereach/esm/funcs/contacts-update-campaign.d.ts.map +1 -0
  275. package/node_modules/bereach/esm/funcs/contacts-update-campaign.js +103 -0
  276. package/node_modules/bereach/esm/funcs/contacts-update-campaign.js.map +1 -0
  277. package/node_modules/bereach/esm/funcs/contacts-update.d.ts +18 -0
  278. package/node_modules/bereach/esm/funcs/contacts-update.d.ts.map +1 -0
  279. package/node_modules/bereach/esm/funcs/contacts-update.js +103 -0
  280. package/node_modules/bereach/esm/funcs/contacts-update.js.map +1 -0
  281. package/node_modules/bereach/esm/funcs/contacts-upsert.d.ts +18 -0
  282. package/node_modules/bereach/esm/funcs/contacts-upsert.d.ts.map +1 -0
  283. package/node_modules/bereach/esm/funcs/contacts-upsert.js +97 -0
  284. package/node_modules/bereach/esm/funcs/contacts-upsert.js.map +1 -0
  285. package/node_modules/bereach/esm/funcs/context-delete.d.ts +18 -0
  286. package/node_modules/bereach/esm/funcs/context-delete.d.ts.map +1 -0
  287. package/node_modules/bereach/esm/funcs/context-delete.js +101 -0
  288. package/node_modules/bereach/esm/funcs/context-delete.js.map +1 -0
  289. package/node_modules/bereach/esm/funcs/context-list-entries.d.ts +18 -0
  290. package/node_modules/bereach/esm/funcs/context-list-entries.d.ts.map +1 -0
  291. package/node_modules/bereach/esm/funcs/context-list-entries.js +101 -0
  292. package/node_modules/bereach/esm/funcs/context-list-entries.js.map +1 -0
  293. package/node_modules/bereach/esm/funcs/context-set.d.ts +18 -0
  294. package/node_modules/bereach/esm/funcs/context-set.d.ts.map +1 -0
  295. package/node_modules/bereach/esm/funcs/context-set.js +97 -0
  296. package/node_modules/bereach/esm/funcs/context-set.js.map +1 -0
  297. package/node_modules/bereach/esm/funcs/cron-list-schedules.d.ts +18 -0
  298. package/node_modules/bereach/esm/funcs/cron-list-schedules.d.ts.map +1 -0
  299. package/node_modules/bereach/esm/funcs/cron-list-schedules.js +86 -0
  300. package/node_modules/bereach/esm/funcs/cron-list-schedules.js.map +1 -0
  301. package/node_modules/bereach/esm/funcs/cron-update-schedule.d.ts +18 -0
  302. package/node_modules/bereach/esm/funcs/cron-update-schedule.d.ts.map +1 -0
  303. package/node_modules/bereach/esm/funcs/cron-update-schedule.js +103 -0
  304. package/node_modules/bereach/esm/funcs/cron-update-schedule.js.map +1 -0
  305. package/node_modules/bereach/esm/funcs/profile-get-credits.d.ts +18 -0
  306. package/node_modules/bereach/esm/funcs/profile-get-credits.d.ts.map +1 -0
  307. package/node_modules/bereach/esm/funcs/profile-get-credits.js +86 -0
  308. package/node_modules/bereach/esm/funcs/profile-get-credits.js.map +1 -0
  309. package/node_modules/bereach/esm/funcs/profile-get-follower-analytics.d.ts +18 -0
  310. package/node_modules/bereach/esm/funcs/profile-get-follower-analytics.d.ts.map +1 -0
  311. package/node_modules/bereach/esm/funcs/profile-get-follower-analytics.js +87 -0
  312. package/node_modules/bereach/esm/funcs/profile-get-follower-analytics.js.map +1 -0
  313. package/node_modules/bereach/esm/funcs/profile-get-followers.d.ts +18 -0
  314. package/node_modules/bereach/esm/funcs/profile-get-followers.d.ts.map +1 -0
  315. package/node_modules/bereach/esm/funcs/profile-get-followers.js +99 -0
  316. package/node_modules/bereach/esm/funcs/profile-get-followers.js.map +1 -0
  317. package/node_modules/bereach/esm/funcs/profile-get-limits.d.ts +18 -0
  318. package/node_modules/bereach/esm/funcs/profile-get-limits.d.ts.map +1 -0
  319. package/node_modules/bereach/esm/funcs/profile-get-limits.js +86 -0
  320. package/node_modules/bereach/esm/funcs/profile-get-limits.js.map +1 -0
  321. package/node_modules/bereach/esm/funcs/profile-get-post-analytics.d.ts +18 -0
  322. package/node_modules/bereach/esm/funcs/profile-get-post-analytics.d.ts.map +1 -0
  323. package/node_modules/bereach/esm/funcs/profile-get-post-analytics.js +97 -0
  324. package/node_modules/bereach/esm/funcs/profile-get-post-analytics.js.map +1 -0
  325. package/node_modules/bereach/esm/funcs/profile-get-search-appearances.d.ts +18 -0
  326. package/node_modules/bereach/esm/funcs/profile-get-search-appearances.d.ts.map +1 -0
  327. package/node_modules/bereach/esm/funcs/profile-get-search-appearances.js +87 -0
  328. package/node_modules/bereach/esm/funcs/profile-get-search-appearances.js.map +1 -0
  329. package/node_modules/bereach/esm/funcs/profile-get.d.ts +18 -0
  330. package/node_modules/bereach/esm/funcs/profile-get.d.ts.map +1 -0
  331. package/node_modules/bereach/esm/funcs/profile-get.js +86 -0
  332. package/node_modules/bereach/esm/funcs/profile-get.js.map +1 -0
  333. package/node_modules/bereach/esm/funcs/profile-list-accounts.d.ts +18 -0
  334. package/node_modules/bereach/esm/funcs/profile-list-accounts.d.ts.map +1 -0
  335. package/node_modules/bereach/esm/funcs/profile-list-accounts.js +86 -0
  336. package/node_modules/bereach/esm/funcs/profile-list-accounts.js.map +1 -0
  337. package/node_modules/bereach/esm/funcs/profile-list-connections.d.ts +18 -0
  338. package/node_modules/bereach/esm/funcs/profile-list-connections.d.ts.map +1 -0
  339. package/node_modules/bereach/esm/funcs/profile-list-connections.js +103 -0
  340. package/node_modules/bereach/esm/funcs/profile-list-connections.js.map +1 -0
  341. package/node_modules/bereach/esm/funcs/profile-posts.d.ts +18 -0
  342. package/node_modules/bereach/esm/funcs/profile-posts.d.ts.map +1 -0
  343. package/node_modules/bereach/esm/funcs/profile-posts.js +99 -0
  344. package/node_modules/bereach/esm/funcs/profile-posts.js.map +1 -0
  345. package/node_modules/bereach/esm/funcs/profile-refresh.d.ts +18 -0
  346. package/node_modules/bereach/esm/funcs/profile-refresh.d.ts.map +1 -0
  347. package/node_modules/bereach/esm/funcs/profile-refresh.js +86 -0
  348. package/node_modules/bereach/esm/funcs/profile-refresh.js.map +1 -0
  349. package/node_modules/bereach/esm/funcs/profile-switch-account.d.ts +18 -0
  350. package/node_modules/bereach/esm/funcs/profile-switch-account.d.ts.map +1 -0
  351. package/node_modules/bereach/esm/funcs/profile-switch-account.js +97 -0
  352. package/node_modules/bereach/esm/funcs/profile-switch-account.js.map +1 -0
  353. package/node_modules/bereach/esm/funcs/profile-update-account.d.ts +18 -0
  354. package/node_modules/bereach/esm/funcs/profile-update-account.d.ts.map +1 -0
  355. package/node_modules/bereach/esm/funcs/profile-update-account.js +97 -0
  356. package/node_modules/bereach/esm/funcs/profile-update-account.js.map +1 -0
  357. package/node_modules/bereach/esm/funcs/profile-views.d.ts +18 -0
  358. package/node_modules/bereach/esm/funcs/profile-views.d.ts.map +1 -0
  359. package/node_modules/bereach/esm/funcs/profile-views.js +87 -0
  360. package/node_modules/bereach/esm/funcs/profile-views.js.map +1 -0
  361. package/node_modules/bereach/esm/funcs/sales-nav-companies.d.ts +33 -0
  362. package/node_modules/bereach/esm/funcs/sales-nav-companies.d.ts.map +1 -0
  363. package/node_modules/bereach/esm/funcs/sales-nav-companies.js +112 -0
  364. package/node_modules/bereach/esm/funcs/sales-nav-companies.js.map +1 -0
  365. package/node_modules/bereach/esm/funcs/sales-nav-people.d.ts +53 -0
  366. package/node_modules/bereach/esm/funcs/sales-nav-people.d.ts.map +1 -0
  367. package/node_modules/bereach/esm/funcs/sales-nav-people.js +132 -0
  368. package/node_modules/bereach/esm/funcs/sales-nav-people.js.map +1 -0
  369. package/node_modules/bereach/esm/funcs/sales-nav-search.d.ts +39 -0
  370. package/node_modules/bereach/esm/funcs/sales-nav-search.d.ts.map +1 -0
  371. package/node_modules/bereach/esm/funcs/sales-nav-search.js +118 -0
  372. package/node_modules/bereach/esm/funcs/sales-nav-search.js.map +1 -0
  373. package/node_modules/bereach/esm/funcs/scheduled-messages-batch-schedule.d.ts +18 -0
  374. package/node_modules/bereach/esm/funcs/scheduled-messages-batch-schedule.d.ts.map +1 -0
  375. package/node_modules/bereach/esm/funcs/scheduled-messages-batch-schedule.js +97 -0
  376. package/node_modules/bereach/esm/funcs/scheduled-messages-batch-schedule.js.map +1 -0
  377. package/node_modules/bereach/esm/funcs/scheduled-messages-cancel.d.ts +18 -0
  378. package/node_modules/bereach/esm/funcs/scheduled-messages-cancel.d.ts.map +1 -0
  379. package/node_modules/bereach/esm/funcs/scheduled-messages-cancel.js +97 -0
  380. package/node_modules/bereach/esm/funcs/scheduled-messages-cancel.js.map +1 -0
  381. package/node_modules/bereach/esm/funcs/scheduled-messages-create.d.ts +18 -0
  382. package/node_modules/bereach/esm/funcs/scheduled-messages-create.d.ts.map +1 -0
  383. package/node_modules/bereach/esm/funcs/scheduled-messages-create.js +97 -0
  384. package/node_modules/bereach/esm/funcs/scheduled-messages-create.js.map +1 -0
  385. package/node_modules/bereach/esm/funcs/scheduled-messages-list.d.ts +18 -0
  386. package/node_modules/bereach/esm/funcs/scheduled-messages-list.d.ts.map +1 -0
  387. package/node_modules/bereach/esm/funcs/scheduled-messages-list.js +104 -0
  388. package/node_modules/bereach/esm/funcs/scheduled-messages-list.js.map +1 -0
  389. package/node_modules/bereach/esm/funcs/scrapers-bulk-visit-batch-status.d.ts +18 -0
  390. package/node_modules/bereach/esm/funcs/scrapers-bulk-visit-batch-status.d.ts.map +1 -0
  391. package/node_modules/bereach/esm/funcs/scrapers-bulk-visit-batch-status.js +102 -0
  392. package/node_modules/bereach/esm/funcs/scrapers-bulk-visit-batch-status.js.map +1 -0
  393. package/node_modules/bereach/esm/funcs/scrapers-bulk-visit-profile.d.ts +18 -0
  394. package/node_modules/bereach/esm/funcs/scrapers-bulk-visit-profile.d.ts.map +1 -0
  395. package/node_modules/bereach/esm/funcs/scrapers-bulk-visit-profile.js +97 -0
  396. package/node_modules/bereach/esm/funcs/scrapers-bulk-visit-profile.js.map +1 -0
  397. package/node_modules/bereach/esm/funcs/scrapers-collect-comment-replies.d.ts +18 -0
  398. package/node_modules/bereach/esm/funcs/scrapers-collect-comment-replies.d.ts.map +1 -0
  399. package/node_modules/bereach/esm/funcs/scrapers-collect-comment-replies.js +97 -0
  400. package/node_modules/bereach/esm/funcs/scrapers-collect-comment-replies.js.map +1 -0
  401. package/node_modules/bereach/esm/funcs/scrapers-collect-comments.d.ts +18 -0
  402. package/node_modules/bereach/esm/funcs/scrapers-collect-comments.d.ts.map +1 -0
  403. package/node_modules/bereach/esm/funcs/scrapers-collect-comments.js +97 -0
  404. package/node_modules/bereach/esm/funcs/scrapers-collect-comments.js.map +1 -0
  405. package/node_modules/bereach/esm/funcs/scrapers-collect-hashtag-posts.d.ts +18 -0
  406. package/node_modules/bereach/esm/funcs/scrapers-collect-hashtag-posts.d.ts.map +1 -0
  407. package/node_modules/bereach/esm/funcs/scrapers-collect-hashtag-posts.js +97 -0
  408. package/node_modules/bereach/esm/funcs/scrapers-collect-hashtag-posts.js.map +1 -0
  409. package/node_modules/bereach/esm/funcs/scrapers-collect-likes.d.ts +18 -0
  410. package/node_modules/bereach/esm/funcs/scrapers-collect-likes.d.ts.map +1 -0
  411. package/node_modules/bereach/esm/funcs/scrapers-collect-likes.js +97 -0
  412. package/node_modules/bereach/esm/funcs/scrapers-collect-likes.js.map +1 -0
  413. package/node_modules/bereach/esm/funcs/scrapers-collect-posts.d.ts +18 -0
  414. package/node_modules/bereach/esm/funcs/scrapers-collect-posts.d.ts.map +1 -0
  415. package/node_modules/bereach/esm/funcs/scrapers-collect-posts.js +97 -0
  416. package/node_modules/bereach/esm/funcs/scrapers-collect-posts.js.map +1 -0
  417. package/node_modules/bereach/esm/funcs/scrapers-get-feed.d.ts +18 -0
  418. package/node_modules/bereach/esm/funcs/scrapers-get-feed.d.ts.map +1 -0
  419. package/node_modules/bereach/esm/funcs/scrapers-get-feed.js +99 -0
  420. package/node_modules/bereach/esm/funcs/scrapers-get-feed.js.map +1 -0
  421. package/node_modules/bereach/esm/funcs/scrapers-list-saved-posts.d.ts +18 -0
  422. package/node_modules/bereach/esm/funcs/scrapers-list-saved-posts.d.ts.map +1 -0
  423. package/node_modules/bereach/esm/funcs/scrapers-list-saved-posts.js +97 -0
  424. package/node_modules/bereach/esm/funcs/scrapers-list-saved-posts.js.map +1 -0
  425. package/node_modules/bereach/esm/funcs/scrapers-visit-company.d.ts +18 -0
  426. package/node_modules/bereach/esm/funcs/scrapers-visit-company.d.ts.map +1 -0
  427. package/node_modules/bereach/esm/funcs/scrapers-visit-company.js +97 -0
  428. package/node_modules/bereach/esm/funcs/scrapers-visit-company.js.map +1 -0
  429. package/node_modules/bereach/esm/funcs/scrapers-visit-profile.d.ts +20 -0
  430. package/node_modules/bereach/esm/funcs/scrapers-visit-profile.d.ts.map +1 -0
  431. package/node_modules/bereach/esm/funcs/scrapers-visit-profile.js +99 -0
  432. package/node_modules/bereach/esm/funcs/scrapers-visit-profile.js.map +1 -0
  433. package/node_modules/bereach/esm/funcs/search-by-url.d.ts +69 -0
  434. package/node_modules/bereach/esm/funcs/search-by-url.d.ts.map +1 -0
  435. package/node_modules/bereach/esm/funcs/search-by-url.js +148 -0
  436. package/node_modules/bereach/esm/funcs/search-by-url.js.map +1 -0
  437. package/node_modules/bereach/esm/funcs/search-companies.d.ts +75 -0
  438. package/node_modules/bereach/esm/funcs/search-companies.d.ts.map +1 -0
  439. package/node_modules/bereach/esm/funcs/search-companies.js +154 -0
  440. package/node_modules/bereach/esm/funcs/search-companies.js.map +1 -0
  441. package/node_modules/bereach/esm/funcs/search-jobs.d.ts +96 -0
  442. package/node_modules/bereach/esm/funcs/search-jobs.d.ts.map +1 -0
  443. package/node_modules/bereach/esm/funcs/search-jobs.js +175 -0
  444. package/node_modules/bereach/esm/funcs/search-jobs.js.map +1 -0
  445. package/node_modules/bereach/esm/funcs/search-people.d.ts +83 -0
  446. package/node_modules/bereach/esm/funcs/search-people.d.ts.map +1 -0
  447. package/node_modules/bereach/esm/funcs/search-people.js +162 -0
  448. package/node_modules/bereach/esm/funcs/search-people.js.map +1 -0
  449. package/node_modules/bereach/esm/funcs/search-posts.d.ts +71 -0
  450. package/node_modules/bereach/esm/funcs/search-posts.d.ts.map +1 -0
  451. package/node_modules/bereach/esm/funcs/search-posts.js +150 -0
  452. package/node_modules/bereach/esm/funcs/search-posts.js.map +1 -0
  453. package/node_modules/bereach/esm/funcs/search-resolve-parameters.d.ts +50 -0
  454. package/node_modules/bereach/esm/funcs/search-resolve-parameters.d.ts.map +1 -0
  455. package/node_modules/bereach/esm/funcs/search-resolve-parameters.js +134 -0
  456. package/node_modules/bereach/esm/funcs/search-resolve-parameters.js.map +1 -0
  457. package/node_modules/bereach/esm/funcs/search-search.d.ts +55 -0
  458. package/node_modules/bereach/esm/funcs/search-search.d.ts.map +1 -0
  459. package/node_modules/bereach/esm/funcs/search-search.js +134 -0
  460. package/node_modules/bereach/esm/funcs/search-search.js.map +1 -0
  461. package/node_modules/bereach/esm/hooks/hooks.d.ts +25 -0
  462. package/node_modules/bereach/esm/hooks/hooks.d.ts.map +1 -0
  463. package/node_modules/bereach/esm/hooks/hooks.js +82 -0
  464. package/node_modules/bereach/esm/hooks/hooks.js.map +1 -0
  465. package/node_modules/bereach/esm/hooks/index.d.ts +3 -0
  466. package/node_modules/bereach/esm/hooks/index.d.ts.map +1 -0
  467. package/node_modules/bereach/esm/hooks/index.js +6 -0
  468. package/node_modules/bereach/esm/hooks/index.js.map +1 -0
  469. package/node_modules/bereach/esm/hooks/registration.d.ts +3 -0
  470. package/node_modules/bereach/esm/hooks/registration.d.ts.map +1 -0
  471. package/node_modules/bereach/esm/hooks/registration.js +12 -0
  472. package/node_modules/bereach/esm/hooks/registration.js.map +1 -0
  473. package/node_modules/bereach/esm/hooks/types.d.ts +76 -0
  474. package/node_modules/bereach/esm/hooks/types.d.ts.map +1 -0
  475. package/node_modules/bereach/esm/hooks/types.js +5 -0
  476. package/node_modules/bereach/esm/hooks/types.js.map +1 -0
  477. package/node_modules/bereach/esm/index.d.ts +6 -0
  478. package/node_modules/bereach/esm/index.d.ts.map +1 -0
  479. package/node_modules/bereach/esm/index.js +8 -0
  480. package/node_modules/bereach/esm/index.js.map +1 -0
  481. package/node_modules/bereach/esm/lib/base64.d.ts +10 -0
  482. package/node_modules/bereach/esm/lib/base64.d.ts.map +1 -0
  483. package/node_modules/bereach/esm/lib/base64.js +31 -0
  484. package/node_modules/bereach/esm/lib/base64.js.map +1 -0
  485. package/node_modules/bereach/esm/lib/config.d.ts +38 -0
  486. package/node_modules/bereach/esm/lib/config.d.ts.map +1 -0
  487. package/node_modules/bereach/esm/lib/config.js +38 -0
  488. package/node_modules/bereach/esm/lib/config.js.map +1 -0
  489. package/node_modules/bereach/esm/lib/dlv.d.ts +14 -0
  490. package/node_modules/bereach/esm/lib/dlv.d.ts.map +1 -0
  491. package/node_modules/bereach/esm/lib/dlv.js +46 -0
  492. package/node_modules/bereach/esm/lib/dlv.js.map +1 -0
  493. package/node_modules/bereach/esm/lib/encodings.d.ts +53 -0
  494. package/node_modules/bereach/esm/lib/encodings.d.ts.map +1 -0
  495. package/node_modules/bereach/esm/lib/encodings.js +370 -0
  496. package/node_modules/bereach/esm/lib/encodings.js.map +1 -0
  497. package/node_modules/bereach/esm/lib/env.d.ts +15 -0
  498. package/node_modules/bereach/esm/lib/env.d.ts.map +1 -0
  499. package/node_modules/bereach/esm/lib/env.js +44 -0
  500. package/node_modules/bereach/esm/lib/env.js.map +1 -0
  501. package/node_modules/bereach/esm/lib/files.d.ts +26 -0
  502. package/node_modules/bereach/esm/lib/files.d.ts.map +1 -0
  503. package/node_modules/bereach/esm/lib/files.js +91 -0
  504. package/node_modules/bereach/esm/lib/files.js.map +1 -0
  505. package/node_modules/bereach/esm/lib/http.d.ts +67 -0
  506. package/node_modules/bereach/esm/lib/http.d.ts.map +1 -0
  507. package/node_modules/bereach/esm/lib/http.js +209 -0
  508. package/node_modules/bereach/esm/lib/http.js.map +1 -0
  509. package/node_modules/bereach/esm/lib/is-plain-object.d.ts +2 -0
  510. package/node_modules/bereach/esm/lib/is-plain-object.d.ts.map +1 -0
  511. package/node_modules/bereach/esm/lib/is-plain-object.js +38 -0
  512. package/node_modules/bereach/esm/lib/is-plain-object.js.map +1 -0
  513. package/node_modules/bereach/esm/lib/logger.d.ts +6 -0
  514. package/node_modules/bereach/esm/lib/logger.d.ts.map +1 -0
  515. package/node_modules/bereach/esm/lib/logger.js +5 -0
  516. package/node_modules/bereach/esm/lib/logger.js.map +1 -0
  517. package/node_modules/bereach/esm/lib/matchers.d.ts +59 -0
  518. package/node_modules/bereach/esm/lib/matchers.d.ts.map +1 -0
  519. package/node_modules/bereach/esm/lib/matchers.js +202 -0
  520. package/node_modules/bereach/esm/lib/matchers.js.map +1 -0
  521. package/node_modules/bereach/esm/lib/primitives.d.ts +26 -0
  522. package/node_modules/bereach/esm/lib/primitives.d.ts.map +1 -0
  523. package/node_modules/bereach/esm/lib/primitives.js +103 -0
  524. package/node_modules/bereach/esm/lib/primitives.js.map +1 -0
  525. package/node_modules/bereach/esm/lib/retries.d.ts +38 -0
  526. package/node_modules/bereach/esm/lib/retries.d.ts.map +1 -0
  527. package/node_modules/bereach/esm/lib/retries.js +150 -0
  528. package/node_modules/bereach/esm/lib/retries.js.map +1 -0
  529. package/node_modules/bereach/esm/lib/schemas.d.ts +21 -0
  530. package/node_modules/bereach/esm/lib/schemas.d.ts.map +1 -0
  531. package/node_modules/bereach/esm/lib/schemas.js +57 -0
  532. package/node_modules/bereach/esm/lib/schemas.js.map +1 -0
  533. package/node_modules/bereach/esm/lib/sdks.d.ts +63 -0
  534. package/node_modules/bereach/esm/lib/sdks.d.ts.map +1 -0
  535. package/node_modules/bereach/esm/lib/sdks.js +262 -0
  536. package/node_modules/bereach/esm/lib/sdks.js.map +1 -0
  537. package/node_modules/bereach/esm/lib/security.d.ts +83 -0
  538. package/node_modules/bereach/esm/lib/security.d.ts.map +1 -0
  539. package/node_modules/bereach/esm/lib/security.js +138 -0
  540. package/node_modules/bereach/esm/lib/security.js.map +1 -0
  541. package/node_modules/bereach/esm/lib/url.d.ts +5 -0
  542. package/node_modules/bereach/esm/lib/url.d.ts.map +1 -0
  543. package/node_modules/bereach/esm/lib/url.js +24 -0
  544. package/node_modules/bereach/esm/lib/url.js.map +1 -0
  545. package/node_modules/bereach/esm/models/errors/bereach-default-error.d.ts +10 -0
  546. package/node_modules/bereach/esm/models/errors/bereach-default-error.d.ts.map +1 -0
  547. package/node_modules/bereach/esm/models/errors/bereach-default-error.js +30 -0
  548. package/node_modules/bereach/esm/models/errors/bereach-default-error.js.map +1 -0
  549. package/node_modules/bereach/esm/models/errors/bereach-error.d.ts +19 -0
  550. package/node_modules/bereach/esm/models/errors/bereach-error.d.ts.map +1 -0
  551. package/node_modules/bereach/esm/models/errors/bereach-error.js +26 -0
  552. package/node_modules/bereach/esm/models/errors/bereach-error.js.map +1 -0
  553. package/node_modules/bereach/esm/models/errors/collect-likes.d.ts +257 -0
  554. package/node_modules/bereach/esm/models/errors/collect-likes.d.ts.map +1 -0
  555. package/node_modules/bereach/esm/models/errors/collect-likes.js +372 -0
  556. package/node_modules/bereach/esm/models/errors/collect-likes.js.map +1 -0
  557. package/node_modules/bereach/esm/models/errors/http-client-errors.d.ts +44 -0
  558. package/node_modules/bereach/esm/models/errors/http-client-errors.d.ts.map +1 -0
  559. package/node_modules/bereach/esm/models/errors/http-client-errors.js +56 -0
  560. package/node_modules/bereach/esm/models/errors/http-client-errors.js.map +1 -0
  561. package/node_modules/bereach/esm/models/errors/index.d.ts +7 -0
  562. package/node_modules/bereach/esm/models/errors/index.d.ts.map +1 -0
  563. package/node_modules/bereach/esm/models/errors/index.js +10 -0
  564. package/node_modules/bereach/esm/models/errors/index.js.map +1 -0
  565. package/node_modules/bereach/esm/models/errors/response-validation-error.d.ts +26 -0
  566. package/node_modules/bereach/esm/models/errors/response-validation-error.d.ts.map +1 -0
  567. package/node_modules/bereach/esm/models/errors/response-validation-error.js +37 -0
  568. package/node_modules/bereach/esm/models/errors/response-validation-error.js.map +1 -0
  569. package/node_modules/bereach/esm/models/errors/sdk-validation-error.d.ts +21 -0
  570. package/node_modules/bereach/esm/models/errors/sdk-validation-error.d.ts.map +1 -0
  571. package/node_modules/bereach/esm/models/errors/sdk-validation-error.js +52 -0
  572. package/node_modules/bereach/esm/models/errors/sdk-validation-error.js.map +1 -0
  573. package/node_modules/bereach/esm/models/index.d.ts +2 -0
  574. package/node_modules/bereach/esm/models/index.d.ts.map +1 -0
  575. package/node_modules/bereach/esm/models/index.js +5 -0
  576. package/node_modules/bereach/esm/models/index.js.map +1 -0
  577. package/node_modules/bereach/esm/models/operations/index.d.ts +5 -0
  578. package/node_modules/bereach/esm/models/operations/index.d.ts.map +1 -0
  579. package/node_modules/bereach/esm/models/operations/index.js +8 -0
  580. package/node_modules/bereach/esm/models/operations/index.js.map +1 -0
  581. package/node_modules/bereach/esm/models/operations/search-companies-response.d.ts +2520 -0
  582. package/node_modules/bereach/esm/models/operations/search-companies-response.d.ts.map +1 -0
  583. package/node_modules/bereach/esm/models/operations/search-companies-response.js +1631 -0
  584. package/node_modules/bereach/esm/models/operations/search-companies-response.js.map +1 -0
  585. package/node_modules/bereach/esm/models/operations/search-contacts-campaign.d.ts +2629 -0
  586. package/node_modules/bereach/esm/models/operations/search-contacts-campaign.d.ts.map +1 -0
  587. package/node_modules/bereach/esm/models/operations/search-contacts-campaign.js +1590 -0
  588. package/node_modules/bereach/esm/models/operations/search-contacts-campaign.js.map +1 -0
  589. package/node_modules/bereach/esm/models/operations/update-account-response.d.ts +2808 -0
  590. package/node_modules/bereach/esm/models/operations/update-account-response.d.ts.map +1 -0
  591. package/node_modules/bereach/esm/models/operations/update-account-response.js +1577 -0
  592. package/node_modules/bereach/esm/models/operations/update-account-response.js.map +1 -0
  593. package/node_modules/bereach/esm/models/operations/update-schedule-response.d.ts +2449 -0
  594. package/node_modules/bereach/esm/models/operations/update-schedule-response.d.ts.map +1 -0
  595. package/node_modules/bereach/esm/models/operations/update-schedule-response.js +1529 -0
  596. package/node_modules/bereach/esm/models/operations/update-schedule-response.js.map +1 -0
  597. package/node_modules/bereach/esm/models/security.d.ts +12 -0
  598. package/node_modules/bereach/esm/models/security.d.ts.map +1 -0
  599. package/node_modules/bereach/esm/models/security.js +12 -0
  600. package/node_modules/bereach/esm/models/security.js.map +1 -0
  601. package/node_modules/bereach/esm/sdk/actions.d.ts +166 -0
  602. package/node_modules/bereach/esm/sdk/actions.d.ts.map +1 -0
  603. package/node_modules/bereach/esm/sdk/actions.js +238 -0
  604. package/node_modules/bereach/esm/sdk/actions.js.map +1 -0
  605. package/node_modules/bereach/esm/sdk/campaigns.d.ts +35 -0
  606. package/node_modules/bereach/esm/sdk/campaigns.d.ts.map +1 -0
  607. package/node_modules/bereach/esm/sdk/campaigns.js +50 -0
  608. package/node_modules/bereach/esm/sdk/campaigns.js.map +1 -0
  609. package/node_modules/bereach/esm/sdk/chat.d.ts +121 -0
  610. package/node_modules/bereach/esm/sdk/chat.d.ts.map +1 -0
  611. package/node_modules/bereach/esm/sdk/chat.js +172 -0
  612. package/node_modules/bereach/esm/sdk/chat.js.map +1 -0
  613. package/node_modules/bereach/esm/sdk/company-pages.d.ts +33 -0
  614. package/node_modules/bereach/esm/sdk/company-pages.d.ts.map +1 -0
  615. package/node_modules/bereach/esm/sdk/company-pages.js +48 -0
  616. package/node_modules/bereach/esm/sdk/company-pages.js.map +1 -0
  617. package/node_modules/bereach/esm/sdk/contacts.d.ts +159 -0
  618. package/node_modules/bereach/esm/sdk/contacts.d.ts.map +1 -0
  619. package/node_modules/bereach/esm/sdk/contacts.js +228 -0
  620. package/node_modules/bereach/esm/sdk/contacts.js.map +1 -0
  621. package/node_modules/bereach/esm/sdk/context.d.ts +26 -0
  622. package/node_modules/bereach/esm/sdk/context.d.ts.map +1 -0
  623. package/node_modules/bereach/esm/sdk/context.js +38 -0
  624. package/node_modules/bereach/esm/sdk/context.js.map +1 -0
  625. package/node_modules/bereach/esm/sdk/cron.d.ts +19 -0
  626. package/node_modules/bereach/esm/sdk/cron.d.ts.map +1 -0
  627. package/node_modules/bereach/esm/sdk/cron.js +28 -0
  628. package/node_modules/bereach/esm/sdk/cron.js.map +1 -0
  629. package/node_modules/bereach/esm/sdk/index.d.ts +2 -0
  630. package/node_modules/bereach/esm/sdk/index.d.ts.map +1 -0
  631. package/node_modules/bereach/esm/sdk/index.js +5 -0
  632. package/node_modules/bereach/esm/sdk/index.js.map +1 -0
  633. package/node_modules/bereach/esm/sdk/profile.d.ts +103 -0
  634. package/node_modules/bereach/esm/sdk/profile.d.ts.map +1 -0
  635. package/node_modules/bereach/esm/sdk/profile.js +148 -0
  636. package/node_modules/bereach/esm/sdk/profile.js.map +1 -0
  637. package/node_modules/bereach/esm/sdk/sales-nav.d.ts +97 -0
  638. package/node_modules/bereach/esm/sdk/sales-nav.d.ts.map +1 -0
  639. package/node_modules/bereach/esm/sdk/sales-nav.js +109 -0
  640. package/node_modules/bereach/esm/sdk/sales-nav.js.map +1 -0
  641. package/node_modules/bereach/esm/sdk/scheduled-messages.d.ts +33 -0
  642. package/node_modules/bereach/esm/sdk/scheduled-messages.d.ts.map +1 -0
  643. package/node_modules/bereach/esm/sdk/scheduled-messages.js +48 -0
  644. package/node_modules/bereach/esm/sdk/scheduled-messages.js.map +1 -0
  645. package/node_modules/bereach/esm/sdk/scrapers.d.ts +84 -0
  646. package/node_modules/bereach/esm/sdk/scrapers.d.ts.map +1 -0
  647. package/node_modules/bereach/esm/sdk/scrapers.js +120 -0
  648. package/node_modules/bereach/esm/sdk/scrapers.js.map +1 -0
  649. package/node_modules/bereach/esm/sdk/sdk.d.ts +40 -0
  650. package/node_modules/bereach/esm/sdk/sdk.d.ts.map +1 -0
  651. package/node_modules/bereach/esm/sdk/sdk.js +67 -0
  652. package/node_modules/bereach/esm/sdk/sdk.js.map +1 -0
  653. package/node_modules/bereach/esm/sdk/search.d.ts +427 -0
  654. package/node_modules/bereach/esm/sdk/search.d.ts.map +1 -0
  655. package/node_modules/bereach/esm/sdk/search.js +451 -0
  656. package/node_modules/bereach/esm/sdk/search.js.map +1 -0
  657. package/node_modules/bereach/esm/types/async.d.ts +23 -0
  658. package/node_modules/bereach/esm/types/async.d.ts.map +1 -0
  659. package/node_modules/bereach/esm/types/async.js +28 -0
  660. package/node_modules/bereach/esm/types/async.js.map +1 -0
  661. package/node_modules/bereach/esm/types/blobs.d.ts +4 -0
  662. package/node_modules/bereach/esm/types/blobs.d.ts.map +1 -0
  663. package/node_modules/bereach/esm/types/blobs.js +25 -0
  664. package/node_modules/bereach/esm/types/blobs.js.map +1 -0
  665. package/node_modules/bereach/esm/types/const-date-time.d.ts +3 -0
  666. package/node_modules/bereach/esm/types/const-date-time.d.ts.map +1 -0
  667. package/node_modules/bereach/esm/types/const-date-time.js +10 -0
  668. package/node_modules/bereach/esm/types/const-date-time.js.map +1 -0
  669. package/node_modules/bereach/esm/types/default-to-zero-value.d.ts +12 -0
  670. package/node_modules/bereach/esm/types/default-to-zero-value.d.ts.map +1 -0
  671. package/node_modules/bereach/esm/types/default-to-zero-value.js +31 -0
  672. package/node_modules/bereach/esm/types/default-to-zero-value.js.map +1 -0
  673. package/node_modules/bereach/esm/types/discriminated-union.d.ts +25 -0
  674. package/node_modules/bereach/esm/types/discriminated-union.d.ts.map +1 -0
  675. package/node_modules/bereach/esm/types/discriminated-union.js +61 -0
  676. package/node_modules/bereach/esm/types/discriminated-union.js.map +1 -0
  677. package/node_modules/bereach/esm/types/enums.d.ts +9 -0
  678. package/node_modules/bereach/esm/types/enums.d.ts.map +1 -0
  679. package/node_modules/bereach/esm/types/enums.js +27 -0
  680. package/node_modules/bereach/esm/types/enums.js.map +1 -0
  681. package/node_modules/bereach/esm/types/fp.d.ts +31 -0
  682. package/node_modules/bereach/esm/types/fp.d.ts.map +1 -0
  683. package/node_modules/bereach/esm/types/fp.js +31 -0
  684. package/node_modules/bereach/esm/types/fp.js.map +1 -0
  685. package/node_modules/bereach/esm/types/index.d.ts +10 -0
  686. package/node_modules/bereach/esm/types/index.d.ts.map +1 -0
  687. package/node_modules/bereach/esm/types/index.js +10 -0
  688. package/node_modules/bereach/esm/types/index.js.map +1 -0
  689. package/node_modules/bereach/esm/types/operations.d.ts +27 -0
  690. package/node_modules/bereach/esm/types/operations.d.ts.map +1 -0
  691. package/node_modules/bereach/esm/types/operations.js +77 -0
  692. package/node_modules/bereach/esm/types/operations.js.map +1 -0
  693. package/node_modules/bereach/esm/types/primitives.d.ts +11 -0
  694. package/node_modules/bereach/esm/types/primitives.d.ts.map +1 -0
  695. package/node_modules/bereach/esm/types/primitives.js +132 -0
  696. package/node_modules/bereach/esm/types/primitives.js.map +1 -0
  697. package/node_modules/bereach/esm/types/rfcdate.d.ts +21 -0
  698. package/node_modules/bereach/esm/types/rfcdate.d.ts.map +1 -0
  699. package/node_modules/bereach/esm/types/rfcdate.js +43 -0
  700. package/node_modules/bereach/esm/types/rfcdate.js.map +1 -0
  701. package/node_modules/bereach/esm/types/smart-union.d.ts +7 -0
  702. package/node_modules/bereach/esm/types/smart-union.d.ts.map +1 -0
  703. package/node_modules/bereach/esm/types/smart-union.js +118 -0
  704. package/node_modules/bereach/esm/types/smart-union.js.map +1 -0
  705. package/node_modules/bereach/esm/types/streams.d.ts +2 -0
  706. package/node_modules/bereach/esm/types/streams.d.ts.map +1 -0
  707. package/node_modules/bereach/esm/types/streams.js +15 -0
  708. package/node_modules/bereach/esm/types/streams.js.map +1 -0
  709. package/node_modules/bereach/esm/types/unrecognized.d.ts +16 -0
  710. package/node_modules/bereach/esm/types/unrecognized.d.ts.map +1 -0
  711. package/node_modules/bereach/esm/types/unrecognized.js +31 -0
  712. package/node_modules/bereach/esm/types/unrecognized.js.map +1 -0
  713. package/node_modules/bereach/examples/scrapersCollectLikes.example.ts +30 -0
  714. package/node_modules/bereach/jsr.json +27 -0
  715. package/node_modules/bereach/package.json +66 -0
  716. package/node_modules/bereach/src/core.ts +13 -0
  717. package/node_modules/bereach/src/funcs/actions-accept-invitation.ts +225 -0
  718. package/node_modules/bereach/src/funcs/actions-connect-profile.ts +224 -0
  719. package/node_modules/bereach/src/funcs/actions-create-comment.ts +224 -0
  720. package/node_modules/bereach/src/funcs/actions-decline-invitation.ts +225 -0
  721. package/node_modules/bereach/src/funcs/actions-edit-comment.ts +224 -0
  722. package/node_modules/bereach/src/funcs/actions-edit-post.ts +224 -0
  723. package/node_modules/bereach/src/funcs/actions-follow-company.ts +224 -0
  724. package/node_modules/bereach/src/funcs/actions-follow-profile.ts +224 -0
  725. package/node_modules/bereach/src/funcs/actions-like-comment.ts +224 -0
  726. package/node_modules/bereach/src/funcs/actions-like-post.ts +224 -0
  727. package/node_modules/bereach/src/funcs/actions-list-invitations.ts +230 -0
  728. package/node_modules/bereach/src/funcs/actions-list-sent-invitations.ts +225 -0
  729. package/node_modules/bereach/src/funcs/actions-publish-post.ts +224 -0
  730. package/node_modules/bereach/src/funcs/actions-reply-to-comment.ts +224 -0
  731. package/node_modules/bereach/src/funcs/actions-repost-post.ts +224 -0
  732. package/node_modules/bereach/src/funcs/actions-save-post.ts +224 -0
  733. package/node_modules/bereach/src/funcs/actions-send-message.ts +224 -0
  734. package/node_modules/bereach/src/funcs/actions-unfollow-company.ts +224 -0
  735. package/node_modules/bereach/src/funcs/actions-unfollow-profile.ts +224 -0
  736. package/node_modules/bereach/src/funcs/actions-unlike-comment.ts +224 -0
  737. package/node_modules/bereach/src/funcs/actions-unlike-post.ts +224 -0
  738. package/node_modules/bereach/src/funcs/actions-unsave-post.ts +224 -0
  739. package/node_modules/bereach/src/funcs/actions-withdraw-invitation.ts +225 -0
  740. package/node_modules/bereach/src/funcs/campaigns-filter.ts +236 -0
  741. package/node_modules/bereach/src/funcs/campaigns-get-status.ts +230 -0
  742. package/node_modules/bereach/src/funcs/campaigns-stats.ts +230 -0
  743. package/node_modules/bereach/src/funcs/campaigns-sync.ts +230 -0
  744. package/node_modules/bereach/src/funcs/chat-archive.ts +224 -0
  745. package/node_modules/bereach/src/funcs/chat-find-conversation.ts +225 -0
  746. package/node_modules/bereach/src/funcs/chat-get-messages.ts +233 -0
  747. package/node_modules/bereach/src/funcs/chat-get-unread-count.ts +205 -0
  748. package/node_modules/bereach/src/funcs/chat-list-archived.ts +229 -0
  749. package/node_modules/bereach/src/funcs/chat-list-inbox.ts +227 -0
  750. package/node_modules/bereach/src/funcs/chat-list-starred.ts +229 -0
  751. package/node_modules/bereach/src/funcs/chat-mark-all-read.ts +209 -0
  752. package/node_modules/bereach/src/funcs/chat-mark-seen.ts +224 -0
  753. package/node_modules/bereach/src/funcs/chat-react.ts +224 -0
  754. package/node_modules/bereach/src/funcs/chat-search-conversations.ts +230 -0
  755. package/node_modules/bereach/src/funcs/chat-send-typing-indicator.ts +225 -0
  756. package/node_modules/bereach/src/funcs/chat-star.ts +224 -0
  757. package/node_modules/bereach/src/funcs/chat-unarchive.ts +224 -0
  758. package/node_modules/bereach/src/funcs/chat-unreact.ts +224 -0
  759. package/node_modules/bereach/src/funcs/chat-unstar.ts +224 -0
  760. package/node_modules/bereach/src/funcs/company-pages-get-analytics.ts +224 -0
  761. package/node_modules/bereach/src/funcs/company-pages-get-permissions.ts +224 -0
  762. package/node_modules/bereach/src/funcs/company-pages-list.ts +205 -0
  763. package/node_modules/bereach/src/funcs/company-pages-posts.ts +224 -0
  764. package/node_modules/bereach/src/funcs/contacts-add-activities.ts +230 -0
  765. package/node_modules/bereach/src/funcs/contacts-add-to-campaign.ts +233 -0
  766. package/node_modules/bereach/src/funcs/contacts-bulk-update.ts +224 -0
  767. package/node_modules/bereach/src/funcs/contacts-campaign-status-transition.ts +233 -0
  768. package/node_modules/bereach/src/funcs/contacts-create-campaign.ts +224 -0
  769. package/node_modules/bereach/src/funcs/contacts-delete-agent-state.ts +230 -0
  770. package/node_modules/bereach/src/funcs/contacts-delete-campaign.ts +229 -0
  771. package/node_modules/bereach/src/funcs/contacts-get-agent-state.ts +229 -0
  772. package/node_modules/bereach/src/funcs/contacts-get-by-url.ts +228 -0
  773. package/node_modules/bereach/src/funcs/contacts-get-campaign.ts +229 -0
  774. package/node_modules/bereach/src/funcs/contacts-get.ts +229 -0
  775. package/node_modules/bereach/src/funcs/contacts-list-activities.ts +236 -0
  776. package/node_modules/bereach/src/funcs/contacts-list-agent-states.ts +232 -0
  777. package/node_modules/bereach/src/funcs/contacts-list-by-campaign.ts +242 -0
  778. package/node_modules/bereach/src/funcs/contacts-list-campaigns.ts +235 -0
  779. package/node_modules/bereach/src/funcs/contacts-patch-agent-state.ts +230 -0
  780. package/node_modules/bereach/src/funcs/contacts-search.ts +244 -0
  781. package/node_modules/bereach/src/funcs/contacts-set-agent-state.ts +230 -0
  782. package/node_modules/bereach/src/funcs/contacts-stats.ts +232 -0
  783. package/node_modules/bereach/src/funcs/contacts-update-campaign.ts +230 -0
  784. package/node_modules/bereach/src/funcs/contacts-update.ts +230 -0
  785. package/node_modules/bereach/src/funcs/contacts-upsert.ts +224 -0
  786. package/node_modules/bereach/src/funcs/context-delete.ts +229 -0
  787. package/node_modules/bereach/src/funcs/context-list-entries.ts +230 -0
  788. package/node_modules/bereach/src/funcs/context-set.ts +224 -0
  789. package/node_modules/bereach/src/funcs/cron-list-schedules.ts +205 -0
  790. package/node_modules/bereach/src/funcs/cron-update-schedule.ts +230 -0
  791. package/node_modules/bereach/src/funcs/profile-get-credits.ts +205 -0
  792. package/node_modules/bereach/src/funcs/profile-get-follower-analytics.ts +209 -0
  793. package/node_modules/bereach/src/funcs/profile-get-followers.ts +227 -0
  794. package/node_modules/bereach/src/funcs/profile-get-limits.ts +205 -0
  795. package/node_modules/bereach/src/funcs/profile-get-post-analytics.ts +225 -0
  796. package/node_modules/bereach/src/funcs/profile-get-search-appearances.ts +209 -0
  797. package/node_modules/bereach/src/funcs/profile-get.ts +205 -0
  798. package/node_modules/bereach/src/funcs/profile-list-accounts.ts +205 -0
  799. package/node_modules/bereach/src/funcs/profile-list-connections.ts +235 -0
  800. package/node_modules/bereach/src/funcs/profile-posts.ts +227 -0
  801. package/node_modules/bereach/src/funcs/profile-refresh.ts +205 -0
  802. package/node_modules/bereach/src/funcs/profile-switch-account.ts +224 -0
  803. package/node_modules/bereach/src/funcs/profile-update-account.ts +224 -0
  804. package/node_modules/bereach/src/funcs/profile-views.ts +209 -0
  805. package/node_modules/bereach/src/funcs/sales-nav-companies.ts +240 -0
  806. package/node_modules/bereach/src/funcs/sales-nav-people.ts +260 -0
  807. package/node_modules/bereach/src/funcs/sales-nav-search.ts +245 -0
  808. package/node_modules/bereach/src/funcs/scheduled-messages-batch-schedule.ts +224 -0
  809. package/node_modules/bereach/src/funcs/scheduled-messages-cancel.ts +224 -0
  810. package/node_modules/bereach/src/funcs/scheduled-messages-create.ts +224 -0
  811. package/node_modules/bereach/src/funcs/scheduled-messages-list.ts +233 -0
  812. package/node_modules/bereach/src/funcs/scrapers-bulk-visit-batch-status.ts +230 -0
  813. package/node_modules/bereach/src/funcs/scrapers-bulk-visit-profile.ts +225 -0
  814. package/node_modules/bereach/src/funcs/scrapers-collect-comment-replies.ts +225 -0
  815. package/node_modules/bereach/src/funcs/scrapers-collect-comments.ts +224 -0
  816. package/node_modules/bereach/src/funcs/scrapers-collect-hashtag-posts.ts +225 -0
  817. package/node_modules/bereach/src/funcs/scrapers-collect-likes.ts +224 -0
  818. package/node_modules/bereach/src/funcs/scrapers-collect-posts.ts +224 -0
  819. package/node_modules/bereach/src/funcs/scrapers-get-feed.ts +227 -0
  820. package/node_modules/bereach/src/funcs/scrapers-list-saved-posts.ts +224 -0
  821. package/node_modules/bereach/src/funcs/scrapers-visit-company.ts +224 -0
  822. package/node_modules/bereach/src/funcs/scrapers-visit-profile.ts +226 -0
  823. package/node_modules/bereach/src/funcs/search-by-url.ts +275 -0
  824. package/node_modules/bereach/src/funcs/search-companies.ts +281 -0
  825. package/node_modules/bereach/src/funcs/search-jobs.ts +302 -0
  826. package/node_modules/bereach/src/funcs/search-people.ts +289 -0
  827. package/node_modules/bereach/src/funcs/search-posts.ts +277 -0
  828. package/node_modules/bereach/src/funcs/search-resolve-parameters.ts +263 -0
  829. package/node_modules/bereach/src/funcs/search-search.ts +261 -0
  830. package/node_modules/bereach/src/hooks/hooks.ts +132 -0
  831. package/node_modules/bereach/src/hooks/index.ts +6 -0
  832. package/node_modules/bereach/src/hooks/registration.ts +14 -0
  833. package/node_modules/bereach/src/hooks/types.ts +107 -0
  834. package/node_modules/bereach/src/index.ts +9 -0
  835. package/node_modules/bereach/src/lib/base64.ts +39 -0
  836. package/node_modules/bereach/src/lib/config.ts +71 -0
  837. package/node_modules/bereach/src/lib/dlv.ts +53 -0
  838. package/node_modules/bereach/src/lib/encodings.ts +501 -0
  839. package/node_modules/bereach/src/lib/env.ts +57 -0
  840. package/node_modules/bereach/src/lib/files.ts +104 -0
  841. package/node_modules/bereach/src/lib/http.ts +323 -0
  842. package/node_modules/bereach/src/lib/is-plain-object.ts +43 -0
  843. package/node_modules/bereach/src/lib/logger.ts +9 -0
  844. package/node_modules/bereach/src/lib/matchers.ts +353 -0
  845. package/node_modules/bereach/src/lib/primitives.ts +150 -0
  846. package/node_modules/bereach/src/lib/retries.ts +218 -0
  847. package/node_modules/bereach/src/lib/schemas.ts +94 -0
  848. package/node_modules/bereach/src/lib/sdks.ts +408 -0
  849. package/node_modules/bereach/src/lib/security.ts +263 -0
  850. package/node_modules/bereach/src/lib/url.ts +35 -0
  851. package/node_modules/bereach/src/models/errors/bereach-default-error.ts +40 -0
  852. package/node_modules/bereach/src/models/errors/bereach-error.ts +35 -0
  853. package/node_modules/bereach/src/models/errors/collect-likes.ts +600 -0
  854. package/node_modules/bereach/src/models/errors/http-client-errors.ts +62 -0
  855. package/node_modules/bereach/src/models/errors/index.ts +10 -0
  856. package/node_modules/bereach/src/models/errors/response-validation-error.ts +50 -0
  857. package/node_modules/bereach/src/models/errors/sdk-validation-error.ts +54 -0
  858. package/node_modules/bereach/src/models/index.ts +5 -0
  859. package/node_modules/bereach/src/models/operations/index.ts +8 -0
  860. package/node_modules/bereach/src/models/operations/search-companies-response.ts +4914 -0
  861. package/node_modules/bereach/src/models/operations/search-contacts-campaign.ts +5266 -0
  862. package/node_modules/bereach/src/models/operations/update-account-response.ts +5364 -0
  863. package/node_modules/bereach/src/models/operations/update-schedule-response.ts +4764 -0
  864. package/node_modules/bereach/src/models/security.ts +26 -0
  865. package/node_modules/bereach/src/sdk/actions.ts +423 -0
  866. package/node_modules/bereach/src/sdk/campaigns.ts +83 -0
  867. package/node_modules/bereach/src/sdk/chat.ts +299 -0
  868. package/node_modules/bereach/src/sdk/company-pages.ts +79 -0
  869. package/node_modules/bereach/src/sdk/contacts.ts +405 -0
  870. package/node_modules/bereach/src/sdk/context.ts +63 -0
  871. package/node_modules/bereach/src/sdk/cron.ts +43 -0
  872. package/node_modules/bereach/src/sdk/index.ts +5 -0
  873. package/node_modules/bereach/src/sdk/profile.ts +251 -0
  874. package/node_modules/bereach/src/sdk/sales-nav.ts +134 -0
  875. package/node_modules/bereach/src/sdk/scheduled-messages.ts +81 -0
  876. package/node_modules/bereach/src/sdk/scrapers.ts +209 -0
  877. package/node_modules/bereach/src/sdk/sdk.ts +79 -0
  878. package/node_modules/bereach/src/sdk/search.ts +508 -0
  879. package/node_modules/bereach/src/types/async.ts +68 -0
  880. package/node_modules/bereach/src/types/blobs.ts +33 -0
  881. package/node_modules/bereach/src/types/const-date-time.ts +15 -0
  882. package/node_modules/bereach/src/types/default-to-zero-value.ts +33 -0
  883. package/node_modules/bereach/src/types/discriminated-union.ts +101 -0
  884. package/node_modules/bereach/src/types/enums.ts +45 -0
  885. package/node_modules/bereach/src/types/fp.ts +50 -0
  886. package/node_modules/bereach/src/types/index.ts +13 -0
  887. package/node_modules/bereach/src/types/operations.ts +105 -0
  888. package/node_modules/bereach/src/types/primitives.ts +168 -0
  889. package/node_modules/bereach/src/types/rfcdate.ts +54 -0
  890. package/node_modules/bereach/src/types/smart-union.ts +154 -0
  891. package/node_modules/bereach/src/types/streams.ts +21 -0
  892. package/node_modules/bereach/src/types/unrecognized.ts +35 -0
  893. package/node_modules/zod/LICENSE +21 -0
  894. package/node_modules/zod/README.md +208 -0
  895. package/node_modules/zod/index.cjs +33 -0
  896. package/node_modules/zod/index.d.cts +4 -0
  897. package/node_modules/zod/index.d.ts +4 -0
  898. package/node_modules/zod/index.js +4 -0
  899. package/node_modules/zod/locales/index.cjs +17 -0
  900. package/node_modules/zod/locales/index.d.cts +1 -0
  901. package/node_modules/zod/locales/index.d.ts +1 -0
  902. package/node_modules/zod/locales/index.js +1 -0
  903. package/node_modules/zod/locales/package.json +6 -0
  904. package/node_modules/zod/mini/index.cjs +32 -0
  905. package/node_modules/zod/mini/index.d.cts +3 -0
  906. package/node_modules/zod/mini/index.d.ts +3 -0
  907. package/node_modules/zod/mini/index.js +3 -0
  908. package/node_modules/zod/mini/package.json +6 -0
  909. package/node_modules/zod/package.json +135 -0
  910. package/node_modules/zod/src/index.ts +4 -0
  911. package/node_modules/zod/src/locales/index.ts +1 -0
  912. package/node_modules/zod/src/mini/index.ts +3 -0
  913. package/node_modules/zod/src/v3/ZodError.ts +330 -0
  914. package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
  915. package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  916. package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
  917. package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
  918. package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
  919. package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
  920. package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
  921. package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
  922. package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
  923. package/node_modules/zod/src/v3/errors.ts +13 -0
  924. package/node_modules/zod/src/v3/external.ts +6 -0
  925. package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
  926. package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
  927. package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
  928. package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
  929. package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
  930. package/node_modules/zod/src/v3/helpers/util.ts +224 -0
  931. package/node_modules/zod/src/v3/index.ts +4 -0
  932. package/node_modules/zod/src/v3/locales/en.ts +124 -0
  933. package/node_modules/zod/src/v3/standard-schema.ts +113 -0
  934. package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
  935. package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
  936. package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
  937. package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
  938. package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
  939. package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
  940. package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
  941. package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
  942. package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
  943. package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
  944. package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
  945. package/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
  946. package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
  947. package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
  948. package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
  949. package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
  950. package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
  951. package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
  952. package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
  953. package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
  954. package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
  955. package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  956. package/node_modules/zod/src/v3/tests/function.test.ts +261 -0
  957. package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
  958. package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
  959. package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
  960. package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
  961. package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
  962. package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
  963. package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
  964. package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
  965. package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
  966. package/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
  967. package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
  968. package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
  969. package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
  970. package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
  971. package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
  972. package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
  973. package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
  974. package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
  975. package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
  976. package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
  977. package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
  978. package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
  979. package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
  980. package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
  981. package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
  982. package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
  983. package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
  984. package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
  985. package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
  986. package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
  987. package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
  988. package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
  989. package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
  990. package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
  991. package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
  992. package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
  993. package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
  994. package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
  995. package/node_modules/zod/src/v3/types.ts +5138 -0
  996. package/node_modules/zod/src/v4/classic/checks.ts +32 -0
  997. package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
  998. package/node_modules/zod/src/v4/classic/compat.ts +70 -0
  999. package/node_modules/zod/src/v4/classic/errors.ts +82 -0
  1000. package/node_modules/zod/src/v4/classic/external.ts +51 -0
  1001. package/node_modules/zod/src/v4/classic/from-json-schema.ts +643 -0
  1002. package/node_modules/zod/src/v4/classic/index.ts +5 -0
  1003. package/node_modules/zod/src/v4/classic/iso.ts +90 -0
  1004. package/node_modules/zod/src/v4/classic/parse.ts +82 -0
  1005. package/node_modules/zod/src/v4/classic/schemas.ts +2409 -0
  1006. package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
  1007. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
  1008. package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
  1009. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
  1010. package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
  1011. package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
  1012. package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
  1013. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
  1014. package/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
  1015. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +276 -0
  1016. package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
  1017. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
  1018. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +562 -0
  1019. package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
  1020. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
  1021. package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
  1022. package/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
  1023. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
  1024. package/node_modules/zod/src/v4/classic/tests/default.test.ts +365 -0
  1025. package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
  1026. package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
  1027. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +661 -0
  1028. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
  1029. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +595 -0
  1030. package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
  1031. package/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
  1032. package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
  1033. package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
  1034. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +734 -0
  1035. package/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
  1036. package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
  1037. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
  1038. package/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
  1039. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
  1040. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
  1041. package/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
  1042. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
  1043. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
  1044. package/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
  1045. package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
  1046. package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
  1047. package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
  1048. package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
  1049. package/node_modules/zod/src/v4/classic/tests/number.test.ts +270 -0
  1050. package/node_modules/zod/src/v4/classic/tests/object.test.ts +640 -0
  1051. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +223 -0
  1052. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +427 -0
  1053. package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
  1054. package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
  1055. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
  1056. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +282 -0
  1057. package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
  1058. package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
  1059. package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
  1060. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
  1061. package/node_modules/zod/src/v4/classic/tests/record.test.ts +632 -0
  1062. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +582 -0
  1063. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +570 -0
  1064. package/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
  1065. package/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
  1066. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
  1067. package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
  1068. package/node_modules/zod/src/v4/classic/tests/string.test.ts +1175 -0
  1069. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
  1070. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
  1071. package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
  1072. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2990 -0
  1073. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +361 -0
  1074. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +183 -0
  1075. package/node_modules/zod/src/v4/classic/tests/union.test.ts +219 -0
  1076. package/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
  1077. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
  1078. package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
  1079. package/node_modules/zod/src/v4/core/api.ts +1798 -0
  1080. package/node_modules/zod/src/v4/core/checks.ts +1293 -0
  1081. package/node_modules/zod/src/v4/core/config.ts +15 -0
  1082. package/node_modules/zod/src/v4/core/core.ts +138 -0
  1083. package/node_modules/zod/src/v4/core/doc.ts +44 -0
  1084. package/node_modules/zod/src/v4/core/errors.ts +448 -0
  1085. package/node_modules/zod/src/v4/core/index.ts +16 -0
  1086. package/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
  1087. package/node_modules/zod/src/v4/core/json-schema-processors.ts +667 -0
  1088. package/node_modules/zod/src/v4/core/json-schema.ts +147 -0
  1089. package/node_modules/zod/src/v4/core/parse.ts +195 -0
  1090. package/node_modules/zod/src/v4/core/regexes.ts +183 -0
  1091. package/node_modules/zod/src/v4/core/registries.ts +105 -0
  1092. package/node_modules/zod/src/v4/core/schemas.ts +4538 -0
  1093. package/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
  1094. package/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
  1095. package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
  1096. package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
  1097. package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
  1098. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
  1099. package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
  1100. package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
  1101. package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
  1102. package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
  1103. package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +83 -0
  1104. package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +67 -0
  1105. package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
  1106. package/node_modules/zod/src/v4/core/to-json-schema.ts +613 -0
  1107. package/node_modules/zod/src/v4/core/util.ts +966 -0
  1108. package/node_modules/zod/src/v4/core/versions.ts +5 -0
  1109. package/node_modules/zod/src/v4/core/zsf.ts +323 -0
  1110. package/node_modules/zod/src/v4/index.ts +4 -0
  1111. package/node_modules/zod/src/v4/locales/ar.ts +115 -0
  1112. package/node_modules/zod/src/v4/locales/az.ts +111 -0
  1113. package/node_modules/zod/src/v4/locales/be.ts +176 -0
  1114. package/node_modules/zod/src/v4/locales/bg.ts +128 -0
  1115. package/node_modules/zod/src/v4/locales/ca.ts +116 -0
  1116. package/node_modules/zod/src/v4/locales/cs.ts +118 -0
  1117. package/node_modules/zod/src/v4/locales/da.ts +123 -0
  1118. package/node_modules/zod/src/v4/locales/de.ts +116 -0
  1119. package/node_modules/zod/src/v4/locales/en.ts +119 -0
  1120. package/node_modules/zod/src/v4/locales/eo.ts +118 -0
  1121. package/node_modules/zod/src/v4/locales/es.ts +141 -0
  1122. package/node_modules/zod/src/v4/locales/fa.ts +126 -0
  1123. package/node_modules/zod/src/v4/locales/fi.ts +121 -0
  1124. package/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
  1125. package/node_modules/zod/src/v4/locales/fr.ts +116 -0
  1126. package/node_modules/zod/src/v4/locales/he.ts +246 -0
  1127. package/node_modules/zod/src/v4/locales/hu.ts +117 -0
  1128. package/node_modules/zod/src/v4/locales/hy.ts +164 -0
  1129. package/node_modules/zod/src/v4/locales/id.ts +115 -0
  1130. package/node_modules/zod/src/v4/locales/index.ts +49 -0
  1131. package/node_modules/zod/src/v4/locales/is.ts +119 -0
  1132. package/node_modules/zod/src/v4/locales/it.ts +116 -0
  1133. package/node_modules/zod/src/v4/locales/ja.ts +114 -0
  1134. package/node_modules/zod/src/v4/locales/ka.ts +123 -0
  1135. package/node_modules/zod/src/v4/locales/kh.ts +7 -0
  1136. package/node_modules/zod/src/v4/locales/km.ts +119 -0
  1137. package/node_modules/zod/src/v4/locales/ko.ts +121 -0
  1138. package/node_modules/zod/src/v4/locales/lt.ts +239 -0
  1139. package/node_modules/zod/src/v4/locales/mk.ts +118 -0
  1140. package/node_modules/zod/src/v4/locales/ms.ts +115 -0
  1141. package/node_modules/zod/src/v4/locales/nl.ts +121 -0
  1142. package/node_modules/zod/src/v4/locales/no.ts +116 -0
  1143. package/node_modules/zod/src/v4/locales/ota.ts +117 -0
  1144. package/node_modules/zod/src/v4/locales/pl.ts +118 -0
  1145. package/node_modules/zod/src/v4/locales/ps.ts +126 -0
  1146. package/node_modules/zod/src/v4/locales/pt.ts +116 -0
  1147. package/node_modules/zod/src/v4/locales/ru.ts +176 -0
  1148. package/node_modules/zod/src/v4/locales/sl.ts +118 -0
  1149. package/node_modules/zod/src/v4/locales/sv.ts +119 -0
  1150. package/node_modules/zod/src/v4/locales/ta.ts +118 -0
  1151. package/node_modules/zod/src/v4/locales/th.ts +119 -0
  1152. package/node_modules/zod/src/v4/locales/tr.ts +111 -0
  1153. package/node_modules/zod/src/v4/locales/ua.ts +7 -0
  1154. package/node_modules/zod/src/v4/locales/uk.ts +117 -0
  1155. package/node_modules/zod/src/v4/locales/ur.ts +119 -0
  1156. package/node_modules/zod/src/v4/locales/uz.ts +116 -0
  1157. package/node_modules/zod/src/v4/locales/vi.ts +117 -0
  1158. package/node_modules/zod/src/v4/locales/yo.ts +124 -0
  1159. package/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
  1160. package/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
  1161. package/node_modules/zod/src/v4/mini/checks.ts +32 -0
  1162. package/node_modules/zod/src/v4/mini/coerce.ts +27 -0
  1163. package/node_modules/zod/src/v4/mini/external.ts +40 -0
  1164. package/node_modules/zod/src/v4/mini/index.ts +3 -0
  1165. package/node_modules/zod/src/v4/mini/iso.ts +66 -0
  1166. package/node_modules/zod/src/v4/mini/parse.ts +14 -0
  1167. package/node_modules/zod/src/v4/mini/schemas.ts +1916 -0
  1168. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
  1169. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
  1170. package/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
  1171. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
  1172. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +529 -0
  1173. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
  1174. package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
  1175. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
  1176. package/node_modules/zod/src/v4/mini/tests/index.test.ts +963 -0
  1177. package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
  1178. package/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
  1179. package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
  1180. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
  1181. package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
  1182. package/node_modules/zod/src/v4/mini/tests/string.test.ts +347 -0
  1183. package/node_modules/zod/src/v4-mini/index.ts +3 -0
  1184. package/node_modules/zod/v3/ZodError.cjs +138 -0
  1185. package/node_modules/zod/v3/ZodError.d.cts +164 -0
  1186. package/node_modules/zod/v3/ZodError.d.ts +164 -0
  1187. package/node_modules/zod/v3/ZodError.js +133 -0
  1188. package/node_modules/zod/v3/errors.cjs +17 -0
  1189. package/node_modules/zod/v3/errors.d.cts +5 -0
  1190. package/node_modules/zod/v3/errors.d.ts +5 -0
  1191. package/node_modules/zod/v3/errors.js +9 -0
  1192. package/node_modules/zod/v3/external.cjs +22 -0
  1193. package/node_modules/zod/v3/external.d.cts +6 -0
  1194. package/node_modules/zod/v3/external.d.ts +6 -0
  1195. package/node_modules/zod/v3/external.js +6 -0
  1196. package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  1197. package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  1198. package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
  1199. package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
  1200. package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  1201. package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  1202. package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
  1203. package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  1204. package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  1205. package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  1206. package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
  1207. package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  1208. package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  1209. package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  1210. package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
  1211. package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
  1212. package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  1213. package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  1214. package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
  1215. package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  1216. package/node_modules/zod/v3/helpers/util.cjs +137 -0
  1217. package/node_modules/zod/v3/helpers/util.d.cts +85 -0
  1218. package/node_modules/zod/v3/helpers/util.d.ts +85 -0
  1219. package/node_modules/zod/v3/helpers/util.js +133 -0
  1220. package/node_modules/zod/v3/index.cjs +33 -0
  1221. package/node_modules/zod/v3/index.d.cts +4 -0
  1222. package/node_modules/zod/v3/index.d.ts +4 -0
  1223. package/node_modules/zod/v3/index.js +4 -0
  1224. package/node_modules/zod/v3/locales/en.cjs +112 -0
  1225. package/node_modules/zod/v3/locales/en.d.cts +3 -0
  1226. package/node_modules/zod/v3/locales/en.d.ts +3 -0
  1227. package/node_modules/zod/v3/locales/en.js +109 -0
  1228. package/node_modules/zod/v3/package.json +6 -0
  1229. package/node_modules/zod/v3/standard-schema.cjs +2 -0
  1230. package/node_modules/zod/v3/standard-schema.d.cts +102 -0
  1231. package/node_modules/zod/v3/standard-schema.d.ts +102 -0
  1232. package/node_modules/zod/v3/standard-schema.js +1 -0
  1233. package/node_modules/zod/v3/types.cjs +3777 -0
  1234. package/node_modules/zod/v3/types.d.cts +1034 -0
  1235. package/node_modules/zod/v3/types.d.ts +1034 -0
  1236. package/node_modules/zod/v3/types.js +3695 -0
  1237. package/node_modules/zod/v4/classic/checks.cjs +33 -0
  1238. package/node_modules/zod/v4/classic/checks.d.cts +1 -0
  1239. package/node_modules/zod/v4/classic/checks.d.ts +1 -0
  1240. package/node_modules/zod/v4/classic/checks.js +1 -0
  1241. package/node_modules/zod/v4/classic/coerce.cjs +47 -0
  1242. package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
  1243. package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
  1244. package/node_modules/zod/v4/classic/coerce.js +17 -0
  1245. package/node_modules/zod/v4/classic/compat.cjs +61 -0
  1246. package/node_modules/zod/v4/classic/compat.d.cts +50 -0
  1247. package/node_modules/zod/v4/classic/compat.d.ts +50 -0
  1248. package/node_modules/zod/v4/classic/compat.js +31 -0
  1249. package/node_modules/zod/v4/classic/errors.cjs +74 -0
  1250. package/node_modules/zod/v4/classic/errors.d.cts +30 -0
  1251. package/node_modules/zod/v4/classic/errors.d.ts +30 -0
  1252. package/node_modules/zod/v4/classic/errors.js +48 -0
  1253. package/node_modules/zod/v4/classic/external.cjs +73 -0
  1254. package/node_modules/zod/v4/classic/external.d.cts +15 -0
  1255. package/node_modules/zod/v4/classic/external.d.ts +15 -0
  1256. package/node_modules/zod/v4/classic/external.js +20 -0
  1257. package/node_modules/zod/v4/classic/from-json-schema.cjs +610 -0
  1258. package/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
  1259. package/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
  1260. package/node_modules/zod/v4/classic/from-json-schema.js +584 -0
  1261. package/node_modules/zod/v4/classic/index.cjs +33 -0
  1262. package/node_modules/zod/v4/classic/index.d.cts +4 -0
  1263. package/node_modules/zod/v4/classic/index.d.ts +4 -0
  1264. package/node_modules/zod/v4/classic/index.js +4 -0
  1265. package/node_modules/zod/v4/classic/iso.cjs +60 -0
  1266. package/node_modules/zod/v4/classic/iso.d.cts +22 -0
  1267. package/node_modules/zod/v4/classic/iso.d.ts +22 -0
  1268. package/node_modules/zod/v4/classic/iso.js +30 -0
  1269. package/node_modules/zod/v4/classic/package.json +6 -0
  1270. package/node_modules/zod/v4/classic/parse.cjs +41 -0
  1271. package/node_modules/zod/v4/classic/parse.d.cts +31 -0
  1272. package/node_modules/zod/v4/classic/parse.d.ts +31 -0
  1273. package/node_modules/zod/v4/classic/parse.js +15 -0
  1274. package/node_modules/zod/v4/classic/schemas.cjs +1272 -0
  1275. package/node_modules/zod/v4/classic/schemas.d.cts +739 -0
  1276. package/node_modules/zod/v4/classic/schemas.d.ts +739 -0
  1277. package/node_modules/zod/v4/classic/schemas.js +1157 -0
  1278. package/node_modules/zod/v4/core/api.cjs +1222 -0
  1279. package/node_modules/zod/v4/core/api.d.cts +304 -0
  1280. package/node_modules/zod/v4/core/api.d.ts +304 -0
  1281. package/node_modules/zod/v4/core/api.js +1082 -0
  1282. package/node_modules/zod/v4/core/checks.cjs +601 -0
  1283. package/node_modules/zod/v4/core/checks.d.cts +278 -0
  1284. package/node_modules/zod/v4/core/checks.d.ts +278 -0
  1285. package/node_modules/zod/v4/core/checks.js +575 -0
  1286. package/node_modules/zod/v4/core/core.cjs +83 -0
  1287. package/node_modules/zod/v4/core/core.d.cts +70 -0
  1288. package/node_modules/zod/v4/core/core.d.ts +70 -0
  1289. package/node_modules/zod/v4/core/core.js +76 -0
  1290. package/node_modules/zod/v4/core/doc.cjs +39 -0
  1291. package/node_modules/zod/v4/core/doc.d.cts +14 -0
  1292. package/node_modules/zod/v4/core/doc.d.ts +14 -0
  1293. package/node_modules/zod/v4/core/doc.js +35 -0
  1294. package/node_modules/zod/v4/core/errors.cjs +213 -0
  1295. package/node_modules/zod/v4/core/errors.d.cts +220 -0
  1296. package/node_modules/zod/v4/core/errors.d.ts +220 -0
  1297. package/node_modules/zod/v4/core/errors.js +182 -0
  1298. package/node_modules/zod/v4/core/index.cjs +47 -0
  1299. package/node_modules/zod/v4/core/index.d.cts +16 -0
  1300. package/node_modules/zod/v4/core/index.d.ts +16 -0
  1301. package/node_modules/zod/v4/core/index.js +16 -0
  1302. package/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
  1303. package/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
  1304. package/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
  1305. package/node_modules/zod/v4/core/json-schema-generator.js +95 -0
  1306. package/node_modules/zod/v4/core/json-schema-processors.cjs +648 -0
  1307. package/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
  1308. package/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
  1309. package/node_modules/zod/v4/core/json-schema-processors.js +605 -0
  1310. package/node_modules/zod/v4/core/json-schema.cjs +2 -0
  1311. package/node_modules/zod/v4/core/json-schema.d.cts +88 -0
  1312. package/node_modules/zod/v4/core/json-schema.d.ts +88 -0
  1313. package/node_modules/zod/v4/core/json-schema.js +1 -0
  1314. package/node_modules/zod/v4/core/package.json +6 -0
  1315. package/node_modules/zod/v4/core/parse.cjs +131 -0
  1316. package/node_modules/zod/v4/core/parse.d.cts +49 -0
  1317. package/node_modules/zod/v4/core/parse.d.ts +49 -0
  1318. package/node_modules/zod/v4/core/parse.js +93 -0
  1319. package/node_modules/zod/v4/core/regexes.cjs +166 -0
  1320. package/node_modules/zod/v4/core/regexes.d.cts +79 -0
  1321. package/node_modules/zod/v4/core/regexes.d.ts +79 -0
  1322. package/node_modules/zod/v4/core/regexes.js +133 -0
  1323. package/node_modules/zod/v4/core/registries.cjs +56 -0
  1324. package/node_modules/zod/v4/core/registries.d.cts +35 -0
  1325. package/node_modules/zod/v4/core/registries.d.ts +35 -0
  1326. package/node_modules/zod/v4/core/registries.js +51 -0
  1327. package/node_modules/zod/v4/core/schemas.cjs +2124 -0
  1328. package/node_modules/zod/v4/core/schemas.d.cts +1146 -0
  1329. package/node_modules/zod/v4/core/schemas.d.ts +1146 -0
  1330. package/node_modules/zod/v4/core/schemas.js +2093 -0
  1331. package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
  1332. package/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
  1333. package/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
  1334. package/node_modules/zod/v4/core/standard-schema.js +1 -0
  1335. package/node_modules/zod/v4/core/to-json-schema.cjs +446 -0
  1336. package/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
  1337. package/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
  1338. package/node_modules/zod/v4/core/to-json-schema.js +437 -0
  1339. package/node_modules/zod/v4/core/util.cjs +710 -0
  1340. package/node_modules/zod/v4/core/util.d.cts +199 -0
  1341. package/node_modules/zod/v4/core/util.d.ts +199 -0
  1342. package/node_modules/zod/v4/core/util.js +651 -0
  1343. package/node_modules/zod/v4/core/versions.cjs +8 -0
  1344. package/node_modules/zod/v4/core/versions.d.cts +5 -0
  1345. package/node_modules/zod/v4/core/versions.d.ts +5 -0
  1346. package/node_modules/zod/v4/core/versions.js +5 -0
  1347. package/node_modules/zod/v4/index.cjs +22 -0
  1348. package/node_modules/zod/v4/index.d.cts +3 -0
  1349. package/node_modules/zod/v4/index.d.ts +3 -0
  1350. package/node_modules/zod/v4/index.js +3 -0
  1351. package/node_modules/zod/v4/locales/ar.cjs +133 -0
  1352. package/node_modules/zod/v4/locales/ar.d.cts +5 -0
  1353. package/node_modules/zod/v4/locales/ar.d.ts +4 -0
  1354. package/node_modules/zod/v4/locales/ar.js +106 -0
  1355. package/node_modules/zod/v4/locales/az.cjs +132 -0
  1356. package/node_modules/zod/v4/locales/az.d.cts +5 -0
  1357. package/node_modules/zod/v4/locales/az.d.ts +4 -0
  1358. package/node_modules/zod/v4/locales/az.js +105 -0
  1359. package/node_modules/zod/v4/locales/be.cjs +183 -0
  1360. package/node_modules/zod/v4/locales/be.d.cts +5 -0
  1361. package/node_modules/zod/v4/locales/be.d.ts +4 -0
  1362. package/node_modules/zod/v4/locales/be.js +156 -0
  1363. package/node_modules/zod/v4/locales/bg.cjs +147 -0
  1364. package/node_modules/zod/v4/locales/bg.d.cts +5 -0
  1365. package/node_modules/zod/v4/locales/bg.d.ts +4 -0
  1366. package/node_modules/zod/v4/locales/bg.js +120 -0
  1367. package/node_modules/zod/v4/locales/ca.cjs +134 -0
  1368. package/node_modules/zod/v4/locales/ca.d.cts +5 -0
  1369. package/node_modules/zod/v4/locales/ca.d.ts +4 -0
  1370. package/node_modules/zod/v4/locales/ca.js +107 -0
  1371. package/node_modules/zod/v4/locales/cs.cjs +138 -0
  1372. package/node_modules/zod/v4/locales/cs.d.cts +5 -0
  1373. package/node_modules/zod/v4/locales/cs.d.ts +4 -0
  1374. package/node_modules/zod/v4/locales/cs.js +111 -0
  1375. package/node_modules/zod/v4/locales/da.cjs +142 -0
  1376. package/node_modules/zod/v4/locales/da.d.cts +5 -0
  1377. package/node_modules/zod/v4/locales/da.d.ts +4 -0
  1378. package/node_modules/zod/v4/locales/da.js +115 -0
  1379. package/node_modules/zod/v4/locales/de.cjs +135 -0
  1380. package/node_modules/zod/v4/locales/de.d.cts +5 -0
  1381. package/node_modules/zod/v4/locales/de.d.ts +4 -0
  1382. package/node_modules/zod/v4/locales/de.js +108 -0
  1383. package/node_modules/zod/v4/locales/en.cjs +136 -0
  1384. package/node_modules/zod/v4/locales/en.d.cts +5 -0
  1385. package/node_modules/zod/v4/locales/en.d.ts +4 -0
  1386. package/node_modules/zod/v4/locales/en.js +109 -0
  1387. package/node_modules/zod/v4/locales/eo.cjs +136 -0
  1388. package/node_modules/zod/v4/locales/eo.d.cts +5 -0
  1389. package/node_modules/zod/v4/locales/eo.d.ts +4 -0
  1390. package/node_modules/zod/v4/locales/eo.js +109 -0
  1391. package/node_modules/zod/v4/locales/es.cjs +159 -0
  1392. package/node_modules/zod/v4/locales/es.d.cts +5 -0
  1393. package/node_modules/zod/v4/locales/es.d.ts +4 -0
  1394. package/node_modules/zod/v4/locales/es.js +132 -0
  1395. package/node_modules/zod/v4/locales/fa.cjs +141 -0
  1396. package/node_modules/zod/v4/locales/fa.d.cts +5 -0
  1397. package/node_modules/zod/v4/locales/fa.d.ts +4 -0
  1398. package/node_modules/zod/v4/locales/fa.js +114 -0
  1399. package/node_modules/zod/v4/locales/fi.cjs +139 -0
  1400. package/node_modules/zod/v4/locales/fi.d.cts +5 -0
  1401. package/node_modules/zod/v4/locales/fi.d.ts +4 -0
  1402. package/node_modules/zod/v4/locales/fi.js +112 -0
  1403. package/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
  1404. package/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
  1405. package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
  1406. package/node_modules/zod/v4/locales/fr-CA.js +107 -0
  1407. package/node_modules/zod/v4/locales/fr.cjs +135 -0
  1408. package/node_modules/zod/v4/locales/fr.d.cts +5 -0
  1409. package/node_modules/zod/v4/locales/fr.d.ts +4 -0
  1410. package/node_modules/zod/v4/locales/fr.js +108 -0
  1411. package/node_modules/zod/v4/locales/he.cjs +241 -0
  1412. package/node_modules/zod/v4/locales/he.d.cts +5 -0
  1413. package/node_modules/zod/v4/locales/he.d.ts +4 -0
  1414. package/node_modules/zod/v4/locales/he.js +214 -0
  1415. package/node_modules/zod/v4/locales/hu.cjs +135 -0
  1416. package/node_modules/zod/v4/locales/hu.d.cts +5 -0
  1417. package/node_modules/zod/v4/locales/hu.d.ts +4 -0
  1418. package/node_modules/zod/v4/locales/hu.js +108 -0
  1419. package/node_modules/zod/v4/locales/hy.cjs +174 -0
  1420. package/node_modules/zod/v4/locales/hy.d.cts +5 -0
  1421. package/node_modules/zod/v4/locales/hy.d.ts +4 -0
  1422. package/node_modules/zod/v4/locales/hy.js +147 -0
  1423. package/node_modules/zod/v4/locales/id.cjs +133 -0
  1424. package/node_modules/zod/v4/locales/id.d.cts +5 -0
  1425. package/node_modules/zod/v4/locales/id.d.ts +4 -0
  1426. package/node_modules/zod/v4/locales/id.js +106 -0
  1427. package/node_modules/zod/v4/locales/index.cjs +104 -0
  1428. package/node_modules/zod/v4/locales/index.d.cts +49 -0
  1429. package/node_modules/zod/v4/locales/index.d.ts +49 -0
  1430. package/node_modules/zod/v4/locales/index.js +49 -0
  1431. package/node_modules/zod/v4/locales/is.cjs +136 -0
  1432. package/node_modules/zod/v4/locales/is.d.cts +5 -0
  1433. package/node_modules/zod/v4/locales/is.d.ts +4 -0
  1434. package/node_modules/zod/v4/locales/is.js +109 -0
  1435. package/node_modules/zod/v4/locales/it.cjs +135 -0
  1436. package/node_modules/zod/v4/locales/it.d.cts +5 -0
  1437. package/node_modules/zod/v4/locales/it.d.ts +4 -0
  1438. package/node_modules/zod/v4/locales/it.js +108 -0
  1439. package/node_modules/zod/v4/locales/ja.cjs +134 -0
  1440. package/node_modules/zod/v4/locales/ja.d.cts +5 -0
  1441. package/node_modules/zod/v4/locales/ja.d.ts +4 -0
  1442. package/node_modules/zod/v4/locales/ja.js +107 -0
  1443. package/node_modules/zod/v4/locales/ka.cjs +139 -0
  1444. package/node_modules/zod/v4/locales/ka.d.cts +5 -0
  1445. package/node_modules/zod/v4/locales/ka.d.ts +4 -0
  1446. package/node_modules/zod/v4/locales/ka.js +112 -0
  1447. package/node_modules/zod/v4/locales/kh.cjs +12 -0
  1448. package/node_modules/zod/v4/locales/kh.d.cts +5 -0
  1449. package/node_modules/zod/v4/locales/kh.d.ts +5 -0
  1450. package/node_modules/zod/v4/locales/kh.js +5 -0
  1451. package/node_modules/zod/v4/locales/km.cjs +137 -0
  1452. package/node_modules/zod/v4/locales/km.d.cts +5 -0
  1453. package/node_modules/zod/v4/locales/km.d.ts +4 -0
  1454. package/node_modules/zod/v4/locales/km.js +110 -0
  1455. package/node_modules/zod/v4/locales/ko.cjs +138 -0
  1456. package/node_modules/zod/v4/locales/ko.d.cts +5 -0
  1457. package/node_modules/zod/v4/locales/ko.d.ts +4 -0
  1458. package/node_modules/zod/v4/locales/ko.js +111 -0
  1459. package/node_modules/zod/v4/locales/lt.cjs +230 -0
  1460. package/node_modules/zod/v4/locales/lt.d.cts +5 -0
  1461. package/node_modules/zod/v4/locales/lt.d.ts +4 -0
  1462. package/node_modules/zod/v4/locales/lt.js +203 -0
  1463. package/node_modules/zod/v4/locales/mk.cjs +136 -0
  1464. package/node_modules/zod/v4/locales/mk.d.cts +5 -0
  1465. package/node_modules/zod/v4/locales/mk.d.ts +4 -0
  1466. package/node_modules/zod/v4/locales/mk.js +109 -0
  1467. package/node_modules/zod/v4/locales/ms.cjs +134 -0
  1468. package/node_modules/zod/v4/locales/ms.d.cts +5 -0
  1469. package/node_modules/zod/v4/locales/ms.d.ts +4 -0
  1470. package/node_modules/zod/v4/locales/ms.js +107 -0
  1471. package/node_modules/zod/v4/locales/nl.cjs +137 -0
  1472. package/node_modules/zod/v4/locales/nl.d.cts +5 -0
  1473. package/node_modules/zod/v4/locales/nl.d.ts +4 -0
  1474. package/node_modules/zod/v4/locales/nl.js +110 -0
  1475. package/node_modules/zod/v4/locales/no.cjs +135 -0
  1476. package/node_modules/zod/v4/locales/no.d.cts +5 -0
  1477. package/node_modules/zod/v4/locales/no.d.ts +4 -0
  1478. package/node_modules/zod/v4/locales/no.js +108 -0
  1479. package/node_modules/zod/v4/locales/ota.cjs +136 -0
  1480. package/node_modules/zod/v4/locales/ota.d.cts +5 -0
  1481. package/node_modules/zod/v4/locales/ota.d.ts +4 -0
  1482. package/node_modules/zod/v4/locales/ota.js +109 -0
  1483. package/node_modules/zod/v4/locales/package.json +6 -0
  1484. package/node_modules/zod/v4/locales/pl.cjs +136 -0
  1485. package/node_modules/zod/v4/locales/pl.d.cts +5 -0
  1486. package/node_modules/zod/v4/locales/pl.d.ts +4 -0
  1487. package/node_modules/zod/v4/locales/pl.js +109 -0
  1488. package/node_modules/zod/v4/locales/ps.cjs +141 -0
  1489. package/node_modules/zod/v4/locales/ps.d.cts +5 -0
  1490. package/node_modules/zod/v4/locales/ps.d.ts +4 -0
  1491. package/node_modules/zod/v4/locales/ps.js +114 -0
  1492. package/node_modules/zod/v4/locales/pt.cjs +135 -0
  1493. package/node_modules/zod/v4/locales/pt.d.cts +5 -0
  1494. package/node_modules/zod/v4/locales/pt.d.ts +4 -0
  1495. package/node_modules/zod/v4/locales/pt.js +108 -0
  1496. package/node_modules/zod/v4/locales/ru.cjs +183 -0
  1497. package/node_modules/zod/v4/locales/ru.d.cts +5 -0
  1498. package/node_modules/zod/v4/locales/ru.d.ts +4 -0
  1499. package/node_modules/zod/v4/locales/ru.js +156 -0
  1500. package/node_modules/zod/v4/locales/sl.cjs +136 -0
  1501. package/node_modules/zod/v4/locales/sl.d.cts +5 -0
  1502. package/node_modules/zod/v4/locales/sl.d.ts +4 -0
  1503. package/node_modules/zod/v4/locales/sl.js +109 -0
  1504. package/node_modules/zod/v4/locales/sv.cjs +137 -0
  1505. package/node_modules/zod/v4/locales/sv.d.cts +5 -0
  1506. package/node_modules/zod/v4/locales/sv.d.ts +4 -0
  1507. package/node_modules/zod/v4/locales/sv.js +110 -0
  1508. package/node_modules/zod/v4/locales/ta.cjs +137 -0
  1509. package/node_modules/zod/v4/locales/ta.d.cts +5 -0
  1510. package/node_modules/zod/v4/locales/ta.d.ts +4 -0
  1511. package/node_modules/zod/v4/locales/ta.js +110 -0
  1512. package/node_modules/zod/v4/locales/th.cjs +137 -0
  1513. package/node_modules/zod/v4/locales/th.d.cts +5 -0
  1514. package/node_modules/zod/v4/locales/th.d.ts +4 -0
  1515. package/node_modules/zod/v4/locales/th.js +110 -0
  1516. package/node_modules/zod/v4/locales/tr.cjs +132 -0
  1517. package/node_modules/zod/v4/locales/tr.d.cts +5 -0
  1518. package/node_modules/zod/v4/locales/tr.d.ts +4 -0
  1519. package/node_modules/zod/v4/locales/tr.js +105 -0
  1520. package/node_modules/zod/v4/locales/ua.cjs +12 -0
  1521. package/node_modules/zod/v4/locales/ua.d.cts +5 -0
  1522. package/node_modules/zod/v4/locales/ua.d.ts +5 -0
  1523. package/node_modules/zod/v4/locales/ua.js +5 -0
  1524. package/node_modules/zod/v4/locales/uk.cjs +135 -0
  1525. package/node_modules/zod/v4/locales/uk.d.cts +5 -0
  1526. package/node_modules/zod/v4/locales/uk.d.ts +4 -0
  1527. package/node_modules/zod/v4/locales/uk.js +108 -0
  1528. package/node_modules/zod/v4/locales/ur.cjs +137 -0
  1529. package/node_modules/zod/v4/locales/ur.d.cts +5 -0
  1530. package/node_modules/zod/v4/locales/ur.d.ts +4 -0
  1531. package/node_modules/zod/v4/locales/ur.js +110 -0
  1532. package/node_modules/zod/v4/locales/uz.cjs +136 -0
  1533. package/node_modules/zod/v4/locales/uz.d.cts +5 -0
  1534. package/node_modules/zod/v4/locales/uz.d.ts +4 -0
  1535. package/node_modules/zod/v4/locales/uz.js +109 -0
  1536. package/node_modules/zod/v4/locales/vi.cjs +135 -0
  1537. package/node_modules/zod/v4/locales/vi.d.cts +5 -0
  1538. package/node_modules/zod/v4/locales/vi.d.ts +4 -0
  1539. package/node_modules/zod/v4/locales/vi.js +108 -0
  1540. package/node_modules/zod/v4/locales/yo.cjs +134 -0
  1541. package/node_modules/zod/v4/locales/yo.d.cts +5 -0
  1542. package/node_modules/zod/v4/locales/yo.d.ts +4 -0
  1543. package/node_modules/zod/v4/locales/yo.js +107 -0
  1544. package/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
  1545. package/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
  1546. package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
  1547. package/node_modules/zod/v4/locales/zh-CN.js +109 -0
  1548. package/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
  1549. package/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
  1550. package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
  1551. package/node_modules/zod/v4/locales/zh-TW.js +107 -0
  1552. package/node_modules/zod/v4/mini/checks.cjs +34 -0
  1553. package/node_modules/zod/v4/mini/checks.d.cts +1 -0
  1554. package/node_modules/zod/v4/mini/checks.d.ts +1 -0
  1555. package/node_modules/zod/v4/mini/checks.js +1 -0
  1556. package/node_modules/zod/v4/mini/coerce.cjs +52 -0
  1557. package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
  1558. package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
  1559. package/node_modules/zod/v4/mini/coerce.js +22 -0
  1560. package/node_modules/zod/v4/mini/external.cjs +63 -0
  1561. package/node_modules/zod/v4/mini/external.d.cts +12 -0
  1562. package/node_modules/zod/v4/mini/external.d.ts +12 -0
  1563. package/node_modules/zod/v4/mini/external.js +14 -0
  1564. package/node_modules/zod/v4/mini/index.cjs +32 -0
  1565. package/node_modules/zod/v4/mini/index.d.cts +3 -0
  1566. package/node_modules/zod/v4/mini/index.d.ts +3 -0
  1567. package/node_modules/zod/v4/mini/index.js +3 -0
  1568. package/node_modules/zod/v4/mini/iso.cjs +64 -0
  1569. package/node_modules/zod/v4/mini/iso.d.cts +22 -0
  1570. package/node_modules/zod/v4/mini/iso.d.ts +22 -0
  1571. package/node_modules/zod/v4/mini/iso.js +34 -0
  1572. package/node_modules/zod/v4/mini/package.json +6 -0
  1573. package/node_modules/zod/v4/mini/parse.cjs +16 -0
  1574. package/node_modules/zod/v4/mini/parse.d.cts +1 -0
  1575. package/node_modules/zod/v4/mini/parse.d.ts +1 -0
  1576. package/node_modules/zod/v4/mini/parse.js +1 -0
  1577. package/node_modules/zod/v4/mini/schemas.cjs +1046 -0
  1578. package/node_modules/zod/v4/mini/schemas.d.cts +427 -0
  1579. package/node_modules/zod/v4/mini/schemas.d.ts +427 -0
  1580. package/node_modules/zod/v4/mini/schemas.js +925 -0
  1581. package/node_modules/zod/v4/package.json +6 -0
  1582. package/node_modules/zod/v4-mini/index.cjs +32 -0
  1583. package/node_modules/zod/v4-mini/index.d.cts +3 -0
  1584. package/node_modules/zod/v4-mini/index.d.ts +3 -0
  1585. package/node_modules/zod/v4-mini/index.js +3 -0
  1586. package/node_modules/zod/v4-mini/package.json +6 -0
  1587. package/openclaw.plugin.json +9 -1
  1588. package/package.json +1 -1
  1589. package/skills/bereach/SKILL.md +2 -2
  1590. package/skills/bereach/sub/outreach.md +7 -1
  1591. package/skills/bereach/workspace/soul-template.md +6 -1
  1592. package/src/hooks/cache.ts +2 -2
  1593. package/src/hooks/context-send.ts +66 -0
  1594. package/src/hooks/context.ts +124 -6
  1595. package/src/hooks/enforcement.ts +54 -3
  1596. package/src/hooks/lifecycle.ts +1 -1
  1597. package/src/hooks/model-routing.ts +78 -17
  1598. package/src/hooks/tracking.ts +19 -2
  1599. package/src/hooks/types.ts +39 -19
  1600. package/src/index.ts +6 -1
  1601. package/src/soul-template-content.ts +2 -2
  1602. package/src/tools/definitions.ts +23 -0
  1603. package/src/tools/index.ts +1 -1
  1604. package/__tests__/helpers.test.ts +0 -797
  1605. package/__tests__/soul-injection.test.ts +0 -285
@@ -1,6 +1,7 @@
1
1
  import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
2
- import { createSessionState, READ_TOOLS, WRITE_TOOLS, PACED_FREE_TOOLS, type SessionState } from "../src/hooks/types";
2
+ import { createSessionState, READ_TOOLS, WRITE_TOOLS, PACED_FREE_TOOLS, classifyUpgrade, type SessionState } from "../src/hooks/types";
3
3
  import * as cache from "../src/hooks/cache";
4
+ import type { CacheStore } from "../src/hooks/cache";
4
5
 
5
6
  // ---------------------------------------------------------------------------
6
7
  // Helpers
@@ -45,6 +46,30 @@ function mockFetchResponses(responses: Record<string, unknown>) {
45
46
  });
46
47
  }
47
48
 
49
+ /** Build a standard snapshot response for the /api/agent/snapshot endpoint. */
50
+ function buildSnapshot(overrides: Partial<CacheStore & { campaignState?: any }> = {}): Record<string, unknown> {
51
+ return {
52
+ "/api/agent/snapshot": {
53
+ credits: overrides.credits ?? { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
54
+ limits: overrides.limits ?? { multiplier: 1, limits: {} },
55
+ pipeline: overrides.pipeline ?? { contact: 0, lead: 0, qualified: 0, approved: 0, rejected: 0, total: 0 },
56
+ contexts: overrides.contexts ?? [],
57
+ pendingDrafts: overrides.pendingDrafts ?? 0,
58
+ failedDrafts: overrides.failedDrafts ?? 0,
59
+ unreadDMs: overrides.unreadDMs ?? 0,
60
+ pendingSentInvitations: overrides.pendingSentInvitations ?? 0,
61
+ activeAccount: overrides.activeAccount ?? null,
62
+ accounts: overrides.accounts ?? [],
63
+ leadGenState: overrides.leadGenState ?? null,
64
+ outreachState: overrides.outreachState ?? null,
65
+ activeCampaigns: overrides.activeCampaigns ?? [],
66
+ campaignChecks: overrides.campaignChecks ?? {},
67
+ sessionMeta: overrides.sessionMeta ?? null,
68
+ onboardingState: overrides.onboardingState ?? null,
69
+ },
70
+ };
71
+ }
72
+
48
73
  // ---------------------------------------------------------------------------
49
74
  // Types
50
75
  // ---------------------------------------------------------------------------
@@ -56,7 +81,6 @@ describe("hooks/types", () => {
56
81
  expect(state.creditsUsedThisSession).toBe(0);
57
82
  expect(state.toolCallCount).toBe(0);
58
83
  expect(state.visitedProfiles.size).toBe(0);
59
- expect(state.engagementSignals.size).toBe(0);
60
84
  expect(state.initialized).toBe(false);
61
85
  });
62
86
  });
@@ -74,16 +98,10 @@ describe("hooks/cache", () => {
74
98
  });
75
99
 
76
100
  it("getOrFetch returns data and caches it", async () => {
77
- const mockFetch = mockFetchResponses({
78
- "/api/me/credits": { credits: { current: 10, limit: 100, remaining: 90, isUnlimited: false, percentage: 10 } },
79
- "/api/rate-limits": { multiplier: 1, limits: {} },
80
- "/api/contacts/stats": { funnel: { contact: 5, lead: 3, qualified: 1, approved: 0, rejected: 0 } },
81
- "/api/context": { entries: [] },
82
- "/api/scheduled-messages": { messages: [], total: 0 },
83
- "/api/me/linkedin/accounts": { accounts: [{ id: "acc1", linkedinName: "Test", accountPlan: "premium", isUnlimited: false, creditsLimit: 200, creditsCount: 10, isCurrent: true }] },
84
- "/api/agent-state/lead-gen": { data: null },
85
- "/api/agent-state/outreach": { data: null },
86
- });
101
+ const mockFetch = mockFetchResponses(buildSnapshot({
102
+ credits: { current: 10, limit: 100, remaining: 90, isUnlimited: false, percentage: 10 },
103
+ pipeline: { contact: 5, lead: 3, qualified: 1, approved: 0, rejected: 0, total: 9 },
104
+ }));
87
105
  globalThis.fetch = mockFetch as any;
88
106
 
89
107
  const data = await cache.getOrFetch("brc_test");
@@ -100,16 +118,9 @@ describe("hooks/cache", () => {
100
118
  });
101
119
 
102
120
  it("invalidate clears a specific key", async () => {
103
- globalThis.fetch = mockFetchResponses({
104
- "/api/me/credits": { credits: { current: 10, limit: 100, remaining: 90, isUnlimited: false, percentage: 10 } },
105
- "/api/rate-limits": { multiplier: 1, limits: {} },
106
- "/api/contacts/stats": { funnel: { contact: 0, lead: 0, qualified: 0, approved: 0, rejected: 0 } },
107
- "/api/context": { entries: [] },
108
- "/api/scheduled-messages": { messages: [], total: 0 },
109
- "/api/me/linkedin/accounts": { accounts: [] },
110
- "/api/agent-state/lead-gen": { data: null },
111
- "/api/agent-state/outreach": { data: null },
112
- }) as any;
121
+ globalThis.fetch = mockFetchResponses(buildSnapshot({
122
+ credits: { current: 10, limit: 100, remaining: 90, isUnlimited: false, percentage: 10 },
123
+ })) as any;
113
124
 
114
125
  await cache.getOrFetch("brc_test");
115
126
  cache.invalidate("credits");
@@ -145,14 +156,15 @@ describe("hooks/context", () => {
145
156
 
146
157
  globalThis.fetch = mockFetchResponses({
147
158
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest Template\n<!-- /bereach-workspace -->" },
148
- "/api/me/credits": { credits: { current: 5, limit: 50, remaining: 45, isUnlimited: false, percentage: 10 } },
149
- "/api/rate-limits": { multiplier: 1, limits: {} },
150
- "/api/contacts/stats": { funnel: { contact: 10, lead: 5, qualified: 2, approved: 1, rejected: 0 } },
151
- "/api/context": { entries: [{ type: "icp", label: "ICP", content: "B2B SaaS founders", scope: "user" }] },
152
- "/api/scheduled-messages": { messages: [], total: 2 },
153
- "/api/me/linkedin/accounts": { accounts: [{ id: "a1", linkedinName: "John", accountPlan: "premium", isUnlimited: false, creditsLimit: 50, creditsCount: 5, isCurrent: true }] },
154
- "/api/agent-state/lead-gen": { data: { phase: "enrich", totalFound: 42 } },
155
- "/api/agent-state/outreach": { data: null },
159
+ ...buildSnapshot({
160
+ credits: { current: 5, limit: 50, remaining: 45, isUnlimited: false, percentage: 10 },
161
+ pipeline: { contact: 10, lead: 5, qualified: 2, approved: 1, rejected: 0, total: 18 },
162
+ contexts: [{ type: "icp", label: "ICP", content: "B2B SaaS founders", scope: "user" }],
163
+ pendingDrafts: 2,
164
+ activeAccount: { id: "a1", name: "John", plan: "premium", headline: null, isUnlimited: false, creditsLimit: 50, creditsCount: 5, isCurrent: true },
165
+ accounts: [{ id: "a1", name: "John", plan: "premium", headline: null, isUnlimited: false, creditsLimit: 50, creditsCount: 5, isCurrent: true }],
166
+ leadGenState: { phase: "enrich", totalFound: 42 },
167
+ }),
156
168
  }) as any;
157
169
 
158
170
  registerContextHook(api, "brc_test_key");
@@ -163,11 +175,9 @@ describe("hooks/context", () => {
163
175
  expect(result.appendSystemContext).toContain("BeReach Live Status");
164
176
  expect(result.appendSystemContext).toContain("45 remaining");
165
177
  expect(result.appendSystemContext).toContain("Contact | 10");
166
- expect(result.appendSystemContext).toContain("2 draft messages");
178
+ expect(result.appendSystemContext).toContain("2 draft");
167
179
  expect(result.appendSystemContext).toContain("ICP");
168
180
  expect(result.appendSystemContext).toContain("B2B SaaS founders");
169
- expect(result.appendSystemContext).toContain("Lead gen state found");
170
- expect(result.appendSystemContext).toContain("42 leads found");
171
181
  });
172
182
  });
173
183
 
@@ -193,16 +203,9 @@ describe("hooks/enforcement", () => {
193
203
  const { registerEnforcementHook } = await import("../src/hooks/enforcement");
194
204
  const api = createMockApi();
195
205
 
196
- globalThis.fetch = mockFetchResponses({
197
- "/api/me/credits": { credits: { current: 100, limit: 100, remaining: 0, isUnlimited: false, percentage: 100 } },
198
- "/api/rate-limits": { multiplier: 1, limits: {} },
199
- "/api/contacts/stats": { funnel: {} },
200
- "/api/context": { entries: [] },
201
- "/api/scheduled-messages": { messages: [], total: 0 },
202
- "/api/me/linkedin/accounts": { accounts: [] },
203
- "/api/agent-state/lead-gen": { data: null },
204
- "/api/agent-state/outreach": { data: null },
205
- }) as any;
206
+ globalThis.fetch = mockFetchResponses(buildSnapshot({
207
+ credits: { current: 100, limit: 100, remaining: 0, isUnlimited: false, percentage: 100 },
208
+ })) as any;
206
209
 
207
210
  registerEnforcementHook(api, "brc_test_key", {}, state);
208
211
 
@@ -220,16 +223,9 @@ describe("hooks/enforcement", () => {
220
223
  const { registerEnforcementHook } = await import("../src/hooks/enforcement");
221
224
  const api = createMockApi();
222
225
 
223
- globalThis.fetch = mockFetchResponses({
224
- "/api/me/credits": { credits: { current: 100, limit: 100, remaining: 0, isUnlimited: false, percentage: 100 } },
225
- "/api/rate-limits": { multiplier: 1, limits: {} },
226
- "/api/contacts/stats": { funnel: {} },
227
- "/api/context": { entries: [] },
228
- "/api/scheduled-messages": { messages: [], total: 0 },
229
- "/api/me/linkedin/accounts": { accounts: [] },
230
- "/api/agent-state/lead-gen": { data: null },
231
- "/api/agent-state/outreach": { data: null },
232
- }) as any;
226
+ globalThis.fetch = mockFetchResponses(buildSnapshot({
227
+ credits: { current: 100, limit: 100, remaining: 0, isUnlimited: false, percentage: 100 },
228
+ })) as any;
233
229
 
234
230
  registerEnforcementHook(api, "brc_test_key", {}, state);
235
231
 
@@ -246,14 +242,7 @@ describe("hooks/enforcement", () => {
246
242
  const api = createMockApi();
247
243
 
248
244
  globalThis.fetch = mockFetchResponses({
249
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
250
- "/api/rate-limits": { multiplier: 1, limits: {} },
251
- "/api/contacts/stats": { funnel: {} },
252
- "/api/context": { entries: [] },
253
- "/api/scheduled-messages": { messages: [], total: 0 },
254
- "/api/me/linkedin/accounts": { accounts: [] },
255
- "/api/agent-state/lead-gen": { data: null },
256
- "/api/agent-state/outreach": { data: null },
245
+ ...buildSnapshot({ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } }),
257
246
  "/api/contacts/by-url": { contact: { doNotContact: false } },
258
247
  }) as any;
259
248
 
@@ -274,14 +263,7 @@ describe("hooks/enforcement", () => {
274
263
  const api = createMockApi();
275
264
 
276
265
  globalThis.fetch = mockFetchResponses({
277
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
278
- "/api/rate-limits": { multiplier: 1, limits: {} },
279
- "/api/contacts/stats": { funnel: {} },
280
- "/api/context": { entries: [] },
281
- "/api/scheduled-messages": { messages: [], total: 0 },
282
- "/api/me/linkedin/accounts": { accounts: [] },
283
- "/api/agent-state/lead-gen": { data: null },
284
- "/api/agent-state/outreach": { data: null },
266
+ ...buildSnapshot({ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } }),
285
267
  "/api/contacts/by-url": { contact: { doNotContact: false } },
286
268
  }) as any;
287
269
 
@@ -301,16 +283,9 @@ describe("hooks/enforcement", () => {
301
283
  const { registerEnforcementHook } = await import("../src/hooks/enforcement");
302
284
  const api = createMockApi();
303
285
 
304
- globalThis.fetch = mockFetchResponses({
305
- "/api/me/credits": { credits: { current: 0, limit: 1000, remaining: 1000, isUnlimited: false, percentage: 0 } },
306
- "/api/rate-limits": { multiplier: 1, limits: {} },
307
- "/api/contacts/stats": { funnel: {} },
308
- "/api/context": { entries: [] },
309
- "/api/scheduled-messages": { messages: [], total: 0 },
310
- "/api/me/linkedin/accounts": { accounts: [] },
311
- "/api/agent-state/lead-gen": { data: null },
312
- "/api/agent-state/outreach": { data: null },
313
- }) as any;
286
+ globalThis.fetch = mockFetchResponses(buildSnapshot({
287
+ credits: { current: 0, limit: 1000, remaining: 1000, isUnlimited: false, percentage: 0 },
288
+ })) as any;
314
289
 
315
290
  state.visitCount = 50;
316
291
  registerEnforcementHook(api, "brc_test_key", { maxVisitsPerSession: 50 }, state);
@@ -330,17 +305,11 @@ describe("hooks/enforcement", () => {
330
305
  const api = createMockApi();
331
306
 
332
307
  globalThis.fetch = mockFetchResponses({
333
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
334
- "/api/rate-limits": { multiplier: 1, limits: {} },
335
- "/api/contacts/stats": { funnel: {} },
336
- "/api/context": { entries: [] },
337
- "/api/scheduled-messages": { messages: [], total: 0 },
338
- "/api/me/linkedin/accounts": { accounts: [] },
339
- "/api/agent-state/lead-gen": { data: null },
340
- "/api/agent-state/outreach": { data: null },
308
+ ...buildSnapshot({ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } }),
341
309
  "/api/contacts/by-url": { contact: { doNotContact: true } },
342
310
  }) as any;
343
311
 
312
+ state.dmHistoryChecked.add("https://linkedin.com/in/blocked-person");
344
313
  registerEnforcementHook(api, "brc_test_key", { writePacingMin: 0, writePacingMax: 0 }, state);
345
314
 
346
315
  const result = await api._fire("before_tool_call", {
@@ -381,96 +350,6 @@ describe("hooks/tracking", () => {
381
350
  cache.clearAll();
382
351
  });
383
352
 
384
- it("truncates long post text in results", async () => {
385
- const { registerTrackingHook } = await import("../src/hooks/tracking");
386
- const api = createMockApi();
387
- registerTrackingHook(api, state, undefined, 50, 10);
388
-
389
- const longText = "A".repeat(200);
390
- const ctx = {
391
- toolName: "bereach_collect_posts",
392
- result: {
393
- content: [{ type: "text", text: JSON.stringify({ posts: [{ text: longText, title: "Test" }] }) }],
394
- },
395
- };
396
-
397
- await api._fire("after_tool_call", ctx);
398
- const parsed = JSON.parse(ctx.result.content[0].text);
399
- expect(parsed.posts[0].text.length).toBeLessThan(200);
400
- expect(parsed.posts[0].text).toContain("...");
401
- });
402
-
403
- it("strips image URL fields", async () => {
404
- const { registerTrackingHook } = await import("../src/hooks/tracking");
405
- const api = createMockApi();
406
- registerTrackingHook(api, state);
407
-
408
- const ctx = {
409
- toolName: "bereach_search_people",
410
- result: {
411
- content: [{
412
- type: "text",
413
- text: JSON.stringify({
414
- profiles: [
415
- { name: "Test", profilePicture: "https://cdn.example.com/pic.jpg", profileUrl: "https://linkedin.com/in/test" },
416
- ],
417
- }),
418
- }],
419
- },
420
- };
421
-
422
- await api._fire("after_tool_call", ctx);
423
- const parsed = JSON.parse(ctx.result.content[0].text);
424
- expect(parsed.profiles[0].profilePicture).toBeUndefined();
425
- expect(parsed.profiles[0].name).toBe("Test");
426
- expect(parsed.profiles[0].profileUrl).toBe("https://linkedin.com/in/test");
427
- });
428
-
429
- it("truncates large arrays", async () => {
430
- const { registerTrackingHook } = await import("../src/hooks/tracking");
431
- const api = createMockApi();
432
- registerTrackingHook(api, state, undefined, 500, 5);
433
-
434
- const profiles = Array.from({ length: 50 }, (_, i) => ({ name: `Person ${i}` }));
435
- const ctx = {
436
- toolName: "bereach_search_people",
437
- result: {
438
- content: [{ type: "text", text: JSON.stringify({ profiles }) }],
439
- },
440
- };
441
-
442
- await api._fire("after_tool_call", ctx);
443
- const parsed = JSON.parse(ctx.result.content[0].text);
444
- expect(parsed.profiles.length).toBe(5);
445
- expect(parsed._truncated.total).toBe(50);
446
- expect(parsed._truncated.shown).toBe(5);
447
- });
448
-
449
- it("tracks engagement signals from collect_likes", async () => {
450
- const { registerTrackingHook } = await import("../src/hooks/tracking");
451
- const api = createMockApi();
452
- registerTrackingHook(api, state);
453
-
454
- const ctx = {
455
- toolName: "bereach_collect_likes",
456
- result: {
457
- content: [{
458
- type: "text",
459
- text: JSON.stringify({
460
- profiles: [
461
- { profileUrl: "https://linkedin.com/in/alice" },
462
- { profileUrl: "https://linkedin.com/in/bob" },
463
- ],
464
- }),
465
- }],
466
- },
467
- };
468
-
469
- await api._fire("after_tool_call", ctx);
470
- expect(state.engagementSignals.get("https://linkedin.com/in/alice")).toBe(1);
471
- expect(state.engagementSignals.get("https://linkedin.com/in/bob")).toBe(1);
472
- });
473
-
474
353
  it("tracks visits and invalidates credits cache", async () => {
475
354
  const { registerTrackingHook } = await import("../src/hooks/tracking");
476
355
  const api = createMockApi();
@@ -493,21 +372,18 @@ describe("hooks/tracking", () => {
493
372
  expect(state.creditsUsedThisSession).toBe(1);
494
373
  });
495
374
 
496
- it("uses compact JSON (no pretty-print)", async () => {
375
+ it("records DM pacing timestamp on send_message", async () => {
497
376
  const { registerTrackingHook } = await import("../src/hooks/tracking");
498
377
  const api = createMockApi();
499
378
  registerTrackingHook(api, state);
500
379
 
501
380
  const ctx = {
502
- toolName: "bereach_contacts_search",
503
- result: {
504
- content: [{ type: "text", text: JSON.stringify({ contacts: [{ name: "Test" }] }, null, 2) }],
505
- },
381
+ toolName: "bereach_send_message",
382
+ result: JSON.stringify({ success: true }),
506
383
  };
507
384
 
508
385
  await api._fire("after_tool_call", ctx);
509
- // Should be compact (no newlines from pretty-print)
510
- expect(ctx.result.content[0].text).not.toContain("\n");
386
+ expect(state.lastDmSentAt).toBeGreaterThan(0);
511
387
  });
512
388
  });
513
389
 
@@ -575,45 +451,47 @@ describe("hooks/lifecycle", () => {
575
451
  // ---------------------------------------------------------------------------
576
452
 
577
453
  describe("hooks/model-routing", () => {
578
- it("routes to opus for code generation", async () => {
579
- const { registerModelRoutingHook } = await import("../src/hooks/model-routing");
454
+ it("detects weak models and sets isWeakModel", async () => {
455
+ const { registerModelRoutingHook, modelState } = await import("../src/hooks/model-routing");
580
456
  const api = createMockApi();
581
457
 
582
458
  registerModelRoutingHook(api);
583
459
 
584
- const result = await api._fire("before_model_resolve", {
585
- pendingActions: [{ type: "write" }],
460
+ await api._fire("before_model_resolve", {
461
+ model: "anthropic/claude-haiku-3",
586
462
  });
587
463
 
588
- expect(result).toBeDefined();
589
- expect(result.model).toContain("opus");
464
+ expect(modelState.isWeakModel).toBe(true);
465
+ expect(modelState.detectedModel).toBe("anthropic/claude-haiku-3");
590
466
  });
591
467
 
592
- it("returns undefined for non-code tasks", async () => {
593
- const { registerModelRoutingHook } = await import("../src/hooks/model-routing");
468
+ it("returns undefined for non-weak models without creative mode", async () => {
469
+ const { registerModelRoutingHook, modelState } = await import("../src/hooks/model-routing");
594
470
  const api = createMockApi();
471
+ modelState.creativeMode = false;
472
+ modelState.consecutiveErrors = 0;
595
473
 
596
474
  registerModelRoutingHook(api);
597
475
 
598
476
  const result = await api._fire("before_model_resolve", {
599
- pendingActions: [{ type: "search" }],
477
+ model: "anthropic/claude-sonnet-4-6",
600
478
  });
601
479
 
602
480
  expect(result).toBeUndefined();
603
481
  });
604
482
 
605
- it("uses custom model ID when configured", async () => {
606
- const { registerModelRoutingHook } = await import("../src/hooks/model-routing");
483
+ it("auto-detects creative model for Anthropic Haiku", async () => {
484
+ const { registerModelRoutingHook, modelState } = await import("../src/hooks/model-routing");
607
485
  const api = createMockApi();
486
+ modelState.creativeMode = true;
608
487
 
609
- registerModelRoutingHook(api, { opusModelId: "anthropic/claude-opus-5" });
488
+ registerModelRoutingHook(api);
610
489
 
611
- const result = await api._fire("before_model_resolve", {
612
- pendingActions: [{ type: "edit" }],
490
+ await api._fire("before_model_resolve", {
491
+ model: "anthropic/claude-haiku-3",
613
492
  });
614
493
 
615
- expect(result).toBeDefined();
616
- expect(result.model).toBe("anthropic/claude-opus-5");
494
+ expect(modelState.resolvedCreativeModel).toContain("sonnet");
617
495
  });
618
496
  });
619
497
 
@@ -639,25 +517,10 @@ describe("hooks/enforcement - rate limits", () => {
639
517
  const { registerEnforcementHook } = await import("../src/hooks/enforcement");
640
518
  const api = createMockApi();
641
519
 
642
- globalThis.fetch = mockFetchResponses({
643
- "/api/me/credits": { credits: { current: 5, limit: 100, remaining: 95, isUnlimited: false, percentage: 5 } },
644
- "/api/rate-limits": {
645
- multiplier: 1,
646
- linkedIn: {
647
- limits: {
648
- profile_visit: {
649
- daily: { current: 100, limit: 100, remaining: 0 },
650
- },
651
- },
652
- },
653
- },
654
- "/api/contacts/stats": { funnel: {} },
655
- "/api/context": { entries: [] },
656
- "/api/scheduled-messages": { messages: [], total: 0 },
657
- "/api/me/linkedin/accounts": { accounts: [] },
658
- "/api/agent-state/lead-gen": { data: null },
659
- "/api/agent-state/outreach": { data: null },
660
- }) as any;
520
+ globalThis.fetch = mockFetchResponses(buildSnapshot({
521
+ credits: { current: 5, limit: 100, remaining: 95, isUnlimited: false, percentage: 5 },
522
+ limits: { multiplier: 1, limits: { profile_visit: { daily: { current: 100, limit: 100, remaining: 0 } } } },
523
+ })) as any;
661
524
 
662
525
  registerEnforcementHook(api, "brc_test_key", { readPacingMin: 0, readPacingMax: 0 }, state);
663
526
 
@@ -677,24 +540,10 @@ describe("hooks/enforcement - rate limits", () => {
677
540
  const api = createMockApi();
678
541
 
679
542
  globalThis.fetch = mockFetchResponses({
680
- "/api/me/credits": { credits: { current: 5, limit: 100, remaining: 95, isUnlimited: false, percentage: 5 } },
681
- "/api/rate-limits": {
682
- multiplier: 1,
683
- linkedIn: {
684
- limits: {
685
- connection_request: {
686
- daily: { current: 10, limit: 30, remaining: 20 },
687
- weekly: { current: 100, limit: 100, remaining: 0 },
688
- },
689
- },
690
- },
691
- },
692
- "/api/contacts/stats": { funnel: {} },
693
- "/api/context": { entries: [] },
694
- "/api/scheduled-messages": { messages: [], total: 0 },
695
- "/api/me/linkedin/accounts": { accounts: [] },
696
- "/api/agent-state/lead-gen": { data: null },
697
- "/api/agent-state/outreach": { data: null },
543
+ ...buildSnapshot({
544
+ credits: { current: 5, limit: 100, remaining: 95, isUnlimited: false, percentage: 5 },
545
+ limits: { multiplier: 1, limits: { connection_request: { daily: { current: 10, limit: 30, remaining: 20 }, weekly: { current: 100, limit: 100, remaining: 0 } } } },
546
+ }),
698
547
  "/api/contacts/by-url": { contact: { doNotContact: false } },
699
548
  }) as any;
700
549
 
@@ -715,16 +564,9 @@ describe("hooks/enforcement - rate limits", () => {
715
564
  const { registerEnforcementHook } = await import("../src/hooks/enforcement");
716
565
  const api = createMockApi();
717
566
 
718
- globalThis.fetch = mockFetchResponses({
719
- "/api/me/credits": { credits: { current: 500, limit: null, remaining: null, isUnlimited: true, percentage: 0 } },
720
- "/api/rate-limits": { multiplier: 3, linkedIn: { limits: {} } },
721
- "/api/contacts/stats": { funnel: {} },
722
- "/api/context": { entries: [] },
723
- "/api/scheduled-messages": { messages: [], total: 0 },
724
- "/api/me/linkedin/accounts": { accounts: [] },
725
- "/api/agent-state/lead-gen": { data: null },
726
- "/api/agent-state/outreach": { data: null },
727
- }) as any;
567
+ globalThis.fetch = mockFetchResponses(buildSnapshot({
568
+ credits: { current: 500, limit: null, remaining: null, isUnlimited: true, percentage: 0 },
569
+ })) as any;
728
570
 
729
571
  registerEnforcementHook(api, "brc_test_key", { readPacingMin: 0, readPacingMax: 0 }, state);
730
572
 
@@ -740,16 +582,9 @@ describe("hooks/enforcement - rate limits", () => {
740
582
  const { registerEnforcementHook } = await import("../src/hooks/enforcement");
741
583
  const api = createMockApi();
742
584
 
743
- globalThis.fetch = mockFetchResponses({
744
- "/api/me/credits": { credits: { current: 100, limit: 100, remaining: 0, isUnlimited: false, percentage: 100 } },
745
- "/api/rate-limits": { multiplier: 1, limits: {} },
746
- "/api/contacts/stats": { funnel: {} },
747
- "/api/context": { entries: [] },
748
- "/api/scheduled-messages": { messages: [], total: 0 },
749
- "/api/me/linkedin/accounts": { accounts: [] },
750
- "/api/agent-state/lead-gen": { data: null },
751
- "/api/agent-state/outreach": { data: null },
752
- }) as any;
585
+ globalThis.fetch = mockFetchResponses(buildSnapshot({
586
+ credits: { current: 100, limit: 100, remaining: 0, isUnlimited: false, percentage: 100 },
587
+ })) as any;
753
588
 
754
589
  const startMs = Date.now();
755
590
  registerEnforcementHook(api, "brc_test_key", { readPacingMin: 5, readPacingMax: 10 }, state);
@@ -773,6 +608,13 @@ describe("hooks/enforcement - rate limits", () => {
773
608
  describe("hooks/context - campaign dispatch", () => {
774
609
  const originalFetch = globalThis.fetch;
775
610
 
611
+ beforeEach(async () => {
612
+ cache.clearAll();
613
+ const { modelState } = await import("../src/hooks/model-routing");
614
+ modelState.isWeakModel = false;
615
+ modelState.consecutiveErrors = 0;
616
+ });
617
+
776
618
  afterEach(() => {
777
619
  globalThis.fetch = originalFetch;
778
620
  cache.clearAll();
@@ -783,43 +625,19 @@ describe("hooks/context - campaign dispatch", () => {
783
625
  const api = createMockApi();
784
626
 
785
627
  const now = new Date();
786
- const tenMinAgo = new Date(now.getTime() - 10 * 60 * 1000).toISOString();
787
628
  const twoHoursAgo = new Date(now.getTime() - 120 * 60 * 1000).toISOString();
788
629
 
789
630
  globalThis.fetch = mockFetchResponses({
790
631
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest\n<!-- /bereach-workspace -->" },
791
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
792
- "/api/rate-limits": { multiplier: 1, limits: {} },
793
- "/api/contacts/stats": { funnel: { contact: 0, lead: 0, qualified: 0, approved: 0, rejected: 0 } },
794
- "/api/context": { entries: [] },
795
- "/api/scheduled-messages": { messages: [], total: 0 },
796
- "/api/me/linkedin/accounts": { accounts: [] },
797
- "/api/agent-state/lead-gen": { data: null },
798
- "/api/agent-state/outreach": { data: null },
799
- "/api/chats/linkedin/unread": { unreadCount: 0 },
800
- "/api/agent-state/campaigns": {
801
- data: {
802
- schemaVersion: 1,
803
- campaigns: [
804
- {
805
- id: "lm-1", type: "lead-magnet", name: "AI tools post",
806
- status: "active", priority: "high",
807
- checkIntervalMinutes: 5, lastCheckAt: tenMinAgo,
808
- createdAt: twoHoursAgo, config: {}, progress: {}, stats: {},
809
- lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: tenMinAgo,
810
- },
811
- {
812
- id: "lg-1", type: "lead-gen", name: "competitor scrape",
813
- status: "active", priority: "medium",
814
- checkIntervalMinutes: 60, lastCheckAt: twoHoursAgo,
815
- createdAt: twoHoursAgo, config: {}, progress: {}, stats: {},
816
- lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: twoHoursAgo,
817
- },
818
- ],
819
- updatedAt: tenMinAgo,
820
- },
821
- },
822
- "registry.npmjs.org": null,
632
+ ...buildSnapshot({
633
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
634
+ onboardingState: { completed: true },
635
+ activeCampaigns: [
636
+ { id: "lm-1", type: "lead-magnet", name: "AI tools post", status: "active" },
637
+ { id: "lg-1", type: "lead-gen", name: "competitor scrape", status: "active" },
638
+ ],
639
+ campaignChecks: { "lm-1": twoHoursAgo, "lg-1": twoHoursAgo },
640
+ }),
823
641
  }) as any;
824
642
 
825
643
  registerContextHook(api, "brc_test_key");
@@ -837,17 +655,10 @@ describe("hooks/context - campaign dispatch", () => {
837
655
 
838
656
  globalThis.fetch = mockFetchResponses({
839
657
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest\n<!-- /bereach-workspace -->" },
840
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
841
- "/api/rate-limits": { multiplier: 1, limits: {} },
842
- "/api/contacts/stats": { funnel: { contact: 0, lead: 0, qualified: 0, approved: 0, rejected: 0 } },
843
- "/api/context": { entries: [] },
844
- "/api/scheduled-messages": { messages: [], total: 0 },
845
- "/api/me/linkedin/accounts": { accounts: [] },
846
- "/api/agent-state/lead-gen": { data: null },
847
- "/api/agent-state/outreach": { data: null },
848
- "/api/chats/linkedin/unread": { unreadCount: 0 },
849
- "/api/agent-state/campaigns": { data: null },
850
- "registry.npmjs.org": null,
658
+ ...buildSnapshot({
659
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
660
+ onboardingState: { completed: true },
661
+ }),
851
662
  }) as any;
852
663
 
853
664
  registerContextHook(api, "brc_test_key");
@@ -862,17 +673,10 @@ describe("hooks/context - campaign dispatch", () => {
862
673
 
863
674
  globalThis.fetch = mockFetchResponses({
864
675
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest\n<!-- /bereach-workspace -->" },
865
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
866
- "/api/rate-limits": { multiplier: 1, limits: {} },
867
- "/api/contacts/stats": { funnel: {} },
868
- "/api/context": { entries: [] },
869
- "/api/scheduled-messages": { messages: [], total: 0 },
870
- "/api/me/linkedin/accounts": { accounts: [] },
871
- "/api/agent-state/lead-gen": { data: null },
872
- "/api/agent-state/outreach": { data: null },
873
- "/api/chats/linkedin/unread": { unreadCount: 0 },
874
- "/api/agent-state/campaigns": { data: null },
875
- "registry.npmjs.org": null,
676
+ ...buildSnapshot({
677
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
678
+ onboardingState: { completed: true },
679
+ }),
876
680
  }) as any;
877
681
 
878
682
  registerContextHook(api, "brc_test_key");
@@ -881,8 +685,6 @@ describe("hooks/context - campaign dispatch", () => {
881
685
  expect(result.appendSystemContext).toContain("Execution Modes");
882
686
  expect(result.appendSystemContext).toContain("One-shot");
883
687
  expect(result.appendSystemContext).toContain("Recurring");
884
- expect(result.appendSystemContext).toContain("Campaign Orchestrator");
885
- expect(result.appendSystemContext).toContain("*/5 * * * *");
886
688
  });
887
689
 
888
690
  it("injects execution modes when campaign state has 0 campaigns", async () => {
@@ -891,17 +693,11 @@ describe("hooks/context - campaign dispatch", () => {
891
693
 
892
694
  globalThis.fetch = mockFetchResponses({
893
695
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest\n<!-- /bereach-workspace -->" },
894
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
895
- "/api/rate-limits": { multiplier: 1, limits: {} },
896
- "/api/contacts/stats": { funnel: {} },
897
- "/api/context": { entries: [] },
898
- "/api/scheduled-messages": { messages: [], total: 0 },
899
- "/api/me/linkedin/accounts": { accounts: [] },
900
- "/api/agent-state/lead-gen": { data: null },
901
- "/api/agent-state/outreach": { data: null },
902
- "/api/chats/linkedin/unread": { unreadCount: 0 },
903
- "/api/agent-state/campaigns": { data: { schemaVersion: 1, campaigns: [], updatedAt: "2026-01-01" } },
904
- "registry.npmjs.org": null,
696
+ ...buildSnapshot({
697
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
698
+ activeCampaigns: [],
699
+ onboardingState: { completed: true },
700
+ }),
905
701
  }) as any;
906
702
 
907
703
  registerContextHook(api, "brc_test_key");
@@ -919,29 +715,14 @@ describe("hooks/context - campaign dispatch", () => {
919
715
  const now = new Date();
920
716
  globalThis.fetch = mockFetchResponses({
921
717
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest\n<!-- /bereach-workspace -->" },
922
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
923
- "/api/rate-limits": { multiplier: 1, limits: {} },
924
- "/api/contacts/stats": { funnel: {} },
925
- "/api/context": { entries: [] },
926
- "/api/scheduled-messages": { messages: [], total: 0 },
927
- "/api/me/linkedin/accounts": { accounts: [] },
928
- "/api/agent-state/lead-gen": { data: null },
929
- "/api/agent-state/outreach": { data: null },
930
- "/api/chats/linkedin/unread": { unreadCount: 0 },
931
- "/api/agent-state/campaigns": {
932
- data: {
933
- schemaVersion: 1,
934
- campaigns: [{
935
- id: "c1", type: "lead-gen", name: "Test", status: "active",
936
- priority: "medium", checkIntervalMinutes: 60,
937
- lastCheckAt: new Date(now.getTime() - 30 * 60_000).toISOString(),
938
- createdAt: now.toISOString(), config: {}, progress: {}, stats: {},
939
- lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: null,
940
- }],
941
- updatedAt: now.toISOString(),
942
- },
943
- },
944
- "registry.npmjs.org": null,
718
+ ...buildSnapshot({
719
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
720
+ activeCampaigns: [
721
+ { id: "c1", type: "lead-gen", name: "Test", status: "active" },
722
+ ],
723
+ campaignChecks: { c1: new Date(now.getTime() - 30 * 60_000).toISOString() },
724
+ onboardingState: { completed: true },
725
+ }),
945
726
  }) as any;
946
727
 
947
728
  registerContextHook(api, "brc_test_key");
@@ -951,170 +732,117 @@ describe("hooks/context - campaign dispatch", () => {
951
732
  expect(result.appendSystemContext).toContain("Campaign Dispatch");
952
733
  });
953
734
 
954
- it("injects AUTO-RESUME directive when auto-resume flag and incomplete lead-gen state exist", async () => {
735
+ it("injects incomplete task directive when lead-gen state is in progress", async () => {
955
736
  const { registerContextHook } = await import("../src/hooks/context");
956
737
  const api = createMockApi();
957
738
 
958
739
  globalThis.fetch = mockFetchResponses({
959
740
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest\n<!-- /bereach-workspace -->" },
960
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
961
- "/api/rate-limits": { multiplier: 1, limits: {} },
962
- "/api/contacts/stats": { funnel: {} },
963
- "/api/context": { entries: [] },
964
- "/api/scheduled-messages": { messages: [], total: 0 },
965
- "/api/me/linkedin/accounts": { accounts: [] },
966
- "/api/agent-state/lead-gen": { data: { phase: "qualification", totalFound: 30, target: 100 } },
967
- "/api/agent-state/outreach": { data: null },
968
- "/api/chats/linkedin/unread": { unreadCount: 0 },
969
- "/api/agent-state/campaigns": { data: null },
970
- "/api/agent-state/auto-resume": { data: { taskType: "lead-gen", savedAt: new Date().toISOString(), phase: "qualification", found: 30, target: 100, stateKey: "lead-gen" } },
971
- "registry.npmjs.org": null,
741
+ ...buildSnapshot({
742
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
743
+ leadGenState: { phase: "qualification", totalFound: 30, target: 100 },
744
+ onboardingState: { completed: true },
745
+ }),
972
746
  }) as any;
973
747
 
974
748
  registerContextHook(api, "brc_test_key");
975
749
  const result = await api._fire("before_prompt_build");
976
750
 
977
- expect(result.appendSystemContext).toContain("AUTO-RESUME");
978
751
  expect(result.appendSystemContext).toContain("Incomplete Task");
979
752
  expect(result.appendSystemContext).toContain("bereach_state_get('lead-gen')");
980
- expect(result.appendSystemContext).toContain("bereach_state_delete('auto-resume')");
981
- // Should also inject cron setup since no campaigns exist
982
- expect(result.appendSystemContext).toContain("Ensure Cron");
983
753
  });
984
754
 
985
- it("skips AUTO-RESUME when lead-gen state is completed (orphaned flag)", async () => {
755
+ it("skips incomplete task when lead-gen state is completed", async () => {
986
756
  const { registerContextHook } = await import("../src/hooks/context");
987
757
  const api = createMockApi();
988
758
 
989
759
  globalThis.fetch = mockFetchResponses({
990
760
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest\n<!-- /bereach-workspace -->" },
991
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
992
- "/api/rate-limits": { multiplier: 1, limits: {} },
993
- "/api/contacts/stats": { funnel: {} },
994
- "/api/context": { entries: [] },
995
- "/api/scheduled-messages": { messages: [], total: 0 },
996
- "/api/me/linkedin/accounts": { accounts: [] },
997
- "/api/agent-state/lead-gen": { data: { phase: "complete", totalFound: 100, target: 100 } },
998
- "/api/agent-state/outreach": { data: null },
999
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1000
- "/api/agent-state/campaigns": { data: null },
1001
- "/api/agent-state/auto-resume": { data: { taskType: "lead-gen", savedAt: new Date().toISOString(), phase: "qualification", found: 30, target: 100, stateKey: "lead-gen" } },
1002
- "registry.npmjs.org": null,
761
+ ...buildSnapshot({
762
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
763
+ leadGenState: { phase: "complete", totalFound: 100, target: 100 },
764
+ onboardingState: { completed: true },
765
+ }),
1003
766
  }) as any;
1004
767
 
1005
768
  registerContextHook(api, "brc_test_key");
1006
769
  const result = await api._fire("before_prompt_build");
1007
770
 
1008
- expect(result.appendSystemContext).not.toContain("AUTO-RESUME");
1009
- expect(result.appendSystemContext).not.toContain("Ensure Cron");
771
+ expect(result.appendSystemContext).not.toContain("Incomplete Task");
1010
772
  });
1011
773
 
1012
- it("skips AUTO-RESUME when lead-gen state is absent (deleted)", async () => {
774
+ it("skips incomplete task when lead-gen state is absent", async () => {
1013
775
  const { registerContextHook } = await import("../src/hooks/context");
1014
776
  const api = createMockApi();
1015
777
 
1016
778
  globalThis.fetch = mockFetchResponses({
1017
779
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest\n<!-- /bereach-workspace -->" },
1018
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1019
- "/api/rate-limits": { multiplier: 1, limits: {} },
1020
- "/api/contacts/stats": { funnel: {} },
1021
- "/api/context": { entries: [] },
1022
- "/api/scheduled-messages": { messages: [], total: 0 },
1023
- "/api/me/linkedin/accounts": { accounts: [] },
1024
- "/api/agent-state/lead-gen": { data: null },
1025
- "/api/agent-state/outreach": { data: null },
1026
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1027
- "/api/agent-state/campaigns": { data: null },
1028
- "/api/agent-state/auto-resume": { data: { taskType: "lead-gen", savedAt: new Date().toISOString(), phase: "search", found: 10, target: 50, stateKey: "lead-gen" } },
1029
- "registry.npmjs.org": null,
780
+ ...buildSnapshot({
781
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
782
+ onboardingState: { completed: true },
783
+ }),
1030
784
  }) as any;
1031
785
 
1032
786
  registerContextHook(api, "brc_test_key");
1033
787
  const result = await api._fire("before_prompt_build");
1034
788
 
1035
- expect(result.appendSystemContext).not.toContain("AUTO-RESUME");
789
+ expect(result.appendSystemContext).not.toContain("Incomplete Task");
1036
790
  });
1037
791
 
1038
- it("uses live lead-gen state data for progress display (not stale auto-resume snapshot)", async () => {
792
+ it("uses live lead-gen state data for progress display", async () => {
1039
793
  const { registerContextHook } = await import("../src/hooks/context");
1040
794
  const api = createMockApi();
1041
795
 
1042
796
  globalThis.fetch = mockFetchResponses({
1043
797
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest\n<!-- /bereach-workspace -->" },
1044
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1045
- "/api/rate-limits": { multiplier: 1, limits: {} },
1046
- "/api/contacts/stats": { funnel: {} },
1047
- "/api/context": { entries: [] },
1048
- "/api/scheduled-messages": { messages: [], total: 0 },
1049
- "/api/me/linkedin/accounts": { accounts: [] },
1050
- "/api/agent-state/lead-gen": { data: { phase: "qualification", totalFound: 55, target: 100 } },
1051
- "/api/agent-state/outreach": { data: null },
1052
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1053
- "/api/agent-state/campaigns": { data: null },
1054
- "/api/agent-state/auto-resume": { data: { taskType: "lead-gen", savedAt: new Date().toISOString(), phase: "search", found: 30, target: 100, stateKey: "lead-gen" } },
1055
- "registry.npmjs.org": null,
798
+ ...buildSnapshot({
799
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
800
+ leadGenState: { phase: "qualification", totalFound: 55, target: 100 },
801
+ onboardingState: { completed: true },
802
+ }),
1056
803
  }) as any;
1057
804
 
1058
805
  registerContextHook(api, "brc_test_key");
1059
806
  const result = await api._fire("before_prompt_build");
1060
807
 
1061
- // Should show live progress (55) not stale auto-resume snapshot (30)
1062
808
  expect(result.appendSystemContext).toContain("55");
1063
809
  expect(result.appendSystemContext).toContain("100");
1064
810
  });
1065
811
 
1066
- it("ignores stale auto-resume flag (>24h old)", async () => {
812
+ it("does not inject incomplete task for completed lead-gen state", async () => {
1067
813
  const { registerContextHook } = await import("../src/hooks/context");
1068
814
  const api = createMockApi();
1069
815
 
1070
- const staleTime = new Date(Date.now() - 25 * 60 * 60 * 1000).toISOString(); // 25h ago
1071
816
  globalThis.fetch = mockFetchResponses({
1072
817
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest\n<!-- /bereach-workspace -->" },
1073
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1074
- "/api/rate-limits": { multiplier: 1, limits: {} },
1075
- "/api/contacts/stats": { funnel: {} },
1076
- "/api/context": { entries: [] },
1077
- "/api/scheduled-messages": { messages: [], total: 0 },
1078
- "/api/me/linkedin/accounts": { accounts: [] },
1079
- "/api/agent-state/lead-gen": { data: { phase: "search", totalFound: 10, target: 50 } },
1080
- "/api/agent-state/outreach": { data: null },
1081
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1082
- "/api/agent-state/campaigns": { data: null },
1083
- "/api/agent-state/auto-resume": { data: { taskType: "lead-gen", savedAt: staleTime, phase: "search", found: 10, target: 50, stateKey: "lead-gen" } },
1084
- "registry.npmjs.org": null,
818
+ ...buildSnapshot({
819
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
820
+ leadGenState: { phase: "complete", totalFound: 50, target: 50 },
821
+ onboardingState: { completed: true },
822
+ }),
1085
823
  }) as any;
1086
824
 
1087
825
  registerContextHook(api, "brc_test_key");
1088
826
  const result = await api._fire("before_prompt_build");
1089
827
 
1090
- // Stale auto-resume (>24h) should be ignored by cache layer
1091
- expect(result.appendSystemContext).not.toContain("AUTO-RESUME");
828
+ expect(result.appendSystemContext).not.toContain("Incomplete Task");
1092
829
  });
1093
830
 
1094
831
  it("does not inject cron setup for one-shot scenarios", async () => {
1095
832
  const { registerContextHook } = await import("../src/hooks/context");
1096
833
  const api = createMockApi();
1097
834
 
1098
- const now = new Date();
1099
835
  globalThis.fetch = mockFetchResponses({
1100
836
  "/api/onboarding/soul": { soul: "<!-- bereach-workspace-v2 -->\nTest\n<!-- /bereach-workspace -->" },
1101
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1102
- "/api/rate-limits": { multiplier: 1, limits: {} },
1103
- "/api/contacts/stats": { funnel: {} },
1104
- "/api/context": { entries: [] },
1105
- "/api/scheduled-messages": { messages: [], total: 0 },
1106
- "/api/me/linkedin/accounts": { accounts: [] },
1107
- "/api/agent-state/lead-gen": { data: null },
1108
- "/api/agent-state/outreach": { data: null },
1109
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1110
- "/api/agent-state/campaigns": { data: null },
1111
- "registry.npmjs.org": null,
837
+ ...buildSnapshot({
838
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
839
+ onboardingState: { completed: true },
840
+ }),
1112
841
  }) as any;
1113
842
 
1114
843
  registerContextHook(api, "brc_test_key");
1115
844
  const result = await api._fire("before_prompt_build");
1116
845
 
1117
- // Execution modes are shown, but the directive says "Most requests are one-shot"
1118
846
  expect(result.appendSystemContext).toContain("Most requests are one-shot");
1119
847
  expect(result.appendSystemContext).toContain("Do not force campaigns on simple tasks");
1120
848
  });
@@ -1132,106 +860,46 @@ describe("hooks/cache - campaign state", () => {
1132
860
  cache.clearAll();
1133
861
  });
1134
862
 
1135
- it("fetches and validates campaign state schema", async () => {
1136
- globalThis.fetch = mockFetchResponses({
1137
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1138
- "/api/rate-limits": { multiplier: 1, limits: {} },
1139
- "/api/contacts/stats": { funnel: {} },
1140
- "/api/context": { entries: [] },
1141
- "/api/scheduled-messages": { messages: [], total: 0 },
1142
- "/api/me/linkedin/accounts": { accounts: [] },
1143
- "/api/agent-state/lead-gen": { data: null },
1144
- "/api/agent-state/outreach": { data: null },
1145
- "/api/chats/linkedin/unread": { unreadCount: 3 },
1146
- "/api/agent-state/campaigns": {
1147
- data: { schemaVersion: 1, campaigns: [{ id: "test", status: "active" }], updatedAt: "2026-01-01" },
1148
- },
1149
- }) as any;
863
+ it("fetches and returns campaign data from snapshot", async () => {
864
+ globalThis.fetch = mockFetchResponses(buildSnapshot({
865
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
866
+ unreadDMs: 3,
867
+ activeCampaigns: [{ id: "test", name: "Test", type: "lead-gen", status: "active" }],
868
+ })) as any;
1150
869
 
1151
- const data = await cache.fetchAll("brc_test");
1152
- expect(data.campaignState).not.toBeNull();
1153
- expect(data.campaignState!.campaigns.length).toBe(1);
870
+ const data = await cache.fetchSnapshot("brc_test");
871
+ expect(data.activeCampaigns.length).toBe(1);
872
+ expect(data.activeCampaigns[0].id).toBe("test");
1154
873
  expect(data.unreadDMs).toBe(3);
1155
874
  });
1156
875
 
1157
- it("rejects invalid campaign state schema version", async () => {
1158
- globalThis.fetch = mockFetchResponses({
1159
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1160
- "/api/rate-limits": { multiplier: 1, limits: {} },
1161
- "/api/contacts/stats": { funnel: {} },
1162
- "/api/context": { entries: [] },
1163
- "/api/scheduled-messages": { messages: [], total: 0 },
1164
- "/api/me/linkedin/accounts": { accounts: [] },
1165
- "/api/agent-state/lead-gen": { data: null },
1166
- "/api/agent-state/outreach": { data: null },
1167
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1168
- "/api/agent-state/campaigns": {
1169
- data: { schemaVersion: 99, campaigns: [], updatedAt: "2026-01-01" },
1170
- },
1171
- }) as any;
876
+ it("returns empty campaigns when none provided in snapshot", async () => {
877
+ globalThis.fetch = mockFetchResponses(buildSnapshot({
878
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
879
+ })) as any;
1172
880
 
1173
- const data = await cache.fetchAll("brc_test");
1174
- // Invalid schema triggers auto-repair → returns a clean state instead of null
1175
- expect(data.campaignState).toEqual({
1176
- schemaVersion: 1,
1177
- campaigns: [],
1178
- updatedAt: expect.any(String),
1179
- });
881
+ const data = await cache.fetchSnapshot("brc_test");
882
+ expect(data.activeCampaigns).toEqual([]);
1180
883
  });
1181
884
 
1182
- it("checks both credits AND limits for cache freshness", async () => {
1183
- const mockFetch = mockFetchResponses({
1184
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1185
- "/api/rate-limits": { multiplier: 1, limits: {} },
1186
- "/api/contacts/stats": { funnel: {} },
1187
- "/api/context": { entries: [] },
1188
- "/api/scheduled-messages": { messages: [], total: 0 },
1189
- "/api/me/linkedin/accounts": { accounts: [] },
1190
- "/api/agent-state/lead-gen": { data: null },
1191
- "/api/agent-state/outreach": { data: null },
1192
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1193
- "/api/agent-state/campaigns": { data: null },
1194
- });
885
+ it("invalidating credits triggers full refetch", async () => {
886
+ const mockFetch = mockFetchResponses(buildSnapshot({
887
+ credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 },
888
+ limits: { multiplier: 1, limits: {} },
889
+ }));
1195
890
  globalThis.fetch = mockFetch as any;
1196
891
 
1197
892
  await cache.getOrFetch("brc_test");
1198
893
  const callsAfterFirst = mockFetch.mock.calls.length;
1199
894
 
1200
- // Invalidate limits only should trigger full refetch
1201
- cache.invalidate("limits");
895
+ // Invalidate creditscredits is the cache sentinel, triggers refetch
896
+ cache.invalidate("credits");
1202
897
  await cache.getOrFetch("brc_test");
1203
898
  expect(mockFetch.mock.calls.length).toBeGreaterThan(callsAfterFirst);
1204
899
  });
1205
900
  });
1206
901
 
1207
- // ---------------------------------------------------------------------------
1208
- // Context Compat (backward compatibility)
1209
- // ---------------------------------------------------------------------------
1210
-
1211
- describe("hooks/context-compat", () => {
1212
- it("injectSoulTemplate works with empty existing", async () => {
1213
- const { injectSoulTemplate } = await import("../src/hooks/context-compat");
1214
- const result = injectSoulTemplate("", "template content");
1215
- expect(result).toBe("template content");
1216
- });
1217
-
1218
- it("injectSoulTemplate appends when no markers", async () => {
1219
- const { injectSoulTemplate } = await import("../src/hooks/context-compat");
1220
- const result = injectSoulTemplate("existing content", "new template");
1221
- expect(result).toContain("existing content");
1222
- expect(result).toContain("new template");
1223
- });
1224
-
1225
- it("injectSoulTemplate replaces between markers", async () => {
1226
- const { injectSoulTemplate } = await import("../src/hooks/context-compat");
1227
- const existing = "before <!-- bereach-workspace-v1 -->\nold\n<!-- /bereach-workspace --> after";
1228
- const result = injectSoulTemplate(existing, "new template");
1229
- expect(result).toContain("before ");
1230
- expect(result).toContain("new template");
1231
- expect(result).toContain(" after");
1232
- expect(result).not.toContain("old");
1233
- });
1234
- });
902
+ // (context-compat module was removed — tests deleted)
1235
903
 
1236
904
  // ---------------------------------------------------------------------------
1237
905
  // TEST-5: checkBusinessHours and applyUserIntervalOverrides
@@ -1294,41 +962,46 @@ describe("hooks/context - checkBusinessHours", () => {
1294
962
  });
1295
963
  });
1296
964
 
1297
- describe("hooks/context - applyUserIntervalOverrides", () => {
965
+ describe("hooks/context - interval overrides via rankCampaigns", () => {
1298
966
  it("overrides campaign check interval from context entries", async () => {
1299
- const { _applyUserIntervalOverrides } = await import("../src/hooks/context");
967
+ const { _rankCampaigns } = await import("../src/hooks/context");
968
+ const now = Date.now();
1300
969
  const campaigns = [
1301
- { id: "c1", type: "lead-magnet" as const, checkIntervalMinutes: 60, name: "test", status: "active" as const, priority: "medium" as const, lastCheckAt: null, createdAt: "2026-01-01", config: {}, progress: {}, stats: {}, lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: null },
1302
- { id: "c2", type: "lead-gen" as const, checkIntervalMinutes: 120, name: "test2", status: "active" as const, priority: "high" as const, lastCheckAt: null, createdAt: "2026-01-01", config: {}, progress: {}, stats: {}, lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: null },
970
+ { id: "c1", type: "lead-magnet", name: "test", status: "active" },
971
+ { id: "c2", type: "lead-gen", name: "test2", status: "active" },
1303
972
  ];
973
+ const checks = {
974
+ c1: new Date(now - 20 * 60_000).toISOString(),
975
+ c2: new Date(now - 40 * 60_000).toISOString(),
976
+ };
1304
977
  const contexts = [
1305
978
  { type: "check_interval_lead_magnet", content: "15" },
1306
979
  { type: "check_interval_lead_gen", content: "30" },
1307
980
  ];
1308
- const result = _applyUserIntervalOverrides(campaigns, contexts);
1309
- expect(result[0].checkIntervalMinutes).toBe(15);
1310
- expect(result[1].checkIntervalMinutes).toBe(30);
981
+ const result = _rankCampaigns(campaigns, checks, contexts);
982
+ expect(result.find((r) => r.campaign.id === "c1")!.interval).toBe(15);
983
+ expect(result.find((r) => r.campaign.id === "c2")!.interval).toBe(30);
1311
984
  });
1312
985
 
1313
- it("does not override when context is missing", async () => {
1314
- const { _applyUserIntervalOverrides } = await import("../src/hooks/context");
986
+ it("uses default interval when context is missing", async () => {
987
+ const { _rankCampaigns } = await import("../src/hooks/context");
1315
988
  const campaigns = [
1316
- { id: "c1", type: "lead-magnet" as const, checkIntervalMinutes: 60, name: "test", status: "active" as const, priority: "medium" as const, lastCheckAt: null, createdAt: "2026-01-01", config: {}, progress: {}, stats: {}, lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: null },
989
+ { id: "c1", type: "lead-magnet", name: "test", status: "active" },
1317
990
  ];
1318
- const result = _applyUserIntervalOverrides(campaigns, []);
1319
- expect(result[0].checkIntervalMinutes).toBe(60);
991
+ const result = _rankCampaigns(campaigns, {}, []);
992
+ expect(result[0].interval).toBe(60);
1320
993
  });
1321
994
 
1322
- it("ignores invalid override values", async () => {
1323
- const { _applyUserIntervalOverrides } = await import("../src/hooks/context");
995
+ it("ignores invalid override values and falls back to default", async () => {
996
+ const { _rankCampaigns } = await import("../src/hooks/context");
1324
997
  const campaigns = [
1325
- { id: "c1", type: "outreach" as const, checkIntervalMinutes: 60, name: "test", status: "active" as const, priority: "medium" as const, lastCheckAt: null, createdAt: "2026-01-01", config: {}, progress: {}, stats: {}, lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: null },
998
+ { id: "c1", type: "outreach", name: "test", status: "active" },
1326
999
  ];
1327
1000
  const contexts = [
1328
1001
  { type: "outreach_cadence", content: "not-a-number" },
1329
1002
  ];
1330
- const result = _applyUserIntervalOverrides(campaigns, contexts);
1331
- expect(result[0].checkIntervalMinutes).toBe(60);
1003
+ const result = _rankCampaigns(campaigns, {}, contexts);
1004
+ expect(result[0].interval).toBe(60);
1332
1005
  });
1333
1006
  });
1334
1007
 
@@ -1337,11 +1010,16 @@ describe("hooks/context - rankCampaigns", () => {
1337
1010
  const { _rankCampaigns } = await import("../src/hooks/context");
1338
1011
  const now = Date.now();
1339
1012
  const campaigns = [
1340
- { id: "ok", type: "lead-gen" as const, status: "active" as const, priority: "high" as const, checkIntervalMinutes: 60, lastCheckAt: new Date(now - 10 * 60_000).toISOString(), name: "OK", createdAt: "2026-01-01", config: {}, progress: {}, stats: {}, lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: null },
1341
- { id: "overdue", type: "lead-magnet" as const, status: "active" as const, priority: "low" as const, checkIntervalMinutes: 30, lastCheckAt: new Date(now - 120 * 60_000).toISOString(), name: "Overdue", createdAt: "2026-01-01", config: {}, progress: {}, stats: {}, lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: null },
1342
- { id: "due", type: "outreach" as const, status: "active" as const, priority: "medium" as const, checkIntervalMinutes: 60, lastCheckAt: new Date(now - 65 * 60_000).toISOString(), name: "Due", createdAt: "2026-01-01", config: {}, progress: {}, stats: {}, lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: null },
1013
+ { id: "ok", type: "lead-gen", name: "OK", status: "active" },
1014
+ { id: "overdue", type: "lead-magnet", name: "Overdue", status: "active" },
1015
+ { id: "due", type: "outreach", name: "Due", status: "active" },
1343
1016
  ];
1344
- const ranked = _rankCampaigns(campaigns);
1017
+ const checks = {
1018
+ ok: new Date(now - 10 * 60_000).toISOString(),
1019
+ overdue: new Date(now - 120 * 60_000).toISOString(),
1020
+ due: new Date(now - 65 * 60_000).toISOString(),
1021
+ };
1022
+ const ranked = _rankCampaigns(campaigns, checks, []);
1345
1023
  expect(ranked[0].campaign.id).toBe("overdue");
1346
1024
  expect(ranked[0].status).toBe("OVERDUE");
1347
1025
  expect(ranked[1].campaign.id).toBe("due");
@@ -1350,15 +1028,14 @@ describe("hooks/context - rankCampaigns", () => {
1350
1028
  expect(ranked[2].status).toBe("OK");
1351
1029
  });
1352
1030
 
1353
- it("filters out non-active campaigns", async () => {
1031
+ it("treats all campaigns as rankable (active filtering is upstream)", async () => {
1354
1032
  const { _rankCampaigns } = await import("../src/hooks/context");
1355
1033
  const campaigns = [
1356
- { id: "active", type: "lead-gen" as const, status: "active" as const, priority: "medium" as const, checkIntervalMinutes: 60, lastCheckAt: null, name: "Active", createdAt: "2026-01-01", config: {}, progress: {}, stats: {}, lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: null },
1357
- { id: "paused", type: "outreach" as const, status: "paused" as const, priority: "high" as const, checkIntervalMinutes: 30, lastCheckAt: null, name: "Paused", createdAt: "2026-01-01", config: {}, progress: {}, stats: {}, lockedUntil: null, errorMessage: null, consecutiveErrors: 0, lastSuccessAt: null },
1034
+ { id: "active", type: "lead-gen", name: "Active", status: "active" },
1035
+ { id: "paused", type: "outreach", name: "Paused", status: "paused" },
1358
1036
  ];
1359
- const ranked = _rankCampaigns(campaigns);
1360
- expect(ranked.length).toBe(1);
1361
- expect(ranked[0].campaign.id).toBe("active");
1037
+ const ranked = _rankCampaigns(campaigns, {}, []);
1038
+ expect(ranked.length).toBe(2);
1362
1039
  });
1363
1040
  });
1364
1041
 
@@ -1392,11 +1069,9 @@ describe("hooks/enforcement - actionMap coverage", () => {
1392
1069
  });
1393
1070
  });
1394
1071
 
1395
- // ---------------------------------------------------------------------------
1396
- // TEST-4: Lifecycle — engagement persistence and auto-promotion
1397
- // ---------------------------------------------------------------------------
1072
+ // (engagementSignals, auto-resume, and auto-pause features were removed from lifecycle hook — tests deleted)
1398
1073
 
1399
- describe("hooks/lifecycle - engagement", () => {
1074
+ describe("hooks/lifecycle - session meta", () => {
1400
1075
  const originalFetch = globalThis.fetch;
1401
1076
  let state: SessionState;
1402
1077
 
@@ -1410,350 +1085,65 @@ describe("hooks/lifecycle - engagement", () => {
1410
1085
  cache.clearAll();
1411
1086
  });
1412
1087
 
1413
- it("persists engagement signals and merges with existing data", async () => {
1088
+ it("does NOT call auto-resume or campaigns endpoints (simplified lifecycle)", async () => {
1414
1089
  const { registerLifecycleHook } = await import("../src/hooks/lifecycle");
1415
1090
  const api = createMockApi();
1416
1091
 
1417
- const fetchCalls: { url: string; method: string; body: any }[] = [];
1092
+ const fetchCalls: { url: string; method: string }[] = [];
1418
1093
  globalThis.fetch = vi.fn(async (url: string, opts?: any) => {
1419
- const method = opts?.method ?? "GET";
1420
- fetchCalls.push({ url, method, body: opts?.body ? JSON.parse(opts.body) : null });
1421
-
1422
- if (url.includes("engagement-tracking") && method === "GET") {
1423
- return {
1424
- ok: true,
1425
- json: async () => ({ data: { "https://linkedin.com/in/alice": 2 } }),
1426
- headers: new Headers(),
1427
- };
1428
- }
1094
+ fetchCalls.push({ url, method: opts?.method ?? "GET" });
1429
1095
  return { ok: true, json: async () => ({ data: {} }), headers: new Headers() };
1430
1096
  }) as any;
1431
1097
 
1432
- state.toolCallCount = 5;
1433
- state.engagementSignals.set("https://linkedin.com/in/alice", 3);
1434
- state.engagementSignals.set("https://linkedin.com/in/bob", 1);
1435
-
1436
- registerLifecycleHook(api, "brc_test_key", { engagementThreshold: 100 }, state);
1437
- await api._fire("agent_end");
1438
-
1439
- const putCall = fetchCalls.find((c) => c.url.includes("engagement-tracking") && c.method === "PUT");
1440
- expect(putCall).toBeDefined();
1441
- expect(putCall!.body.data["https://linkedin.com/in/alice"]).toBe(5);
1442
- expect(putCall!.body.data["https://linkedin.com/in/bob"]).toBe(1);
1443
- });
1444
-
1445
- it("auto-promotes contacts exceeding engagement threshold", async () => {
1446
- const { registerLifecycleHook } = await import("../src/hooks/lifecycle");
1447
- const api = createMockApi();
1448
-
1449
- const fetchCalls: { url: string; method: string; body: any }[] = [];
1450
- globalThis.fetch = vi.fn(async (url: string, opts?: any) => {
1451
- const method = opts?.method ?? "GET";
1452
- fetchCalls.push({ url, method, body: opts?.body ? JSON.parse(opts.body) : null });
1453
-
1454
- if (url.includes("engagement-tracking") && method === "GET") {
1455
- return { ok: true, json: async () => ({ data: {} }), headers: new Headers() };
1456
- }
1457
- if (url.includes("/api/contacts/by-url")) {
1458
- return {
1459
- ok: true,
1460
- json: async () => ({ contact: { id: "c-123", lifecycleStage: "contact" } }),
1461
- headers: new Headers(),
1462
- };
1463
- }
1464
- return { ok: true, json: async () => ({ data: {} }), headers: new Headers() };
1465
- }) as any;
1466
-
1467
- state.toolCallCount = 3;
1468
- state.engagementSignals.set("https://linkedin.com/in/alice", 10);
1469
-
1470
- registerLifecycleHook(api, "brc_test_key", { engagementThreshold: 5 }, state);
1098
+ state.toolCallCount = 10;
1099
+ registerLifecycleHook(api, "brc_test_key", {}, state);
1471
1100
  await api._fire("agent_end");
1472
1101
 
1473
- const patchCall = fetchCalls.find((c) => c.url.includes("/api/contacts/c-123") && c.method === "PATCH");
1474
- expect(patchCall).toBeDefined();
1475
- expect(patchCall!.body.lifecycleStage).toBe("lead");
1102
+ const autoResumeCall = fetchCalls.find((c) => c.url.includes("auto-resume"));
1103
+ expect(autoResumeCall).toBeUndefined();
1476
1104
 
1477
- const activityCall = fetchCalls.find((c) => c.url.includes("/api/contacts/c-123/activities") && c.method === "POST");
1478
- expect(activityCall).toBeDefined();
1479
- expect(activityCall!.body.activities[0].type).toBe("engagement_observed");
1105
+ const campaignsCall = fetchCalls.find((c) => c.url.includes("campaigns"));
1106
+ expect(campaignsCall).toBeUndefined();
1480
1107
  });
1108
+ });
1481
1109
 
1482
- it("does not promote contacts already past 'contact' stage", async () => {
1483
- const { registerLifecycleHook } = await import("../src/hooks/lifecycle");
1484
- const api = createMockApi();
1485
-
1486
- const fetchCalls: { url: string; method: string; body: any }[] = [];
1487
- globalThis.fetch = vi.fn(async (url: string, opts?: any) => {
1488
- const method = opts?.method ?? "GET";
1489
- fetchCalls.push({ url, method, body: opts?.body ? JSON.parse(opts.body) : null });
1490
-
1491
- if (url.includes("engagement-tracking") && method === "GET") {
1492
- return { ok: true, json: async () => ({ data: {} }), headers: new Headers() };
1493
- }
1494
- if (url.includes("/api/contacts/by-url")) {
1495
- return {
1496
- ok: true,
1497
- json: async () => ({ contact: { id: "c-456", lifecycleStage: "lead" } }),
1498
- headers: new Headers(),
1499
- };
1500
- }
1501
- return { ok: true, json: async () => ({ data: {} }), headers: new Headers() };
1502
- }) as any;
1503
-
1504
- state.toolCallCount = 3;
1505
- state.engagementSignals.set("https://linkedin.com/in/already-lead", 10);
1506
-
1507
- registerLifecycleHook(api, "brc_test_key", { engagementThreshold: 5 }, state);
1508
- await api._fire("agent_end");
1110
+ // ---------------------------------------------------------------------------
1111
+ // classifyUpgrade
1112
+ // ---------------------------------------------------------------------------
1509
1113
 
1510
- const patchCall = fetchCalls.find((c) => c.url.includes("/api/contacts/c-456") && c.method === "PATCH");
1511
- expect(patchCall).toBeUndefined();
1114
+ describe("classifyUpgrade", () => {
1115
+ it("returns 'none' when versions are equal", () => {
1116
+ expect(classifyUpgrade("1.4.6", "1.4.6")).toBe("none");
1512
1117
  });
1513
1118
 
1514
- it("sets auto-resume flag when lead-gen state is incomplete", async () => {
1515
- const { registerLifecycleHook } = await import("../src/hooks/lifecycle");
1516
- const api = createMockApi();
1517
-
1518
- const fetchCalls: { url: string; method: string; body: any }[] = [];
1519
- const baseMock = mockFetchResponses({
1520
- "/api/agent-state/session-meta": { data: {} },
1521
- "/api/agent-state/lead-gen": { data: { phase: "qualification", totalFound: 15, target: 100 } },
1522
- "/api/agent-state/campaigns": { data: { schemaVersion: 1, campaigns: [], updatedAt: "" } },
1523
- "/api/agent-state/auto-resume": { data: {} },
1524
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1525
- "/api/rate-limits": { multiplier: 1, limits: {} },
1526
- "/api/contacts/stats": { funnel: {} },
1527
- "/api/context": { entries: [] },
1528
- "/api/scheduled-messages": { messages: [], total: 0 },
1529
- "/api/me/linkedin/accounts": { accounts: [] },
1530
- "/api/agent-state/outreach": { data: null },
1531
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1532
- });
1533
-
1534
- globalThis.fetch = vi.fn(async (url: string, opts?: any) => {
1535
- const method = opts?.method ?? "GET";
1536
- let body = null;
1537
- try { body = opts?.body ? JSON.parse(opts.body) : null; } catch {}
1538
- fetchCalls.push({ url, method, body });
1539
- return baseMock(url, opts);
1540
- }) as any;
1541
-
1542
- state.toolCallCount = 20;
1543
- state.visitCount = 15;
1544
- registerLifecycleHook(api, "brc_test_key", {}, state);
1545
- await api._fire("agent_end");
1546
-
1547
- const putCall = fetchCalls.find((c) => c.url.includes("auto-resume") && c.method === "PUT");
1548
- expect(putCall).toBeDefined();
1549
- expect(putCall!.body.data.taskType).toBe("lead-gen");
1550
- expect(putCall!.body.data.phase).toBe("qualification");
1551
- expect(putCall!.body.data.found).toBe(15);
1552
- expect(putCall!.body.data.target).toBe(100);
1553
- expect(putCall!.body.data.stateKey).toBe("lead-gen");
1119
+ it("returns 'patch' for patch bump", () => {
1120
+ expect(classifyUpgrade("1.4.6", "1.4.7")).toBe("patch");
1554
1121
  });
1555
1122
 
1556
- it("does NOT set auto-resume when lead-gen state is complete", async () => {
1557
- const { registerLifecycleHook } = await import("../src/hooks/lifecycle");
1558
- const api = createMockApi();
1559
-
1560
- const fetchCalls: { url: string; method: string; body: any }[] = [];
1561
- const baseMock = mockFetchResponses({
1562
- "/api/agent-state/session-meta": { data: {} },
1563
- "/api/agent-state/lead-gen": { data: { phase: "complete", totalFound: 100, target: 100 } },
1564
- "/api/agent-state/campaigns": { data: { schemaVersion: 1, campaigns: [], updatedAt: "" } },
1565
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1566
- "/api/rate-limits": { multiplier: 1, limits: {} },
1567
- "/api/contacts/stats": { funnel: {} },
1568
- "/api/context": { entries: [] },
1569
- "/api/scheduled-messages": { messages: [], total: 0 },
1570
- "/api/me/linkedin/accounts": { accounts: [] },
1571
- "/api/agent-state/outreach": { data: null },
1572
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1573
- });
1574
-
1575
- globalThis.fetch = vi.fn(async (url: string, opts?: any) => {
1576
- const method = opts?.method ?? "GET";
1577
- let body = null;
1578
- try { body = opts?.body ? JSON.parse(opts.body) : null; } catch {}
1579
- fetchCalls.push({ url, method, body });
1580
- return baseMock(url, opts);
1581
- }) as any;
1582
-
1583
- state.toolCallCount = 20;
1584
- registerLifecycleHook(api, "brc_test_key", {}, state);
1585
- await api._fire("agent_end");
1586
-
1587
- const putCall = fetchCalls.find((c) => c.url.includes("auto-resume") && c.method === "PUT");
1588
- expect(putCall).toBeUndefined();
1123
+ it("returns 'minor' for minor bump", () => {
1124
+ expect(classifyUpgrade("1.4.6", "1.5.0")).toBe("minor");
1589
1125
  });
1590
1126
 
1591
- it("does NOT set auto-resume when target is met even with active phase", async () => {
1592
- const { registerLifecycleHook } = await import("../src/hooks/lifecycle");
1593
- const api = createMockApi();
1594
-
1595
- const fetchCalls: { url: string; method: string; body: any }[] = [];
1596
- const baseMock = mockFetchResponses({
1597
- "/api/agent-state/session-meta": { data: {} },
1598
- "/api/agent-state/lead-gen": { data: { phase: "qualification", totalFound: 100, target: 50 } },
1599
- "/api/agent-state/campaigns": { data: { schemaVersion: 1, campaigns: [], updatedAt: "" } },
1600
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1601
- "/api/rate-limits": { multiplier: 1, limits: {} },
1602
- "/api/contacts/stats": { funnel: {} },
1603
- "/api/context": { entries: [] },
1604
- "/api/scheduled-messages": { messages: [], total: 0 },
1605
- "/api/me/linkedin/accounts": { accounts: [] },
1606
- "/api/agent-state/outreach": { data: null },
1607
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1608
- });
1609
-
1610
- globalThis.fetch = vi.fn(async (url: string, opts?: any) => {
1611
- const method = opts?.method ?? "GET";
1612
- let body = null;
1613
- try { body = opts?.body ? JSON.parse(opts.body) : null; } catch {}
1614
- fetchCalls.push({ url, method, body });
1615
- return baseMock(url, opts);
1616
- }) as any;
1617
-
1618
- state.toolCallCount = 5;
1619
- registerLifecycleHook(api, "brc_test_key", {}, state);
1620
- await api._fire("agent_end");
1621
-
1622
- const putCall = fetchCalls.find((c) => c.url.includes("auto-resume") && c.method === "PUT");
1623
- expect(putCall).toBeUndefined();
1127
+ it("returns 'major' for major bump", () => {
1128
+ expect(classifyUpgrade("1.4.6", "2.0.0")).toBe("major");
1624
1129
  });
1625
1130
 
1626
- it("sets auto-resume when state has unmet target but no phase", async () => {
1627
- const { registerLifecycleHook } = await import("../src/hooks/lifecycle");
1628
- const api = createMockApi();
1629
-
1630
- const fetchCalls: { url: string; method: string; body: any }[] = [];
1631
- const baseMock = mockFetchResponses({
1632
- "/api/agent-state/session-meta": { data: {} },
1633
- "/api/agent-state/lead-gen": { data: { totalFound: 30, target: 100 } },
1634
- "/api/agent-state/campaigns": { data: { schemaVersion: 1, campaigns: [], updatedAt: "" } },
1635
- "/api/agent-state/auto-resume": { data: {} },
1636
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1637
- "/api/rate-limits": { multiplier: 1, limits: {} },
1638
- "/api/contacts/stats": { funnel: {} },
1639
- "/api/context": { entries: [] },
1640
- "/api/scheduled-messages": { messages: [], total: 0 },
1641
- "/api/me/linkedin/accounts": { accounts: [] },
1642
- "/api/agent-state/outreach": { data: null },
1643
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1644
- });
1645
-
1646
- globalThis.fetch = vi.fn(async (url: string, opts?: any) => {
1647
- const method = opts?.method ?? "GET";
1648
- let body = null;
1649
- try { body = opts?.body ? JSON.parse(opts.body) : null; } catch {}
1650
- fetchCalls.push({ url, method, body });
1651
- return baseMock(url, opts);
1652
- }) as any;
1653
-
1654
- state.toolCallCount = 10;
1655
- registerLifecycleHook(api, "brc_test_key", {}, state);
1656
- await api._fire("agent_end");
1657
-
1658
- const putCall = fetchCalls.find((c) => c.url.includes("auto-resume") && c.method === "PUT");
1659
- expect(putCall).toBeDefined();
1660
- expect(putCall!.body.data.found).toBe(30);
1661
- expect(putCall!.body.data.target).toBe(100);
1131
+ it("strips prerelease tags before comparing", () => {
1132
+ expect(classifyUpgrade("1.4.6-beta.1", "1.4.7-beta.2")).toBe("patch");
1133
+ expect(classifyUpgrade("1.4.6-beta.1", "1.5.0-beta.1")).toBe("minor");
1134
+ expect(classifyUpgrade("1.4.6-beta.1", "2.0.0")).toBe("major");
1662
1135
  });
1663
1136
 
1664
- it("does NOT set auto-resume when lead-gen state is null", async () => {
1665
- const { registerLifecycleHook } = await import("../src/hooks/lifecycle");
1666
- const api = createMockApi();
1667
-
1668
- const fetchCalls: { url: string; method: string; body: any }[] = [];
1669
- const baseMock = mockFetchResponses({
1670
- "/api/agent-state/session-meta": { data: {} },
1671
- "/api/agent-state/lead-gen": { data: null },
1672
- "/api/agent-state/campaigns": { data: { schemaVersion: 1, campaigns: [], updatedAt: "" } },
1673
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1674
- "/api/rate-limits": { multiplier: 1, limits: {} },
1675
- "/api/contacts/stats": { funnel: {} },
1676
- "/api/context": { entries: [] },
1677
- "/api/scheduled-messages": { messages: [], total: 0 },
1678
- "/api/me/linkedin/accounts": { accounts: [] },
1679
- "/api/agent-state/outreach": { data: null },
1680
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1681
- });
1682
-
1683
- globalThis.fetch = vi.fn(async (url: string, opts?: any) => {
1684
- const method = opts?.method ?? "GET";
1685
- let body = null;
1686
- try { body = opts?.body ? JSON.parse(opts.body) : null; } catch {}
1687
- fetchCalls.push({ url, method, body });
1688
- return baseMock(url, opts);
1689
- }) as any;
1690
-
1691
- state.toolCallCount = 5;
1692
- registerLifecycleHook(api, "brc_test_key", {}, state);
1693
- await api._fire("agent_end");
1694
-
1695
- const putCall = fetchCalls.find((c) => c.url.includes("auto-resume") && c.method === "PUT");
1696
- expect(putCall).toBeUndefined();
1137
+ it("returns 'none' when latest is older", () => {
1138
+ expect(classifyUpgrade("1.5.0", "1.4.9")).toBe("none");
1139
+ expect(classifyUpgrade("2.0.0", "1.9.9")).toBe("none");
1697
1140
  });
1698
1141
 
1699
- it("auto-pauses campaigns with consecutive errors >= threshold", async () => {
1700
- const { registerLifecycleHook } = await import("../src/hooks/lifecycle");
1701
- const api = createMockApi();
1702
-
1703
- const campaignData = {
1704
- schemaVersion: 1,
1705
- campaigns: [{
1706
- id: "failing-camp",
1707
- type: "lead-gen",
1708
- name: "Failing Campaign",
1709
- status: "active",
1710
- priority: "medium",
1711
- checkIntervalMinutes: 60,
1712
- lastCheckAt: null,
1713
- createdAt: "2026-01-01",
1714
- config: {},
1715
- progress: {},
1716
- stats: {},
1717
- lockedUntil: null,
1718
- errorMessage: null,
1719
- consecutiveErrors: 5,
1720
- lastSuccessAt: null,
1721
- }],
1722
- updatedAt: "2026-01-01",
1723
- };
1724
-
1725
- const fetchCalls: { url: string; method: string; body: any }[] = [];
1726
- const baseMock = mockFetchResponses({
1727
- "/api/me/credits": { credits: { current: 0, limit: 100, remaining: 100, isUnlimited: false, percentage: 0 } },
1728
- "/api/rate-limits": { multiplier: 1, limits: {} },
1729
- "/api/contacts/stats": { funnel: {} },
1730
- "/api/context": { entries: [] },
1731
- "/api/scheduled-messages": { messages: [], total: 0 },
1732
- "/api/me/linkedin/accounts": { accounts: [] },
1733
- "/api/agent-state/lead-gen": { data: null },
1734
- "/api/agent-state/outreach": { data: null },
1735
- "/api/chats/linkedin/unread": { unreadCount: 0 },
1736
- "/api/agent-state/campaigns": { data: campaignData },
1737
- "/api/agent-state/engagement-tracking": { data: {} },
1738
- "/api/agent-state/session-meta": { data: {} },
1739
- });
1740
-
1741
- globalThis.fetch = vi.fn(async (url: string, opts?: any) => {
1742
- const method = opts?.method ?? "GET";
1743
- let body = null;
1744
- try { body = opts?.body ? JSON.parse(opts.body) : null; } catch {}
1745
- fetchCalls.push({ url, method, body });
1746
- return baseMock(url, opts);
1747
- }) as any;
1748
-
1749
- state.toolCallCount = 1;
1750
- registerLifecycleHook(api, "brc_test_key", {}, state);
1751
- await api._fire("agent_end");
1142
+ it("returns 'major' even when minor/patch are lower", () => {
1143
+ expect(classifyUpgrade("1.9.9", "2.0.0")).toBe("major");
1144
+ });
1752
1145
 
1753
- const putCall = fetchCalls.find((c) => c.url.includes("/api/agent-state/campaigns") && c.method === "PUT");
1754
- expect(putCall).toBeDefined();
1755
- const savedCampaign = putCall!.body.data.campaigns[0];
1756
- expect(savedCampaign.status).toBe("error");
1757
- expect(savedCampaign.errorMessage).toContain("Auto-paused");
1146
+ it("returns 'minor' even when patch is lower", () => {
1147
+ expect(classifyUpgrade("1.4.9", "1.5.0")).toBe("minor");
1758
1148
  });
1759
1149
  });