@besales/mcp 0.48.0 → 1.0.0-beta.4

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 (604) hide show
  1. package/README.md +117 -163
  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 +54 -7
  23. package/dist/http/api-client.js +132 -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 +43 -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 +149 -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 +12389 -6657
  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 +81 -24
  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 +29 -39
  158. package/dist/tools/definitions/crm-platform.js +249 -352
  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/dialogue-reprocess.d.ts +5 -0
  197. package/dist/tools/definitions/dialogue-reprocess.js +107 -0
  198. package/dist/tools/definitions/dialogue-reprocess.js.map +1 -0
  199. package/dist/tools/definitions/edit-version-transport.test-fixtures.d.ts +13 -0
  200. package/dist/tools/definitions/edit-version-transport.test-fixtures.js +292 -0
  201. package/dist/tools/definitions/edit-version-transport.test-fixtures.js.map +1 -0
  202. package/dist/tools/definitions/edit-version.d.ts +5 -0
  203. package/dist/tools/definitions/edit-version.js +20 -0
  204. package/dist/tools/definitions/edit-version.js.map +1 -0
  205. package/dist/tools/definitions/external-api-channels.js +17 -15
  206. package/dist/tools/definitions/external-api-channels.js.map +1 -1
  207. package/dist/tools/definitions/feedback-document-access.d.ts +16 -0
  208. package/dist/tools/definitions/feedback-document-access.js +63 -0
  209. package/dist/tools/definitions/feedback-document-access.js.map +1 -0
  210. package/dist/tools/definitions/fixtures/shipped-setup-status.d.ts +3 -0
  211. package/dist/tools/definitions/fixtures/shipped-setup-status.js +9 -0
  212. package/dist/tools/definitions/fixtures/shipped-setup-status.js.map +1 -0
  213. package/dist/tools/definitions/follow-up-config.d.ts +79 -0
  214. package/dist/tools/definitions/follow-up-config.js +258 -0
  215. package/dist/tools/definitions/follow-up-config.js.map +1 -0
  216. package/dist/tools/definitions/follow-up-funnel-test.d.ts +4 -3
  217. package/dist/tools/definitions/follow-up-funnel-test.js +65 -52
  218. package/dist/tools/definitions/follow-up-funnel-test.js.map +1 -1
  219. package/dist/tools/definitions/follow-up-promotion-instructions.d.ts +2 -0
  220. package/dist/tools/definitions/follow-up-promotion-instructions.js +7 -0
  221. package/dist/tools/definitions/follow-up-promotion-instructions.js.map +1 -0
  222. package/dist/tools/definitions/follow-up-setup.d.ts +4 -28
  223. package/dist/tools/definitions/follow-up-setup.js +20 -87
  224. package/dist/tools/definitions/follow-up-setup.js.map +1 -1
  225. package/dist/tools/definitions/follow-up.d.ts +20 -122
  226. package/dist/tools/definitions/follow-up.js +200 -357
  227. package/dist/tools/definitions/follow-up.js.map +1 -1
  228. package/dist/tools/definitions/followup-getcourse-compat.d.ts +29 -0
  229. package/dist/tools/definitions/followup-getcourse-compat.js +62 -0
  230. package/dist/tools/definitions/followup-getcourse-compat.js.map +1 -0
  231. package/dist/tools/definitions/followup-sequence-config.schema.d.ts +10 -0
  232. package/dist/tools/definitions/followup-sequence-config.schema.js +14 -0
  233. package/dist/tools/definitions/followup-sequence-config.schema.js.map +1 -0
  234. package/dist/tools/definitions/funnel-analytics.d.ts +18 -0
  235. package/dist/tools/definitions/funnel-analytics.js +150 -0
  236. package/dist/tools/definitions/funnel-analytics.js.map +1 -0
  237. package/dist/tools/definitions/getcourse-anchor-refresh.d.ts +5 -9
  238. package/dist/tools/definitions/getcourse-anchor-refresh.js +26 -31
  239. package/dist/tools/definitions/getcourse-anchor-refresh.js.map +1 -1
  240. package/dist/tools/definitions/getcourse-cold-outbound-settings.d.ts +46 -0
  241. package/dist/tools/definitions/getcourse-cold-outbound-settings.js +37 -0
  242. package/dist/tools/definitions/getcourse-cold-outbound-settings.js.map +1 -0
  243. package/dist/tools/definitions/getcourse-cold-welcome.d.ts +14 -29
  244. package/dist/tools/definitions/getcourse-cold-welcome.js +190 -253
  245. package/dist/tools/definitions/getcourse-cold-welcome.js.map +1 -1
  246. package/dist/tools/definitions/getcourse-wave-welcome.messages.d.ts +10 -0
  247. package/dist/tools/definitions/getcourse-wave-welcome.messages.js +17 -0
  248. package/dist/tools/definitions/getcourse-wave-welcome.messages.js.map +1 -0
  249. package/dist/tools/definitions/help.js.map +1 -1
  250. package/dist/tools/definitions/icp-import-source.d.ts +75 -0
  251. package/dist/tools/definitions/icp-import-source.js +88 -0
  252. package/dist/tools/definitions/icp-import-source.js.map +1 -0
  253. package/dist/tools/definitions/inbound-analytics.d.ts +13 -0
  254. package/dist/tools/definitions/inbound-analytics.js +55 -0
  255. package/dist/tools/definitions/inbound-analytics.js.map +1 -0
  256. package/dist/tools/definitions/instagram-comment.templates.d.ts +19 -0
  257. package/dist/tools/definitions/instagram-comment.templates.js +34 -0
  258. package/dist/tools/definitions/instagram-comment.templates.js.map +1 -0
  259. package/dist/tools/definitions/instagram-settings-compat.d.ts +33 -0
  260. package/dist/tools/definitions/instagram-settings-compat.js +7 -0
  261. package/dist/tools/definitions/instagram-settings-compat.js.map +1 -0
  262. package/dist/tools/definitions/knowledge-chunking.d.ts +42 -0
  263. package/dist/tools/definitions/knowledge-chunking.js +83 -0
  264. package/dist/tools/definitions/knowledge-chunking.js.map +1 -0
  265. package/dist/tools/definitions/knowledge-space-search-fields.d.ts +12 -0
  266. package/dist/tools/definitions/knowledge-space-search-fields.js +30 -0
  267. package/dist/tools/definitions/knowledge-space-search-fields.js.map +1 -0
  268. package/dist/tools/definitions/knowledge.d.ts +24 -14
  269. package/dist/tools/definitions/knowledge.js +342 -233
  270. package/dist/tools/definitions/knowledge.js.map +1 -1
  271. package/dist/tools/definitions/legacy-trigger-repeat.d.ts +17 -0
  272. package/dist/tools/definitions/legacy-trigger-repeat.js +53 -0
  273. package/dist/tools/definitions/legacy-trigger-repeat.js.map +1 -0
  274. package/dist/tools/definitions/link-tracking.d.ts +8 -0
  275. package/dist/tools/definitions/link-tracking.js +141 -38
  276. package/dist/tools/definitions/link-tracking.js.map +1 -1
  277. package/dist/tools/definitions/mailing-variant-content.d.ts +75 -0
  278. package/dist/tools/definitions/mailing-variant-content.js +73 -0
  279. package/dist/tools/definitions/mailing-variant-content.js.map +1 -0
  280. package/dist/tools/definitions/model-comparison.d.ts +2 -1
  281. package/dist/tools/definitions/model-comparison.js +4 -5
  282. package/dist/tools/definitions/model-comparison.js.map +1 -1
  283. package/dist/tools/definitions/money-currency.d.ts +5 -0
  284. package/dist/tools/definitions/money-currency.js +10 -0
  285. package/dist/tools/definitions/money-currency.js.map +1 -0
  286. package/dist/tools/definitions/operator-workflow.d.ts +5 -5
  287. package/dist/tools/definitions/operator-workflow.js +80 -27
  288. package/dist/tools/definitions/operator-workflow.js.map +1 -1
  289. package/dist/tools/definitions/platform-funnel-analytics.d.ts +42 -0
  290. package/dist/tools/definitions/platform-funnel-analytics.js +72 -0
  291. package/dist/tools/definitions/platform-funnel-analytics.js.map +1 -0
  292. package/dist/tools/definitions/platform-getcourse-wave-field-bindings.d.ts +42 -0
  293. package/dist/tools/definitions/platform-getcourse-wave-field-bindings.js +51 -0
  294. package/dist/tools/definitions/platform-getcourse-wave-field-bindings.js.map +1 -0
  295. package/dist/tools/definitions/platform-settings-limits.d.ts +5 -0
  296. package/dist/tools/definitions/platform-settings-limits.js +6 -0
  297. package/dist/tools/definitions/platform-settings-limits.js.map +1 -0
  298. package/dist/tools/definitions/platform-settings-shipped-form.d.ts +37 -0
  299. package/dist/tools/definitions/platform-settings-shipped-form.js +310 -0
  300. package/dist/tools/definitions/platform-settings-shipped-form.js.map +1 -0
  301. package/dist/tools/definitions/platform-settings-update.d.ts +300 -0
  302. package/dist/tools/definitions/platform-settings-update.js +134 -0
  303. package/dist/tools/definitions/platform-settings-update.js.map +1 -0
  304. package/dist/tools/definitions/{getcourse-wave.d.ts → platform-setup-wave.d.ts} +75 -6
  305. package/dist/tools/definitions/platform-setup-wave.js +1079 -0
  306. package/dist/tools/definitions/platform-setup-wave.js.map +1 -0
  307. package/dist/tools/definitions/platform-setup.d.ts +697 -224
  308. package/dist/tools/definitions/platform-setup.js +313 -752
  309. package/dist/tools/definitions/platform-setup.js.map +1 -1
  310. package/dist/tools/definitions/platform-widget-page-rules.schema.d.ts +10 -0
  311. package/dist/tools/definitions/platform-widget-page-rules.schema.js +7 -0
  312. package/dist/tools/definitions/platform-widget-page-rules.schema.js.map +1 -0
  313. package/dist/tools/definitions/prompt-authoring.constants.d.ts +2 -0
  314. package/dist/tools/definitions/prompt-authoring.constants.js +3 -0
  315. package/dist/tools/definitions/prompt-authoring.constants.js.map +1 -0
  316. package/dist/tools/definitions/prompt-batch-controls.d.ts +5 -0
  317. package/dist/tools/definitions/prompt-batch-controls.js +40 -0
  318. package/dist/tools/definitions/prompt-batch-controls.js.map +1 -0
  319. package/dist/tools/definitions/prompt-draft-authoring.d.ts +5 -0
  320. package/dist/tools/definitions/prompt-draft-authoring.js +24 -0
  321. package/dist/tools/definitions/prompt-draft-authoring.js.map +1 -0
  322. package/dist/tools/definitions/prompt-text-projection.d.ts +11 -0
  323. package/dist/tools/definitions/prompt-text-projection.js +62 -0
  324. package/dist/tools/definitions/prompt-text-projection.js.map +1 -0
  325. package/dist/tools/definitions/reviewer-paid.d.ts +19 -0
  326. package/dist/tools/definitions/reviewer-paid.js +115 -0
  327. package/dist/tools/definitions/reviewer-paid.js.map +1 -0
  328. package/dist/tools/definitions/routing-condition-projection.d.ts +31 -0
  329. package/dist/tools/definitions/routing-condition-projection.js +97 -0
  330. package/dist/tools/definitions/routing-condition-projection.js.map +1 -0
  331. package/dist/tools/definitions/schedule-selection-hints.d.ts +3 -0
  332. package/dist/tools/definitions/schedule-selection-hints.js +42 -0
  333. package/dist/tools/definitions/schedule-selection-hints.js.map +1 -0
  334. package/dist/tools/definitions/{scheduled-tasks.d.ts → scheduled-task-alias.d.ts} +12 -10
  335. package/dist/tools/definitions/scheduled-task-alias.js +207 -0
  336. package/dist/tools/definitions/scheduled-task-alias.js.map +1 -0
  337. package/dist/tools/definitions/session.js +3 -3
  338. package/dist/tools/definitions/session.js.map +1 -1
  339. package/dist/tools/definitions/setup-init-operation.schema.d.ts +2 -0
  340. package/dist/tools/definitions/setup-init-operation.schema.js +6 -0
  341. package/dist/tools/definitions/setup-init-operation.schema.js.map +1 -0
  342. package/dist/tools/definitions/shared-input.helpers.d.ts +51 -0
  343. package/dist/tools/definitions/shared-input.helpers.js +323 -0
  344. package/dist/tools/definitions/shared-input.helpers.js.map +1 -0
  345. package/dist/tools/definitions/shared.d.ts +401 -307
  346. package/dist/tools/definitions/shared.js +430 -652
  347. package/dist/tools/definitions/shared.js.map +1 -1
  348. package/dist/tools/definitions/shipped-output-names.d.ts +19 -0
  349. package/dist/tools/definitions/shipped-output-names.js +123 -0
  350. package/dist/tools/definitions/shipped-output-names.js.map +1 -0
  351. package/dist/tools/definitions/task-state.d.ts +4 -4
  352. package/dist/tools/definitions/task-state.js +2 -1
  353. package/dist/tools/definitions/task-state.js.map +1 -1
  354. package/dist/tools/definitions/telegram-personal-capacity.d.ts +4 -0
  355. package/dist/tools/definitions/telegram-personal-capacity.js +18 -0
  356. package/dist/tools/definitions/telegram-personal-capacity.js.map +1 -0
  357. package/dist/tools/definitions/telegram-personal-management.d.ts +34 -0
  358. package/dist/tools/definitions/telegram-personal-management.js +139 -0
  359. package/dist/tools/definitions/telegram-personal-management.js.map +1 -0
  360. package/dist/tools/definitions/telegram-personal-restrictions.d.ts +19 -0
  361. package/dist/tools/definitions/telegram-personal-restrictions.js +109 -0
  362. package/dist/tools/definitions/telegram-personal-restrictions.js.map +1 -0
  363. package/dist/tools/definitions/telegram-pool-policy.d.ts +8 -0
  364. package/dist/tools/definitions/telegram-pool-policy.js +56 -0
  365. package/dist/tools/definitions/telegram-pool-policy.js.map +1 -0
  366. package/dist/tools/definitions/touch-history-alias.d.ts +4 -0
  367. package/dist/tools/definitions/touch-history-alias.js +99 -0
  368. package/dist/tools/definitions/touch-history-alias.js.map +1 -0
  369. package/dist/tools/definitions/trigger-action-item.schema.d.ts +254 -0
  370. package/dist/tools/definitions/trigger-action-item.schema.js +121 -0
  371. package/dist/tools/definitions/trigger-action-item.schema.js.map +1 -0
  372. package/dist/tools/definitions/trigger-argument.schema.d.ts +14 -0
  373. package/dist/tools/definitions/trigger-argument.schema.js +23 -0
  374. package/dist/tools/definitions/trigger-argument.schema.js.map +1 -0
  375. package/dist/tools/definitions/trigger-claim-alias.d.ts +10 -0
  376. package/dist/tools/definitions/trigger-claim-alias.js +90 -0
  377. package/dist/tools/definitions/trigger-claim-alias.js.map +1 -0
  378. package/dist/tools/definitions/trigger-echo-projection.d.ts +1 -0
  379. package/dist/tools/definitions/trigger-echo-projection.js +41 -0
  380. package/dist/tools/definitions/trigger-echo-projection.js.map +1 -0
  381. package/dist/tools/definitions/trigger-upsert.tool.d.ts +41 -0
  382. package/dist/tools/definitions/trigger-upsert.tool.js +159 -0
  383. package/dist/tools/definitions/trigger-upsert.tool.js.map +1 -0
  384. package/dist/tools/definitions/v15-port-descriptions.d.ts +11 -0
  385. package/dist/tools/definitions/v15-port-descriptions.js +30 -0
  386. package/dist/tools/definitions/v15-port-descriptions.js.map +1 -0
  387. package/dist/tools/definitions/variables.d.ts +44 -0
  388. package/dist/tools/definitions/variables.js +310 -0
  389. package/dist/tools/definitions/variables.js.map +1 -0
  390. package/dist/tools/definitions/voice-action-input.d.ts +9 -0
  391. package/dist/tools/definitions/voice-action-input.js +141 -0
  392. package/dist/tools/definitions/voice-action-input.js.map +1 -0
  393. package/dist/tools/definitions/widget-customization-compat.d.ts +51 -0
  394. package/dist/tools/definitions/widget-customization-compat.js +23 -0
  395. package/dist/tools/definitions/widget-customization-compat.js.map +1 -0
  396. package/dist/tools/definitions.d.ts +1134 -617
  397. package/dist/tools/definitions.js +63 -27
  398. package/dist/tools/definitions.js.map +1 -1
  399. package/dist/tools/description-localization.js +3 -2
  400. package/dist/tools/description-localization.js.map +1 -1
  401. package/dist/tools/follow-up-request.d.ts +19 -0
  402. package/dist/tools/follow-up-request.js +81 -0
  403. package/dist/tools/follow-up-request.js.map +1 -0
  404. package/dist/tools/followup-revision.d.ts +4 -0
  405. package/dist/tools/followup-revision.js +29 -0
  406. package/dist/tools/followup-revision.js.map +1 -0
  407. package/dist/tools/incomplete-list.js +4 -0
  408. package/dist/tools/incomplete-list.js.map +1 -1
  409. package/dist/tools/inventory.js +47 -11
  410. package/dist/tools/inventory.js.map +1 -1
  411. package/dist/tools/operation-recovery.d.ts +4 -0
  412. package/dist/tools/operation-recovery.js +33 -0
  413. package/dist/tools/operation-recovery.js.map +1 -0
  414. package/dist/tools/registry-mapping-primary.cases.d.ts +2 -0
  415. package/dist/tools/registry-mapping-primary.cases.js +765 -0
  416. package/dist/tools/registry-mapping-primary.cases.js.map +1 -0
  417. package/dist/tools/registry-mapping-secondary.cases.d.ts +2 -0
  418. package/dist/tools/registry-mapping-secondary.cases.js +626 -0
  419. package/dist/tools/registry-mapping-secondary.cases.js.map +1 -0
  420. package/dist/tools/registry-mapping.cases.d.ts +8 -0
  421. package/dist/tools/registry-mapping.cases.js +170 -0
  422. package/dist/tools/registry-mapping.cases.js.map +1 -0
  423. package/dist/tools/registry-test-fixtures.d.ts +50 -0
  424. package/dist/tools/registry-test-fixtures.js +120 -0
  425. package/dist/tools/registry-test-fixtures.js.map +1 -0
  426. package/dist/tools/registry.d.ts +2 -0
  427. package/dist/tools/registry.js +84 -52
  428. package/dist/tools/registry.js.map +1 -1
  429. package/dist/tools/result.d.ts +1 -0
  430. package/dist/tools/result.js +90 -22
  431. package/dist/tools/result.js.map +1 -1
  432. package/dist/tools/toolsets.d.ts +16 -0
  433. package/dist/tools/toolsets.js +25 -1
  434. package/dist/tools/toolsets.js.map +1 -1
  435. package/dist/types/api-contract.gen.d.ts +131892 -22453
  436. package/dist/utils/credential-signatures.d.ts +3 -0
  437. package/dist/utils/credential-signatures.js +10 -0
  438. package/dist/utils/credential-signatures.js.map +1 -0
  439. package/dist/utils/data-source-column-name.d.ts +10 -0
  440. package/dist/utils/data-source-column-name.js +36 -0
  441. package/dist/utils/data-source-column-name.js.map +1 -0
  442. package/dist/utils/logger.d.ts +1 -0
  443. package/dist/utils/logger.js +32 -8
  444. package/dist/utils/logger.js.map +1 -1
  445. package/dist/utils/secret-read-boundary.d.ts +2 -0
  446. package/dist/utils/secret-read-boundary.js +88 -0
  447. package/dist/utils/secret-read-boundary.js.map +1 -0
  448. package/dist/utils/setup-secrets.d.ts +4 -0
  449. package/dist/utils/setup-secrets.js +40 -0
  450. package/dist/utils/setup-secrets.js.map +1 -0
  451. package/docs/agent-models.md +9 -0
  452. package/docs/agent-usage-guide.full.ru.md +1 -4
  453. package/docs/analytics-contract.md +67 -0
  454. package/docs/async-operation-lifecycle.md +10 -3
  455. package/docs/connect.ru.md +144 -4
  456. package/docs/contact-company-profile.md +17 -0
  457. package/docs/contact-recommendations.md +7 -0
  458. package/docs/crm-stage-pool.md +73 -0
  459. package/docs/customer-data.md +61 -0
  460. package/docs/dialogue-reprocess.md +37 -0
  461. package/docs/edit-versions.md +36 -0
  462. package/docs/failure-semantics.md +17 -9
  463. package/docs/help-navigation.md +15 -42
  464. package/docs/host-compatibility-matrix.md +72 -93
  465. package/docs/host-setup.md +33 -35
  466. package/docs/invariants/public-api-and-contracts.md +16 -0
  467. package/docs/legacy-action-settings.md +21 -0
  468. package/docs/main-transfer-dependencies.md +38 -0
  469. package/docs/mcp2-parity.md +50 -0
  470. package/docs/modules/analytics.md +79 -0
  471. package/docs/modules/besales-mcp.md +144 -0
  472. package/docs/modules/dialog-review-report.md +38 -0
  473. package/docs/modules/dialogue-followup-adapters.md +39 -0
  474. package/docs/modules/message-reactions.md +17 -0
  475. package/docs/modules/network-mode.md +284 -0
  476. package/docs/modules/prompt-batch-and-dialogue-controls.md +69 -0
  477. package/docs/pii-policy.md +21 -16
  478. package/docs/response-size-budget.md +197 -7
  479. package/docs/secret-read-boundary.md +102 -0
  480. package/docs/task-state.md +7 -2
  481. package/docs/telegram-personal-management.md +50 -0
  482. package/docs/telegram-personal-restrictions.md +87 -0
  483. package/docs/telegram-pool-policy.md +19 -0
  484. package/docs/tool-effects.md +15 -9
  485. package/docs/tool-surface.md +205 -4
  486. package/docs/voice-actions-and-inbox.md +95 -0
  487. package/docs/wazzup-instagram-comments.md +26 -0
  488. package/package.json +17 -10
  489. package/scripts/api-source-loader.spec.mjs +40 -0
  490. package/scripts/audit-bridge-controls.mjs +129 -0
  491. package/scripts/audit-revert-mutants.mjs +107 -0
  492. package/scripts/bridge-api-input.spec.mjs +98 -0
  493. package/scripts/bridge-controls-mutants.mjs +130 -0
  494. package/scripts/brx3-shipped-refusals.spec.mjs +149 -0
  495. package/scripts/brx4-ledger-payload.spec.mjs +127 -0
  496. package/scripts/build-onprem.mjs +108 -0
  497. package/scripts/connect-clients.sh +141 -0
  498. package/scripts/connect-scopes.mjs +166 -0
  499. package/scripts/connect-scopes.spec.mjs +83 -0
  500. package/scripts/emit-personal-link-carrier.mjs +31 -0
  501. package/scripts/emit-setup-init-schemas.mjs +24 -0
  502. package/scripts/emit-tool-routes.mjs +878 -0
  503. package/scripts/emit-tool-routes.spec.mjs +300 -0
  504. package/scripts/followup-registry.spec.mjs +107 -0
  505. package/scripts/generate-crm-rotation-contract.mjs +98 -0
  506. package/scripts/generate-followup-session-contract.mjs +16 -0
  507. package/scripts/getcourse-text-source.spec.mjs +110 -0
  508. package/scripts/icp-import-verification/mutate.cjs +70 -0
  509. package/scripts/import-secret-read-contract.mjs +53 -0
  510. package/scripts/install-claude-desktop.js +1 -1
  511. package/scripts/lag-decisions.mjs +37 -0
  512. package/scripts/lag-decisions.spec.mjs +87 -0
  513. package/scripts/lag-open-task-owners.mjs +46 -0
  514. package/scripts/lag-open-task-owners.spec.mjs +78 -0
  515. package/scripts/lag-payload.mjs +10 -0
  516. package/scripts/legacy-action-lag.spec.mjs +22 -0
  517. package/scripts/legacy-field-refusal.shipped.spec.mjs +99 -0
  518. package/scripts/mcpcompat-handler.mjs +34 -0
  519. package/scripts/mcpcompat-loader.mjs +36 -0
  520. package/scripts/mcpcompat-typescript.mjs +3 -0
  521. package/scripts/platform-settings-shipped-parity.spec.mjs +89 -0
  522. package/scripts/prbr-round1-recheck.spec.mjs +605 -0
  523. package/scripts/prbr-shipped-compatibility.spec.mjs +276 -0
  524. package/scripts/publish-mcp-registry.mjs +98 -0
  525. package/scripts/publish-mcp-registry.spec.mjs +68 -0
  526. package/scripts/record-scheduled-task-call.mjs +26 -0
  527. package/scripts/refusal-probe.mjs +17 -0
  528. package/scripts/refusal-probe.spec.mjs +29 -0
  529. package/scripts/registry-diff.mjs +502 -0
  530. package/scripts/registry-diff.spec.mjs +787 -0
  531. package/scripts/request-query.mjs +43 -0
  532. package/scripts/request-query.spec.mjs +82 -0
  533. package/scripts/route-lag.mjs +23 -0
  534. package/scripts/route-lag.spec.mjs +30 -0
  535. package/scripts/sample-args.mjs +174 -0
  536. package/scripts/sample-args.spec.mjs +160 -0
  537. package/scripts/shipped-definitions.mjs +197 -0
  538. package/scripts/shipped-definitions.spec.mjs +57 -0
  539. package/scripts/shipped-inputs.spec.mjs +136 -0
  540. package/scripts/shipped-recordings.spec.mjs +19 -0
  541. package/scripts/shipped-ref.d.mts +5 -0
  542. package/scripts/shipped-ref.mjs +20 -0
  543. package/scripts/shipped-ref.spec.mjs +59 -0
  544. package/scripts/shipped-registry.mjs +107 -0
  545. package/scripts/shipped-sample-candidates.mjs +69 -0
  546. package/scripts/shipped-sample-candidates.spec.mjs +117 -0
  547. package/scripts/shipped-sample.mjs +871 -0
  548. package/scripts/shipped-sample.spec.mjs +451 -0
  549. package/scripts/sync-agent-model-schemas.mjs +72 -0
  550. package/scripts/sync-api-contracts.mjs +85 -0
  551. package/scripts/sync-api-contracts.spec.mjs +144 -0
  552. package/scripts/sync-contract-ledger-schemas.mjs +161 -0
  553. package/scripts/sync-crm-stage-pool-schema.mjs +85 -0
  554. package/scripts/sync-prompt-draft-schema.mjs +92 -0
  555. package/scripts/sync-route-map.mjs +94 -0
  556. package/scripts/sync-schema-descriptions.mjs +25 -0
  557. package/scripts/sync-tool-inventory.mjs +27 -0
  558. package/scripts/sync-trigger-argument-schema.mjs +97 -0
  559. package/scripts/sync-trigger-argument-schema.spec.mjs +91 -0
  560. package/scripts/sync-trigger-event-schema.mjs +20 -0
  561. package/scripts/sync-trigger-repeat-mapping.mjs +12 -0
  562. package/scripts/sync-trigger-task-schema.mjs +45 -0
  563. package/scripts/sync-voice-actions-contract.mjs +67 -0
  564. package/scripts/sync-voice-actions-tools.mjs +97 -0
  565. package/scripts/sync-wave-id-schemas.mjs +55 -0
  566. package/scripts/telegram-personal-confirmation-mutants.mjs +74 -0
  567. package/scripts/tool-input-schemas.mjs +46 -0
  568. package/scripts/tool-input-schemas.spec.mjs +50 -0
  569. package/scripts/verify-followup-adapters.mjs +235 -0
  570. package/scripts/verify-secret-read-import.mjs +84 -0
  571. package/scripts/verify-secret-read-mutants.mjs +143 -0
  572. package/dist/tools/definitions/analytics.d.ts +0 -40
  573. package/dist/tools/definitions/analytics.js +0 -233
  574. package/dist/tools/definitions/analytics.js.map +0 -1
  575. package/dist/tools/definitions/broadcast-mailing-variants.d.ts +0 -41
  576. package/dist/tools/definitions/broadcast-mailing-variants.js +0 -194
  577. package/dist/tools/definitions/broadcast-mailing-variants.js.map +0 -1
  578. package/dist/tools/definitions/dialogue-audit.d.ts +0 -38
  579. package/dist/tools/definitions/dialogue-audit.js +0 -292
  580. package/dist/tools/definitions/dialogue-audit.js.map +0 -1
  581. package/dist/tools/definitions/getcourse-wave.js +0 -519
  582. package/dist/tools/definitions/getcourse-wave.js.map +0 -1
  583. package/dist/tools/definitions/operational-overview.d.ts +0 -3
  584. package/dist/tools/definitions/operational-overview.js +0 -23
  585. package/dist/tools/definitions/operational-overview.js.map +0 -1
  586. package/dist/tools/definitions/scheduled-tasks.js +0 -173
  587. package/dist/tools/definitions/scheduled-tasks.js.map +0 -1
  588. package/dist/tools/definitions/trigger-contact-claims.d.ts +0 -7
  589. package/dist/tools/definitions/trigger-contact-claims.js +0 -60
  590. package/dist/tools/definitions/trigger-contact-claims.js.map +0 -1
  591. package/dist/tools/registry-mapping-cases-core.d.ts +0 -38
  592. package/dist/tools/registry-mapping-cases-core.js +0 -963
  593. package/dist/tools/registry-mapping-cases-core.js.map +0 -1
  594. package/dist/tools/registry-mapping-cases-platform.d.ts +0 -2
  595. package/dist/tools/registry-mapping-cases-platform.js +0 -1052
  596. package/dist/tools/registry-mapping-cases-platform.js.map +0 -1
  597. package/dist/tools/trigger-action-config.d.ts +0 -49
  598. package/dist/tools/trigger-action-config.js +0 -171
  599. package/dist/tools/trigger-action-config.js.map +0 -1
  600. package/docs/evals/model-behavior-scorecard.md +0 -80
  601. package/docs/operation-coverage.md +0 -114
  602. package/scripts/mock-credentials.js +0 -77
  603. package/scripts/model-eval-server.js +0 -213
  604. package/scripts/run-model-eval.js +0 -447
@@ -1,10 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  import { compactObject, defineTool, uuidSchema, withInstructions } from './shared.js';
3
3
  // Зеркало MAX_MODELS в prompt-services model-comparison.constants.ts (размер каталога).
4
- // ⚠️ Зеркало ручное и уже отставало (23 против 24 в каталоге): при отставании zod режет
5
- // законный набор моделей ещё до запроса — оператор, попросивший сравнить весь каталог,
6
- // получает отказ клиента, а не сервера. Бампится вместе с MAX_MODELS.
7
- const MODEL_COMPARISON_MAX_MODELS = 35;
4
+ // ⚠️ Зеркало ручное и уже отставало (23 против 24 у прежней системы, 21 против 35 у новой): при отставании схема
5
+ // режет законный набор моделей ещё до запроса. Равенство с исполнителем и с JSON-схемой держит model-comparison.spec.ts.
6
+ export const MODEL_COMPARISON_MAX_MODELS = 36;
8
7
  // Оценка ИИ по одной модели (eval-submit). Маппится snake→camel в createRequest.
9
8
  const modelEvalPerModelSchema = z.object({
10
9
  model: z.string(),
@@ -29,7 +28,7 @@ export const modelComparisonTools = [
29
28
  enhanceResponse: (response) => withInstructions(response, [
30
29
  'Каталог моделей сравнения: id, label, tier, bestFor-теги «когда что лучше», доступность провайдера, лимиты.',
31
30
  'Выбери ~5 моделей под use-case агента по bestFor; defaultModelIds — разумный набор по умолчанию.',
32
- 'available=false → провайдер не настроен (GLM и prefixed qwen/* → OPENROUTER_API_KEY; qwen3.8-flash → DASHSCOPE_API_KEY; glm-5.3* без префикса (прямой Z.AI) → ZAI_API_KEY; yandexgpt/aliceai → YANDEX_API_KEY+YANDEX_FOLDER_ID).',
31
+ 'available=false → провайдер не настроен (модели с префиксом провайдера — claude, grok, deepseek, gemini, GLM, qwen/* и другие → OPENROUTER_API_KEY; qwen3.8-flash → DASHSCOPE_API_KEY; для GLM выбирай z-ai/glm-5.3, z-ai/glm-5.3-flash, z-ai/glm-5.3-flashx через OpenRouter; yandexgpt/aliceai → YANDEX_API_KEY+YANDEX_FOLDER_ID).',
33
32
  ]),
34
33
  }),
35
34
  defineTool({
@@ -1 +1 @@
1
- {"version":3,"file":"model-comparison.js","sourceRoot":"","sources":["../../../src/tools/definitions/model-comparison.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-comparison.js","sourceRoot":"","sources":["../../../src/tools/definitions/model-comparison.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ /** Тот же вход, что у MoneyCurrencyQueryDto; без догадок о валюте школы. */
3
+ export declare const moneyCurrencySchema: z.ZodString;
4
+ /** Инструкции ассистенту: серверные деньги не пересчитываются в мосте. */
5
+ export declare const MONEY_CURRENCY_INSTRUCTIONS: readonly ["currency — исходная валюта суммы. Фильтр принимает код ISO 4217 из трёх заглавных букв или UNKNOWN для неизвестной валюты. Без фильтра скалярные суммы включают валюту школы и прежние суммы с неизвестной валютой; это не итог всех валют.", "moneyTotalsByCurrency — отдельные итоги по исходным валютам. Разные валюты не складывай и по курсу не пересчитывай. currency=null означает «валюта неизвестна»; displayCurrency — только подпись для показа, currencyAssumed=true — предположение, а не доказанная валюта платежа.", "Точные суммы amountExact и другие поля с суффиксом Exact, если они есть, сохраняй как десятичные строки без Number, parseFloat и округления; они предпочтительнее числового приближения. В валютных разрезах строковое amount тоже точное. Отсутствующую точную сумму не придумывай."];
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ /** Тот же вход, что у MoneyCurrencyQueryDto; без догадок о валюте школы. */
3
+ export const moneyCurrencySchema = z.string().regex(/^(?:[A-Z]{3}|UNKNOWN)$/);
4
+ /** Инструкции ассистенту: серверные деньги не пересчитываются в мосте. */
5
+ export const MONEY_CURRENCY_INSTRUCTIONS = [
6
+ 'currency — исходная валюта суммы. Фильтр принимает код ISO 4217 из трёх заглавных букв или UNKNOWN для неизвестной валюты. Без фильтра скалярные суммы включают валюту школы и прежние суммы с неизвестной валютой; это не итог всех валют.',
7
+ 'moneyTotalsByCurrency — отдельные итоги по исходным валютам. Разные валюты не складывай и по курсу не пересчитывай. currency=null означает «валюта неизвестна»; displayCurrency — только подпись для показа, currencyAssumed=true — предположение, а не доказанная валюта платежа.',
8
+ 'Точные суммы amountExact и другие поля с суффиксом Exact, если они есть, сохраняй как десятичные строки без Number, parseFloat и округления; они предпочтительнее числового приближения. В валютных разрезах строковое amount тоже точное. Отсутствующую точную сумму не придумывай.',
9
+ ];
10
+ //# sourceMappingURL=money-currency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"money-currency.js","sourceRoot":"","sources":["../../../src/tools/definitions/money-currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,4EAA4E;AAC5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAE9E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,6OAA6O;IAC7O,oRAAoR;IACpR,sRAAsR;CAC9Q,CAAC"}
@@ -1,20 +1,20 @@
1
1
  export declare const operatorWorkflowTools: (import("./shared.js").ToolDefinition<{
2
2
  workspace_id?: string | undefined;
3
3
  }> | import("./shared.js").ToolDefinition<{
4
- page: number;
5
- limit: number;
6
4
  workspace_id?: string | undefined;
7
5
  status?: "IN_PROGRESS" | "WAITING_OPERATOR" | "WAITING_CUSTOMER" | "RESOLVED" | undefined;
8
6
  workspace_operator_id?: string | undefined;
9
7
  contact_id?: string | undefined;
8
+ page?: number | undefined;
9
+ limit?: number | undefined;
10
10
  }> | import("./shared.js").ToolDefinition<{
11
- contact_id: string;
11
+ conversation_id: string;
12
12
  workspace_id?: string | undefined;
13
13
  }> | import("./shared.js").ToolDefinition<{
14
- contact_id: string;
14
+ conversation_id: string;
15
15
  workspace_operator_id: string | null;
16
16
  expected_workspace_operator_id: string | null;
17
- expected_assigned_operator_at: string | null;
17
+ expected_assigned_at: string | null;
18
18
  explicit_confirmation: true;
19
19
  workspace_id?: string | undefined;
20
20
  }>)[];
@@ -1,5 +1,18 @@
1
1
  import { z } from 'zod';
2
2
  import { defineTool, uuidSchema, withInstructions } from './shared.js';
3
+ /**
4
+ * Операторский поток: реестр сотрудников, очередь, чтение и запись назначения.
5
+ *
6
+ * ⛔ Ключ чтения и записи назначения — БЕСЕДА, а не карточка контакта. Отгруженная линия принимала
7
+ * карточку, потому что там строка означала пару «человек × площадка». У v2 карточка объединяет
8
+ * каналы: у человека с двумя каналами бесед две, и по карточке нельзя выбрать, в какую писать.
9
+ * Переименование аргумента объявлено строкой реестра отставания.
10
+ *
11
+ * ⛔ Ручной переход состояния диалога инструментом НЕ выдаётся, хотя маршрут построен: отгруженная
12
+ * линия такого инструмента не имеет, и расширять поверхность моста без запроса нельзя. Строка
13
+ * очереди пустеет и без него — её чистит координатор передачи (возврат боту, истечение срока,
14
+ * ночное закрытие).
15
+ */
3
16
  const nullableUuidSchema = z.union([uuidSchema, z.null()]);
4
17
  const nullableIsoDateSchema = z.union([z.string().datetime({ offset: true }), z.null()]);
5
18
  export const operatorWorkflowTools = [
@@ -15,8 +28,8 @@ export const operatorWorkflowTools = [
15
28
  path: `/workspaces/${input.workspace_id}/workspace-operators`,
16
29
  }),
17
30
  enhanceResponse: (response) => withInstructions(response, [
18
- 'Это workspace operators Besales. Не используй их ID как CRM operator ID.',
19
- 'assignable=false означает, что сотрудника можно использовать для фильтра истории, но нельзя назначать сейчас.',
31
+ 'Это сотрудники рабочей области, а не операторы CRM: их идентификаторы в CRM не подставлять.',
32
+ 'assignable=false означает «нельзя назначить СЕЙЧАС», а не «человека нет»: за ним могут быть закреплены диалоги, и фильтр по нему работает.',
20
33
  ]),
21
34
  }),
22
35
  defineTool({
@@ -25,51 +38,65 @@ export const operatorWorkflowTools = [
25
38
  closedWorld: true,
26
39
  requiredFields: [],
27
40
  defaultWorkspaceId: true,
28
- resultPolicy: { neverTruncate: true, narrowingHint: 'Уменьшите limit или перейдите на следующую page.' },
41
+ resultPolicy: {
42
+ neverTruncate: true,
43
+ narrowingHint: 'Уменьшите limit либо перейдите на следующую page.',
44
+ },
29
45
  schema: z
30
46
  .object({
31
47
  workspace_id: uuidSchema.optional(),
32
- status: z.enum(['WAITING_OPERATOR', 'IN_PROGRESS', 'WAITING_CUSTOMER', 'RESOLVED']).optional(),
48
+ status: z
49
+ .enum(['WAITING_OPERATOR', 'IN_PROGRESS', 'WAITING_CUSTOMER', 'RESOLVED'])
50
+ .optional(),
33
51
  workspace_operator_id: uuidSchema.optional(),
34
52
  contact_id: uuidSchema.optional(),
35
- page: z.number().int().min(1).default(1),
36
- limit: z.number().int().min(1).max(100).default(20),
53
+ page: z.number().int().min(1).optional(),
54
+ limit: z.number().int().min(1).max(100).optional(),
37
55
  })
38
56
  .strict(),
39
57
  createRequest: (input) => {
40
58
  const query = new URLSearchParams();
41
- if (input.status)
59
+ if (input.status !== undefined)
42
60
  query.set('status', input.status);
43
- if (input.workspace_operator_id)
61
+ if (input.workspace_operator_id !== undefined) {
44
62
  query.set('workspaceOperatorId', input.workspace_operator_id);
45
- if (input.contact_id)
63
+ }
64
+ if (input.contact_id !== undefined)
46
65
  query.set('contactId', input.contact_id);
47
- query.set('page', String(input.page));
48
- query.set('limit', String(input.limit));
66
+ if (input.page !== undefined)
67
+ query.set('page', String(input.page));
68
+ if (input.limit !== undefined)
69
+ query.set('limit', String(input.limit));
70
+ const suffix = query.toString();
49
71
  return {
50
72
  method: 'GET',
51
- path: `/workspaces/${input.workspace_id}/operator-queue?${query.toString()}`,
73
+ path: `/workspaces/${input.workspace_id}/operator-queue${suffix ? `?${suffix}` : ''}`,
52
74
  };
53
75
  },
54
76
  enhanceResponse: (response) => withInstructions(response, [
55
- 'workflowEvidence=null означает отсутствие доступного свидетельства, а не доказательство, что передачи не было.',
56
- 'Если hasMore=true, продолжай с page+1; одна страница не равна всей очереди.',
77
+ 'Без фильтра состояния выдаются ТРИ активных; «решён» и диалоги вне операторского потока — только по явному status.',
78
+ 'Порядок — от самых давно ждущих: первая строка это тот, кто ждёт дольше всех.',
79
+ 'Строка несёт И conversationId, И contactId: писать назначение нужно по БЕСЕДЕ, карточка служит для показа.',
80
+ 'Если hasMore=true, продолжай со следующей page: одна страница не равна всей очереди.',
57
81
  ]),
58
82
  }),
59
83
  defineTool({
60
84
  name: 'besales_workspace_operator_assignment_get',
61
85
  sideEffect: 'none',
62
86
  closedWorld: true,
63
- requiredFields: ['contact_id'],
87
+ requiredFields: ['conversation_id'],
64
88
  defaultWorkspaceId: true,
65
- schema: z.object({ workspace_id: uuidSchema.optional(), contact_id: uuidSchema }).strict(),
89
+ schema: z
90
+ .object({ workspace_id: uuidSchema.optional(), conversation_id: uuidSchema })
91
+ .strict(),
66
92
  createRequest: (input) => ({
67
93
  method: 'GET',
68
- path: `/workspaces/${input.workspace_id}/chats/${input.contact_id}/operator-assignment`,
94
+ path: `/workspaces/${input.workspace_id}/conversations/${input.conversation_id}/operator-assignment`,
69
95
  }),
70
96
  enhanceResponse: (response) => withInstructions(response, [
71
- 'Перед изменением передай workspaceOperatorId и assignedAt из этого ответа как expected_* CAS-поля.',
72
- 'operatorStatus и назначение — разные оси: смена ответственного не меняет состояние очереди.',
97
+ 'Перед записью передай workspaceOperatorId и assignedAt отсюда как expected_*: без них чужое решение перетирается молча.',
98
+ 'status и назначение — РАЗНЫЕ оси: смена сотрудника не двигает очередь, а смена состояния не меняет сотрудника.',
99
+ 'crmOperatorId — ответственный в CRM, другой человек в другой системе; за локальное назначение он не отвечает.',
73
100
  ]),
74
101
  }),
75
102
  defineTool({
@@ -79,35 +106,61 @@ export const operatorWorkflowTools = [
79
106
  closedWorld: true,
80
107
  verifyWithToolName: 'besales_workspace_operator_assignment_get',
81
108
  requiredFields: [
82
- 'contact_id',
109
+ 'conversation_id',
83
110
  'workspace_operator_id',
84
111
  'expected_workspace_operator_id',
85
- 'expected_assigned_operator_at',
112
+ 'expected_assigned_at',
86
113
  'explicit_confirmation',
87
114
  ],
88
115
  defaultWorkspaceId: true,
89
116
  schema: z
90
117
  .object({
91
118
  workspace_id: uuidSchema.optional(),
92
- contact_id: uuidSchema,
119
+ conversation_id: uuidSchema,
93
120
  workspace_operator_id: nullableUuidSchema,
94
121
  expected_workspace_operator_id: nullableUuidSchema,
95
- expected_assigned_operator_at: nullableIsoDateSchema,
122
+ expected_assigned_at: nullableIsoDateSchema,
96
123
  explicit_confirmation: z.literal(true),
97
124
  })
98
125
  .strict(),
99
126
  createRequest: (input) => ({
100
127
  method: 'PATCH',
101
- path: `/workspaces/${input.workspace_id}/chats/${input.contact_id}/operator-assignment`,
128
+ path: `/workspaces/${input.workspace_id}/conversations/${input.conversation_id}/operator-assignment`,
102
129
  body: {
103
130
  workspaceOperatorId: input.workspace_operator_id,
104
131
  expectedWorkspaceOperatorId: input.expected_workspace_operator_id,
105
- expectedAssignedOperatorAt: input.expected_assigned_operator_at,
132
+ expectedAssignedAt: input.expected_assigned_at,
133
+ explicitConfirmation: input.explicit_confirmation,
106
134
  },
107
135
  }),
108
136
  enhanceResponse: (response) => withInstructions(response, [
109
- 'Перечитай назначение через besales_workspace_operator_assignment_get и сравни фактический ID.',
110
- 'Операция не отправляет сообщение, не меняет operatorStatus и не назначает CRM operator.',
137
+ 'Операция локальная: сообщений не отправляет, CRM не трогает, состояние очереди не меняет.',
138
+ 'changed=false означает «тот же сотрудник уже назначен», а не отказ.',
139
+ 'Отказ WORKSPACE_OPERATOR_ASSIGNMENT_CONFLICT — назначение изменили между чтением и записью: перечитай и реши заново, не повторяй вслепую.',
140
+ 'Отказ WORKSPACE_OPERATOR_ASSIGNMENT_TARGET_UNAVAILABLE — сотрудник существует, но выведен из назначаемых; выбери другого.',
141
+ ]),
142
+ }),
143
+ defineTool({
144
+ name: 'besales_workspace_operational_overview',
145
+ sideEffect: 'none',
146
+ closedWorld: true,
147
+ requiredFields: [],
148
+ defaultWorkspaceId: true,
149
+ resultPolicy: {
150
+ neverTruncate: true,
151
+ narrowingHint: 'Читайте разделы по одному через их собственные инструменты.',
152
+ },
153
+ schema: z.object({ workspace_id: uuidSchema.optional() }).strict(),
154
+ createRequest: (input) => ({
155
+ method: 'GET',
156
+ path: `/workspaces/${input.workspace_id}/operational-overview`,
157
+ }),
158
+ enhanceResponse: (response) => withInstructions(response, [
159
+ 'Начни с warnings: critical — идти чинить сейчас, warning — посмотреть. Дальше переходи по drilldown.',
160
+ 'liveness=STALE означает ПОТЕРЮ подтверждения исхода: не объявляй задачу ни выполненной, ни проваленной.',
161
+ 'DISABLED и «включено без шагов» — разные вещи: второе означает, что человек ждёт дожимов, а не идёт ни один.',
162
+ 'Если раздел отвечает included=false, назови причину из reason и НЕ делай вывода «там пусто».',
163
+ 'Если operatorQueue.included=false, назови missingScope и не делай вывода о пустой очереди.',
111
164
  ]),
112
165
  }),
113
166
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"operator-workflow.js","sourceRoot":"","sources":["../../../src/tools/definitions/operator-workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator-workflow.js","sourceRoot":"","sources":["../../../src/tools/definitions/operator-workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Настройки раздела «Воронка канала» — схема отгруженного моста без изменений: ворота решения,
4
+ * цель «Пути до стадии», пороги вовлечённости и «застрял». `null` — сброс, отсутствие поля — «не
5
+ * трогать».
6
+ */
7
+ export declare const platformFunnelAnalyticsSchema: z.ZodObject<{
8
+ decision_gate: z.ZodOptional<z.ZodNullable<z.ZodObject<{
9
+ submitted: z.ZodUnion<readonly [z.ZodObject<{
10
+ pipeline_crm_id: z.ZodString;
11
+ pipeline_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
12
+ status_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
13
+ }, z.core.$strict>, z.ZodObject<{
14
+ stage_id: z.ZodString;
15
+ }, z.core.$strict>]>;
16
+ approved: z.ZodUnion<readonly [z.ZodObject<{
17
+ pipeline_crm_id: z.ZodString;
18
+ pipeline_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
19
+ status_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
20
+ }, z.core.$strict>, z.ZodObject<{
21
+ stage_id: z.ZodString;
22
+ }, z.core.$strict>]>;
23
+ rejected: z.ZodUnion<readonly [z.ZodObject<{
24
+ pipeline_crm_id: z.ZodString;
25
+ pipeline_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
26
+ status_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
27
+ }, z.core.$strict>, z.ZodObject<{
28
+ stage_id: z.ZodString;
29
+ }, z.core.$strict>]>;
30
+ }, z.core.$strict>>>;
31
+ path_target_stage: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodObject<{
32
+ pipeline_crm_id: z.ZodString;
33
+ pipeline_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
34
+ status_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
35
+ }, z.core.$strict>, z.ZodObject<{
36
+ stage_id: z.ZodString;
37
+ }, z.core.$strict>]>>>;
38
+ engaged_inbound_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
39
+ stuck_threshold_hours: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
40
+ }, z.core.$strict>;
41
+ /** snake → camel; `null` доезжает как сброс, `undefined` стрипается («не трогать»). */
42
+ export declare function mapPlatformFunnelAnalyticsInput(input: z.infer<typeof platformFunnelAnalyticsSchema>): Record<string, unknown>;
@@ -0,0 +1,72 @@
1
+ import { z } from 'zod';
2
+ import { compactObject, uuidSchema } from './shared.js';
3
+ /** Код воронки или статуса CRM: числом у отгруженного клиента, строкой у Bitrix24 (`C1:NEW`). */
4
+ const crmCodeSchema = z.union([z.number().int(), z.string().trim().min(1)]);
5
+ /**
6
+ * Ссылка на стадию: `{stage_id}` из справочника воронки либо составной ключ ОТГРУЖЕННОГО контракта — подключение CRM
7
+ * и внешние коды воронки и статуса. Путь «прочитал справочник воронки → записал в настройки» даёт коды строками и
8
+ * идентификатор стадии, поэтому обе формы принимаются; отгруженная числовая форма работает как раньше.
9
+ *
10
+ * ⛔ Голый номер статуса стадию не опознаёт: статусы 142/143 и одноимённые стадии есть в каждой
11
+ * воронке. Сервер переводит ключ в свою стадию по каталогу подключения и проверяет, что воронка —
12
+ * у канала.
13
+ */
14
+ const funnelStageRefSchema = z.union([
15
+ z
16
+ .object({
17
+ pipeline_crm_id: z.string(),
18
+ pipeline_id: crmCodeSchema,
19
+ status_id: crmCodeSchema,
20
+ })
21
+ .strict(),
22
+ z.object({ stage_id: uuidSchema }).strict(),
23
+ ]);
24
+ /**
25
+ * Настройки раздела «Воронка канала» — схема отгруженного моста без изменений: ворота решения,
26
+ * цель «Пути до стадии», пороги вовлечённости и «застрял». `null` — сброс, отсутствие поля — «не
27
+ * трогать».
28
+ */
29
+ export const platformFunnelAnalyticsSchema = z
30
+ .object({
31
+ decision_gate: z
32
+ .object({
33
+ submitted: funnelStageRefSchema,
34
+ approved: funnelStageRefSchema,
35
+ rejected: funnelStageRefSchema,
36
+ })
37
+ .strict()
38
+ .nullable()
39
+ .optional(),
40
+ path_target_stage: funnelStageRefSchema.nullable().optional(),
41
+ engaged_inbound_count: z.number().int().min(2).max(20).nullable().optional(),
42
+ stuck_threshold_hours: z.number().int().min(1).max(720).nullable().optional(),
43
+ })
44
+ .strict()
45
+ // ⛔ Пустой раздел сервер принимает как «ничего не менять»; здесь он отвергается, чтобы модель не
46
+ // думала, что что-то сохранила.
47
+ .refine((section) => Object.keys(section).length > 0, {
48
+ message: 'funnel_analytics без полей ничего не меняет: пришли хотя бы одну настройку или не присылай раздел',
49
+ });
50
+ function mapStageRef(ref) {
51
+ if ('stage_id' in ref)
52
+ return { stageId: ref.stage_id };
53
+ return { pipelineCrmId: ref.pipeline_crm_id, pipelineId: ref.pipeline_id, statusId: ref.status_id };
54
+ }
55
+ /** snake → camel; `null` доезжает как сброс, `undefined` стрипается («не трогать»). */
56
+ export function mapPlatformFunnelAnalyticsInput(input) {
57
+ return compactObject({
58
+ decisionGate: input.decision_gate == null
59
+ ? input.decision_gate
60
+ : {
61
+ submitted: mapStageRef(input.decision_gate.submitted),
62
+ approved: mapStageRef(input.decision_gate.approved),
63
+ rejected: mapStageRef(input.decision_gate.rejected),
64
+ },
65
+ pathTargetStage: input.path_target_stage == null
66
+ ? input.path_target_stage
67
+ : mapStageRef(input.path_target_stage),
68
+ engagedInboundCount: input.engaged_inbound_count,
69
+ stuckThresholdHours: input.stuck_threshold_hours,
70
+ });
71
+ }
72
+ //# sourceMappingURL=platform-funnel-analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-funnel-analytics.js","sourceRoot":"","sources":["../../../src/tools/definitions/platform-funnel-analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Привязки ролей волны к полям СДЕЛКИ школы — схема отгруженного моста без изменений. Значения
4
+ * ролей status-волна ставит в сделку сама (тип запуска, продукт, сегмент, воронка, каналы); на этих
5
+ * полях школа строит отчёты.
6
+ *
7
+ * ⛔ Файл не импортирует `shared.ts`: схема нужна там при вычислении модуля, и обратный импорт
8
+ * замкнул бы цикл, в котором одна из сторон читала бы ещё не вычисленную константу.
9
+ */
10
+ export declare const platformGetcourseWaveFieldBindingsSchema: z.ZodObject<{
11
+ product_value_source: z.ZodEnum<{
12
+ CODE: "CODE";
13
+ NAME: "NAME";
14
+ }>;
15
+ launch_type: z.ZodOptional<z.ZodObject<{
16
+ field_id: z.ZodNumber;
17
+ field_label: z.ZodString;
18
+ }, z.core.$strict>>;
19
+ product: z.ZodOptional<z.ZodObject<{
20
+ field_id: z.ZodNumber;
21
+ field_label: z.ZodString;
22
+ }, z.core.$strict>>;
23
+ segment: z.ZodOptional<z.ZodObject<{
24
+ field_id: z.ZodNumber;
25
+ field_label: z.ZodString;
26
+ }, z.core.$strict>>;
27
+ funnel: z.ZodOptional<z.ZodObject<{
28
+ field_id: z.ZodNumber;
29
+ field_label: z.ZodString;
30
+ }, z.core.$strict>>;
31
+ channels: z.ZodOptional<z.ZodObject<{
32
+ field_id: z.ZodNumber;
33
+ field_label: z.ZodString;
34
+ }, z.core.$strict>>;
35
+ }, z.core.$strict>;
36
+ type WaveFieldBindingsInput = z.infer<typeof platformGetcourseWaveFieldBindingsSchema>;
37
+ /**
38
+ * snake → camel. Отсутствующая роль не отправляется: сервер заменяет привязки ЦЕЛИКОМ, и роль,
39
+ * не названная в запросе, снимается — «не трогать одну роль» этой формой не выражается.
40
+ */
41
+ export declare function mapPlatformGetcourseWaveFieldBindingsInput(input: WaveFieldBindingsInput): Record<string, unknown>;
42
+ export {};
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+ /** Потолок номера поля сделки GetCourse: номер — знаковое 32-битное целое школы. */
3
+ const GETCOURSE_DEAL_FIELD_ID_MAX = 2_147_483_647;
4
+ /** Привязка одной роли волны к полю сделки школы: номер поля и его подпись в кабинете школы. */
5
+ const waveFieldBindingSchema = z
6
+ .object({
7
+ field_id: z.number().int().positive().max(GETCOURSE_DEAL_FIELD_ID_MAX),
8
+ field_label: z.string().trim().min(1),
9
+ })
10
+ .strict();
11
+ /**
12
+ * Привязки ролей волны к полям СДЕЛКИ школы — схема отгруженного моста без изменений. Значения
13
+ * ролей status-волна ставит в сделку сама (тип запуска, продукт, сегмент, воронка, каналы); на этих
14
+ * полях школа строит отчёты.
15
+ *
16
+ * ⛔ Файл не импортирует `shared.ts`: схема нужна там при вычислении модуля, и обратный импорт
17
+ * замкнул бы цикл, в котором одна из сторон читала бы ещё не вычисленную константу.
18
+ */
19
+ export const platformGetcourseWaveFieldBindingsSchema = z
20
+ .object({
21
+ product_value_source: z.enum(['CODE', 'NAME']),
22
+ launch_type: waveFieldBindingSchema.optional(),
23
+ product: waveFieldBindingSchema.optional(),
24
+ segment: waveFieldBindingSchema.optional(),
25
+ funnel: waveFieldBindingSchema.optional(),
26
+ channels: waveFieldBindingSchema.optional(),
27
+ })
28
+ .strict();
29
+ /** Роль в форме моста → роль в теле запроса сервера. */
30
+ const ROLE_BODY_KEYS = [
31
+ ['launch_type', 'launchType'],
32
+ ['product', 'product'],
33
+ ['segment', 'segment'],
34
+ ['funnel', 'funnel'],
35
+ ['channels', 'channels'],
36
+ ];
37
+ /**
38
+ * snake → camel. Отсутствующая роль не отправляется: сервер заменяет привязки ЦЕЛИКОМ, и роль,
39
+ * не названная в запросе, снимается — «не трогать одну роль» этой формой не выражается.
40
+ */
41
+ export function mapPlatformGetcourseWaveFieldBindingsInput(input) {
42
+ const body = { productValueSource: input.product_value_source };
43
+ for (const [role, bodyKey] of ROLE_BODY_KEYS) {
44
+ const binding = input[role];
45
+ if (binding !== undefined) {
46
+ body[bodyKey] = { fieldId: binding.field_id, fieldLabel: binding.field_label };
47
+ }
48
+ }
49
+ return body;
50
+ }
51
+ //# sourceMappingURL=platform-getcourse-wave-field-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-getcourse-wave-field-bindings.js","sourceRoot":"","sources":["../../../src/tools/definitions/platform-getcourse-wave-field-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oFAAoF;AACpF,MAAM,2BAA2B,GAAG,aAAa,CAAC;AAElD,gGAAgG;AAChG,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC;IACtE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACtC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC;KACtD,MAAM,CAAC;IACN,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,WAAW,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC9C,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,sBAAsB,CAAC,QAAQ,EAAE;CAC5C,CAAC;KACD,MAAM,EAAE,CAAC;AAIZ,wDAAwD;AACxD,MAAM,cAAc,GAAG;IACrB,CAAC,aAAa,EAAE,YAAY,CAAC;IAC7B,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,UAAU,EAAE,UAAU,CAAC;CAChB,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,0CAA0C,CACxD,KAA6B;IAE7B,MAAM,IAAI,GAA4B,EAAE,kBAAkB,EAAE,KAAK,CAAC,oBAAoB,EAAE,CAAC;IACzF,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,cAAc,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QACjF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Защитный, не семантический потолок дней автозавершения.
3
+ * Сто лет оставляют большой запас для рабочей настройки и удерживают дату в диапазоне API/БД.
4
+ */
5
+ export declare const PLATFORM_FINISH_AUTO_MAX_DAYS = 36500;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Защитный, не семантический потолок дней автозавершения.
3
+ * Сто лет оставляют большой запас для рабочей настройки и удерживают дату в диапазоне API/БД.
4
+ */
5
+ export const PLATFORM_FINISH_AUTO_MAX_DAYS = 36_500;
6
+ //# sourceMappingURL=platform-settings-limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-settings-limits.js","sourceRoot":"","sources":["../../../src/tools/definitions/platform-settings-limits.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { z } from 'zod';
2
+ export declare const shippedFormAccessControlSchema: z.ZodObject<{
3
+ is_user_filter_enabled: z.ZodOptional<z.ZodBoolean>;
4
+ filtered_user_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
5
+ enable_cleanup_commands: z.ZodOptional<z.ZodBoolean>;
6
+ is_active: z.ZodOptional<z.ZodBoolean>;
7
+ is_ai_enabled: z.ZodOptional<z.ZodBoolean>;
8
+ }, z.core.$strict>;
9
+ export declare const shippedFormWidgetMarketingSchema: z.ZodObject<{
10
+ marketing_field_mappings: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
11
+ entry_url_variable_mapping: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
12
+ web_widget_allowed_origins: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>;
13
+ web_widget_show_page_info: z.ZodOptional<z.ZodBoolean>;
14
+ web_widget_rate_limit_per_minute: z.ZodOptional<z.ZodNumber>;
15
+ web_widget_customization: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
16
+ web_widget_marketing_field_mappings: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$loose>>>;
17
+ web_widget_entry_url_variable_mapping: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$loose>>>;
18
+ }, z.core.$strict>;
19
+ /** Ключи прежнего DTO; карта оформления совпадает с переносом v1.5 в map-v1-provider-config.ts. */
20
+ export declare const BUTTON_NAMES: Readonly<Record<string, string>>;
21
+ export declare const WINDOW_NAMES: Readonly<Record<string, string>>;
22
+ export declare const MARKETING_NAMES: Readonly<Record<string, string>>;
23
+ export declare const ENTRY_NAMES: Readonly<Record<string, string>>;
24
+ export declare const RULE_NAMES: Readonly<Record<string, string>>;
25
+ interface ShippedSettingsInput {
26
+ readonly access_control?: Record<string, unknown>;
27
+ readonly widget_marketing?: Record<string, unknown>;
28
+ readonly general_settings?: Record<string, unknown>;
29
+ }
30
+ /** Отказы прежней формы настроек канала — адрес поля и причина человеческим языком. */
31
+ export declare function shippedSettingsIssues(input: ShippedSettingsInput): Array<{
32
+ readonly path: string[];
33
+ readonly message: string;
34
+ }>;
35
+ /** Разделы настроек в каноне новой версии: прежние поля переложены в general_settings и переименованы. */
36
+ export declare function translateShippedSettings<Input extends ShippedSettingsInput>(input: Input): Input;
37
+ export {};