@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
@@ -4,7 +4,7 @@
4
4
 
5
5
  Read-only разбор реальных переписок через `besales_dialogues_query` и
6
6
  `besales_dialogue_transcript`: найти ошибки агента, доказуемо сопоставить их с
7
- выполненными trigger-actions и подготовить изменения правил и regression-кейсы.
7
+ выполненными действиями и подготовить изменения правил и regression-кейсы.
8
8
  Ничего в агенте, CRM или платформе этот workflow не меняет.
9
9
 
10
10
  ## Выборка
@@ -13,26 +13,37 @@ Read-only разбор реальных переписок через `besales_d
13
13
  2. Для общего аудита фильтруй по периоду, платформам и `has_messages=true`.
14
14
  3. Для аудита созданных заявок добавь:
15
15
  - `action_type=["GETCOURSE_CREATE_DEAL"]`;
16
- - `action_success=true`;
17
16
  - `action_execution_mode="production"`.
17
+ `action_success` здесь НЕ ставь: исход каждого шага считай по транскрипту — отчёту нужны и
18
+ подтверждённые заявки, и дубли, и неизвестные исходы (`REVIEW`). `action_success=true` годится
19
+ только для быстрого счёта подтверждённых: провалы и неизвестные исходы он отсекает.
18
20
  `GETCOURSE_SEND_PAYMENT_LINK` проверяй отдельной выборкой как коммерческий side effect:
19
21
  он может работать с существующим заказом и не доказывает создание новой заявки.
20
22
  4. Обойди все страницы `besales_dialogues_query` по `cursor`. Не выдавай первую страницу
21
23
  за полную выборку.
22
24
  5. Для каждого `conversationId` дочитай все страницы `besales_dialogue_transcript`.
23
- Объединяй `turns` и `triggerExecutions`; `turn.messageId` связывает реплику с действием.
25
+ Объединяй `turns` и `actionExecutions`: исполнение лежит ровно на одной странице.
26
+ `triggerMessageId` исполнения — реплика человека, начавшая ход; `responseMessageId` —
27
+ ответ того же прогона.
24
28
 
25
- Action-фильтр применяется к действию на сообщении внутри заданного окна дат. Это позволяет
26
- отличить заявку периода от старого действия в длинном диалоге.
29
+ Фильтр действия — по типу ШАГА: тип, успех и окно дат сходятся на одном шаге одного
30
+ исполнения, окно считается по времени исполнения. Это отличает заявку периода от старого
31
+ действия в длинном диалоге. `total` манифеста — число диалогов, а не заявок.
27
32
 
28
33
  ## Что считать созданной заявкой
29
34
 
30
- - `GETCOURSE_CREATE_DEAL`, `success=true`, `resultSummary.skipped=false` и есть
31
- `dealNumber` или `dealId` — подтверждённое создание.
32
- - `executionMode=test` — симуляция, в production-статистику не включать.
33
- - `resultSummary.skipped=true` — идемпотентный пропуск, новую заявку не считать.
34
- - Успешное действие без безопасного идентификатора — факт выполнения подтверждён, но создание
35
+ - Шаг `stepType=GETCOURSE_CREATE_DEAL` со `status=OK`, `reusedOpenInvoice=false` и есть
36
+ `dealNumber` или `dealId` — подтверждённое создание. При `reusedOpenInvoice=true` шаг
37
+ успешно использовал открытый счёт, но нового заказа нет; считай его отдельно от созданных.
38
+ - `status=SKIPPED` — идемпотентный пропуск (дубль), новую заявку не считать.
39
+ - Шаг с `outcomeUnknown=true` (`FAILED` или `OK`) — исход неизвестен, сделка могла создаться:
40
+ пометь `REVIEW`.
41
+ - Исполнение с `abandoned=true` — неизвестен исход только НЕЗАВЕРШЁННОГО шага: шаг `OK` с номером
42
+ сделки в том же исполнении остаётся подтверждённым; шаг, до которого исполнение не дошло, в
43
+ `steps` не записан вовсе.
44
+ - Успешный шаг без безопасного идентификатора — факт выполнения подтверждён, но создание
35
45
  пометь `REVIEW`, не додумывай результат.
46
+ - `runId=null` — прогон неизвестен (ручной запуск, перенесённая строка), а не «действий не было».
36
47
  - Сырой result намеренно не доступен. Не пытайся получить его прямым SQL.
37
48
 
38
49
  ## Классификация
@@ -51,7 +62,7 @@ Action-фильтр применяется к действию на сообще
51
62
  ## Доказательства
52
63
 
53
64
  - Приведи 1-3 коротких фрагмента клиента с `sentAt` и `messageId`.
54
- - Укажи trigger name, action type, action time и deal number/id, если они есть.
65
+ - Укажи имя действия (`actionName`), тип шага, время исполнения и номер/id сделки, если они есть.
55
66
  - Отделяй наблюдаемый факт от вывода модели.
56
67
  - Не выводи телефоны, email, токены и внешние идентификаторы без необходимости.
57
68
  - Не утверждай, что оператор написал сообщение: `isAi=false` означает оператор ИЛИ
@@ -61,7 +72,7 @@ Action-фильтр применяется к действию на сообще
61
72
 
62
73
  - До 200 диалогов анализируй все.
63
74
  - Более 200: если пользователь явно просит весь массив — анализируй весь массив батчами;
64
- иначе возьми стратифицированную выборку по платформе и trigger name, назови размер выборки
75
+ иначе возьми стратифицированную выборку по платформе и имени действия, назови размер выборки
65
76
  и не экстраполируй абсолютные числа на всю совокупность.
66
77
 
67
78
  ## Формат отчёта
@@ -15,15 +15,15 @@
15
15
  сейчас). Выбери **~5 моделей** под use-case агента (продажи → живой тон;
16
16
  рассуждение → reasoning-модели; дёшево/много → budget). `defaultModelIds` —
17
17
  разумный набор по умолчанию, если оператор не назвал модели.
18
- - `available=false` → провайдер не настроен. GLM и prefixed Qwen (`qwen/*`) идут
19
- через OpenRouter (`OPENROUTER_API_KEY`), а `qwen3.8-flash` — напрямую через
20
- Alibaba DashScope (`DASHSCOPE_API_KEY`) на стороне prompt-services; `glm-5.3`,
21
- `glm-5.3-flash`, `glm-5.3-flashx` без префикса — напрямую через Z.AI (`ZAI_API_KEY`),
22
- это те же модели, что `z-ai/glm-5.3-*` через OpenRouter.
18
+ - `available=false` → модель сейчас недоступна. Модели с префиксом провайдера (claude, grok,
19
+ deepseek, gemini, GLM, `qwen/*` и другие) идут через OpenRouter (`OPENROUTER_API_KEY`), а
20
+ `qwen3.8-flash` — напрямую через Alibaba DashScope (`DASHSCOPE_API_KEY`) на стороне prompt-services.
21
+ Для GLM бери `z-ai/glm-5.3`, `z-ai/glm-5.3-flash`, `z-ai/glm-5.3-flashx` через OpenRouter;
22
+ в запуск передавай runnable id из текущего каталога.
23
23
 
24
24
  2. **`besales_model_comparison_run_start`** `{ agent_id, models?, dialogue_count? }`
25
25
  — запуск (async). По умолчанию `dialogue_count=5`; `models` опционально (тогда
26
- набор по умолчанию). До **35 моделей** и **20 диалогов**, если оператор просит
26
+ набор по умолчанию). До **36 моделей** и **20 диалогов**, если оператор просит
27
27
  больше. Возвращает `run_id`.
28
28
 
29
29
  3. **`besales_model_comparison_get`** `{ agent_id, run_id }` — поллируй до
@@ -52,13 +52,11 @@ field-mapping / operators.
52
52
 
53
53
  Уникальность: один AmoCRM на workspace (`(workspaceId, AMOCRM)`).
54
54
 
55
- **Follow-up шаг — переписка в карточке сделки.** `READY` даёт управление сделками и контактами,
56
- но сообщения бота в карточке НЕ появятся, пока AmoCRM не зарегистрирует чат-канал: `channelId`
57
- и `channelSecretKey` выдаёт только их техподдержка, по письму заданной формы. Адрес вебхука и
58
- готовый текст письма отдаёт `besales_crm_amocrm_channel_registration` — пересылай их человеку
59
- дословно, адрес сам не собирай. Ключи от поддержки он привяжет в интерфейсе
60
- (`POST /api/amo-crm/channel-connect`); через MCP этого шага нет. Предупреди об этом шаге сразу,
61
- как о local-app у Bitrix24, — иначе клиент считает настройку законченной, а переписки не видит.
55
+ **Отдельный шаг — переписка в карточке сделки.** Сразу предупреди: `READY` подключения не
56
+ означает регистрацию чат-канала amoCRM. Получи текст заявки через
57
+ `besales_crm_amocrm_channel_registration` и передай человеку дословно, адрес не собирай сам.
58
+ Выданные поддержкой `channelId` и секрет человек привязывает в интерфейсе, минуя ассистента.
59
+ Подробности — `besales://docs/crm-integration`.
62
60
 
63
61
  ## BITRIX24 — подключение
64
62
 
@@ -71,11 +69,6 @@ field-mapping / operators.
71
69
  Несекретное: `account_domain` (`school.getcourse.ru`, опц. `managed_tag_prefix`).
72
70
  Секрет: `school_api_key` (опц. `legacy_api_key`). `READY` = read-only API-проба прошла.
73
71
 
74
- ## TELEGRAM (Forum CRM) — подключение
75
-
76
- Несекретное: `forum_group_id` (ID форум-группы). Секрет: `crm_bot_token`. `READY` =
77
- `getMe` бота прошёл.
78
-
79
72
  ## Активация
80
73
 
81
74
  CRM создаётся в `status` и работает (sync воронок, выгрузка звонков, запись лидов) только
@@ -88,6 +81,16 @@ CRM создаётся в `status` и работает (sync воронок, в
88
81
  переключиться, либо чтобы повторно включить CRM, авто-отключённую по ошибке авторизации
89
82
  (`401/403`). ⚠️ Это деактивирует текущую активную — предупреди пользователя перед вызовом.
90
83
 
84
+
85
+ ## Входящие события amoCRM (адрес вебхука)
86
+
87
+ amoCRM шлёт события сделок на адрес, который человек вписывает в настройках вебхуков своего
88
+ аккаунта. Адрес несёт пропуск, поэтому через ассистента он НЕ проходит: закажи одноразовую
89
+ ссылку `besales_crm_webhook_url_reveal({ crm_id })` и передай человеку — страница за ссылкой
90
+ потребует входа и права управлять CRM и покажет адрес один раз. Ссылка одноразовая и с
91
+ ограниченным сроком; просроченную заказывай заново тем же инструментом. У прочих провайдеров
92
+ такого адреса нет — инструмент ответит отказом.
93
+
91
94
  ## Что дальше (CRM READY + активна)
92
95
 
93
96
  Pipelines: `besales_crm_pipeline_list` / `besales_crm_pipeline_create`,
@@ -58,14 +58,15 @@ Ordering-инвариант: connection `READY` прежде чем назнач
58
58
 
59
59
  `besales_datasource_vectorize({ data_source_id, catalog_external_code, enabled: true })` —
60
60
  включает семантический поиск по каталогу (роль `PRODUCT_CATALOG` обязательна, подключение
61
- `ACTIVE`): синк в Pinecone. `enabled: false` — удаление векторов. Нужно, когда товаров много
62
- и поиск по точному `$filter` не годится («покажи что-то для дома до 5000»).
61
+ `ACTIVE`): индексация в PostgreSQL + pgvector. `enabled: false` — удаление векторов. Нужно,
62
+ когда товаров много и поиск по точному `$filter` не годится («покажи что-то для дома до 5000»).
63
63
 
64
64
  ## Чтение/запись в диалоге — это ДЕЙСТВИЯ ТРИГГЕРОВ (не tools агента)
65
65
 
66
66
  Финальный шаг «агент реально читает/пишет 1С в разговоре» настраивается через **существующий**
67
- `besales_trigger_upsert` (НЕ через `besales_datasource_*`). У агента ровно 3 attachable tool
68
- (`run_trigger`/`send_pic`/`call_qa`) — 1С-логика живёт внутри действий триггера. Форма действия:
67
+ `besales_trigger_upsert` (НЕ через `besales_datasource_*`). Это совместимая поверхность настройки:
68
+ 1С-логика исполняется серверными action steps под ActionGovernor, а модель получает только
69
+ разрешённый action key и не выбирает connection ID или тип шага. Форма действия:
69
70
 
70
71
  ```
71
72
  besales_trigger_upsert({ platform_id, agent_id, name, condition, actions: [{
@@ -9,8 +9,9 @@
9
9
  - xlsx: `besales_file_upload_request` → browser upload → `besales_file_upload_status` →
10
10
  `besales_workbook_inspect`.
11
11
  - Google Sheets: `besales_workbook_inspect` по URL.
12
- - Inspect показывает инвентаризацию и sample. Нужные вкладки дочитай через
13
- `besales_workbook_sheet_read`; `readError` не означает пустой лист.
12
+ - Inspect даёт инвентаризацию и sample. Нужные листы дочитай через
13
+ `besales_workbook_sheet_read`; `readError` не означает пустой лист, а
14
+ `sourceTruncated=true` запрещает выдавать доступную часть за полный источник.
14
15
  - Иначе: прочитай содержимое и классифицируй сам.
15
16
  - Глубже про таксономию вкладок — concept `besales://concepts/workbook-classification`.
16
17
 
@@ -24,7 +25,7 @@
24
25
  | Прайс / каталог / таблица | `besales_knowledge_table_link` либо `besales_workbook_to_knowledge_document` |
25
26
  | Продуктовый / бизнес-текст | `besales_knowledge_document_upload` |
26
27
  | Brand-guide / tone / persona | ICP tone (`besales_icp_create`) + `besales_behavior_update` |
27
- | Выгрузка диалогов из CRM (amoCRM) | `besales_workbook_extract_amocrm_leads` → `besales_icp_import_dialogues` → `besales_icp_import_status` |
28
+ | Выгрузка диалогов из CRM (amoCRM) | `besales_workbook_extract_amocrm_leads`; в v2 найденные lead ID сохраняются для отдельного аудио-конвейера и не передаются в текстовый `besales_icp_import_dialogues` |
28
29
  | Значения (имя компании, телефон, часы) | `besales_variable_create` |
29
30
  | Общий PDF / договор / политика / непонятный тип (fallback) | `besales_knowledge_document_upload` — дефолт, если ничего выше не подошло |
30
31
 
@@ -33,11 +34,12 @@
33
34
  Если что-то ушло в knowledge — не забудь создать/привязать space:
34
35
  `besales_knowledge_space_create` → `besales_knowledge_space_channel_link_upsert`.
35
36
 
37
+ После раскладки сохрани решения через `besales_workbook_classification_update`. Архивируй
38
+ provenance только по просьбе пользователя через `besales_workbook_archive`; созданные документы
39
+ при этом остаются.
40
+
36
41
  ## Принцип
37
42
 
38
43
  Документ редко = «одна сущность». Прайс-лист несёт и таблицу для RAG, и переменные
39
44
  (контакты), и иногда tone. Раскладывай по всем релевантным целям за один проход.
40
45
  Затем возвращайся в `besales://workflows/platform-setup-from-scratch`.
41
-
42
- Перед записью результатов сохрани решения через `besales_workbook_classification_update`.
43
- Архивируй исходник только по просьбе пользователя через `besales_workbook_archive`.
@@ -0,0 +1,15 @@
1
+ # Ручная связь CRM-оператора
2
+
3
+ Прочитайте `besales_crm_operator_list` и возьмите `operator_id` и `editVersion` из выбранной строки.
4
+ В `besales_crm_operator_update` можно отправить `expected_version`, `workspace_member_id`
5
+ и прежние `is_operator` / `is_sdr`. Версия обязательна при изменении `workspace_member_id`, включая `null`; старый вызов
6
+ только с флагами сохраняется без версии. Версия сама по себе не является правкой.
7
+
8
+ `workspace_member_id` — users.id текущего сотрудника с ролью OPERATOR/MANAGER. Почты CRM
9
+ и Besales могут различаться. `null` снимает связь вручную; пропуск сохраняет её.
10
+ Ручное снятие сохраняется после синхронизации. Новый профиль сотрудника создаётся только
11
+ если отсутствует, выключенным без логинов; существующая готовность остаётся прежней.
12
+
13
+ При 409 сохраните введённые поля, перечитайте строку для сравнения и дождитесь явного решения
14
+ человека. Не подставляйте currentVersion автоматически и не повторяйте PATCH. Ошибка содержит
15
+ безопасные идентификаторы и текущую версию, без сырой строки пользователя и секретов.
@@ -66,17 +66,21 @@ Backbone happy-path настройки с нуля по **6-фазной мод
66
66
  а) построй структуру скрипта (этапы/ветки/реплики/переходы) → `besales_dialog_script_update`
67
67
  (поле `dialog_script` — SUMMARY/скелет; читать/сверять — `besales_dialog_script_get`);
68
68
  б) промпт: `besales_prompt_generate_get_instructions` → локально выполни стадии →
69
- `besales_prompt_generate_submit`. До `besales_prompt_finalize` передай полученный текст как
70
- `candidate_prompt` в `besales_sandbox_run_start` с `mode=single_agent`; после COMPLETED + findings
71
- сверь `testedConfiguration.promptContentHash` и только затем активируй отдельным finalize.
72
- §6 пиши НА ОСНОВЕ скрипта, но подробнее и независимо. Структура — `besales://docs/prompt-anatomy`.
73
- 3. `besales_behavior_update` — приветствие: ТОЛЬКО `bot_greeting` текстом, БЕЗ кнопок (дефолт
74
- «Привет!/Hello» → язык аудитории; для INBOUND открывает диалог). `greeting_buttons` opt-in — лишь
75
- по явному запросу; остальной behavior (persona/тон/typing) — фаза Enrich. `besales://docs/agent-behavior`.
69
+ `besales_prompt_generate_submit`. До публикации передай полученный текст как `candidate_prompt`
70
+ в `besales_sandbox_run_start` с `options.mode=single_agent`. Дождись `COMPLETED` и findings,
71
+ сверь `testedConfiguration.promptContentHash` с SHA-256 проверенного текста; затем отдельно,
72
+ после подтверждения пользователя, вызови `besales_prompt_finalize`. §6 пиши НА ОСНОВЕ скрипта,
73
+ но подробнее и независимо. Структура — `besales://docs/prompt-anatomy`.
74
+ 3. `besales_behavior_update` — приветствие: поле `text`, БЕЗ кнопок (дефолт «Привет!/Hello» →
75
+ язык аудитории; для INBOUND открывает диалог). ⚠️ У НОВОГО канала секции поведения ещё нет,
76
+ сливать не с чем — первая запись `greeting` обязана нести `text`, `buttons`,
77
+ `keyboard_type` и `popup_delay_seconds` целиком; дальше присылай только меняемые поля.
78
+ `buttons` opt-in — лишь по явному запросу; остальной behavior (persona/тон/typing) — фаза
79
+ Enrich. `besales://docs/agent-behavior`.
76
80
  4. **Статика:** `besales_prompt_lint` + анализ `besales_prompt_analyze_get_instructions` /
77
81
  `besales_prompt_analyze_submit`.
78
82
  5. **Симуляция:** `besales_sandbox_run_start` по тест-сценариям (фаза 3) → findings → правки.
79
- Черновик проверяй через `candidate_prompt`: это не меняет ответы работающего бота.
83
+ `candidate_prompt` проверяет черновик без публикации в работающем боте.
80
84
  Глубже — `besales://workflows/iterate-with-sandbox`.
81
85
  6. **Выбор модели (только здесь или по запросу — дорого):** `besales://workflows/compare-models`
82
86
  (`besales_model_catalog_list` → `besales_model_comparison_run_start` → `_get` → `_eval_submit`).
@@ -119,83 +123,68 @@ Backbone happy-path настройки с нуля по **6-фазной мод
119
123
 
120
124
  ## Маршруты обычных задач
121
125
 
122
- Шесть фаз выше нужны для новой настройки. Свободный вопрос или точечная правка не запускают
123
- полный мастер. Каждый маршрут начинается с `besales_workspace_current`, затем выбирает объект
124
- обычным именем и заканчивается перечитыванием либо lifecycle-status.
126
+ Шесть фаз нужны для новой настройки. Свободный вопрос или точечная правка не запускают весь
127
+ мастер. Сначала `besales_workspace_current`, затем выбор объекта по имени; завершай маршрут
128
+ повторным чтением или проверкой статуса операции.
125
129
 
126
- ### Новый FAQ-бот
130
+ ### FAQ или продажи
127
131
 
128
- 1. Предусловие: канал `READY`; получить `platform,agent_summaries,readiness` через
129
- `besales_platform_context_get`.
130
- 2. Собрать темы ответов и ограничения; ICP предложить, но не делать gate.
131
- 3. Создать агента, положить факты в Q&A/RAG, сгенерировать prompt и greeting.
132
- 4. Создать FAQ-сценарии, выполнить sandbox, получить findings.
133
- 5. Завершение: привязка агента/knowledge видна в context, run `COMPLETED`, quality policy
134
- выполнена. Иначе назвать конкретный следующий tool и аргументы.
135
-
136
- ### Новый sales-бот
137
-
138
- Тот же путь, но до финализации обязательны релевантный ICP и скрипт диалога. CRM нужна только
139
- если задача включает сделку, поля или стадии. Наличие строки CRM не доказывает live authorization:
140
- проверить setup status/health и фактические pipelines.
132
+ На READY-канале прочитай `besales_platform_context_get`, собери темы и ограничения, создай
133
+ агента, знания, промпт и приветствие. FAQ-боту предложи ICP без обязательного шага; sales-боту
134
+ до финализации нужны релевантный ICP и скрипт. Подготовь сценарии, получи завершённый sandbox и
135
+ findings; привязки знаний проверь в context, качество — по readiness. Если что-то не доказано,
136
+ назови следующий инструмент и недостающие аргументы.
141
137
 
142
138
  ### Правка работающего агента
143
139
 
144
- 1. `besales_agent_list(query=...)`; при нескольких совпадениях показать их и остановить выбор.
145
- 2. `besales_agent_get`/`besales_prompt_patch_get` и полный относящийся к записи снимок.
146
- 3. Изменить draft или одиночным `besales_prompt_batch_start` с idempotency key.
147
- 4. Протестировать версию изолированно; commit/finalize — отдельный шаг.
148
- 5. Перечитать agent/version. `skippedCount > 0`, lint failure или stale test не являются успехом.
149
-
150
- ### Документ → знания, правила или ICP
151
-
152
- Использовать `besales://workflows/extract-from-document`. Inspect/sample не равны полной вычитке.
153
- Для другого языка сначала перечислить листы/разделы и дать саммари на языке диалога. Чтение
154
- продолжается; перед записью чисел, процентов и условий получить подтверждение, если человек их
155
- ещё не согласовал. Завершение: source fingerprint, сохранённая classification, созданные IDs и
156
- повторное чтение связей.
157
-
158
- ### CRM или 1С
159
-
160
- CRM: `besales://workflows/connect-crm-from-scratch`; 1С/data source:
161
- `besales://workflows/connect-datasource-from-scratch`. Browser setup поллится до `READY`.
162
- После записи проверить live health/catalog/pipeline, а не только существование строки.
140
+ `besales_agent_list` с `query` → при нескольких совпадениях согласуй выбор →
141
+ `besales_agent_get` → полный снимок и черновик `besales_prompt_patch_*`. Для пакетной операции
142
+ есть `besales_prompt_batch_start` с `idempotency_key`; её исход проверяй через
143
+ `besales_prompt_batch_status` или `besales_prompt_batch_by_key`. Проверка кандидата изолирована
144
+ от публикации; commit/finalize — отдельное согласованное действие. Перечитай итоговую версию:
145
+ `skippedCount > 0`, ошибка линтера или устаревший тест не означают успех.
163
146
 
164
- ### Follow-up
147
+ ### Документ и подключение источников
165
148
 
166
- Прочитать полный config последовательности и ограничения площадки, затем
167
- `besales_followup_sequence_upsert`. Проверить повторным list и статистикой шагов. Сезонная пауза,
168
- disabled draft и отсутствие ожидаемого запуска различаются; closed dialogue не получает касаний.
149
+ Документ → `besales://workflows/extract-from-document`: sample недостаточен для полной вычитки.
150
+ Для другого языка сначала перечисли листы/разделы и дай саммари на языке диалога; числа,
151
+ проценты и условия согласуй до записи, если они ещё не согласованы. Зафиксируй классификацию,
152
+ идентификаторы созданных объектов и повторно проверь связи.
169
153
 
170
- ### Подготовка и проверка рассылки
154
+ CRM → `besales://workflows/connect-crm-from-scratch`; 1С →
155
+ `besales://workflows/connect-datasource-from-scratch`. Дождись `READY`, затем проверь доступный
156
+ каталог и воронки. Само наличие строки подключения не доказывает живую авторизацию.
171
157
 
172
- Сначала preview/dry-run и полный список ошибок/контактов, потом явное подтверждение фактической
173
- отправки. Сохранить `idempotency_key` до вызова, затем поллить соответствующий status. При
174
- `OUTCOME_UNKNOWN` искать запуск по receipt/key и не повторять отправку.
158
+ ### Дожимы, рассылки и аналитика
175
159
 
176
- ### Исходящая аналитика
160
+ Для follow-up прочитай полный config и ограничения канала, сохрани все шаги при замене и
161
+ перечитай цепочку: `besales://docs/follow-up`. Выключенная цепочка и отсутствие ожидаемого
162
+ запуска — разные состояния.
177
163
 
178
- `besales_broadcast_analytics_get`: передать период, `view=cohort|period|entry` и нужное зерно.
179
- `summary.totals` — канонический общий итог денег; multichannel rows не суммировать повторно.
180
- Исходящие метрики не доказывают отсутствие входящих сообщений.
164
+ Для рассылки сначала покажи preview и доступные ошибки/причины пропуска, получи подтверждение
165
+ живой отправки; затем проверяй статус. Если инструмент принимает `idempotency_key`, сохрани его
166
+ до вызова. При `OUTCOME_UNKNOWN` ищи receipt/запуск, повтор не разрешён автоматически.
181
167
 
182
- ### Бот молчит или не доставил
168
+ Исходящий отчёт — `besales_broadcast_analytics_get`: период, `view=cohort|period|entry` и нужное
169
+ зерно. Общие неденежные итоги бери из `totals`, денежные плитки — из `moneyTotals.paidAmount` и
170
+ `moneyTotals.indirectAmount`; строки по каналам не суммируй повторно. Исходящие метрики не
171
+ доказывают отсутствие входящих сообщений.
183
172
 
184
- 1. Выбрать контакт/сообщение по обычным данным; если MCP-пути чтения нет, честно назвать
185
- unsupported и перейти в UI, не угадывать причину.
186
- 2. По времени проверить mute/silence/operator status, routing/model, RAG evidence,
187
- trigger/action execution, transport и delivery receipt.
188
- 3. Отсутствие evidence назвать «не найдено свидетельство», а не нулём.
189
- 4. Завершение — одна доказанная причина либо перечень точных недостающих данных.
173
+ ### Бот молчит и аудит
190
174
 
191
- ### Аудит
175
+ Выбери контакт и сообщение по обычным данным. Если MCP не даёт нужного чтения, назови пробел и
176
+ перейди в UI. По времени проверь доступные свидетельства паузы/оператора, маршрута и модели,
177
+ знаний, исполнения действий и доставки. Отсутствие свидетельства не равно нулю. Результат —
178
+ доказанная причина либо точный список недостающих данных.
192
179
 
193
- `besales://workflows/audit-dialogues`: start → status → result/findings. Pending/failed/unknown
194
- не становятся success; доказательства маскируются и не копируются без необходимости.
180
+ Сырой аудит → `besales://workflows/audit-dialogues`; отчёт ревизора →
181
+ `besales_dialogue_audit_runs_list` / `besales_dialogue_audit_run_get` /
182
+ `besales_dialogue_audit_findings`. Pending/failed/unknown не являются успехом; ненужные PII
183
+ маскируй и не копируй.
195
184
 
196
185
  ### Продолжение после ошибки
197
186
 
198
- 401 → reconnect конкретного workspace; 403 → добавить названный scope, сохранив прежние;
199
- 410 → новый get_instructions; 422 → исправить поля; 429 → ждать `retryAfter`; timeout/5xx
200
- неидемпотентной мутации → `OUTCOME_UNKNOWN`, receipt/status/list. Перед продолжением перечитать
201
- объект и права: сохранённый план не заменяет свежую проверку.
187
+ 401 → восстанови подключение нужного workspace; 403 → проверь недостающие scopes, сохраняя
188
+ прежние; 410 у external instructions → новый get_instructions; 422 → исправь указанные поля;
189
+ 429 → выжди срок из ответа. Timeout/5xx после неидемпотентной записи → неизвестный исход,
190
+ сначала receipt/status/list. Перед продолжением перечитай объект и права.
@@ -1,9 +1,10 @@
1
1
  # Workflow: Production Readiness Check
2
2
 
3
- Финальная проверка перед запуском бота. Workspace overview нужен для выбора площадки, но
4
- `besales_agent_readiness_get` проверяет конкретного агента. Сейчас API не фиксирует полную
5
- версию зависимых настроек и возвращает `NOT_PROVEN`, даже если промпт и quality evidence
6
- актуальны. Не обещай, что повтор sandbox даст `READY`. Часть бизнес-возможностей остаётся опциональной.
3
+ Финальная проверка перед запуском бота. Workspace overview нужен для выбора канала, но
4
+ `besales_agent_readiness_get` проверяет конкретного агента — по каждому каналу, к которому он привязан.
5
+ Сейчас API не фиксирует версии зависимых настроек и возвращает `NOT_PROVEN`, даже если промпт и
6
+ свидетельства качества актуальны. Не обещай, что повтор песочницы даст `READY`. Часть
7
+ бизнес-возможностей остаётся опциональной.
7
8
 
8
9
  ## Шаг 1 — Снимок
9
10
 
@@ -12,24 +13,33 @@
12
13
 
13
14
  ## Чеклист (по readiness выбранного агента)
14
15
 
16
+ Ответ двухуровневый. Верхние `gates` — сводка по каналу песочницы (`sandboxChannelId`); `bindings[]` —
17
+ те же ворота по каждому каналу агента. Верхний `missing` содержит все шаги: пункты агента, затем пункты
18
+ каждой привязки с названием канала.
19
+
15
20
  **Блокирующее (должно быть):**
16
21
 
17
22
  - `channelActive`, `aiEnabled`, `promptConfigured`, `promptHashInvariant`, `greetingConfigured`.
18
- - `knowledgeLinked`: все объявленные namespace существуют в workspace.
19
- - `icp.passed`: ICP обязателен для sales/qualification/reactivation.
20
- - `sandbox.status=COMPLETED`, `configurationCurrent=true`, `findingsStatus=SUBMITTED`,
21
- `qualityRate ≥ policy.minQualityRate`, `checksRate ≥ policy.minChecksRate` и есть expectations.
22
- Сейчас `configurationCurrent=null`: `promptAndAgentCurrent` проверяет только промпт и запись
23
- агента, а `unverifiedDependencies` перечисляет непроверенные зависимости. Это блокирует общий
24
- положительный вердикт, даже при `promptAndAgentCurrent=true`.
23
+ - `knowledgeLinked`: все пространства из настроек поиска агента существуют, и хотя бы одно из них доступно
24
+ каналу автоматическим поиском.
25
+ - `icp.passed`: ICP обязателен для продаж, квалификации и реактивации
26
+ (`SALE`, `QUALIFICATION`, `REACTIVATION`); для FAQ/поддержки это не обязательный шаг.
27
+ - `sandbox.status=COMPLETED`, `findingsStatus=SUBMITTED`, `qualityRate ≥ policy.minQualityRate`,
28
+ `promptAndAgentCurrent=true`. Прогон по кандидату промпта готовность не доказывает.
29
+ `configurationCurrent=null`: `promptAndAgentCurrent` проверяет только промпт и запись агента, а
30
+ `unverifiedDependencies` перечисляет непроверенные зависимости. Это блокирует общий положительный
31
+ вердикт, даже при `promptAndAgentCurrent=true`.
32
+ - Проверки ожиданий сценариев у доказанного прогона: ни одной проверки — шаг «добавьте ожидания»; доля
33
+ `checksRate` ниже `policy.minChecksRate` — шаг с долей и порогом. Пустой `checksRate` значит «не проверяли», а не
34
+ ноль процентов. Восемь базовых проверок заводит оператор командой `yarn evals:seed-baseline` на сервере.
25
35
 
26
36
  **Сильно рекомендуется:**
27
- - `passRate` — только живучесть. Даже 1.0 не заменяет quality/checks/findings.
28
- - `crmAuthorization=NOT_EVALUATED` означает, что live-доступ CRM надо проверить отдельно,
37
+ - `passRate` — только живучесть. Даже 1.0 не заменяет quality и findings.
38
+ - `crmAuthorization=NOT_EVALUATED` означает, что живой доступ к CRM надо проверить отдельно,
29
39
  когда CRM входит в цель запуска.
30
40
 
31
- `NOT_PROVEN` — нормальный честный исход. Выполни адресные пункты `missing`, затем перечитай
32
- readiness: сохранённый ответ не заменяет свежую проверку объекта и прав.
41
+ `NOT_PROVEN` — нормальный честный исход. Выполни адресные пункты `missing` обоих уровней, затем
42
+ перечитай readiness: сохранённый ответ не заменяет свежую проверку объекта и прав.
33
43
 
34
44
  **По бизнес-цели (опционально — НЕ «недоделано» если не нужно):**
35
45
  - Triggers / follow-ups: `besales_trigger_upsert` / `besales_followup_sequence_upsert`.