@besales/mcp 0.48.0 → 1.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (587) hide show
  1. package/README.md +109 -164
  2. package/README.onprem.ru.md +35 -0
  3. package/bin/besales-mcp-http.js +9 -0
  4. package/bin/besales-onprem.mjs +19 -0
  5. package/dist/auth/connection-store.d.ts +3 -1
  6. package/dist/auth/connection-store.js +9 -3
  7. package/dist/auth/connection-store.js.map +1 -1
  8. package/dist/auth/oauth-client.d.ts +20 -27
  9. package/dist/auth/oauth-client.js +31 -23
  10. package/dist/auth/oauth-client.js.map +1 -1
  11. package/dist/auth/session-workspace.d.ts +1 -0
  12. package/dist/auth/session-workspace.js +10 -1
  13. package/dist/auth/session-workspace.js.map +1 -1
  14. package/dist/auth/token-storage.js +4 -1
  15. package/dist/auth/token-storage.js.map +1 -1
  16. package/dist/cli.d.ts +1 -0
  17. package/dist/cli.js +80 -19
  18. package/dist/cli.js.map +1 -1
  19. package/dist/constants/crm-catalog.d.ts +2 -0
  20. package/dist/constants/crm-catalog.js +3 -0
  21. package/dist/constants/crm-catalog.js.map +1 -0
  22. package/dist/http/api-client.d.ts +52 -7
  23. package/dist/http/api-client.js +131 -66
  24. package/dist/http/api-client.js.map +1 -1
  25. package/dist/http/feedback-document-error.d.ts +26 -0
  26. package/dist/http/feedback-document-error.js +22 -0
  27. package/dist/http/feedback-document-error.js.map +1 -0
  28. package/dist/http-server.d.ts +15 -0
  29. package/dist/http-server.js +378 -0
  30. package/dist/http-server.js.map +1 -0
  31. package/dist/instructions/server-instructions.d.ts +1 -1
  32. package/dist/instructions/server-instructions.js +6 -3
  33. package/dist/instructions/server-instructions.js.map +1 -1
  34. package/dist/network/constants.d.ts +25 -0
  35. package/dist/network/constants.js +26 -0
  36. package/dist/network/constants.js.map +1 -0
  37. package/dist/network/failed-verifications.d.ts +10 -0
  38. package/dist/network/failed-verifications.js +37 -0
  39. package/dist/network/failed-verifications.js.map +1 -0
  40. package/dist/network/http-test-fixture.d.ts +3 -0
  41. package/dist/network/http-test-fixture.js +86 -0
  42. package/dist/network/http-test-fixture.js.map +1 -0
  43. package/dist/network/known-keys.d.ts +10 -0
  44. package/dist/network/known-keys.js +38 -0
  45. package/dist/network/known-keys.js.map +1 -0
  46. package/dist/network/memory-credentials.d.ts +11 -0
  47. package/dist/network/memory-credentials.js +24 -0
  48. package/dist/network/memory-credentials.js.map +1 -0
  49. package/dist/network/rate-limit.d.ts +23 -0
  50. package/dist/network/rate-limit.js +62 -0
  51. package/dist/network/rate-limit.js.map +1 -0
  52. package/dist/network/rejected-keys.d.ts +9 -0
  53. package/dist/network/rejected-keys.js +39 -0
  54. package/dist/network/rejected-keys.js.map +1 -0
  55. package/dist/network/request-work.d.ts +8 -0
  56. package/dist/network/request-work.js +20 -0
  57. package/dist/network/request-work.js.map +1 -0
  58. package/dist/network/successful-keys.d.ts +17 -0
  59. package/dist/network/successful-keys.js +47 -0
  60. package/dist/network/successful-keys.js.map +1 -0
  61. package/dist/resources/concepts/external-execution.md +3 -1
  62. package/dist/resources/concepts/feedback-sheets.md +21 -12
  63. package/dist/resources/concepts/icp.md +8 -1
  64. package/dist/resources/concepts/sandbox.md +15 -6
  65. package/dist/resources/concepts/triggers.md +8 -0
  66. package/dist/resources/concepts/workbook-classification.md +104 -50
  67. package/dist/resources/docs/agent-behavior.md +51 -382
  68. package/dist/resources/docs/campaigns.md +9 -16
  69. package/dist/resources/docs/crm-integration.md +39 -523
  70. package/dist/resources/docs/files-and-uploads.md +23 -286
  71. package/dist/resources/docs/follow-up.md +47 -12
  72. package/dist/resources/docs/knowledge-base.md +52 -521
  73. package/dist/resources/docs/pipeline-builder.md +26 -216
  74. package/dist/resources/docs/pipeline-settings-deep.md +27 -220
  75. package/dist/resources/docs/platforms.md +106 -519
  76. package/dist/resources/docs/prompt-anatomy.md +39 -285
  77. package/dist/resources/docs/routing.md +8 -16
  78. package/dist/resources/docs/trigger-actions.md +40 -24
  79. package/dist/resources/docs/variables.md +8 -12
  80. package/dist/resources/operator-edit.contract.d.ts +7 -0
  81. package/dist/resources/operator-edit.contract.js +8 -0
  82. package/dist/resources/operator-edit.contract.js.map +1 -0
  83. package/dist/resources/registry.js +20 -4
  84. package/dist/resources/registry.js.map +1 -1
  85. package/dist/resources/workflows/audit-dialogues.md +23 -12
  86. package/dist/resources/workflows/compare-models.md +6 -6
  87. package/dist/resources/workflows/connect-crm-from-scratch.md +15 -12
  88. package/dist/resources/workflows/connect-datasource-from-scratch.md +5 -4
  89. package/dist/resources/workflows/extract-from-document.md +8 -6
  90. package/dist/resources/workflows/operator-edit.md +15 -0
  91. package/dist/resources/workflows/platform-setup-from-scratch.md +59 -70
  92. package/dist/resources/workflows/production-readiness-check.md +25 -15
  93. package/dist/schemas/mcp-tools.json +9902 -4734
  94. package/dist/schemas/voice-actions-api.contract.json +248 -0
  95. package/dist/shared/constants/broadcast-reason.constants.d.ts +2 -0
  96. package/dist/shared/constants/broadcast-reason.constants.js +47 -0
  97. package/dist/shared/constants/broadcast-reason.constants.js.map +1 -0
  98. package/dist/shared/constants/crm-stage-pool.constants.d.ts +2 -0
  99. package/dist/shared/constants/crm-stage-pool.constants.js +3 -0
  100. package/dist/shared/constants/crm-stage-pool.constants.js.map +1 -0
  101. package/dist/shared/constants/followup-note.constants.d.ts +3 -0
  102. package/dist/shared/constants/followup-note.constants.js +4 -0
  103. package/dist/shared/constants/followup-note.constants.js.map +1 -0
  104. package/dist/shared/constants/followup-session.constants.d.ts +2 -0
  105. package/dist/shared/constants/followup-session.constants.js +3 -0
  106. package/dist/shared/constants/followup-session.constants.js.map +1 -0
  107. package/dist/shared/constants/funnel-analytics.constants.d.ts +2 -0
  108. package/dist/shared/constants/funnel-analytics.constants.js +3 -0
  109. package/dist/shared/constants/funnel-analytics.constants.js.map +1 -0
  110. package/dist/shared/constants/message-filter.constants.d.ts +7 -0
  111. package/dist/shared/constants/message-filter.constants.js +8 -0
  112. package/dist/shared/constants/message-filter.constants.js.map +1 -0
  113. package/dist/shared/utils/trigger-repeat-mapping.d.ts +72 -0
  114. package/dist/shared/utils/trigger-repeat-mapping.js +53 -0
  115. package/dist/shared/utils/trigger-repeat-mapping.js.map +1 -0
  116. package/dist/skills/besales-dialogue-audit/SKILL.md +31 -20
  117. package/dist/tasks/task-state-store.js +5 -0
  118. package/dist/tasks/task-state-store.js.map +1 -1
  119. package/dist/tools/annotations.js +4 -3
  120. package/dist/tools/annotations.js.map +1 -1
  121. package/dist/tools/definitions/agent-design.d.ts +78 -21
  122. package/dist/tools/definitions/agent-design.js +246 -90
  123. package/dist/tools/definitions/agent-design.js.map +1 -1
  124. package/dist/tools/definitions/agent-model-notice.d.ts +5 -0
  125. package/dist/tools/definitions/agent-model-notice.js +31 -0
  126. package/dist/tools/definitions/agent-model-notice.js.map +1 -0
  127. package/dist/tools/definitions/agent-models.d.ts +5 -0
  128. package/dist/tools/definitions/agent-models.js +26 -0
  129. package/dist/tools/definitions/agent-models.js.map +1 -0
  130. package/dist/tools/definitions/agent-settings.d.ts +85 -0
  131. package/dist/tools/definitions/agent-settings.js +187 -0
  132. package/dist/tools/definitions/agent-settings.js.map +1 -0
  133. package/dist/tools/definitions/ai-costs.d.ts +12 -0
  134. package/dist/tools/definitions/ai-costs.js +142 -0
  135. package/dist/tools/definitions/ai-costs.js.map +1 -0
  136. package/dist/tools/definitions/api-tool-request.d.ts +15 -0
  137. package/dist/tools/definitions/api-tool-request.js +2 -0
  138. package/dist/tools/definitions/api-tool-request.js.map +1 -0
  139. package/dist/tools/definitions/behavior-shipped-form.d.ts +182 -0
  140. package/dist/tools/definitions/behavior-shipped-form.js +185 -0
  141. package/dist/tools/definitions/behavior-shipped-form.js.map +1 -0
  142. package/dist/tools/definitions/broadcast-alerts.d.ts +6 -0
  143. package/dist/tools/definitions/broadcast-alerts.js +72 -0
  144. package/dist/tools/definitions/broadcast-alerts.js.map +1 -0
  145. package/dist/tools/definitions/broadcast-analytics.d.ts +102 -18
  146. package/dist/tools/definitions/broadcast-analytics.js +732 -431
  147. package/dist/tools/definitions/broadcast-analytics.js.map +1 -1
  148. package/dist/tools/definitions/broadcast-scheduler.d.ts +10 -13
  149. package/dist/tools/definitions/broadcast-scheduler.js +196 -154
  150. package/dist/tools/definitions/broadcast-scheduler.js.map +1 -1
  151. package/dist/tools/definitions/call-operator-task.schema.d.ts +11 -0
  152. package/dist/tools/definitions/call-operator-task.schema.js +30 -0
  153. package/dist/tools/definitions/call-operator-task.schema.js.map +1 -0
  154. package/dist/tools/definitions/contacts.d.ts +3 -0
  155. package/dist/tools/definitions/contacts.js +57 -31
  156. package/dist/tools/definitions/contacts.js.map +1 -1
  157. package/dist/tools/definitions/crm-platform.d.ts +28 -41
  158. package/dist/tools/definitions/crm-platform.js +235 -368
  159. package/dist/tools/definitions/crm-platform.js.map +1 -1
  160. package/dist/tools/definitions/crm-stage-pool.messages.d.ts +39 -0
  161. package/dist/tools/definitions/crm-stage-pool.messages.js +43 -0
  162. package/dist/tools/definitions/crm-stage-pool.messages.js.map +1 -0
  163. package/dist/tools/definitions/crm-stage-pool.schema.d.ts +64 -0
  164. package/dist/tools/definitions/crm-stage-pool.schema.js +109 -0
  165. package/dist/tools/definitions/crm-stage-pool.schema.js.map +1 -0
  166. package/dist/tools/definitions/custom-reports.d.ts +12 -0
  167. package/dist/tools/definitions/custom-reports.js +68 -0
  168. package/dist/tools/definitions/custom-reports.js.map +1 -0
  169. package/dist/tools/definitions/datasource.d.ts +2 -1
  170. package/dist/tools/definitions/datasource.js +28 -13
  171. package/dist/tools/definitions/datasource.js.map +1 -1
  172. package/dist/tools/definitions/dialog-review-findings-response.d.ts +14 -0
  173. package/dist/tools/definitions/dialog-review-findings-response.js +23 -0
  174. package/dist/tools/definitions/dialog-review-findings-response.js.map +1 -0
  175. package/dist/tools/definitions/dialog-review-safe-response.d.ts +5 -0
  176. package/dist/tools/definitions/dialog-review-safe-response.js +152 -0
  177. package/dist/tools/definitions/dialog-review-safe-response.js.map +1 -0
  178. package/dist/tools/definitions/dialog-review.d.ts +49 -0
  179. package/dist/tools/definitions/dialog-review.js +383 -0
  180. package/dist/tools/definitions/dialog-review.js.map +1 -0
  181. package/dist/tools/definitions/dialogue-analysis.d.ts +46 -0
  182. package/dist/tools/definitions/dialogue-analysis.js +170 -0
  183. package/dist/tools/definitions/dialogue-analysis.js.map +1 -0
  184. package/dist/tools/definitions/dialogue-audit-agent-scope.d.ts +7 -0
  185. package/dist/tools/definitions/dialogue-audit-agent-scope.js +41 -0
  186. package/dist/tools/definitions/dialogue-audit-agent-scope.js.map +1 -0
  187. package/dist/tools/definitions/dialogue-audit-alias.d.ts +67 -0
  188. package/dist/tools/definitions/dialogue-audit-alias.js +559 -0
  189. package/dist/tools/definitions/dialogue-audit-alias.js.map +1 -0
  190. package/dist/tools/definitions/dialogue-export.d.ts +7 -1
  191. package/dist/tools/definitions/dialogue-export.js +89 -32
  192. package/dist/tools/definitions/dialogue-export.js.map +1 -1
  193. package/dist/tools/definitions/dialogue-followup-state.d.ts +9 -0
  194. package/dist/tools/definitions/dialogue-followup-state.js +69 -0
  195. package/dist/tools/definitions/dialogue-followup-state.js.map +1 -0
  196. package/dist/tools/definitions/edit-version-transport.test-fixtures.d.ts +13 -0
  197. package/dist/tools/definitions/edit-version-transport.test-fixtures.js +292 -0
  198. package/dist/tools/definitions/edit-version-transport.test-fixtures.js.map +1 -0
  199. package/dist/tools/definitions/edit-version.d.ts +5 -0
  200. package/dist/tools/definitions/edit-version.js +20 -0
  201. package/dist/tools/definitions/edit-version.js.map +1 -0
  202. package/dist/tools/definitions/external-api-channels.js +17 -15
  203. package/dist/tools/definitions/external-api-channels.js.map +1 -1
  204. package/dist/tools/definitions/feedback-document-access.d.ts +16 -0
  205. package/dist/tools/definitions/feedback-document-access.js +63 -0
  206. package/dist/tools/definitions/feedback-document-access.js.map +1 -0
  207. package/dist/tools/definitions/fixtures/shipped-setup-status.d.ts +3 -0
  208. package/dist/tools/definitions/fixtures/shipped-setup-status.js +9 -0
  209. package/dist/tools/definitions/fixtures/shipped-setup-status.js.map +1 -0
  210. package/dist/tools/definitions/follow-up-config.d.ts +79 -0
  211. package/dist/tools/definitions/follow-up-config.js +258 -0
  212. package/dist/tools/definitions/follow-up-config.js.map +1 -0
  213. package/dist/tools/definitions/follow-up-funnel-test.d.ts +4 -3
  214. package/dist/tools/definitions/follow-up-funnel-test.js +65 -52
  215. package/dist/tools/definitions/follow-up-funnel-test.js.map +1 -1
  216. package/dist/tools/definitions/follow-up-promotion-instructions.d.ts +2 -0
  217. package/dist/tools/definitions/follow-up-promotion-instructions.js +7 -0
  218. package/dist/tools/definitions/follow-up-promotion-instructions.js.map +1 -0
  219. package/dist/tools/definitions/follow-up-setup.d.ts +4 -28
  220. package/dist/tools/definitions/follow-up-setup.js +20 -87
  221. package/dist/tools/definitions/follow-up-setup.js.map +1 -1
  222. package/dist/tools/definitions/follow-up.d.ts +20 -122
  223. package/dist/tools/definitions/follow-up.js +200 -357
  224. package/dist/tools/definitions/follow-up.js.map +1 -1
  225. package/dist/tools/definitions/followup-getcourse-compat.d.ts +29 -0
  226. package/dist/tools/definitions/followup-getcourse-compat.js +62 -0
  227. package/dist/tools/definitions/followup-getcourse-compat.js.map +1 -0
  228. package/dist/tools/definitions/followup-sequence-config.schema.d.ts +10 -0
  229. package/dist/tools/definitions/followup-sequence-config.schema.js +14 -0
  230. package/dist/tools/definitions/followup-sequence-config.schema.js.map +1 -0
  231. package/dist/tools/definitions/funnel-analytics.d.ts +18 -0
  232. package/dist/tools/definitions/funnel-analytics.js +150 -0
  233. package/dist/tools/definitions/funnel-analytics.js.map +1 -0
  234. package/dist/tools/definitions/getcourse-anchor-refresh.d.ts +5 -9
  235. package/dist/tools/definitions/getcourse-anchor-refresh.js +26 -31
  236. package/dist/tools/definitions/getcourse-anchor-refresh.js.map +1 -1
  237. package/dist/tools/definitions/getcourse-cold-outbound-settings.d.ts +46 -0
  238. package/dist/tools/definitions/getcourse-cold-outbound-settings.js +37 -0
  239. package/dist/tools/definitions/getcourse-cold-outbound-settings.js.map +1 -0
  240. package/dist/tools/definitions/getcourse-cold-welcome.d.ts +14 -29
  241. package/dist/tools/definitions/getcourse-cold-welcome.js +180 -254
  242. package/dist/tools/definitions/getcourse-cold-welcome.js.map +1 -1
  243. package/dist/tools/definitions/getcourse-wave-welcome.messages.d.ts +10 -0
  244. package/dist/tools/definitions/getcourse-wave-welcome.messages.js +17 -0
  245. package/dist/tools/definitions/getcourse-wave-welcome.messages.js.map +1 -0
  246. package/dist/tools/definitions/help.js.map +1 -1
  247. package/dist/tools/definitions/icp-import-source.d.ts +75 -0
  248. package/dist/tools/definitions/icp-import-source.js +88 -0
  249. package/dist/tools/definitions/icp-import-source.js.map +1 -0
  250. package/dist/tools/definitions/inbound-analytics.d.ts +13 -0
  251. package/dist/tools/definitions/inbound-analytics.js +55 -0
  252. package/dist/tools/definitions/inbound-analytics.js.map +1 -0
  253. package/dist/tools/definitions/instagram-comment.templates.d.ts +19 -0
  254. package/dist/tools/definitions/instagram-comment.templates.js +34 -0
  255. package/dist/tools/definitions/instagram-comment.templates.js.map +1 -0
  256. package/dist/tools/definitions/instagram-settings-compat.d.ts +33 -0
  257. package/dist/tools/definitions/instagram-settings-compat.js +7 -0
  258. package/dist/tools/definitions/instagram-settings-compat.js.map +1 -0
  259. package/dist/tools/definitions/knowledge-chunking.d.ts +42 -0
  260. package/dist/tools/definitions/knowledge-chunking.js +83 -0
  261. package/dist/tools/definitions/knowledge-chunking.js.map +1 -0
  262. package/dist/tools/definitions/knowledge-space-search-fields.d.ts +12 -0
  263. package/dist/tools/definitions/knowledge-space-search-fields.js +30 -0
  264. package/dist/tools/definitions/knowledge-space-search-fields.js.map +1 -0
  265. package/dist/tools/definitions/knowledge.d.ts +24 -14
  266. package/dist/tools/definitions/knowledge.js +342 -233
  267. package/dist/tools/definitions/knowledge.js.map +1 -1
  268. package/dist/tools/definitions/legacy-trigger-repeat.d.ts +17 -0
  269. package/dist/tools/definitions/legacy-trigger-repeat.js +53 -0
  270. package/dist/tools/definitions/legacy-trigger-repeat.js.map +1 -0
  271. package/dist/tools/definitions/link-tracking.d.ts +8 -0
  272. package/dist/tools/definitions/link-tracking.js +141 -38
  273. package/dist/tools/definitions/link-tracking.js.map +1 -1
  274. package/dist/tools/definitions/mailing-variant-content.d.ts +75 -0
  275. package/dist/tools/definitions/mailing-variant-content.js +73 -0
  276. package/dist/tools/definitions/mailing-variant-content.js.map +1 -0
  277. package/dist/tools/definitions/model-comparison.d.ts +1 -0
  278. package/dist/tools/definitions/model-comparison.js +4 -5
  279. package/dist/tools/definitions/model-comparison.js.map +1 -1
  280. package/dist/tools/definitions/money-currency.d.ts +5 -0
  281. package/dist/tools/definitions/money-currency.js +10 -0
  282. package/dist/tools/definitions/money-currency.js.map +1 -0
  283. package/dist/tools/definitions/operator-workflow.d.ts +5 -5
  284. package/dist/tools/definitions/operator-workflow.js +80 -27
  285. package/dist/tools/definitions/operator-workflow.js.map +1 -1
  286. package/dist/tools/definitions/platform-funnel-analytics.d.ts +42 -0
  287. package/dist/tools/definitions/platform-funnel-analytics.js +72 -0
  288. package/dist/tools/definitions/platform-funnel-analytics.js.map +1 -0
  289. package/dist/tools/definitions/platform-getcourse-wave-field-bindings.d.ts +42 -0
  290. package/dist/tools/definitions/platform-getcourse-wave-field-bindings.js +51 -0
  291. package/dist/tools/definitions/platform-getcourse-wave-field-bindings.js.map +1 -0
  292. package/dist/tools/definitions/platform-settings-limits.d.ts +5 -0
  293. package/dist/tools/definitions/platform-settings-limits.js +6 -0
  294. package/dist/tools/definitions/platform-settings-limits.js.map +1 -0
  295. package/dist/tools/definitions/platform-settings-shipped-form.d.ts +37 -0
  296. package/dist/tools/definitions/platform-settings-shipped-form.js +310 -0
  297. package/dist/tools/definitions/platform-settings-shipped-form.js.map +1 -0
  298. package/dist/tools/definitions/platform-settings-update.d.ts +300 -0
  299. package/dist/tools/definitions/platform-settings-update.js +134 -0
  300. package/dist/tools/definitions/platform-settings-update.js.map +1 -0
  301. package/dist/tools/definitions/{getcourse-wave.d.ts → platform-setup-wave.d.ts} +75 -6
  302. package/dist/tools/definitions/platform-setup-wave.js +1079 -0
  303. package/dist/tools/definitions/platform-setup-wave.js.map +1 -0
  304. package/dist/tools/definitions/platform-setup.d.ts +686 -224
  305. package/dist/tools/definitions/platform-setup.js +313 -752
  306. package/dist/tools/definitions/platform-setup.js.map +1 -1
  307. package/dist/tools/definitions/platform-widget-page-rules.schema.d.ts +10 -0
  308. package/dist/tools/definitions/platform-widget-page-rules.schema.js +7 -0
  309. package/dist/tools/definitions/platform-widget-page-rules.schema.js.map +1 -0
  310. package/dist/tools/definitions/prompt-authoring.constants.d.ts +2 -0
  311. package/dist/tools/definitions/prompt-authoring.constants.js +3 -0
  312. package/dist/tools/definitions/prompt-authoring.constants.js.map +1 -0
  313. package/dist/tools/definitions/prompt-batch-controls.d.ts +5 -0
  314. package/dist/tools/definitions/prompt-batch-controls.js +40 -0
  315. package/dist/tools/definitions/prompt-batch-controls.js.map +1 -0
  316. package/dist/tools/definitions/prompt-draft-authoring.d.ts +5 -0
  317. package/dist/tools/definitions/prompt-draft-authoring.js +24 -0
  318. package/dist/tools/definitions/prompt-draft-authoring.js.map +1 -0
  319. package/dist/tools/definitions/prompt-text-projection.d.ts +11 -0
  320. package/dist/tools/definitions/prompt-text-projection.js +62 -0
  321. package/dist/tools/definitions/prompt-text-projection.js.map +1 -0
  322. package/dist/tools/definitions/reviewer-paid.d.ts +19 -0
  323. package/dist/tools/definitions/reviewer-paid.js +115 -0
  324. package/dist/tools/definitions/reviewer-paid.js.map +1 -0
  325. package/dist/tools/definitions/routing-condition-projection.d.ts +31 -0
  326. package/dist/tools/definitions/routing-condition-projection.js +97 -0
  327. package/dist/tools/definitions/routing-condition-projection.js.map +1 -0
  328. package/dist/tools/definitions/schedule-selection-hints.d.ts +3 -0
  329. package/dist/tools/definitions/schedule-selection-hints.js +42 -0
  330. package/dist/tools/definitions/schedule-selection-hints.js.map +1 -0
  331. package/dist/tools/definitions/{scheduled-tasks.d.ts → scheduled-task-alias.d.ts} +12 -10
  332. package/dist/tools/definitions/scheduled-task-alias.js +207 -0
  333. package/dist/tools/definitions/scheduled-task-alias.js.map +1 -0
  334. package/dist/tools/definitions/session.js +3 -3
  335. package/dist/tools/definitions/session.js.map +1 -1
  336. package/dist/tools/definitions/setup-init-operation.schema.d.ts +2 -0
  337. package/dist/tools/definitions/setup-init-operation.schema.js +6 -0
  338. package/dist/tools/definitions/setup-init-operation.schema.js.map +1 -0
  339. package/dist/tools/definitions/shared-input.helpers.d.ts +51 -0
  340. package/dist/tools/definitions/shared-input.helpers.js +323 -0
  341. package/dist/tools/definitions/shared-input.helpers.js.map +1 -0
  342. package/dist/tools/definitions/shared.d.ts +396 -307
  343. package/dist/tools/definitions/shared.js +430 -652
  344. package/dist/tools/definitions/shared.js.map +1 -1
  345. package/dist/tools/definitions/shipped-output-names.d.ts +19 -0
  346. package/dist/tools/definitions/shipped-output-names.js +123 -0
  347. package/dist/tools/definitions/shipped-output-names.js.map +1 -0
  348. package/dist/tools/definitions/task-state.d.ts +5 -5
  349. package/dist/tools/definitions/task-state.js +2 -1
  350. package/dist/tools/definitions/task-state.js.map +1 -1
  351. package/dist/tools/definitions/telegram-personal-capacity.d.ts +4 -0
  352. package/dist/tools/definitions/telegram-personal-capacity.js +18 -0
  353. package/dist/tools/definitions/telegram-personal-capacity.js.map +1 -0
  354. package/dist/tools/definitions/telegram-pool-policy.d.ts +8 -0
  355. package/dist/tools/definitions/telegram-pool-policy.js +56 -0
  356. package/dist/tools/definitions/telegram-pool-policy.js.map +1 -0
  357. package/dist/tools/definitions/touch-history-alias.d.ts +4 -0
  358. package/dist/tools/definitions/touch-history-alias.js +99 -0
  359. package/dist/tools/definitions/touch-history-alias.js.map +1 -0
  360. package/dist/tools/definitions/trigger-action-item.schema.d.ts +254 -0
  361. package/dist/tools/definitions/trigger-action-item.schema.js +121 -0
  362. package/dist/tools/definitions/trigger-action-item.schema.js.map +1 -0
  363. package/dist/tools/definitions/trigger-argument.schema.d.ts +14 -0
  364. package/dist/tools/definitions/trigger-argument.schema.js +23 -0
  365. package/dist/tools/definitions/trigger-argument.schema.js.map +1 -0
  366. package/dist/tools/definitions/trigger-claim-alias.d.ts +10 -0
  367. package/dist/tools/definitions/trigger-claim-alias.js +90 -0
  368. package/dist/tools/definitions/trigger-claim-alias.js.map +1 -0
  369. package/dist/tools/definitions/trigger-echo-projection.d.ts +1 -0
  370. package/dist/tools/definitions/trigger-echo-projection.js +41 -0
  371. package/dist/tools/definitions/trigger-echo-projection.js.map +1 -0
  372. package/dist/tools/definitions/trigger-upsert.tool.d.ts +29 -0
  373. package/dist/tools/definitions/trigger-upsert.tool.js +122 -0
  374. package/dist/tools/definitions/trigger-upsert.tool.js.map +1 -0
  375. package/dist/tools/definitions/v15-port-descriptions.d.ts +11 -0
  376. package/dist/tools/definitions/v15-port-descriptions.js +30 -0
  377. package/dist/tools/definitions/v15-port-descriptions.js.map +1 -0
  378. package/dist/tools/definitions/variables.d.ts +44 -0
  379. package/dist/tools/definitions/variables.js +310 -0
  380. package/dist/tools/definitions/variables.js.map +1 -0
  381. package/dist/tools/definitions/voice-action-input.d.ts +9 -0
  382. package/dist/tools/definitions/voice-action-input.js +141 -0
  383. package/dist/tools/definitions/voice-action-input.js.map +1 -0
  384. package/dist/tools/definitions/widget-customization-compat.d.ts +51 -0
  385. package/dist/tools/definitions/widget-customization-compat.js +23 -0
  386. package/dist/tools/definitions/widget-customization-compat.js.map +1 -0
  387. package/dist/tools/definitions.d.ts +1089 -636
  388. package/dist/tools/definitions.js +57 -27
  389. package/dist/tools/definitions.js.map +1 -1
  390. package/dist/tools/description-localization.js +3 -2
  391. package/dist/tools/description-localization.js.map +1 -1
  392. package/dist/tools/follow-up-request.d.ts +19 -0
  393. package/dist/tools/follow-up-request.js +81 -0
  394. package/dist/tools/follow-up-request.js.map +1 -0
  395. package/dist/tools/followup-revision.d.ts +4 -0
  396. package/dist/tools/followup-revision.js +29 -0
  397. package/dist/tools/followup-revision.js.map +1 -0
  398. package/dist/tools/incomplete-list.js +4 -0
  399. package/dist/tools/incomplete-list.js.map +1 -1
  400. package/dist/tools/inventory.js +47 -11
  401. package/dist/tools/inventory.js.map +1 -1
  402. package/dist/tools/operation-recovery.d.ts +4 -0
  403. package/dist/tools/operation-recovery.js +33 -0
  404. package/dist/tools/operation-recovery.js.map +1 -0
  405. package/dist/tools/registry-mapping-primary.cases.d.ts +2 -0
  406. package/dist/tools/registry-mapping-primary.cases.js +753 -0
  407. package/dist/tools/registry-mapping-primary.cases.js.map +1 -0
  408. package/dist/tools/registry-mapping-secondary.cases.d.ts +2 -0
  409. package/dist/tools/registry-mapping-secondary.cases.js +626 -0
  410. package/dist/tools/registry-mapping-secondary.cases.js.map +1 -0
  411. package/dist/tools/registry-mapping.cases.d.ts +8 -0
  412. package/dist/tools/registry-mapping.cases.js +13 -0
  413. package/dist/tools/registry-mapping.cases.js.map +1 -0
  414. package/dist/tools/registry-test-fixtures.d.ts +50 -0
  415. package/dist/tools/registry-test-fixtures.js +120 -0
  416. package/dist/tools/registry-test-fixtures.js.map +1 -0
  417. package/dist/tools/registry.d.ts +2 -0
  418. package/dist/tools/registry.js +82 -52
  419. package/dist/tools/registry.js.map +1 -1
  420. package/dist/tools/result.d.ts +1 -0
  421. package/dist/tools/result.js +90 -22
  422. package/dist/tools/result.js.map +1 -1
  423. package/dist/tools/toolsets.d.ts +16 -0
  424. package/dist/tools/toolsets.js +25 -1
  425. package/dist/tools/toolsets.js.map +1 -1
  426. package/dist/types/api-contract.gen.d.ts +105875 -22205
  427. package/dist/utils/credential-signatures.d.ts +3 -0
  428. package/dist/utils/credential-signatures.js +10 -0
  429. package/dist/utils/credential-signatures.js.map +1 -0
  430. package/dist/utils/data-source-column-name.d.ts +10 -0
  431. package/dist/utils/data-source-column-name.js +36 -0
  432. package/dist/utils/data-source-column-name.js.map +1 -0
  433. package/dist/utils/logger.d.ts +1 -0
  434. package/dist/utils/logger.js +32 -8
  435. package/dist/utils/logger.js.map +1 -1
  436. package/dist/utils/secret-read-boundary.d.ts +2 -0
  437. package/dist/utils/secret-read-boundary.js +88 -0
  438. package/dist/utils/secret-read-boundary.js.map +1 -0
  439. package/dist/utils/setup-secrets.d.ts +4 -0
  440. package/dist/utils/setup-secrets.js +40 -0
  441. package/dist/utils/setup-secrets.js.map +1 -0
  442. package/docs/agent-models.md +9 -0
  443. package/docs/agent-usage-guide.full.ru.md +1 -4
  444. package/docs/analytics-contract.md +67 -0
  445. package/docs/async-operation-lifecycle.md +10 -3
  446. package/docs/connect.ru.md +144 -4
  447. package/docs/contact-company-profile.md +17 -0
  448. package/docs/contact-recommendations.md +7 -0
  449. package/docs/crm-stage-pool.md +73 -0
  450. package/docs/customer-data.md +61 -0
  451. package/docs/edit-versions.md +36 -0
  452. package/docs/failure-semantics.md +17 -9
  453. package/docs/help-navigation.md +15 -42
  454. package/docs/host-compatibility-matrix.md +72 -93
  455. package/docs/host-setup.md +33 -35
  456. package/docs/invariants/public-api-and-contracts.md +16 -0
  457. package/docs/legacy-action-settings.md +21 -0
  458. package/docs/main-transfer-dependencies.md +38 -0
  459. package/docs/mcp2-parity.md +50 -0
  460. package/docs/modules/analytics.md +79 -0
  461. package/docs/modules/besales-mcp.md +137 -0
  462. package/docs/modules/dialog-review-report.md +38 -0
  463. package/docs/modules/dialogue-followup-adapters.md +39 -0
  464. package/docs/modules/message-reactions.md +17 -0
  465. package/docs/modules/network-mode.md +284 -0
  466. package/docs/modules/prompt-batch-and-dialogue-controls.md +69 -0
  467. package/docs/pii-policy.md +21 -16
  468. package/docs/response-size-budget.md +197 -7
  469. package/docs/secret-read-boundary.md +102 -0
  470. package/docs/task-state.md +7 -2
  471. package/docs/telegram-pool-policy.md +19 -0
  472. package/docs/tool-effects.md +15 -9
  473. package/docs/tool-surface.md +205 -4
  474. package/docs/voice-actions-and-inbox.md +95 -0
  475. package/docs/wazzup-instagram-comments.md +26 -0
  476. package/package.json +17 -10
  477. package/scripts/api-source-loader.spec.mjs +40 -0
  478. package/scripts/audit-bridge-controls.mjs +129 -0
  479. package/scripts/audit-revert-mutants.mjs +107 -0
  480. package/scripts/bridge-api-input.spec.mjs +98 -0
  481. package/scripts/bridge-controls-mutants.mjs +130 -0
  482. package/scripts/brx3-shipped-refusals.spec.mjs +149 -0
  483. package/scripts/brx4-ledger-payload.spec.mjs +127 -0
  484. package/scripts/build-onprem.mjs +108 -0
  485. package/scripts/connect-clients.sh +141 -0
  486. package/scripts/connect-scopes.mjs +166 -0
  487. package/scripts/connect-scopes.spec.mjs +83 -0
  488. package/scripts/emit-personal-link-carrier.mjs +31 -0
  489. package/scripts/emit-setup-init-schemas.mjs +24 -0
  490. package/scripts/emit-tool-routes.mjs +878 -0
  491. package/scripts/emit-tool-routes.spec.mjs +300 -0
  492. package/scripts/followup-registry.spec.mjs +107 -0
  493. package/scripts/generate-crm-rotation-contract.mjs +98 -0
  494. package/scripts/generate-followup-session-contract.mjs +16 -0
  495. package/scripts/icp-import-verification/mutate.cjs +70 -0
  496. package/scripts/import-secret-read-contract.mjs +53 -0
  497. package/scripts/install-claude-desktop.js +1 -1
  498. package/scripts/lag-decisions.mjs +37 -0
  499. package/scripts/lag-decisions.spec.mjs +87 -0
  500. package/scripts/lag-open-task-owners.mjs +46 -0
  501. package/scripts/lag-open-task-owners.spec.mjs +78 -0
  502. package/scripts/lag-payload.mjs +10 -0
  503. package/scripts/legacy-action-lag.spec.mjs +22 -0
  504. package/scripts/legacy-field-refusal.shipped.spec.mjs +99 -0
  505. package/scripts/mcpcompat-handler.mjs +34 -0
  506. package/scripts/mcpcompat-loader.mjs +36 -0
  507. package/scripts/mcpcompat-typescript.mjs +3 -0
  508. package/scripts/platform-settings-shipped-parity.spec.mjs +89 -0
  509. package/scripts/prbr-round1-recheck.spec.mjs +605 -0
  510. package/scripts/prbr-shipped-compatibility.spec.mjs +276 -0
  511. package/scripts/publish-mcp-registry.mjs +98 -0
  512. package/scripts/publish-mcp-registry.spec.mjs +68 -0
  513. package/scripts/record-scheduled-task-call.mjs +26 -0
  514. package/scripts/refusal-probe.mjs +17 -0
  515. package/scripts/refusal-probe.spec.mjs +29 -0
  516. package/scripts/registry-diff.mjs +502 -0
  517. package/scripts/registry-diff.spec.mjs +787 -0
  518. package/scripts/request-query.mjs +43 -0
  519. package/scripts/request-query.spec.mjs +82 -0
  520. package/scripts/route-lag.mjs +23 -0
  521. package/scripts/route-lag.spec.mjs +30 -0
  522. package/scripts/sample-args.mjs +174 -0
  523. package/scripts/sample-args.spec.mjs +160 -0
  524. package/scripts/shipped-definitions.mjs +197 -0
  525. package/scripts/shipped-definitions.spec.mjs +57 -0
  526. package/scripts/shipped-inputs.spec.mjs +136 -0
  527. package/scripts/shipped-recordings.spec.mjs +19 -0
  528. package/scripts/shipped-ref.d.mts +5 -0
  529. package/scripts/shipped-ref.mjs +20 -0
  530. package/scripts/shipped-ref.spec.mjs +59 -0
  531. package/scripts/shipped-registry.mjs +107 -0
  532. package/scripts/shipped-sample-candidates.mjs +69 -0
  533. package/scripts/shipped-sample-candidates.spec.mjs +117 -0
  534. package/scripts/shipped-sample.mjs +868 -0
  535. package/scripts/shipped-sample.spec.mjs +451 -0
  536. package/scripts/sync-agent-model-schemas.mjs +72 -0
  537. package/scripts/sync-api-contracts.mjs +85 -0
  538. package/scripts/sync-api-contracts.spec.mjs +144 -0
  539. package/scripts/sync-contract-ledger-schemas.mjs +161 -0
  540. package/scripts/sync-crm-stage-pool-schema.mjs +85 -0
  541. package/scripts/sync-prompt-draft-schema.mjs +92 -0
  542. package/scripts/sync-route-map.mjs +94 -0
  543. package/scripts/sync-schema-descriptions.mjs +25 -0
  544. package/scripts/sync-tool-inventory.mjs +27 -0
  545. package/scripts/sync-trigger-argument-schema.mjs +121 -0
  546. package/scripts/sync-trigger-repeat-mapping.mjs +12 -0
  547. package/scripts/sync-voice-actions-contract.mjs +67 -0
  548. package/scripts/sync-voice-actions-tools.mjs +97 -0
  549. package/scripts/sync-wave-id-schemas.mjs +55 -0
  550. package/scripts/tool-input-schemas.mjs +46 -0
  551. package/scripts/tool-input-schemas.spec.mjs +50 -0
  552. package/scripts/verify-followup-adapters.mjs +235 -0
  553. package/scripts/verify-secret-read-import.mjs +84 -0
  554. package/scripts/verify-secret-read-mutants.mjs +143 -0
  555. package/dist/tools/definitions/analytics.d.ts +0 -40
  556. package/dist/tools/definitions/analytics.js +0 -233
  557. package/dist/tools/definitions/analytics.js.map +0 -1
  558. package/dist/tools/definitions/broadcast-mailing-variants.d.ts +0 -41
  559. package/dist/tools/definitions/broadcast-mailing-variants.js +0 -194
  560. package/dist/tools/definitions/broadcast-mailing-variants.js.map +0 -1
  561. package/dist/tools/definitions/dialogue-audit.d.ts +0 -38
  562. package/dist/tools/definitions/dialogue-audit.js +0 -292
  563. package/dist/tools/definitions/dialogue-audit.js.map +0 -1
  564. package/dist/tools/definitions/getcourse-wave.js +0 -519
  565. package/dist/tools/definitions/getcourse-wave.js.map +0 -1
  566. package/dist/tools/definitions/operational-overview.d.ts +0 -3
  567. package/dist/tools/definitions/operational-overview.js +0 -23
  568. package/dist/tools/definitions/operational-overview.js.map +0 -1
  569. package/dist/tools/definitions/scheduled-tasks.js +0 -173
  570. package/dist/tools/definitions/scheduled-tasks.js.map +0 -1
  571. package/dist/tools/definitions/trigger-contact-claims.d.ts +0 -7
  572. package/dist/tools/definitions/trigger-contact-claims.js +0 -60
  573. package/dist/tools/definitions/trigger-contact-claims.js.map +0 -1
  574. package/dist/tools/registry-mapping-cases-core.d.ts +0 -38
  575. package/dist/tools/registry-mapping-cases-core.js +0 -963
  576. package/dist/tools/registry-mapping-cases-core.js.map +0 -1
  577. package/dist/tools/registry-mapping-cases-platform.d.ts +0 -2
  578. package/dist/tools/registry-mapping-cases-platform.js +0 -1052
  579. package/dist/tools/registry-mapping-cases-platform.js.map +0 -1
  580. package/dist/tools/trigger-action-config.d.ts +0 -49
  581. package/dist/tools/trigger-action-config.js +0 -171
  582. package/dist/tools/trigger-action-config.js.map +0 -1
  583. package/docs/evals/model-behavior-scorecard.md +0 -80
  584. package/docs/operation-coverage.md +0 -114
  585. package/scripts/mock-credentials.js +0 -77
  586. package/scripts/model-eval-server.js +0 -213
  587. package/scripts/run-model-eval.js +0 -447
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-up-config.js","sourceRoot":"","sources":["../../../src/tools/definitions/follow-up-config.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  /**
2
- * Убирает транспортные детали замороженного DTO, оставляя оператору всё, что нужно проверить
3
- * перед необратимой отправкой: точный текст, канал, блокировки и причины пропуска.
2
+ * Компактный план: оставляет человеку всё, что нужно проверить перед необратимой отправкой, —
3
+ * точный текст, шаблон, причину, по которой пункт не уйдёт, побочки, которые тест НЕ сделает,
4
+ * исключённые цепочки и обрезку. Коды сервера заменены подписями: человеку код не показывается.
4
5
  */
5
6
  export declare function compactFunnelTestPlan(response: unknown): unknown;
6
- /** MCP-контур существующего durable «Теста воронки». */
7
+ /** Тест воронки дожимов: план по адресу человека в канале, запуск, состояние, остановка. */
7
8
  export declare const followUpFunnelTestTools: (import("./shared.js").ToolDefinition<{
8
9
  chat_user_id: string;
9
10
  workspace_id?: string | undefined;
@@ -1,78 +1,86 @@
1
1
  import { z } from 'zod';
2
2
  import { compactObject, defineTool, uuidSchema, withInstructions } from './shared.js';
3
+ /** Потолок причины подтверждения — как у отгруженного инструмента. */
3
4
  const CONFIRMATION_REASON_MAX_LENGTH = 500;
4
- /** Только plain JSON-object; ответы API остаются untrusted boundary. */
5
+ /** Только обычный объект JSON: ответ сервера — недоверенная граница. */
5
6
  function isRecord(value) {
6
7
  return typeof value === 'object' && value !== null && !Array.isArray(value);
7
8
  }
8
9
  function recordsOf(value) {
9
10
  return Array.isArray(value) ? value.filter(isRecord) : [];
10
11
  }
12
+ /** Подпись причины из ответа сервера: `{ code, label }` → подпись; пусто — `null`. */
13
+ function labelOf(value) {
14
+ return isRecord(value) ? value.label : null;
15
+ }
11
16
  /**
12
- * Убирает транспортные детали замороженного DTO, оставляя оператору всё, что нужно проверить
13
- * перед необратимой отправкой: точный текст, канал, блокировки и причины пропуска.
17
+ * Компактный план: оставляет человеку всё, что нужно проверить перед необратимой отправкой, —
18
+ * точный текст, шаблон, причину, по которой пункт не уйдёт, побочки, которые тест НЕ сделает,
19
+ * исключённые цепочки и обрезку. Коды сервера заменены подписями: человеку код не показывается.
14
20
  */
15
21
  export function compactFunnelTestPlan(response) {
16
22
  if (!isRecord(response)) {
17
23
  return response;
18
24
  }
19
- const sequences = recordsOf(response.sequences);
20
- const compactPlan = {
25
+ const plan = isRecord(response.plan) ? response.plan : {};
26
+ const compact = {
21
27
  runId: response.runId,
22
- chatUserId: response.chatUserId,
23
- platformId: response.platformId,
24
- contactBlockReason: response.contactBlockReason,
25
- steps: recordsOf(response.steps).map((step) => compactObject({
26
- order: step.order,
27
- sequenceName: step.sequenceName,
28
- text: step.text,
29
- transports: step.getcourseTransports,
30
- skipReason: step.blockedReason,
31
- skippedEffects: step.skippedEffects,
32
- })),
33
- excludedChains: sequences
34
- .filter((sequence) => sequence.included !== true)
35
- .map((sequence) => compactObject({
36
- sequenceName: sequence.sequenceName,
37
- reason: sequence.reason,
38
- outcome: sequence.outcome,
39
- totalSteps: sequence.totalSteps,
28
+ status: response.statusLabel,
29
+ contactId: response.contactId,
30
+ channelId: response.channelId,
31
+ expiresAt: response.expiresAt,
32
+ contactBlockReason: labelOf(plan.contactBlockReason),
33
+ items: recordsOf(plan.items).map((item) => compactObject({
34
+ order: item.order,
35
+ chain: item.workflowName,
36
+ text: item.displayText,
37
+ template: item.template ?? undefined,
38
+ skipReason: labelOf(item.blockedReason),
39
+ hasPersonalLink: item.hasPersonalLink === true ? true : undefined,
40
+ testWillNotDo: recordsOf(item.skippedEffects).map((effect) => labelOf(effect.effect)),
40
41
  })),
41
- conditionSkips: sequences
42
- .filter((sequence) => Array.isArray(sequence.skippedByCondition) && sequence.skippedByCondition.length > 0)
43
- .map((sequence) => ({
44
- sequenceName: sequence.sequenceName,
45
- skippedByCondition: sequence.skippedByCondition,
42
+ excludedChains: recordsOf(plan.chains)
43
+ .filter((chain) => chain.included !== true)
44
+ .map((chain) => compactObject({
45
+ chain: chain.workflowName,
46
+ reason: labelOf(chain.exclusionReason),
47
+ totalSteps: chain.totalSteps,
46
48
  })),
47
- truncated: response.truncated,
48
- generationLimitReached: response.generationLimitReached,
49
- unchecked: response.unchecked,
50
- notCovered: response.notCovered,
49
+ stoppedChains: recordsOf(plan.chains)
50
+ .filter((chain) => chain.included === true && isRecord(chain.stopReason))
51
+ .map((chain) => ({ chain: chain.workflowName, reason: labelOf(chain.stopReason) })),
52
+ truncated: plan.truncated,
53
+ unchecked: recordsOf(plan.unchecked).map(labelOf),
54
+ notCovered: recordsOf(plan.notCovered).map(labelOf),
51
55
  };
52
- return withInstructions(compactPlan, [
53
- 'Plan tool НИЧЕГО не отправил, но динамические шаги уже потратили LLM-токены.',
54
- 'Перед start покажи оператору каждый expanded text, transports, skipReason, excludedChains, conditionSkips и truncated.',
55
- 'Запускай только этот runId: backend возьмёт замороженный снимок и не сгенерирует другой текст.',
56
+ return withInstructions(compact, [
57
+ 'Инструмент плана НИЧЕГО не отправил и модель не вызывал: план собран из текстов цепочек.',
58
+ 'Перед start покажи человеку каждый текст, шаблон, skipReason, excludedChains, stoppedChains и truncated.',
59
+ 'Запускай только этот runId: сервер возьмёт замороженный план и тексты не пересоберёт. Черновик живёт сутки — позже план строится заново.',
56
60
  ]);
57
61
  }
58
- /** MCP-контур существующего durable «Теста воронки». */
62
+ /** Тест воронки дожимов: план по адресу человека в канале, запуск, состояние, остановка. */
59
63
  export const followUpFunnelTestTools = [
60
64
  defineTool({
61
65
  name: 'besales_followup_funnel_test_plan',
62
- sideEffect: 'none',
66
+ // План сохраняет черновик на сервере и удаляет прежние черновики того же автора.
67
+ sideEffect: 'write',
68
+ carriesCustomerData: true,
63
69
  requiredFields: ['chat_user_id'],
64
70
  defaultWorkspaceId: true,
65
71
  schema: z
66
72
  .object({
67
73
  workspace_id: uuidSchema.optional(),
74
+ // Единица прежней версии — карточка человека в канале — у v2 и есть АДРЕС человека в канале:
75
+ // имя поля отгруженного инструмента сохранено, значение — идентификатор адреса.
68
76
  chat_user_id: uuidSchema,
69
77
  funnel_id: uuidSchema.optional(),
70
78
  })
71
79
  .strict(),
72
80
  createRequest: (input) => ({
73
81
  method: 'POST',
74
- path: `/follow-up/funnel-test/${input.chat_user_id}/plan` +
75
- (input.funnel_id ? `?funnelId=${encodeURIComponent(input.funnel_id)}` : ''),
82
+ path: `/contact-identities/${input.chat_user_id}/funnel-test/plan`,
83
+ ...(input.funnel_id === undefined ? {} : { body: { funnelId: input.funnel_id } }),
76
84
  }),
77
85
  enhanceResponse: compactFunnelTestPlan,
78
86
  }),
@@ -81,6 +89,7 @@ export const followUpFunnelTestTools = [
81
89
  sideEffect: 'spend',
82
90
  requiredFields: ['run_id', 'explicit_confirmation', 'confirmation_reason'],
83
91
  defaultWorkspaceId: true,
92
+ verifyWithToolName: 'besales_followup_funnel_test_status',
84
93
  schema: z
85
94
  .object({
86
95
  workspace_id: uuidSchema.optional(),
@@ -91,19 +100,20 @@ export const followUpFunnelTestTools = [
91
100
  .strict(),
92
101
  createRequest: (input) => ({
93
102
  method: 'POST',
94
- path: `/follow-up/funnel-test/runs/${input.run_id}/start`,
95
- // confirmation_reason — MCP safety gate. Backend получает только свой канонический DTO.
96
- body: { acknowledge: true },
103
+ path: `/funnel-test-runs/${input.run_id}/start`,
104
+ // Причина подтверждения уходит в журнал аудита запуска.
105
+ body: { acknowledge: true, confirmationReason: input.confirmation_reason },
97
106
  }),
98
107
  enhanceResponse: (response) => withInstructions(response, [
99
- 'Реальная отправка запущена по замороженному plan snapshot.',
100
- 'Опрашивай besales_followup_funnel_test_status до terminal status.',
101
- 'Если человек ответит во время прогона, backend остановит оставшиеся касания.',
108
+ 'Настоящая отправка запущена по замороженному плану, пункты уходят по одному с паузой 15 секунд.',
109
+ 'Опрашивай besales_followup_funnel_test_status до завершения.',
110
+ 'Если человек ответит во время прогона, сервер остановит оставшиеся касания.',
102
111
  ]),
103
112
  }),
104
113
  defineTool({
105
114
  name: 'besales_followup_funnel_test_status',
106
115
  sideEffect: 'none',
116
+ carriesCustomerData: true,
107
117
  requiredFields: ['run_id'],
108
118
  defaultWorkspaceId: true,
109
119
  schema: z
@@ -114,11 +124,12 @@ export const followUpFunnelTestTools = [
114
124
  .strict(),
115
125
  createRequest: (input) => ({
116
126
  method: 'GET',
117
- path: `/follow-up/funnel-test/runs/${input.run_id}`,
127
+ path: `/funnel-test-runs/${input.run_id}`,
118
128
  }),
119
129
  enhanceResponse: (response) => withInstructions(response, [
120
- 'dispatchedCount означает «заклеймлено до транспорта», а доказанный исход смотри в results[].',
121
- 'stalled=true лечится cancel, а не повторным start того же runId.',
130
+ 'dispatchedCount — «занято до отправки», а не «доставлено»: доказанный исход каждого пункта — в results[].',
131
+ 'Показывай человеку подписи (statusLabel, outcomeLabel, label причин), а не коды.',
132
+ 'stalled=true лечится остановкой (cancel), а не повторным запуском того же runId.',
122
133
  ]),
123
134
  }),
124
135
  defineTool({
@@ -126,6 +137,7 @@ export const followUpFunnelTestTools = [
126
137
  sideEffect: 'write',
127
138
  requiredFields: ['run_id'],
128
139
  defaultWorkspaceId: true,
140
+ verifyWithToolName: 'besales_followup_funnel_test_status',
129
141
  schema: z
130
142
  .object({
131
143
  workspace_id: uuidSchema.optional(),
@@ -134,11 +146,12 @@ export const followUpFunnelTestTools = [
134
146
  .strict(),
135
147
  createRequest: (input) => ({
136
148
  method: 'POST',
137
- path: `/follow-up/funnel-test/runs/${input.run_id}/cancel`,
149
+ path: `/funnel-test-runs/${input.run_id}/cancel`,
150
+ body: {},
138
151
  }),
139
152
  enhanceResponse: (response) => withInstructions(response, [
140
- 'Отмена действует со следующего касания: уже заклеймленный пункт мог дойти до транспорта.',
141
- 'Проверь results[] в ответе или повторным status-вызовом.',
153
+ 'Остановка действует со следующего касания: пункт, уже переданный на отправку, мог дойти до человека.',
154
+ 'Проверь results[] в ответе или повторным вызовом status.',
142
155
  ]),
143
156
  }),
144
157
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"follow-up-funnel-test.js","sourceRoot":"","sources":["../../../src/tools/definitions/follow-up-funnel-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"follow-up-funnel-test.js","sourceRoot":"","sources":["../../../src/tools/definitions/follow-up-funnel-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /** Одинаковое правило публикации полной формы и одной фразы. */
2
+ export declare const followUpPromotionInstructions: readonly ["Если изменились только тексты сообщений, уже идущие люди получат новый текст со следующего сообщения. Сообщение, отправлявшееся в момент сохранения, придёт прежним; повторной отправки нет.", "Если изменено что-то ещё в шагах (расписание, условия, порядок, заметка в CRM), идущие остаются на своей версии. Если вместе с текстом изменены настройки цепочки (остановка при оплате, запись в карточку после отправки, предел кругов, продолжение после ответа, порог молчания, дата календаря), новые настройки действуют для всех сразу, а текст идущим не меняется до повторного сохранения без изменений.", "runs называет людей, получающих новый текст, уже отправлявших старый и оставшихся на своей версии с причиной. Перескажи числа и summary человеку; технический адрес firstDifference переведи в понятное описание. warnings относится только к оставленным людям."];
@@ -0,0 +1,7 @@
1
+ /** Одинаковое правило публикации полной формы и одной фразы. */
2
+ export const followUpPromotionInstructions = [
3
+ 'Если изменились только тексты сообщений, уже идущие люди получат новый текст со следующего сообщения. Сообщение, отправлявшееся в момент сохранения, придёт прежним; повторной отправки нет.',
4
+ 'Если изменено что-то ещё в шагах (расписание, условия, порядок, заметка в CRM), идущие остаются на своей версии. Если вместе с текстом изменены настройки цепочки (остановка при оплате, запись в карточку после отправки, предел кругов, продолжение после ответа, порог молчания, дата календаря), новые настройки действуют для всех сразу, а текст идущим не меняется до повторного сохранения без изменений.',
5
+ 'runs называет людей, получающих новый текст, уже отправлявших старый и оставшихся на своей версии с причиной. Перескажи числа и summary человеку; технический адрес firstDifference переведи в понятное описание. warnings относится только к оставленным людям.',
6
+ ];
7
+ //# sourceMappingURL=follow-up-promotion-instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-up-promotion-instructions.js","sourceRoot":"","sources":["../../../src/tools/definitions/follow-up-promotion-instructions.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,8LAA8L;IAC9L,mZAAmZ;IACnZ,kQAAkQ;CAC1P,CAAC"}
@@ -1,33 +1,9 @@
1
- /**
2
- * МУТАЦИИ follow-up сценариев для Platform Setup Bridge.
3
- *
4
- * Вынесены из `platform-setup.ts` ТОЛЬКО ради лимита длины файла (1200 строк) — как это уже
5
- * сделано для волн GetCourse. Набор спредится в `platformSetupTools` НА ПРЕЖНЕМ МЕСТЕ: реестр
6
- * сверяет точный порядок инструментов с `mcp-tools.json`, и перестановка сломала бы parity-тест.
7
- *
8
- * Чтение сценариев живёт отдельно, в `follow-up.ts`.
9
- */
10
- export declare const followUpSetupTools: (import("./shared.js").ToolDefinition<{
11
- platform_id: string;
12
- name: string;
13
- type: "MEETING_REMINDER" | "INACTIVE_USER_REACTIVATION" | "LOST_CLIENTS";
14
- trigger: "LOST_CLIENTS" | "USER_INACTIVITY" | "DEAL_CLOSED" | "BIRTHDAY_DATE" | "MEETING_TIME" | "CUSTOM_SCHEDULE";
15
- config: {
16
- [x: string]: unknown;
17
- };
18
- explicit_confirmation?: boolean | undefined;
19
- confirmation_reason?: string | undefined;
20
- sequence_id?: string | undefined;
21
- description?: string | null | undefined;
22
- enabled?: boolean | undefined;
23
- }> | import("./shared.js").ToolDefinition<{
24
- platform_id: string;
25
- sequence_id: string;
26
- name?: string | undefined;
27
- }> | import("./shared.js").ToolDefinition<{
1
+ /** Позиция и ожидаемый текст адресуют именно то сообщение, которое прочитал оператор. */
2
+ export declare const followUpSetupTools: import("./shared.js").ToolDefinition<{
28
3
  platform_id: string;
29
4
  sequence_id: string;
30
5
  step_index: number;
31
6
  content: string;
32
7
  expected_content: string;
33
- }>)[];
8
+ expected_version?: string | undefined;
9
+ }>[];
@@ -1,109 +1,42 @@
1
+ import { editVersionInstruction } from './edit-version.js';
2
+ import { followUpPromotionInstructions } from './follow-up-promotion-instructions.js';
1
3
  import { z } from 'zod';
2
- import { refineFollowUpConfig } from './follow-up.js';
3
- import { anyObjectSchema, compactObject, defineTool, followUpSequenceTypeSchema, followUpTriggerSchema, platformSetupConfirmationSchema, setupConfirmation, uuidSchema, withInstructions, } from './shared.js';
4
- /**
5
- * Потолок длины имени копии follow-up сценария. Зеркалит `@MaxLength` в DTO бэкенда и
6
- * `maxLength` в OpenAPI: расхождение означало бы поздний 400 вместо ранней понятной ошибки.
7
- */
8
- const FOLLOW_UP_NAME_MAX_LENGTH = 200;
9
- /**
10
- * МУТАЦИИ follow-up сценариев для Platform Setup Bridge.
11
- *
12
- * Вынесены из `platform-setup.ts` ТОЛЬКО ради лимита длины файла (1200 строк) — как это уже
13
- * сделано для волн GetCourse. Набор спредится в `platformSetupTools` НА ПРЕЖНЕМ МЕСТЕ: реестр
14
- * сверяет точный порядок инструментов с `mcp-tools.json`, и перестановка сломала бы parity-тест.
15
- *
16
- * Чтение сценариев живёт отдельно, в `follow-up.ts`.
17
- */
4
+ import { compactObject, defineTool, uuidSchema, withInstructions } from './shared.js';
5
+ /** Позиция и ожидаемый текст адресуют именно то сообщение, которое прочитал оператор. */
18
6
  export const followUpSetupTools = [
19
- defineTool({
20
- name: 'besales_followup_sequence_upsert',
21
- sideEffect: 'write',
22
- requiredFields: ['platform_id', 'name', 'type', 'trigger', 'config'],
23
- schema: z.object({
24
- platform_id: uuidSchema,
25
- sequence_id: uuidSchema.optional(),
26
- name: z.string(),
27
- description: z.string().nullable().optional(),
28
- type: followUpSequenceTypeSchema,
29
- enabled: z.boolean().optional(),
30
- trigger: followUpTriggerSchema,
31
- config: anyObjectSchema,
32
- ...platformSetupConfirmationSchema,
33
- })
34
- .superRefine(refineFollowUpConfig),
35
- createRequest: (input) => ({
36
- method: input.sequence_id ? 'PATCH' : 'POST',
37
- path: input.sequence_id
38
- ? `/platforms/${input.platform_id}/follow-up/sequences/${input.sequence_id}`
39
- : `/platforms/${input.platform_id}/follow-up/sequences`,
40
- body: compactObject({
41
- name: input.name,
42
- description: input.description,
43
- type: input.type,
44
- enabled: input.enabled,
45
- trigger: input.trigger,
46
- config: input.config,
47
- ...setupConfirmation(input),
48
- }),
49
- }),
50
- }),
51
- defineTool({
52
- name: 'besales_followup_sequence_clone',
53
- sideEffect: 'write',
54
- requiredFields: ['platform_id', 'sequence_id'],
55
- schema: z
56
- .object({
57
- platform_id: uuidSchema,
58
- // Источник копирования; обязан принадлежать platform_id (cross-platform не поддерживается).
59
- sequence_id: uuidSchema,
60
- // Имя копии. Не передано — сервер подберёт `<имя>-copy`, `<имя>-copy-2`, …
61
- // Лимит зеркалит DTO бэкенда: без него агент получал бы поздний 400 вместо ранней ошибки.
62
- name: z.string().max(FOLLOW_UP_NAME_MAX_LENGTH).optional(),
63
- })
64
- .strict(),
65
- createRequest: (input) => ({
66
- method: 'POST',
67
- path: `/platforms/${input.platform_id}/follow-up/sequences/${input.sequence_id}/clone`,
68
- body: compactObject({ name: input.name }),
69
- }),
70
- enhanceResponse: (response) => withInstructions(response, [
71
- 'Копия создана ВЫКЛЮЧЕННОЙ и такой останется, пока её не включат явно: прогресс follow-up изолирован по sequenceId, поэтому включённая копия слала бы те же касания тем же контактам вторым потоком.',
72
- 'Скопировано только ОПРЕДЕЛЕНИЕ (имя, тип, триггер, config). Прогресс контактов, история отправок и запланированные сообщения источника не копируются и не затрагиваются.',
73
- 'Перед включением копии убедись, что условия цепочек образуют строгое разбиение (например eq A / eq B / neq A AND neq B). Две цепочки без взаимоисключающих условий удвоят отправку — они выполняются независимо.',
74
- 'Копия остаётся на ТОЙ ЖЕ платформе. Для переноса на другую платформу используй besales_platform_clone_* — конфиг ссылается на статусы CRM, агентов, файлы и переменные этой платформы.',
75
- ]),
76
- }),
77
7
  defineTool({
78
8
  name: 'besales_followup_step_message_set',
79
9
  sideEffect: 'write',
80
10
  requiredFields: ['platform_id', 'sequence_id', 'step_index', 'content', 'expected_content'],
81
11
  schema: z
82
12
  .object({
13
+ expected_version: z
14
+ .string()
15
+ .regex(/^[1-9][0-9]{0,9}$/u)
16
+ .optional(),
83
17
  platform_id: uuidSchema,
84
18
  sequence_id: uuidSchema,
85
- // Позиция шага в config.steps, с нуля — ровно тот индекс, под которым шаг пришёл в
86
- // besales_followup_sequence_list.
87
19
  step_index: z.number().int().min(0),
88
- // Новый текст. Пустая строка запрещена: шаг без текста рантайм не отправит.
89
20
  content: z.string().min(1),
90
- // Текущий текст шага, каким его видел вызывающий. Пустая строка допустима — у шага из
91
- // одних вложений content законно отсутствует.
92
21
  expected_content: z.string(),
93
22
  })
94
23
  .strict(),
95
24
  createRequest: (input) => ({
96
25
  method: 'PATCH',
97
- path: `/platforms/${input.platform_id}/follow-up/sequences/${input.sequence_id}/steps/${input.step_index}/message`,
98
- body: { content: input.content, expectedContent: input.expected_content },
26
+ path: `/channels/${input.platform_id}/followup-sequences/${input.sequence_id}/steps/${input.step_index}/message`,
27
+ body: compactObject({
28
+ content: input.content,
29
+ expectedContent: input.expected_content,
30
+ expectedVersion: input.expected_version,
31
+ }),
99
32
  }),
100
33
  enhanceResponse: (response) => withInstructions(response, [
101
- 'Меняет ТОЛЬКО текст одного шага. Остальные шаги, описание цепочки, время, условия и каналы не затрагиваются — в отличие от besales_followup_sequence_upsert, который заменяет config целиком.',
102
- 'expected_content обязателен и берётся из свежего besales_followup_sequence_list: шаг адресуется ПОЗИЦИЕЙ, а позиция сдвигается вставкой нового шага. Не совпал — 409 с фактическим текстом, и это значит, что цепочку двигали: перечитай конфиг, найди нужный шаг заново.',
103
- '409 приходит и когда цепочку изменили между твоим чтением и записью. Повторять вслепую нельзя — сначала перечитать.',
104
- 'Ссылки {{link:слаг}} проверяются по каталогу воркспейса: незаведённый или архивный слаг — 400. Иначе человек получил бы текст вообще без ссылки, потому что страховка вырезает нераскрытый маркер.',
105
- 'Шаг-вебхук и шаблонный шаг отвергаются: текста, который уйдёт человеку, у них нет. У динамического шага правка проходит, но в ответе будет warnings — обычную отправку там генерирует LLM.',
106
- 'Правка применяется к ЖИВОЙ цепочке немедленно: ближайшее касание уйдёт уже новым текстом. Прогресс контактов и история отправок не затрагиваются.',
34
+ editVersionInstruction(),
35
+ 'Меняет только config.steps[step_index].messageConfig.content; позиция начинается с нуля. Время, условия, соседние шаги и описание сохраняются.',
36
+ 'expected_content бери из config.steps[i].messageConfig.content свежего besales_followup_sequence_list с sequence_id. После конфликта сохрани ввод и дождись явного решения человека.',
37
+ 'Шаг-вебхук и утверждённый шаблон отвергаются. Незаведённый или архивный слаг {{link:слаг}} даёт 400 до записи.',
38
+ 'Если config недоступен, сначала сохрани цепочку целиком формой дожимов. Это открывает точечную правку и для копии канала.',
39
+ ...followUpPromotionInstructions,
107
40
  ]),
108
41
  }),
109
42
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"follow-up-setup.js","sourceRoot":"","sources":["../../../src/tools/definitions/follow-up-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EACL,eAAe,EACf,aAAa,EACb,UAAU,EACV,0BAA0B,EAC1B,qBAAqB,EACrB,+BAA+B,EAC/B,iBAAiB,EACjB,UAAU,EACV,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU,CAAC;QACT,IAAI,EAAE,kCAAkC;QACxC,UAAU,EAAE,OAAO;QACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;QACpE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,UAAU,CAAC,QAAQ,EAAE;YAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC7C,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC/B,OAAO,EAAE,qBAAqB;YAC9B,MAAM,EAAE,eAAe;YACvB,GAAG,+BAA+B;SACnC,CAAC;aACC,WAAW,CAAC,oBAAoB,CAAC;QACpC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YAC5C,IAAI,EAAE,KAAK,CAAC,WAAW;gBACrB,CAAC,CAAC,cAAc,KAAK,CAAC,WAAW,wBAAwB,KAAK,CAAC,WAAW,EAAE;gBAC5E,CAAC,CAAC,cAAc,KAAK,CAAC,WAAW,sBAAsB;YACzD,IAAI,EAAE,aAAa,CAAC;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,iBAAiB,CAAC,KAAK,CAAC;aAC5B,CAAC;SACH,CAAC;KACH,CAAC;IACF,UAAU,CAAC;QACT,IAAI,EAAE,iCAAiC;QACvC,UAAU,EAAE,OAAO;QACnB,cAAc,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;QAC9C,MAAM,EAAE,CAAC;aACN,MAAM,CAAC;YACN,WAAW,EAAE,UAAU;YACvB,4FAA4F;YAC5F,WAAW,EAAE,UAAU;YACvB,2EAA2E;YAC3E,0FAA0F;YAC1F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE;SAC3D,CAAC;aACD,MAAM,EAAE;QACX,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,cAAc,KAAK,CAAC,WAAW,wBAAwB,KAAK,CAAC,WAAW,QAAQ;YACtF,IAAI,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;SAC1C,CAAC;QACF,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5B,gBAAgB,CAAC,QAAQ,EAAE;YACzB,qMAAqM;YACrM,0KAA0K;YAC1K,kNAAkN;YAClN,wLAAwL;SACzL,CAAC;KACL,CAAC;IACF,UAAU,CAAC;QACT,IAAI,EAAE,mCAAmC;QACzC,UAAU,EAAE,OAAO;QACnB,cAAc,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC;QAC3F,MAAM,EAAE,CAAC;aACN,MAAM,CAAC;YACN,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,UAAU;YACvB,mFAAmF;YACnF,kCAAkC;YAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,4EAA4E;YAC5E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,sFAAsF;YACtF,8CAA8C;YAC9C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;SAC7B,CAAC;aACD,MAAM,EAAE;QACX,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,cAAc,KAAK,CAAC,WAAW,wBAAwB,KAAK,CAAC,WAAW,UAAU,KAAK,CAAC,UAAU,UAAU;YAClH,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,gBAAgB,EAAE;SAC1E,CAAC;QACF,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5B,gBAAgB,CAAC,QAAQ,EAAE;YACzB,+LAA+L;YAC/L,2QAA2Q;YAC3Q,qHAAqH;YACrH,oMAAoM;YACpM,4LAA4L;YAC5L,mJAAmJ;SACpJ,CAAC;KACL,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"follow-up-setup.js","sourceRoot":"","sources":["../../../src/tools/definitions/follow-up-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEtF,yFAAyF;AACzF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU,CAAC;QACT,IAAI,EAAE,mCAAmC;QACzC,UAAU,EAAE,OAAO;QACnB,cAAc,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC;QAC3F,MAAM,EAAE,CAAC;aACN,MAAM,CAAC;YACN,gBAAgB,EAAE,CAAC;iBAChB,MAAM,EAAE;iBACR,KAAK,CAAC,oBAAoB,CAAC;iBAC3B,QAAQ,EAAE;YACb,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;SAC7B,CAAC;aACD,MAAM,EAAE;QACX,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,aAAa,KAAK,CAAC,WAAW,uBAAuB,KAAK,CAAC,WAAW,UAAU,KAAK,CAAC,UAAU,UAAU;YAChH,IAAI,EAAE,aAAa,CAAC;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,eAAe,EAAE,KAAK,CAAC,gBAAgB;gBACvC,eAAe,EAAE,KAAK,CAAC,gBAAgB;aACxC,CAAC;SACH,CAAC;QACF,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5B,gBAAgB,CAAC,QAAQ,EAAE;YACzB,sBAAsB,EAAE;YACxB,gJAAgJ;YAChJ,sLAAsL;YACtL,gHAAgH;YAChH,2HAA2H;YAC3H,GAAG,6BAA6B;SACjC,CAAC;KACL,CAAC;CACH,CAAC"}