@besales/mcp 0.47.1 → 1.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (587) hide show
  1. package/README.md +109 -164
  2. package/README.onprem.ru.md +35 -0
  3. package/bin/besales-mcp-http.js +9 -0
  4. package/bin/besales-onprem.mjs +19 -0
  5. package/dist/auth/connection-store.d.ts +3 -1
  6. package/dist/auth/connection-store.js +9 -3
  7. package/dist/auth/connection-store.js.map +1 -1
  8. package/dist/auth/oauth-client.d.ts +20 -27
  9. package/dist/auth/oauth-client.js +31 -23
  10. package/dist/auth/oauth-client.js.map +1 -1
  11. package/dist/auth/session-workspace.d.ts +1 -0
  12. package/dist/auth/session-workspace.js +10 -1
  13. package/dist/auth/session-workspace.js.map +1 -1
  14. package/dist/auth/token-storage.js +4 -1
  15. package/dist/auth/token-storage.js.map +1 -1
  16. package/dist/cli.d.ts +1 -0
  17. package/dist/cli.js +80 -19
  18. package/dist/cli.js.map +1 -1
  19. package/dist/constants/crm-catalog.d.ts +2 -0
  20. package/dist/constants/crm-catalog.js +3 -0
  21. package/dist/constants/crm-catalog.js.map +1 -0
  22. package/dist/http/api-client.d.ts +52 -7
  23. package/dist/http/api-client.js +131 -66
  24. package/dist/http/api-client.js.map +1 -1
  25. package/dist/http/feedback-document-error.d.ts +26 -0
  26. package/dist/http/feedback-document-error.js +22 -0
  27. package/dist/http/feedback-document-error.js.map +1 -0
  28. package/dist/http-server.d.ts +15 -0
  29. package/dist/http-server.js +378 -0
  30. package/dist/http-server.js.map +1 -0
  31. package/dist/instructions/server-instructions.d.ts +1 -1
  32. package/dist/instructions/server-instructions.js +6 -3
  33. package/dist/instructions/server-instructions.js.map +1 -1
  34. package/dist/network/constants.d.ts +25 -0
  35. package/dist/network/constants.js +26 -0
  36. package/dist/network/constants.js.map +1 -0
  37. package/dist/network/failed-verifications.d.ts +10 -0
  38. package/dist/network/failed-verifications.js +37 -0
  39. package/dist/network/failed-verifications.js.map +1 -0
  40. package/dist/network/http-test-fixture.d.ts +3 -0
  41. package/dist/network/http-test-fixture.js +86 -0
  42. package/dist/network/http-test-fixture.js.map +1 -0
  43. package/dist/network/known-keys.d.ts +10 -0
  44. package/dist/network/known-keys.js +38 -0
  45. package/dist/network/known-keys.js.map +1 -0
  46. package/dist/network/memory-credentials.d.ts +11 -0
  47. package/dist/network/memory-credentials.js +24 -0
  48. package/dist/network/memory-credentials.js.map +1 -0
  49. package/dist/network/rate-limit.d.ts +23 -0
  50. package/dist/network/rate-limit.js +62 -0
  51. package/dist/network/rate-limit.js.map +1 -0
  52. package/dist/network/rejected-keys.d.ts +9 -0
  53. package/dist/network/rejected-keys.js +39 -0
  54. package/dist/network/rejected-keys.js.map +1 -0
  55. package/dist/network/request-work.d.ts +8 -0
  56. package/dist/network/request-work.js +20 -0
  57. package/dist/network/request-work.js.map +1 -0
  58. package/dist/network/successful-keys.d.ts +17 -0
  59. package/dist/network/successful-keys.js +47 -0
  60. package/dist/network/successful-keys.js.map +1 -0
  61. package/dist/resources/concepts/external-execution.md +3 -1
  62. package/dist/resources/concepts/feedback-sheets.md +21 -12
  63. package/dist/resources/concepts/icp.md +8 -1
  64. package/dist/resources/concepts/sandbox.md +15 -6
  65. package/dist/resources/concepts/triggers.md +8 -0
  66. package/dist/resources/concepts/workbook-classification.md +104 -50
  67. package/dist/resources/docs/agent-behavior.md +51 -382
  68. package/dist/resources/docs/campaigns.md +9 -16
  69. package/dist/resources/docs/crm-integration.md +39 -523
  70. package/dist/resources/docs/files-and-uploads.md +23 -286
  71. package/dist/resources/docs/follow-up.md +47 -12
  72. package/dist/resources/docs/knowledge-base.md +52 -521
  73. package/dist/resources/docs/pipeline-builder.md +26 -216
  74. package/dist/resources/docs/pipeline-settings-deep.md +27 -220
  75. package/dist/resources/docs/platforms.md +106 -519
  76. package/dist/resources/docs/prompt-anatomy.md +39 -285
  77. package/dist/resources/docs/routing.md +8 -16
  78. package/dist/resources/docs/trigger-actions.md +40 -24
  79. package/dist/resources/docs/variables.md +8 -12
  80. package/dist/resources/operator-edit.contract.d.ts +7 -0
  81. package/dist/resources/operator-edit.contract.js +8 -0
  82. package/dist/resources/operator-edit.contract.js.map +1 -0
  83. package/dist/resources/registry.js +20 -4
  84. package/dist/resources/registry.js.map +1 -1
  85. package/dist/resources/workflows/audit-dialogues.md +23 -12
  86. package/dist/resources/workflows/compare-models.md +6 -4
  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 +12061 -6753
  94. package/dist/schemas/voice-actions-api.contract.json +248 -0
  95. package/dist/shared/constants/broadcast-reason.constants.d.ts +2 -0
  96. package/dist/shared/constants/broadcast-reason.constants.js +47 -0
  97. package/dist/shared/constants/broadcast-reason.constants.js.map +1 -0
  98. package/dist/shared/constants/crm-stage-pool.constants.d.ts +2 -0
  99. package/dist/shared/constants/crm-stage-pool.constants.js +3 -0
  100. package/dist/shared/constants/crm-stage-pool.constants.js.map +1 -0
  101. package/dist/shared/constants/followup-note.constants.d.ts +3 -0
  102. package/dist/shared/constants/followup-note.constants.js +4 -0
  103. package/dist/shared/constants/followup-note.constants.js.map +1 -0
  104. package/dist/shared/constants/followup-session.constants.d.ts +2 -0
  105. package/dist/shared/constants/followup-session.constants.js +3 -0
  106. package/dist/shared/constants/followup-session.constants.js.map +1 -0
  107. package/dist/shared/constants/funnel-analytics.constants.d.ts +2 -0
  108. package/dist/shared/constants/funnel-analytics.constants.js +3 -0
  109. package/dist/shared/constants/funnel-analytics.constants.js.map +1 -0
  110. package/dist/shared/constants/message-filter.constants.d.ts +7 -0
  111. package/dist/shared/constants/message-filter.constants.js +8 -0
  112. package/dist/shared/constants/message-filter.constants.js.map +1 -0
  113. package/dist/shared/utils/trigger-repeat-mapping.d.ts +72 -0
  114. package/dist/shared/utils/trigger-repeat-mapping.js +53 -0
  115. package/dist/shared/utils/trigger-repeat-mapping.js.map +1 -0
  116. package/dist/skills/besales-dialogue-audit/SKILL.md +31 -20
  117. package/dist/tasks/task-state-store.js +5 -0
  118. package/dist/tasks/task-state-store.js.map +1 -1
  119. package/dist/tools/annotations.js +4 -3
  120. package/dist/tools/annotations.js.map +1 -1
  121. package/dist/tools/definitions/agent-design.d.ts +78 -21
  122. package/dist/tools/definitions/agent-design.js +246 -90
  123. package/dist/tools/definitions/agent-design.js.map +1 -1
  124. package/dist/tools/definitions/agent-model-notice.d.ts +5 -0
  125. package/dist/tools/definitions/agent-model-notice.js +31 -0
  126. package/dist/tools/definitions/agent-model-notice.js.map +1 -0
  127. package/dist/tools/definitions/agent-models.d.ts +5 -0
  128. package/dist/tools/definitions/agent-models.js +26 -0
  129. package/dist/tools/definitions/agent-models.js.map +1 -0
  130. package/dist/tools/definitions/agent-settings.d.ts +85 -0
  131. package/dist/tools/definitions/agent-settings.js +187 -0
  132. package/dist/tools/definitions/agent-settings.js.map +1 -0
  133. package/dist/tools/definitions/ai-costs.d.ts +12 -0
  134. package/dist/tools/definitions/ai-costs.js +142 -0
  135. package/dist/tools/definitions/ai-costs.js.map +1 -0
  136. package/dist/tools/definitions/api-tool-request.d.ts +15 -0
  137. package/dist/tools/definitions/api-tool-request.js +2 -0
  138. package/dist/tools/definitions/api-tool-request.js.map +1 -0
  139. package/dist/tools/definitions/behavior-shipped-form.d.ts +182 -0
  140. package/dist/tools/definitions/behavior-shipped-form.js +185 -0
  141. package/dist/tools/definitions/behavior-shipped-form.js.map +1 -0
  142. package/dist/tools/definitions/broadcast-alerts.d.ts +6 -0
  143. package/dist/tools/definitions/broadcast-alerts.js +72 -0
  144. package/dist/tools/definitions/broadcast-alerts.js.map +1 -0
  145. package/dist/tools/definitions/broadcast-analytics.d.ts +102 -18
  146. package/dist/tools/definitions/broadcast-analytics.js +732 -427
  147. package/dist/tools/definitions/broadcast-analytics.js.map +1 -1
  148. package/dist/tools/definitions/broadcast-scheduler.d.ts +19 -13
  149. package/dist/tools/definitions/broadcast-scheduler.js +217 -128
  150. package/dist/tools/definitions/broadcast-scheduler.js.map +1 -1
  151. package/dist/tools/definitions/call-operator-task.schema.d.ts +11 -0
  152. package/dist/tools/definitions/call-operator-task.schema.js +30 -0
  153. package/dist/tools/definitions/call-operator-task.schema.js.map +1 -0
  154. package/dist/tools/definitions/contacts.d.ts +3 -0
  155. package/dist/tools/definitions/contacts.js +57 -31
  156. package/dist/tools/definitions/contacts.js.map +1 -1
  157. package/dist/tools/definitions/crm-platform.d.ts +28 -39
  158. package/dist/tools/definitions/crm-platform.js +235 -344
  159. package/dist/tools/definitions/crm-platform.js.map +1 -1
  160. package/dist/tools/definitions/crm-stage-pool.messages.d.ts +39 -0
  161. package/dist/tools/definitions/crm-stage-pool.messages.js +43 -0
  162. package/dist/tools/definitions/crm-stage-pool.messages.js.map +1 -0
  163. package/dist/tools/definitions/crm-stage-pool.schema.d.ts +64 -0
  164. package/dist/tools/definitions/crm-stage-pool.schema.js +109 -0
  165. package/dist/tools/definitions/crm-stage-pool.schema.js.map +1 -0
  166. package/dist/tools/definitions/custom-reports.d.ts +12 -0
  167. package/dist/tools/definitions/custom-reports.js +68 -0
  168. package/dist/tools/definitions/custom-reports.js.map +1 -0
  169. package/dist/tools/definitions/datasource.d.ts +2 -1
  170. package/dist/tools/definitions/datasource.js +28 -13
  171. package/dist/tools/definitions/datasource.js.map +1 -1
  172. package/dist/tools/definitions/dialog-review-findings-response.d.ts +14 -0
  173. package/dist/tools/definitions/dialog-review-findings-response.js +23 -0
  174. package/dist/tools/definitions/dialog-review-findings-response.js.map +1 -0
  175. package/dist/tools/definitions/dialog-review-safe-response.d.ts +5 -0
  176. package/dist/tools/definitions/dialog-review-safe-response.js +152 -0
  177. package/dist/tools/definitions/dialog-review-safe-response.js.map +1 -0
  178. package/dist/tools/definitions/dialog-review.d.ts +49 -0
  179. package/dist/tools/definitions/dialog-review.js +383 -0
  180. package/dist/tools/definitions/dialog-review.js.map +1 -0
  181. package/dist/tools/definitions/dialogue-analysis.d.ts +46 -0
  182. package/dist/tools/definitions/dialogue-analysis.js +170 -0
  183. package/dist/tools/definitions/dialogue-analysis.js.map +1 -0
  184. package/dist/tools/definitions/dialogue-audit-agent-scope.d.ts +7 -0
  185. package/dist/tools/definitions/dialogue-audit-agent-scope.js +41 -0
  186. package/dist/tools/definitions/dialogue-audit-agent-scope.js.map +1 -0
  187. package/dist/tools/definitions/dialogue-audit-alias.d.ts +67 -0
  188. package/dist/tools/definitions/dialogue-audit-alias.js +559 -0
  189. package/dist/tools/definitions/dialogue-audit-alias.js.map +1 -0
  190. package/dist/tools/definitions/dialogue-export.d.ts +7 -1
  191. package/dist/tools/definitions/dialogue-export.js +89 -32
  192. package/dist/tools/definitions/dialogue-export.js.map +1 -1
  193. package/dist/tools/definitions/dialogue-followup-state.d.ts +9 -0
  194. package/dist/tools/definitions/dialogue-followup-state.js +69 -0
  195. package/dist/tools/definitions/dialogue-followup-state.js.map +1 -0
  196. package/dist/tools/definitions/edit-version-transport.test-fixtures.d.ts +13 -0
  197. package/dist/tools/definitions/edit-version-transport.test-fixtures.js +292 -0
  198. package/dist/tools/definitions/edit-version-transport.test-fixtures.js.map +1 -0
  199. package/dist/tools/definitions/edit-version.d.ts +5 -0
  200. package/dist/tools/definitions/edit-version.js +20 -0
  201. package/dist/tools/definitions/edit-version.js.map +1 -0
  202. package/dist/tools/definitions/external-api-channels.js +17 -15
  203. package/dist/tools/definitions/external-api-channels.js.map +1 -1
  204. package/dist/tools/definitions/feedback-document-access.d.ts +16 -0
  205. package/dist/tools/definitions/feedback-document-access.js +63 -0
  206. package/dist/tools/definitions/feedback-document-access.js.map +1 -0
  207. package/dist/tools/definitions/fixtures/shipped-setup-status.d.ts +3 -0
  208. package/dist/tools/definitions/fixtures/shipped-setup-status.js +9 -0
  209. package/dist/tools/definitions/fixtures/shipped-setup-status.js.map +1 -0
  210. package/dist/tools/definitions/follow-up-config.d.ts +79 -0
  211. package/dist/tools/definitions/follow-up-config.js +258 -0
  212. package/dist/tools/definitions/follow-up-config.js.map +1 -0
  213. package/dist/tools/definitions/follow-up-funnel-test.d.ts +4 -3
  214. package/dist/tools/definitions/follow-up-funnel-test.js +65 -52
  215. package/dist/tools/definitions/follow-up-funnel-test.js.map +1 -1
  216. package/dist/tools/definitions/follow-up-promotion-instructions.d.ts +2 -0
  217. package/dist/tools/definitions/follow-up-promotion-instructions.js +7 -0
  218. package/dist/tools/definitions/follow-up-promotion-instructions.js.map +1 -0
  219. package/dist/tools/definitions/follow-up-setup.d.ts +4 -28
  220. package/dist/tools/definitions/follow-up-setup.js +20 -87
  221. package/dist/tools/definitions/follow-up-setup.js.map +1 -1
  222. package/dist/tools/definitions/follow-up.d.ts +20 -122
  223. package/dist/tools/definitions/follow-up.js +200 -354
  224. package/dist/tools/definitions/follow-up.js.map +1 -1
  225. package/dist/tools/definitions/followup-getcourse-compat.d.ts +29 -0
  226. package/dist/tools/definitions/followup-getcourse-compat.js +62 -0
  227. package/dist/tools/definitions/followup-getcourse-compat.js.map +1 -0
  228. package/dist/tools/definitions/followup-sequence-config.schema.d.ts +10 -0
  229. package/dist/tools/definitions/followup-sequence-config.schema.js +14 -0
  230. package/dist/tools/definitions/followup-sequence-config.schema.js.map +1 -0
  231. package/dist/tools/definitions/funnel-analytics.d.ts +18 -0
  232. package/dist/tools/definitions/funnel-analytics.js +150 -0
  233. package/dist/tools/definitions/funnel-analytics.js.map +1 -0
  234. package/dist/tools/definitions/getcourse-anchor-refresh.d.ts +5 -9
  235. package/dist/tools/definitions/getcourse-anchor-refresh.js +26 -31
  236. package/dist/tools/definitions/getcourse-anchor-refresh.js.map +1 -1
  237. package/dist/tools/definitions/getcourse-cold-outbound-settings.d.ts +46 -0
  238. package/dist/tools/definitions/getcourse-cold-outbound-settings.js +37 -0
  239. package/dist/tools/definitions/getcourse-cold-outbound-settings.js.map +1 -0
  240. package/dist/tools/definitions/getcourse-cold-welcome.d.ts +17 -29
  241. package/dist/tools/definitions/getcourse-cold-welcome.js +182 -242
  242. package/dist/tools/definitions/getcourse-cold-welcome.js.map +1 -1
  243. package/dist/tools/definitions/getcourse-wave-welcome.messages.d.ts +10 -0
  244. package/dist/tools/definitions/getcourse-wave-welcome.messages.js +17 -0
  245. package/dist/tools/definitions/getcourse-wave-welcome.messages.js.map +1 -0
  246. package/dist/tools/definitions/help.js.map +1 -1
  247. package/dist/tools/definitions/icp-import-source.d.ts +75 -0
  248. package/dist/tools/definitions/icp-import-source.js +88 -0
  249. package/dist/tools/definitions/icp-import-source.js.map +1 -0
  250. package/dist/tools/definitions/inbound-analytics.d.ts +13 -0
  251. package/dist/tools/definitions/inbound-analytics.js +55 -0
  252. package/dist/tools/definitions/inbound-analytics.js.map +1 -0
  253. package/dist/tools/definitions/instagram-comment.templates.d.ts +19 -0
  254. package/dist/tools/definitions/instagram-comment.templates.js +34 -0
  255. package/dist/tools/definitions/instagram-comment.templates.js.map +1 -0
  256. package/dist/tools/definitions/instagram-settings-compat.d.ts +33 -0
  257. package/dist/tools/definitions/instagram-settings-compat.js +7 -0
  258. package/dist/tools/definitions/instagram-settings-compat.js.map +1 -0
  259. package/dist/tools/definitions/knowledge-chunking.d.ts +42 -0
  260. package/dist/tools/definitions/knowledge-chunking.js +83 -0
  261. package/dist/tools/definitions/knowledge-chunking.js.map +1 -0
  262. package/dist/tools/definitions/knowledge-space-search-fields.d.ts +12 -0
  263. package/dist/tools/definitions/knowledge-space-search-fields.js +30 -0
  264. package/dist/tools/definitions/knowledge-space-search-fields.js.map +1 -0
  265. package/dist/tools/definitions/knowledge.d.ts +24 -14
  266. package/dist/tools/definitions/knowledge.js +342 -233
  267. package/dist/tools/definitions/knowledge.js.map +1 -1
  268. package/dist/tools/definitions/legacy-trigger-repeat.d.ts +17 -0
  269. package/dist/tools/definitions/legacy-trigger-repeat.js +53 -0
  270. package/dist/tools/definitions/legacy-trigger-repeat.js.map +1 -0
  271. package/dist/tools/definitions/link-tracking.d.ts +8 -0
  272. package/dist/tools/definitions/link-tracking.js +141 -38
  273. package/dist/tools/definitions/link-tracking.js.map +1 -1
  274. package/dist/tools/definitions/mailing-variant-content.d.ts +75 -0
  275. package/dist/tools/definitions/mailing-variant-content.js +73 -0
  276. package/dist/tools/definitions/mailing-variant-content.js.map +1 -0
  277. package/dist/tools/definitions/model-comparison.d.ts +1 -0
  278. package/dist/tools/definitions/model-comparison.js +4 -5
  279. package/dist/tools/definitions/model-comparison.js.map +1 -1
  280. package/dist/tools/definitions/money-currency.d.ts +5 -0
  281. package/dist/tools/definitions/money-currency.js +10 -0
  282. package/dist/tools/definitions/money-currency.js.map +1 -0
  283. package/dist/tools/definitions/operator-workflow.d.ts +5 -5
  284. package/dist/tools/definitions/operator-workflow.js +80 -27
  285. package/dist/tools/definitions/operator-workflow.js.map +1 -1
  286. package/dist/tools/definitions/platform-funnel-analytics.d.ts +42 -0
  287. package/dist/tools/definitions/platform-funnel-analytics.js +72 -0
  288. package/dist/tools/definitions/platform-funnel-analytics.js.map +1 -0
  289. package/dist/tools/definitions/platform-getcourse-wave-field-bindings.d.ts +42 -0
  290. package/dist/tools/definitions/platform-getcourse-wave-field-bindings.js +51 -0
  291. package/dist/tools/definitions/platform-getcourse-wave-field-bindings.js.map +1 -0
  292. package/dist/tools/definitions/platform-settings-limits.d.ts +5 -0
  293. package/dist/tools/definitions/platform-settings-limits.js +6 -0
  294. package/dist/tools/definitions/platform-settings-limits.js.map +1 -0
  295. package/dist/tools/definitions/platform-settings-shipped-form.d.ts +37 -0
  296. package/dist/tools/definitions/platform-settings-shipped-form.js +310 -0
  297. package/dist/tools/definitions/platform-settings-shipped-form.js.map +1 -0
  298. package/dist/tools/definitions/platform-settings-update.d.ts +300 -0
  299. package/dist/tools/definitions/platform-settings-update.js +134 -0
  300. package/dist/tools/definitions/platform-settings-update.js.map +1 -0
  301. package/dist/tools/definitions/{getcourse-wave.d.ts → platform-setup-wave.d.ts} +75 -6
  302. package/dist/tools/definitions/platform-setup-wave.js +1079 -0
  303. package/dist/tools/definitions/platform-setup-wave.js.map +1 -0
  304. package/dist/tools/definitions/platform-setup.d.ts +701 -222
  305. package/dist/tools/definitions/platform-setup.js +313 -752
  306. package/dist/tools/definitions/platform-setup.js.map +1 -1
  307. package/dist/tools/definitions/platform-widget-page-rules.schema.d.ts +10 -0
  308. package/dist/tools/definitions/platform-widget-page-rules.schema.js +7 -0
  309. package/dist/tools/definitions/platform-widget-page-rules.schema.js.map +1 -0
  310. package/dist/tools/definitions/prompt-authoring.constants.d.ts +2 -0
  311. package/dist/tools/definitions/prompt-authoring.constants.js +3 -0
  312. package/dist/tools/definitions/prompt-authoring.constants.js.map +1 -0
  313. package/dist/tools/definitions/prompt-batch-controls.d.ts +5 -0
  314. package/dist/tools/definitions/prompt-batch-controls.js +40 -0
  315. package/dist/tools/definitions/prompt-batch-controls.js.map +1 -0
  316. package/dist/tools/definitions/prompt-draft-authoring.d.ts +5 -0
  317. package/dist/tools/definitions/prompt-draft-authoring.js +24 -0
  318. package/dist/tools/definitions/prompt-draft-authoring.js.map +1 -0
  319. package/dist/tools/definitions/prompt-text-projection.d.ts +11 -0
  320. package/dist/tools/definitions/prompt-text-projection.js +62 -0
  321. package/dist/tools/definitions/prompt-text-projection.js.map +1 -0
  322. package/dist/tools/definitions/reviewer-paid.d.ts +19 -0
  323. package/dist/tools/definitions/reviewer-paid.js +115 -0
  324. package/dist/tools/definitions/reviewer-paid.js.map +1 -0
  325. package/dist/tools/definitions/routing-condition-projection.d.ts +31 -0
  326. package/dist/tools/definitions/routing-condition-projection.js +97 -0
  327. package/dist/tools/definitions/routing-condition-projection.js.map +1 -0
  328. package/dist/tools/definitions/schedule-selection-hints.d.ts +3 -0
  329. package/dist/tools/definitions/schedule-selection-hints.js +42 -0
  330. package/dist/tools/definitions/schedule-selection-hints.js.map +1 -0
  331. package/dist/tools/definitions/{scheduled-tasks.d.ts → scheduled-task-alias.d.ts} +12 -10
  332. package/dist/tools/definitions/scheduled-task-alias.js +207 -0
  333. package/dist/tools/definitions/scheduled-task-alias.js.map +1 -0
  334. package/dist/tools/definitions/session.js +3 -3
  335. package/dist/tools/definitions/session.js.map +1 -1
  336. package/dist/tools/definitions/setup-init-operation.schema.d.ts +2 -0
  337. package/dist/tools/definitions/setup-init-operation.schema.js +6 -0
  338. package/dist/tools/definitions/setup-init-operation.schema.js.map +1 -0
  339. package/dist/tools/definitions/shared-input.helpers.d.ts +51 -0
  340. package/dist/tools/definitions/shared-input.helpers.js +323 -0
  341. package/dist/tools/definitions/shared-input.helpers.js.map +1 -0
  342. package/dist/tools/definitions/shared.d.ts +414 -284
  343. package/dist/tools/definitions/shared.js +436 -619
  344. package/dist/tools/definitions/shared.js.map +1 -1
  345. package/dist/tools/definitions/shipped-output-names.d.ts +19 -0
  346. package/dist/tools/definitions/shipped-output-names.js +123 -0
  347. package/dist/tools/definitions/shipped-output-names.js.map +1 -0
  348. package/dist/tools/definitions/task-state.d.ts +5 -5
  349. package/dist/tools/definitions/task-state.js +2 -1
  350. package/dist/tools/definitions/task-state.js.map +1 -1
  351. package/dist/tools/definitions/telegram-personal-capacity.d.ts +4 -0
  352. package/dist/tools/definitions/telegram-personal-capacity.js +18 -0
  353. package/dist/tools/definitions/telegram-personal-capacity.js.map +1 -0
  354. package/dist/tools/definitions/telegram-pool-policy.d.ts +8 -0
  355. package/dist/tools/definitions/telegram-pool-policy.js +56 -0
  356. package/dist/tools/definitions/telegram-pool-policy.js.map +1 -0
  357. package/dist/tools/definitions/touch-history-alias.d.ts +4 -0
  358. package/dist/tools/definitions/touch-history-alias.js +99 -0
  359. package/dist/tools/definitions/touch-history-alias.js.map +1 -0
  360. package/dist/tools/definitions/trigger-action-item.schema.d.ts +254 -0
  361. package/dist/tools/definitions/trigger-action-item.schema.js +121 -0
  362. package/dist/tools/definitions/trigger-action-item.schema.js.map +1 -0
  363. package/dist/tools/definitions/trigger-argument.schema.d.ts +14 -0
  364. package/dist/tools/definitions/trigger-argument.schema.js +23 -0
  365. package/dist/tools/definitions/trigger-argument.schema.js.map +1 -0
  366. package/dist/tools/definitions/trigger-claim-alias.d.ts +10 -0
  367. package/dist/tools/definitions/trigger-claim-alias.js +90 -0
  368. package/dist/tools/definitions/trigger-claim-alias.js.map +1 -0
  369. package/dist/tools/definitions/trigger-echo-projection.d.ts +1 -0
  370. package/dist/tools/definitions/trigger-echo-projection.js +41 -0
  371. package/dist/tools/definitions/trigger-echo-projection.js.map +1 -0
  372. package/dist/tools/definitions/trigger-upsert.tool.d.ts +29 -0
  373. package/dist/tools/definitions/trigger-upsert.tool.js +122 -0
  374. package/dist/tools/definitions/trigger-upsert.tool.js.map +1 -0
  375. package/dist/tools/definitions/v15-port-descriptions.d.ts +11 -0
  376. package/dist/tools/definitions/v15-port-descriptions.js +30 -0
  377. package/dist/tools/definitions/v15-port-descriptions.js.map +1 -0
  378. package/dist/tools/definitions/variables.d.ts +44 -0
  379. package/dist/tools/definitions/variables.js +310 -0
  380. package/dist/tools/definitions/variables.js.map +1 -0
  381. package/dist/tools/definitions/voice-action-input.d.ts +9 -0
  382. package/dist/tools/definitions/voice-action-input.js +141 -0
  383. package/dist/tools/definitions/voice-action-input.js.map +1 -0
  384. package/dist/tools/definitions/widget-customization-compat.d.ts +51 -0
  385. package/dist/tools/definitions/widget-customization-compat.js +23 -0
  386. package/dist/tools/definitions/widget-customization-compat.js.map +1 -0
  387. package/dist/tools/definitions.d.ts +1105 -621
  388. package/dist/tools/definitions.js +57 -27
  389. package/dist/tools/definitions.js.map +1 -1
  390. package/dist/tools/description-localization.js +3 -2
  391. package/dist/tools/description-localization.js.map +1 -1
  392. package/dist/tools/follow-up-request.d.ts +19 -0
  393. package/dist/tools/follow-up-request.js +81 -0
  394. package/dist/tools/follow-up-request.js.map +1 -0
  395. package/dist/tools/followup-revision.d.ts +4 -0
  396. package/dist/tools/followup-revision.js +29 -0
  397. package/dist/tools/followup-revision.js.map +1 -0
  398. package/dist/tools/incomplete-list.js +4 -0
  399. package/dist/tools/incomplete-list.js.map +1 -1
  400. package/dist/tools/inventory.js +47 -11
  401. package/dist/tools/inventory.js.map +1 -1
  402. package/dist/tools/operation-recovery.d.ts +4 -0
  403. package/dist/tools/operation-recovery.js +33 -0
  404. package/dist/tools/operation-recovery.js.map +1 -0
  405. package/dist/tools/registry-mapping-primary.cases.d.ts +2 -0
  406. package/dist/tools/registry-mapping-primary.cases.js +753 -0
  407. package/dist/tools/registry-mapping-primary.cases.js.map +1 -0
  408. package/dist/tools/registry-mapping-secondary.cases.d.ts +2 -0
  409. package/dist/tools/registry-mapping-secondary.cases.js +626 -0
  410. package/dist/tools/registry-mapping-secondary.cases.js.map +1 -0
  411. package/dist/tools/registry-mapping.cases.d.ts +8 -0
  412. package/dist/tools/registry-mapping.cases.js +13 -0
  413. package/dist/tools/registry-mapping.cases.js.map +1 -0
  414. package/dist/tools/registry-test-fixtures.d.ts +50 -0
  415. package/dist/tools/registry-test-fixtures.js +120 -0
  416. package/dist/tools/registry-test-fixtures.js.map +1 -0
  417. package/dist/tools/registry.d.ts +2 -0
  418. package/dist/tools/registry.js +82 -52
  419. package/dist/tools/registry.js.map +1 -1
  420. package/dist/tools/result.d.ts +1 -0
  421. package/dist/tools/result.js +90 -22
  422. package/dist/tools/result.js.map +1 -1
  423. package/dist/tools/toolsets.d.ts +16 -0
  424. package/dist/tools/toolsets.js +25 -1
  425. package/dist/tools/toolsets.js.map +1 -1
  426. package/dist/types/api-contract.gen.d.ts +105862 -22115
  427. package/dist/utils/credential-signatures.d.ts +3 -0
  428. package/dist/utils/credential-signatures.js +10 -0
  429. package/dist/utils/credential-signatures.js.map +1 -0
  430. package/dist/utils/data-source-column-name.d.ts +10 -0
  431. package/dist/utils/data-source-column-name.js +36 -0
  432. package/dist/utils/data-source-column-name.js.map +1 -0
  433. package/dist/utils/logger.d.ts +1 -0
  434. package/dist/utils/logger.js +32 -8
  435. package/dist/utils/logger.js.map +1 -1
  436. package/dist/utils/secret-read-boundary.d.ts +2 -0
  437. package/dist/utils/secret-read-boundary.js +88 -0
  438. package/dist/utils/secret-read-boundary.js.map +1 -0
  439. package/dist/utils/setup-secrets.d.ts +4 -0
  440. package/dist/utils/setup-secrets.js +40 -0
  441. package/dist/utils/setup-secrets.js.map +1 -0
  442. package/docs/agent-models.md +9 -0
  443. package/docs/agent-usage-guide.full.ru.md +1 -4
  444. package/docs/analytics-contract.md +67 -0
  445. package/docs/async-operation-lifecycle.md +10 -3
  446. package/docs/connect.ru.md +144 -4
  447. package/docs/contact-company-profile.md +17 -0
  448. package/docs/contact-recommendations.md +7 -0
  449. package/docs/crm-stage-pool.md +73 -0
  450. package/docs/customer-data.md +61 -0
  451. package/docs/edit-versions.md +36 -0
  452. package/docs/failure-semantics.md +17 -9
  453. package/docs/help-navigation.md +15 -42
  454. package/docs/host-compatibility-matrix.md +72 -93
  455. package/docs/host-setup.md +33 -35
  456. package/docs/invariants/public-api-and-contracts.md +16 -0
  457. package/docs/legacy-action-settings.md +21 -0
  458. package/docs/main-transfer-dependencies.md +38 -0
  459. package/docs/mcp2-parity.md +50 -0
  460. package/docs/modules/analytics.md +79 -0
  461. package/docs/modules/besales-mcp.md +137 -0
  462. package/docs/modules/dialog-review-report.md +38 -0
  463. package/docs/modules/dialogue-followup-adapters.md +39 -0
  464. package/docs/modules/message-reactions.md +17 -0
  465. package/docs/modules/network-mode.md +284 -0
  466. package/docs/modules/prompt-batch-and-dialogue-controls.md +69 -0
  467. package/docs/pii-policy.md +21 -16
  468. package/docs/response-size-budget.md +197 -7
  469. package/docs/secret-read-boundary.md +102 -0
  470. package/docs/task-state.md +7 -2
  471. package/docs/telegram-pool-policy.md +19 -0
  472. package/docs/tool-effects.md +15 -9
  473. package/docs/tool-surface.md +205 -4
  474. package/docs/voice-actions-and-inbox.md +95 -0
  475. package/docs/wazzup-instagram-comments.md +26 -0
  476. package/package.json +17 -10
  477. package/scripts/api-source-loader.spec.mjs +40 -0
  478. package/scripts/audit-bridge-controls.mjs +129 -0
  479. package/scripts/audit-revert-mutants.mjs +107 -0
  480. package/scripts/bridge-api-input.spec.mjs +98 -0
  481. package/scripts/bridge-controls-mutants.mjs +130 -0
  482. package/scripts/brx3-shipped-refusals.spec.mjs +149 -0
  483. package/scripts/brx4-ledger-payload.spec.mjs +127 -0
  484. package/scripts/build-onprem.mjs +108 -0
  485. package/scripts/connect-clients.sh +141 -0
  486. package/scripts/connect-scopes.mjs +166 -0
  487. package/scripts/connect-scopes.spec.mjs +83 -0
  488. package/scripts/emit-personal-link-carrier.mjs +31 -0
  489. package/scripts/emit-setup-init-schemas.mjs +24 -0
  490. package/scripts/emit-tool-routes.mjs +878 -0
  491. package/scripts/emit-tool-routes.spec.mjs +300 -0
  492. package/scripts/followup-registry.spec.mjs +107 -0
  493. package/scripts/generate-crm-rotation-contract.mjs +98 -0
  494. package/scripts/generate-followup-session-contract.mjs +16 -0
  495. package/scripts/icp-import-verification/mutate.cjs +70 -0
  496. package/scripts/import-secret-read-contract.mjs +53 -0
  497. package/scripts/install-claude-desktop.js +1 -1
  498. package/scripts/lag-decisions.mjs +37 -0
  499. package/scripts/lag-decisions.spec.mjs +87 -0
  500. package/scripts/lag-open-task-owners.mjs +46 -0
  501. package/scripts/lag-open-task-owners.spec.mjs +78 -0
  502. package/scripts/lag-payload.mjs +10 -0
  503. package/scripts/legacy-action-lag.spec.mjs +22 -0
  504. package/scripts/legacy-field-refusal.shipped.spec.mjs +99 -0
  505. package/scripts/mcpcompat-handler.mjs +34 -0
  506. package/scripts/mcpcompat-loader.mjs +36 -0
  507. package/scripts/mcpcompat-typescript.mjs +3 -0
  508. package/scripts/platform-settings-shipped-parity.spec.mjs +89 -0
  509. package/scripts/prbr-round1-recheck.spec.mjs +605 -0
  510. package/scripts/prbr-shipped-compatibility.spec.mjs +276 -0
  511. package/scripts/publish-mcp-registry.mjs +98 -0
  512. package/scripts/publish-mcp-registry.spec.mjs +68 -0
  513. package/scripts/record-scheduled-task-call.mjs +26 -0
  514. package/scripts/refusal-probe.mjs +17 -0
  515. package/scripts/refusal-probe.spec.mjs +29 -0
  516. package/scripts/registry-diff.mjs +502 -0
  517. package/scripts/registry-diff.spec.mjs +787 -0
  518. package/scripts/request-query.mjs +43 -0
  519. package/scripts/request-query.spec.mjs +82 -0
  520. package/scripts/route-lag.mjs +23 -0
  521. package/scripts/route-lag.spec.mjs +30 -0
  522. package/scripts/sample-args.mjs +174 -0
  523. package/scripts/sample-args.spec.mjs +160 -0
  524. package/scripts/shipped-definitions.mjs +197 -0
  525. package/scripts/shipped-definitions.spec.mjs +57 -0
  526. package/scripts/shipped-inputs.spec.mjs +136 -0
  527. package/scripts/shipped-recordings.spec.mjs +19 -0
  528. package/scripts/shipped-ref.d.mts +5 -0
  529. package/scripts/shipped-ref.mjs +20 -0
  530. package/scripts/shipped-ref.spec.mjs +59 -0
  531. package/scripts/shipped-registry.mjs +107 -0
  532. package/scripts/shipped-sample-candidates.mjs +69 -0
  533. package/scripts/shipped-sample-candidates.spec.mjs +117 -0
  534. package/scripts/shipped-sample.mjs +868 -0
  535. package/scripts/shipped-sample.spec.mjs +451 -0
  536. package/scripts/sync-agent-model-schemas.mjs +72 -0
  537. package/scripts/sync-api-contracts.mjs +85 -0
  538. package/scripts/sync-api-contracts.spec.mjs +144 -0
  539. package/scripts/sync-contract-ledger-schemas.mjs +161 -0
  540. package/scripts/sync-crm-stage-pool-schema.mjs +85 -0
  541. package/scripts/sync-prompt-draft-schema.mjs +92 -0
  542. package/scripts/sync-route-map.mjs +94 -0
  543. package/scripts/sync-schema-descriptions.mjs +25 -0
  544. package/scripts/sync-tool-inventory.mjs +27 -0
  545. package/scripts/sync-trigger-argument-schema.mjs +121 -0
  546. package/scripts/sync-trigger-repeat-mapping.mjs +12 -0
  547. package/scripts/sync-voice-actions-contract.mjs +67 -0
  548. package/scripts/sync-voice-actions-tools.mjs +97 -0
  549. package/scripts/sync-wave-id-schemas.mjs +55 -0
  550. package/scripts/tool-input-schemas.mjs +46 -0
  551. package/scripts/tool-input-schemas.spec.mjs +50 -0
  552. package/scripts/verify-followup-adapters.mjs +235 -0
  553. package/scripts/verify-secret-read-import.mjs +84 -0
  554. package/scripts/verify-secret-read-mutants.mjs +143 -0
  555. package/dist/tools/definitions/analytics.d.ts +0 -40
  556. package/dist/tools/definitions/analytics.js +0 -233
  557. package/dist/tools/definitions/analytics.js.map +0 -1
  558. package/dist/tools/definitions/broadcast-mailing-variants.d.ts +0 -41
  559. package/dist/tools/definitions/broadcast-mailing-variants.js +0 -194
  560. package/dist/tools/definitions/broadcast-mailing-variants.js.map +0 -1
  561. package/dist/tools/definitions/dialogue-audit.d.ts +0 -38
  562. package/dist/tools/definitions/dialogue-audit.js +0 -292
  563. package/dist/tools/definitions/dialogue-audit.js.map +0 -1
  564. package/dist/tools/definitions/getcourse-wave.js +0 -519
  565. package/dist/tools/definitions/getcourse-wave.js.map +0 -1
  566. package/dist/tools/definitions/operational-overview.d.ts +0 -3
  567. package/dist/tools/definitions/operational-overview.js +0 -23
  568. package/dist/tools/definitions/operational-overview.js.map +0 -1
  569. package/dist/tools/definitions/scheduled-tasks.js +0 -173
  570. package/dist/tools/definitions/scheduled-tasks.js.map +0 -1
  571. package/dist/tools/definitions/trigger-contact-claims.d.ts +0 -7
  572. package/dist/tools/definitions/trigger-contact-claims.js +0 -60
  573. package/dist/tools/definitions/trigger-contact-claims.js.map +0 -1
  574. package/dist/tools/registry-mapping-cases-core.d.ts +0 -38
  575. package/dist/tools/registry-mapping-cases-core.js +0 -927
  576. package/dist/tools/registry-mapping-cases-core.js.map +0 -1
  577. package/dist/tools/registry-mapping-cases-platform.d.ts +0 -2
  578. package/dist/tools/registry-mapping-cases-platform.js +0 -1052
  579. package/dist/tools/registry-mapping-cases-platform.js.map +0 -1
  580. package/dist/tools/trigger-action-config.d.ts +0 -49
  581. package/dist/tools/trigger-action-config.js +0 -171
  582. package/dist/tools/trigger-action-config.js.map +0 -1
  583. package/docs/evals/model-behavior-scorecard.md +0 -80
  584. package/docs/operation-coverage.md +0 -114
  585. package/scripts/mock-credentials.js +0 -77
  586. package/scripts/model-eval-server.js +0 -213
  587. package/scripts/run-model-eval.js +0 -447
@@ -18,3 +18,11 @@ Trigger — это событие или условие, которое запу
18
18
 
19
19
  Практическое правило: проектируй и записывай конфигурацию только объявленными MCP tools;
20
20
  не обещай немедленный side effect, если инструмент лишь меняет правило на будущее.
21
+
22
+ ## Типизированные аргументы
23
+
24
+ Объявления аргументов принадлежат действию, значения извлекаются сервером из разговора при
25
+ вызове моделью. В инструменте запуска значения не задаются. Настройка `arguments` необязательна;
26
+ пустой массив снимает объявления, отсутствие поля сохраняет. Подробности и маркеры —
27
+ `besales://docs/trigger-actions`. Карточка клиента — общие поля пространства на переменных;
28
+ служебное действие `client__card` записывает только явно названное и не стирает прежнее пустотой.
@@ -1,4 +1,4 @@
1
- # Workbook Ingestion & Classification (v1.5)
1
+ # Workbook Ingestion & Classification
2
2
 
3
3
  Заказчик присылает многотабличный xlsx или Google Sheets — например, файл
4
4
  «Сухбатлар тахлили 100+100» от компании ASLZAR с 7 вкладками: индекс диалогов
@@ -15,9 +15,9 @@ KnowledgeDocument / ICP samples). Структура файла у разных
15
15
 
16
16
  | Слой | Где хранится | Что туда кладётся | Когда применяется |
17
17
  |---|---|---|---|
18
- | **A. Поведение** | `AgentChat.baseSystemPrompt` | компактные правила (1–5k chars) | каждый запрос |
19
- | **B. Активные факты** | `AgentChat.factualContext` (≤2K токенов) | компактное продуктовое знание | каждый запрос |
20
- | **C. Сырое знание** | `KnowledgeDocument` + chunks + Pinecone | бульк-знание (>8k) | через RAG, когда namespace привязан к агенту |
18
+ | **A. Поведение** | системный промпт агента | компактные правила (1–5k chars) | каждый запрос |
19
+ | **B. Активные факты** | факты агента (≤2K токенов) | компактное продуктовое знание | каждый запрос |
20
+ | **C. Сырое знание** | `KnowledgeDocument` + chunks + векторный индекс | бульк-знание (>8k) | через RAG, когда namespace привязан к агенту |
21
21
  | **D. Provenance** | `SourceWorkbook` | исходный xlsx/GS + классификация | metadata, audit |
22
22
 
23
23
  Цель: **A и B** — компактные, разумные по размеру; **C** — куда уезжает всё
@@ -29,7 +29,7 @@ KnowledgeDocument / ICP samples). Структура файла у разных
29
29
  Для Google Sheets — сразу шаг 2 с URL.
30
30
 
31
31
  Для xlsx:
32
- 1. Вызови `besales_file_upload_request` и передай человеку полученный browser upload URL.
32
+ 1. Вызови `besales_file_upload_request` и передай человеку browser upload URL.
33
33
  2. После загрузки проверь `besales_file_upload_status`; из результата возьми `storedFileId`.
34
34
 
35
35
  Сам workbook MCP **не** загружает файлы — он только инспектирует уже
@@ -49,17 +49,24 @@ besales_workbook_inspect({
49
49
 
50
50
  В ответе:
51
51
  - `workbook` — создан `SourceWorkbook` record;
52
- - `sheets[]` — для каждой вкладки: `sheetTitle`, `rowCount`, `columnCount`,
53
- `sampleRows[][]` (per-cell `value` + `hyperlink` + `formula`),
54
- `hyperlinkStats[]` (per-column число amoCRM lead/contact ссылок),
55
- `truncated` (применён ли лимит).
56
-
57
- `inspect` — только инвентаризация и sample. Для Google Sheets точный total может быть
58
- неизвестен (`rowCount`/`columnCount = null`, `dimensionsKnown=false`). `readError` означает
59
- ошибку чтения конкретного листа, а не пустой лист. Дочитывай нужные страницы через
52
+ - `sheets[]` — для каждой вкладки: `title`, `sheetGid`, `rowCount`, `columnCount`,
53
+ `totalColumnCount`, `headers[]`, `sampleRows[][]`, `columnStats[]`,
54
+ `truncated`, `rowsTruncated`, `columnsTruncated`, `readError?`.
55
+
56
+ ⚠️ **`sampleRows` — массив строк текста, а не ячеек-объектов.** Каждая ячейка приходит
57
+ только своим текстом; полей вида `value` / `hyperlink` / `formula` в сэмпле НЕТ. Гиперссылки
58
+ переживают чтение лишь в агрегате: `columnStats[]` = `{ columnIndex, header, linkCount }`,
59
+ то есть СКОЛЬКО ячеек колонки несут ссылку — но не какие именно.
60
+
61
+ ⚠️ `truncated` и `columnsTruncated` — разные вещи: первое означает, что бюджет ячеек обрезал
62
+ строки, второе — что колонки за пределом лимита отброшены и лист прочитан НЕ полностью.
63
+
64
+ `inspect` — инвентаризация и sample. Для полного чтения вызови
60
65
  `besales_workbook_sheet_read`: для каждого `columnOffset` пройди строки до
61
- `scanUpperBoundRowCount`, затем сбрось `rowOffset` в 0 и перейди к `nextColumnOffset` до
62
- `scanUpperBoundColumnCount`. Пустая страница внутри этой области не означает конец листа.
66
+ `scanUpperBoundRowCount`, затем сбрось `rowOffset` в 0 и перейди к следующему
67
+ `nextColumnOffset`. Пустая страница не завершает обход. `sourceTruncated=true` означает, что
68
+ часть xlsx лежит за parser cap и полную вычитку этим источником доказать нельзя.
69
+ `readError` означает ошибку чтения конкретной вкладки, а не пустой лист.
63
70
 
64
71
  **Если Google Sheets вернул 403 (`error: google_sheets_not_shared`)** — покажи
65
72
  пользователю `serviceAccountEmail` из response и попроси расшарить таблицу
@@ -73,12 +80,12 @@ besales_workbook_inspect({
73
80
 
74
81
  | `detectedKind` | Когда подходит | → Назначение |
75
82
  |---|---|---|
76
- | `dialogue_corpus_with_amocrm_links` | колонка содержит много amoCRM URL'ов (см. `hyperlinkStats`), есть метки оператора/статуса/оценки | regex'ом извлеки `leadId`'ы → `besales_icp_import_dialogues mode=audio audio_source_type=amocrm_leads` |
77
- | `dialogue_corpus_text_only` | список диалогов без аудио-ссылок (например, готовые транскрипты) | `besales_icp_import_dialogues mode=text` (если CRM подключён) или ручная подготовка IcpDialogueSample'ов |
83
+ | `dialogue_corpus_with_amocrm_links` | колонка содержит много amoCRM URL'ов (см. `columnStats[].linkCount`), есть метки оператора/статуса/оценки | отложенный аудио-конвейер; текущий импорт по CRM не принимает lead-ID |
84
+ | `dialogue_corpus_text_only` | список диалогов без аудио-ссылок (например, готовые транскрипты) | не направлять в `besales_icp_import_dialogues`: он читает только сохранённую историю рабочего пространства |
78
85
  | `behavior_rules` | правила, критерии общения, скрипты, чек-листы | секция системного промпта через `besales_prompt_generate_get_instructions` (передай содержимое в `businessContext`) |
79
86
  | `product_knowledge_compact` | компактное (≤8k chars) знание о продукте, политике | **ты сам делаешь LLM-выжимку в markdown** → `besales_agent_facts_set` (существующий tool, НЕ workbook-tool) |
80
87
  | `product_knowledge_bulk` | объёмное (>8k) знание (история, описания товаров, регламенты) | `besales_workbook_to_knowledge_document` |
81
- | `qa_pairs` | строки в формате «Вопрос → Ответ» | `besales_workbook_to_knowledge_document` (heuristic сам выберет Q&A split) |
88
+ | `qa_pairs` | строки в формате «Вопрос → Ответ» | `besales_workbook_to_knowledge_document` (чанкинг — из профиля пространства, не подбирается) |
82
89
  | `followup_sequence` | последовательность сообщений с тайм-задержками | `besales_followup_sequence_upsert` |
83
90
  | `tester_feedback` | построчные замечания тестировщиков к промпту | `besales_feedback_sheet_link` (привязка конкретной вкладки) |
84
91
  | `metadata_summary` | сводка/dashboard со статистикой | игнор, пометить в `classification` |
@@ -108,18 +115,25 @@ besales_workbook_inspect({
108
115
 
109
116
  ## Шаг 5 — Извлечение lead_ids из диалог-индекса
110
117
 
111
- Для `dialogue_corpus_with_amocrm_links` вызови
112
- `besales_workbook_extract_amocrm_leads`: он читает вкладку целиком до явного hard cap и
113
- возвращает координаты найденных ссылок. Не извлекай полный набор из `inspect.sampleRows`.
118
+ Для `dialogue_corpus_with_amocrm_links` зови **`besales_workbook_extract_amocrm_leads`**.
119
+ Своими руками по сэмплу это не делается: сэмпл отдаёт только текст ячеек, а ссылка живёт в
120
+ гиперссылке, которой там нет — по сэмплу вы нашли бы лишь те идентификаторы, что вписаны в
121
+ текст, и молча потеряли остальные.
114
122
 
115
123
  ```
116
- /https?:\/\/[\w-]+\.amocrm\.ru\/leads\/detail\/(\d+)/ → leadId
117
- /https?:\/\/[\w-]+\.amocrm\.ru\/contacts\/detail\/(\d+)/ → contactId
124
+ besales_workbook_extract_amocrm_leads({
125
+ workbook_id: <uuid>,
126
+ sheet_title?: "Все разговоры", // либо sheet_gid (GS), либо sheet_index (xlsx)
127
+ })
118
128
  ```
119
129
 
120
- Поддерживается любой amoCRM поддомен (`aslzar`, `acme-crm`, и т.д.). Если
121
- `truncated=true`, сообщи о hard cap и не называй результат полным. Для иных правил и ссылок
122
- используй общее постраничное чтение `besales_workbook_sheet_read`.
130
+ Инструмент читает вкладку целиком (потолок 10 000 строк) и возвращает ссылки как
131
+ `{ kind: 'lead' | 'contact', id, subdomain, row, col }`. Поддерживается любой поддомен
132
+ amoCRM. При достижении потолка ответ несёт признак усечения — не считайте усечённый
133
+ результат полным списком.
134
+
135
+ `columnStats[].linkCount` из `inspect` служит только сигналом «в этой колонке есть ссылки»
136
+ и подсказывает, какую вкладку отдавать в извлечение.
123
137
 
124
138
  ## Шаг 6 — `besales_workbook_to_knowledge_document` (bulk knowledge)
125
139
 
@@ -128,29 +142,67 @@ besales_workbook_to_knowledge_document({
128
142
  workbook_id: <uuid>,
129
143
  sheet_title?: "Регламенты продаж",
130
144
  // или sheet_gid (для GS), или sheet_index (для xlsx)
131
- namespace?: "aslzar-product-knowledge",
132
- split_override?: { ... }, // опционально, иначе heuristic
133
- replace_existing?: true, // по умолчанию true (idempotency)
145
+ knowledge_space_id?: <uuid>, // либо namespace: "Имя пространства"
146
+ target_knowledge_source_id?: <uuid>, // явная преемственность: что именно заменяем
147
+ replace_existing?: true, // по умолчанию true
134
148
  })
135
149
  ```
136
150
 
151
+ `knowledge_space_id` — **UUID**, а не человеческое имя пространства. Взять его можно из
152
+ `besales_knowledge_space_list`. Вместо него можно передать `namespace` — точное имя
153
+ существующего пространства. Без обоих полей используется пространство с именем `general`.
154
+ Имя не нормализуется и пространство по имени не создаётся: если его нет, вызов получает отказ.
155
+
137
156
  Sheet identifier (`sheet_title` / `sheet_gid` / `sheet_index`) — **в body, не в
138
157
  path** (потому что названия вкладок содержат кириллицу и пробелы).
139
158
 
140
- Сервер сам выбирает `splitMode` через эвристику:
141
- 1. Q&A структура (≥3 пар Q:/A:) → separator `\n\n`, maxChunkSize 800
142
- 2. Markdown headers (≥2 строк `^## `) → separator `\n## `, maxChunkSize 1500
143
- 3. `===` / `---` разделители → separator, maxChunkSize 1500
144
- 4. Параграфы (≥3 блоков `\n\n` avg ≥200 chars) → separator `\n\n`, maxChunkSize 1200
145
- 5. Пронумерованные секции (≥3 строк `^\d+[.)]`) → separator `\n\n`, maxChunkSize 1200
146
- 6. Fallback → fixed_size, chunkSize 1000, overlap 200
147
-
148
- В ответе `splitDecision.reason` — почему выбран этот режим (для отладки).
149
- Если знаешь лучше — передай `split_override`.
150
-
151
- **Idempotency**: повторный вызов для того же `(workbook, sheet)` заменяет
152
- существующий AI_INGESTED документ (удаляет старые chunks + Pinecone vectors).
153
- По умолчанию `replace_existing: true` — отключи только если знаешь зачем.
159
+ ⚠️ **Правила разбиения задаются вызовом.** `split_override` (`size` — по размеру куска, `separator` — по
160
+ разделителю, раздел длиннее `max_chunk_size` дорезается) действует и на новый документ, и на замену содержимого;
161
+ ответ `splitDecision` называет применённые правила (`OVERRIDE` либо `GLOBAL_DEFAULT`). Без поля — правила по
162
+ умолчанию, памяти прошлых правил у документа нет. Эвристики выбора разделителя по содержимому вкладки нет, у профилей
163
+ пространства правил разбиения нет.
164
+
165
+ ### Повторный импорт: маршрут НИЧЕГО НЕ УДАЛЯЕТ
166
+
167
+ Он либо создаёт новый документ, либо заменяет **содержимое** существующего. Прежние чанки
168
+ подменяются атомарно уже при индексации, поэтому поиск всё это время отвечает прежним знанием,
169
+ а имя документа и пространство, куда его перенёс оператор, сохраняются.
170
+
171
+ Документ-цель выбирается по убыванию уверенности:
172
+
173
+ 1. **`target_knowledge_source_id`**, если передан, — никакого угадывания.
174
+ 2. **Доказуемое тождество.** Признак зависит от рода книги: у **Google Sheets** — только
175
+ стабильный `gid` (заголовок вкладки мутабелен и в поиске цели не участвует), у
176
+ **загруженного xlsx** — книга и заголовок вкладки; у Google без доступного `gid` цель не
177
+ ищется вовсе. Ровно одно совпадение — оно и цель; ноль — новый документ; **несколько —
178
+ отказ 409 со списком `knowledgeSourceIds`, документ НЕ создаётся** (удали лишние либо назови
179
+ нужный в `target_knowledge_source_id`).
180
+ 3. Иначе — **новый документ**, а в ответе `possibleDuplicates` со списком похожих.
181
+
182
+ ⚠️ **Перезалитый xlsx автоматически не опознаётся как «та же книга»** — и это свойство задачи,
183
+ а не недоделка: контрольная сумма бессмысленна при перезаливе отредактированного файла, имя
184
+ файла идентичностью не является. Чтобы обновить прежний документ, возьми его `knowledgeSourceId`
185
+ из `possibleDuplicates` (или из `besales_knowledge_document_list`) и передай в
186
+ `target_knowledge_source_id`. **Удалять прежний документ руками не нужно.**
187
+
188
+ ⚠️ **Сверяй `sheetTitle` у кандидата перед тем, как передать его в `target_knowledge_source_id`.**
189
+ Кандидаты берутся из линии происхождения ЭТОЙ книги (та же Google-таблица либо файл с тем же
190
+ именем), поэтому документов чужих книг там нет — но документы ДРУГИХ вкладок этой книги есть, и
191
+ они там не по ошибке, а на случай переименованной вкладки. Маршрут вкладку цели не проверяет:
192
+ раз ты назвал документ явно, он тебе верит. Указав кандидата с чужой вкладкой, ты перезапишешь
193
+ её содержимое.
194
+
195
+ Google-таблицы этой проблемы не имеют: `spreadsheetId` и `gid` стабильны, повторный
196
+ `besales_workbook_inspect` той же ссылки приводит к тому же документу автоматически.
197
+
198
+ Ответ несёт `outcome` (`CREATED` либо `CONTENT_REPLACED`) и `indexingStatus: QUEUED` —
199
+ индексация асинхронна, ответ **не** обещает, что новые чанки уже активны.
200
+ `possibleDuplicates` — только подсказка, она ничего не изменяет; при
201
+ `possibleDuplicatesTruncated: true` кандидатов больше, чем поместилось в список.
202
+
203
+ `replace_existing: false` отключает шаг 2 — цель не ищется вовсе и всегда создаётся новый
204
+ документ. Сочетать с `target_knowledge_source_id` нельзя: это противоречивые инструкции, маршрут
205
+ их отвергает.
154
206
 
155
207
  После создания документа — **привяжи knowledge_space к агенту** через
156
208
  `besales_agent_update` (поле `knowledge_space_ids` — массив UUID, полученных из
@@ -162,7 +214,7 @@ path** (потому что названия вкладок содержат к
162
214
  Для `product_knowledge_compact` НЕ зови `besales_workbook_to_knowledge_document`.
163
215
  Вместо этого:
164
216
 
165
- 1. Дочитай вкладку через `besales_workbook_sheet_read`; sample из inspect недостаточен.
217
+ 1. Дочитай доступные страницы вкладки через `besales_workbook_sheet_read`; sample недостаточен.
166
218
  2. Сам сделай LLM-выжимку: возьми ключевые факты, сожми в markdown ≤8k chars.
167
219
  Формат:
168
220
  ```
@@ -215,7 +267,7 @@ provenance не должна теряться.
215
267
  - `workbook.id = wb-1` создан
216
268
  - 7 вкладок: Свод (6 строк), Все разговоры (435 строк), Плохие (101),
217
269
  Хорошие (130), Критерии (68), Регламенты (420), Задачи (8)
218
- - hyperlinkStats для «Все разговоры» колонка C: 124 amocrmLeads
270
+ - columnStats для «Все разговоры» колонка C: linkCount 124 — сигнал, что вкладку надо отдать в besales_workbook_extract_amocrm_leads
219
271
  3. Локальная классификация в твоей голове:
220
272
  - Свод → `metadata_summary` (ignore)
221
273
  - Все разговоры → `dialogue_corpus_with_amocrm_links`
@@ -223,15 +275,17 @@ provenance не должна теряться.
223
275
  - Критерии → `behavior_rules` (2 параллельные колонки!)
224
276
  - Регламенты → `product_knowledge_bulk` (53k chars)
225
277
  - Задачи → `tasks_log` (ignore)
226
- 4. `besales_workbook_extract_amocrm_leads` по вкладке «Все разговоры» → 124 leadId.
227
- 5. `besales_icp_import_dialogues mode=audio audio_source_type=amocrm_leads` с
228
- этими leadId.
278
+ 4. `besales_workbook_extract_amocrm_leads({workbook_id: "wb-1", sheet_title: "Все разговоры"})`
279
+ → 124 leadId (по сэмплу их не собрать — там только текст ячеек); сохранить как
280
+ классификацию для отложенного аудио-конвейера.
281
+ 5. Если нужна текущая текстовая ветка, вызвать `besales_icp_import_dialogues`
282
+ отдельно по CRM-подключению: она прочитает сохранённые беседы, а не lead-ID из файла.
229
283
  6. `AskUserQuestion`: «В Критериях вижу 2 параллельных набора правил (звонок 1
230
284
  vs повторный звонок). Хочешь 1 агента или 2 + router?» → ждём ответ.
231
285
  7. По ответу: `besales_agent_create` (+роутер если 2), `besales_prompt_generate_*`
232
286
  с `businessContext = текст Критериев`.
233
287
  8. `besales_workbook_to_knowledge_document({workbook_id: "wb-1",
234
- sheet_title: "Регламенты продаж", namespace: "aslzar-product-knowledge"})`.
288
+ sheet_title: "Регламенты продаж", knowledge_space_id: "<uuid пространства>"})`.
235
289
  9. `besales_agent_update` — добавить knowledge_space_id в `knowledge_space_ids` агента (UUID, не cleanNamespace).
236
290
  10. `besales_workbook_classification_update` — зафиксировать решения.
237
291
 
@@ -242,5 +296,5 @@ provenance не должна теряться.
242
296
  каждый запрос инференса. Большие материалы → в KnowledgeDocument.
243
297
  - ❌ Не создавай агентов / промпты / документы без подтверждения user'а для
244
298
  high-impact операций (новый агент, router rule).
245
- - ❌ Для записи compact facts нет отдельного workbook-tool. Используй
299
+ - ❌ Для записи compact facts нет отдельного workbook-tool. Compact
246
300
  knowledge ты сам сжимаешь LLM-вызовом и кладёшь через `besales_agent_facts_set`.