@besales/mcp 0.48.0 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -164
- package/README.onprem.ru.md +35 -0
- package/bin/besales-mcp-http.js +9 -0
- package/bin/besales-onprem.mjs +19 -0
- package/dist/auth/connection-store.d.ts +3 -1
- package/dist/auth/connection-store.js +9 -3
- package/dist/auth/connection-store.js.map +1 -1
- package/dist/auth/oauth-client.d.ts +20 -27
- package/dist/auth/oauth-client.js +31 -23
- package/dist/auth/oauth-client.js.map +1 -1
- package/dist/auth/session-workspace.d.ts +1 -0
- package/dist/auth/session-workspace.js +10 -1
- package/dist/auth/session-workspace.js.map +1 -1
- package/dist/auth/token-storage.js +4 -1
- package/dist/auth/token-storage.js.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +80 -19
- package/dist/cli.js.map +1 -1
- package/dist/constants/crm-catalog.d.ts +2 -0
- package/dist/constants/crm-catalog.js +3 -0
- package/dist/constants/crm-catalog.js.map +1 -0
- package/dist/http/api-client.d.ts +52 -7
- package/dist/http/api-client.js +131 -66
- package/dist/http/api-client.js.map +1 -1
- package/dist/http/feedback-document-error.d.ts +26 -0
- package/dist/http/feedback-document-error.js +22 -0
- package/dist/http/feedback-document-error.js.map +1 -0
- package/dist/http-server.d.ts +15 -0
- package/dist/http-server.js +378 -0
- package/dist/http-server.js.map +1 -0
- package/dist/instructions/server-instructions.d.ts +1 -1
- package/dist/instructions/server-instructions.js +6 -3
- package/dist/instructions/server-instructions.js.map +1 -1
- package/dist/network/constants.d.ts +25 -0
- package/dist/network/constants.js +26 -0
- package/dist/network/constants.js.map +1 -0
- package/dist/network/failed-verifications.d.ts +10 -0
- package/dist/network/failed-verifications.js +37 -0
- package/dist/network/failed-verifications.js.map +1 -0
- package/dist/network/http-test-fixture.d.ts +3 -0
- package/dist/network/http-test-fixture.js +86 -0
- package/dist/network/http-test-fixture.js.map +1 -0
- package/dist/network/known-keys.d.ts +10 -0
- package/dist/network/known-keys.js +38 -0
- package/dist/network/known-keys.js.map +1 -0
- package/dist/network/memory-credentials.d.ts +11 -0
- package/dist/network/memory-credentials.js +24 -0
- package/dist/network/memory-credentials.js.map +1 -0
- package/dist/network/rate-limit.d.ts +23 -0
- package/dist/network/rate-limit.js +62 -0
- package/dist/network/rate-limit.js.map +1 -0
- package/dist/network/rejected-keys.d.ts +9 -0
- package/dist/network/rejected-keys.js +39 -0
- package/dist/network/rejected-keys.js.map +1 -0
- package/dist/network/request-work.d.ts +8 -0
- package/dist/network/request-work.js +20 -0
- package/dist/network/request-work.js.map +1 -0
- package/dist/network/successful-keys.d.ts +17 -0
- package/dist/network/successful-keys.js +47 -0
- package/dist/network/successful-keys.js.map +1 -0
- package/dist/resources/concepts/external-execution.md +3 -1
- package/dist/resources/concepts/feedback-sheets.md +21 -12
- package/dist/resources/concepts/icp.md +8 -1
- package/dist/resources/concepts/sandbox.md +15 -6
- package/dist/resources/concepts/triggers.md +8 -0
- package/dist/resources/concepts/workbook-classification.md +104 -50
- package/dist/resources/docs/agent-behavior.md +51 -382
- package/dist/resources/docs/campaigns.md +9 -16
- package/dist/resources/docs/crm-integration.md +39 -523
- package/dist/resources/docs/files-and-uploads.md +23 -286
- package/dist/resources/docs/follow-up.md +47 -12
- package/dist/resources/docs/knowledge-base.md +52 -521
- package/dist/resources/docs/pipeline-builder.md +26 -216
- package/dist/resources/docs/pipeline-settings-deep.md +27 -220
- package/dist/resources/docs/platforms.md +106 -519
- package/dist/resources/docs/prompt-anatomy.md +39 -285
- package/dist/resources/docs/routing.md +8 -16
- package/dist/resources/docs/trigger-actions.md +40 -24
- package/dist/resources/docs/variables.md +8 -12
- package/dist/resources/operator-edit.contract.d.ts +7 -0
- package/dist/resources/operator-edit.contract.js +8 -0
- package/dist/resources/operator-edit.contract.js.map +1 -0
- package/dist/resources/registry.js +20 -4
- package/dist/resources/registry.js.map +1 -1
- package/dist/resources/workflows/audit-dialogues.md +23 -12
- package/dist/resources/workflows/compare-models.md +6 -6
- package/dist/resources/workflows/connect-crm-from-scratch.md +15 -12
- package/dist/resources/workflows/connect-datasource-from-scratch.md +5 -4
- package/dist/resources/workflows/extract-from-document.md +8 -6
- package/dist/resources/workflows/operator-edit.md +15 -0
- package/dist/resources/workflows/platform-setup-from-scratch.md +59 -70
- package/dist/resources/workflows/production-readiness-check.md +25 -15
- package/dist/schemas/mcp-tools.json +9902 -4734
- package/dist/schemas/voice-actions-api.contract.json +248 -0
- package/dist/shared/constants/broadcast-reason.constants.d.ts +2 -0
- package/dist/shared/constants/broadcast-reason.constants.js +47 -0
- package/dist/shared/constants/broadcast-reason.constants.js.map +1 -0
- package/dist/shared/constants/crm-stage-pool.constants.d.ts +2 -0
- package/dist/shared/constants/crm-stage-pool.constants.js +3 -0
- package/dist/shared/constants/crm-stage-pool.constants.js.map +1 -0
- package/dist/shared/constants/followup-note.constants.d.ts +3 -0
- package/dist/shared/constants/followup-note.constants.js +4 -0
- package/dist/shared/constants/followup-note.constants.js.map +1 -0
- package/dist/shared/constants/followup-session.constants.d.ts +2 -0
- package/dist/shared/constants/followup-session.constants.js +3 -0
- package/dist/shared/constants/followup-session.constants.js.map +1 -0
- package/dist/shared/constants/funnel-analytics.constants.d.ts +2 -0
- package/dist/shared/constants/funnel-analytics.constants.js +3 -0
- package/dist/shared/constants/funnel-analytics.constants.js.map +1 -0
- package/dist/shared/constants/message-filter.constants.d.ts +7 -0
- package/dist/shared/constants/message-filter.constants.js +8 -0
- package/dist/shared/constants/message-filter.constants.js.map +1 -0
- package/dist/shared/utils/trigger-repeat-mapping.d.ts +72 -0
- package/dist/shared/utils/trigger-repeat-mapping.js +53 -0
- package/dist/shared/utils/trigger-repeat-mapping.js.map +1 -0
- package/dist/skills/besales-dialogue-audit/SKILL.md +31 -20
- package/dist/tasks/task-state-store.js +5 -0
- package/dist/tasks/task-state-store.js.map +1 -1
- package/dist/tools/annotations.js +4 -3
- package/dist/tools/annotations.js.map +1 -1
- package/dist/tools/definitions/agent-design.d.ts +78 -21
- package/dist/tools/definitions/agent-design.js +246 -90
- package/dist/tools/definitions/agent-design.js.map +1 -1
- package/dist/tools/definitions/agent-model-notice.d.ts +5 -0
- package/dist/tools/definitions/agent-model-notice.js +31 -0
- package/dist/tools/definitions/agent-model-notice.js.map +1 -0
- package/dist/tools/definitions/agent-models.d.ts +5 -0
- package/dist/tools/definitions/agent-models.js +26 -0
- package/dist/tools/definitions/agent-models.js.map +1 -0
- package/dist/tools/definitions/agent-settings.d.ts +85 -0
- package/dist/tools/definitions/agent-settings.js +187 -0
- package/dist/tools/definitions/agent-settings.js.map +1 -0
- package/dist/tools/definitions/ai-costs.d.ts +12 -0
- package/dist/tools/definitions/ai-costs.js +142 -0
- package/dist/tools/definitions/ai-costs.js.map +1 -0
- package/dist/tools/definitions/api-tool-request.d.ts +15 -0
- package/dist/tools/definitions/api-tool-request.js +2 -0
- package/dist/tools/definitions/api-tool-request.js.map +1 -0
- package/dist/tools/definitions/behavior-shipped-form.d.ts +182 -0
- package/dist/tools/definitions/behavior-shipped-form.js +185 -0
- package/dist/tools/definitions/behavior-shipped-form.js.map +1 -0
- package/dist/tools/definitions/broadcast-alerts.d.ts +6 -0
- package/dist/tools/definitions/broadcast-alerts.js +72 -0
- package/dist/tools/definitions/broadcast-alerts.js.map +1 -0
- package/dist/tools/definitions/broadcast-analytics.d.ts +102 -18
- package/dist/tools/definitions/broadcast-analytics.js +732 -431
- package/dist/tools/definitions/broadcast-analytics.js.map +1 -1
- package/dist/tools/definitions/broadcast-scheduler.d.ts +10 -13
- package/dist/tools/definitions/broadcast-scheduler.js +196 -154
- package/dist/tools/definitions/broadcast-scheduler.js.map +1 -1
- package/dist/tools/definitions/call-operator-task.schema.d.ts +11 -0
- package/dist/tools/definitions/call-operator-task.schema.js +30 -0
- package/dist/tools/definitions/call-operator-task.schema.js.map +1 -0
- package/dist/tools/definitions/contacts.d.ts +3 -0
- package/dist/tools/definitions/contacts.js +57 -31
- package/dist/tools/definitions/contacts.js.map +1 -1
- package/dist/tools/definitions/crm-platform.d.ts +28 -41
- package/dist/tools/definitions/crm-platform.js +235 -368
- package/dist/tools/definitions/crm-platform.js.map +1 -1
- package/dist/tools/definitions/crm-stage-pool.messages.d.ts +39 -0
- package/dist/tools/definitions/crm-stage-pool.messages.js +43 -0
- package/dist/tools/definitions/crm-stage-pool.messages.js.map +1 -0
- package/dist/tools/definitions/crm-stage-pool.schema.d.ts +64 -0
- package/dist/tools/definitions/crm-stage-pool.schema.js +109 -0
- package/dist/tools/definitions/crm-stage-pool.schema.js.map +1 -0
- package/dist/tools/definitions/custom-reports.d.ts +12 -0
- package/dist/tools/definitions/custom-reports.js +68 -0
- package/dist/tools/definitions/custom-reports.js.map +1 -0
- package/dist/tools/definitions/datasource.d.ts +2 -1
- package/dist/tools/definitions/datasource.js +28 -13
- package/dist/tools/definitions/datasource.js.map +1 -1
- package/dist/tools/definitions/dialog-review-findings-response.d.ts +14 -0
- package/dist/tools/definitions/dialog-review-findings-response.js +23 -0
- package/dist/tools/definitions/dialog-review-findings-response.js.map +1 -0
- package/dist/tools/definitions/dialog-review-safe-response.d.ts +5 -0
- package/dist/tools/definitions/dialog-review-safe-response.js +152 -0
- package/dist/tools/definitions/dialog-review-safe-response.js.map +1 -0
- package/dist/tools/definitions/dialog-review.d.ts +49 -0
- package/dist/tools/definitions/dialog-review.js +383 -0
- package/dist/tools/definitions/dialog-review.js.map +1 -0
- package/dist/tools/definitions/dialogue-analysis.d.ts +46 -0
- package/dist/tools/definitions/dialogue-analysis.js +170 -0
- package/dist/tools/definitions/dialogue-analysis.js.map +1 -0
- package/dist/tools/definitions/dialogue-audit-agent-scope.d.ts +7 -0
- package/dist/tools/definitions/dialogue-audit-agent-scope.js +41 -0
- package/dist/tools/definitions/dialogue-audit-agent-scope.js.map +1 -0
- package/dist/tools/definitions/dialogue-audit-alias.d.ts +67 -0
- package/dist/tools/definitions/dialogue-audit-alias.js +559 -0
- package/dist/tools/definitions/dialogue-audit-alias.js.map +1 -0
- package/dist/tools/definitions/dialogue-export.d.ts +7 -1
- package/dist/tools/definitions/dialogue-export.js +89 -32
- package/dist/tools/definitions/dialogue-export.js.map +1 -1
- package/dist/tools/definitions/dialogue-followup-state.d.ts +9 -0
- package/dist/tools/definitions/dialogue-followup-state.js +69 -0
- package/dist/tools/definitions/dialogue-followup-state.js.map +1 -0
- package/dist/tools/definitions/edit-version-transport.test-fixtures.d.ts +13 -0
- package/dist/tools/definitions/edit-version-transport.test-fixtures.js +292 -0
- package/dist/tools/definitions/edit-version-transport.test-fixtures.js.map +1 -0
- package/dist/tools/definitions/edit-version.d.ts +5 -0
- package/dist/tools/definitions/edit-version.js +20 -0
- package/dist/tools/definitions/edit-version.js.map +1 -0
- package/dist/tools/definitions/external-api-channels.js +17 -15
- package/dist/tools/definitions/external-api-channels.js.map +1 -1
- package/dist/tools/definitions/feedback-document-access.d.ts +16 -0
- package/dist/tools/definitions/feedback-document-access.js +63 -0
- package/dist/tools/definitions/feedback-document-access.js.map +1 -0
- package/dist/tools/definitions/fixtures/shipped-setup-status.d.ts +3 -0
- package/dist/tools/definitions/fixtures/shipped-setup-status.js +9 -0
- package/dist/tools/definitions/fixtures/shipped-setup-status.js.map +1 -0
- package/dist/tools/definitions/follow-up-config.d.ts +79 -0
- package/dist/tools/definitions/follow-up-config.js +258 -0
- package/dist/tools/definitions/follow-up-config.js.map +1 -0
- package/dist/tools/definitions/follow-up-funnel-test.d.ts +4 -3
- package/dist/tools/definitions/follow-up-funnel-test.js +65 -52
- package/dist/tools/definitions/follow-up-funnel-test.js.map +1 -1
- package/dist/tools/definitions/follow-up-promotion-instructions.d.ts +2 -0
- package/dist/tools/definitions/follow-up-promotion-instructions.js +7 -0
- package/dist/tools/definitions/follow-up-promotion-instructions.js.map +1 -0
- package/dist/tools/definitions/follow-up-setup.d.ts +4 -28
- package/dist/tools/definitions/follow-up-setup.js +20 -87
- package/dist/tools/definitions/follow-up-setup.js.map +1 -1
- package/dist/tools/definitions/follow-up.d.ts +20 -122
- package/dist/tools/definitions/follow-up.js +200 -357
- package/dist/tools/definitions/follow-up.js.map +1 -1
- package/dist/tools/definitions/followup-getcourse-compat.d.ts +29 -0
- package/dist/tools/definitions/followup-getcourse-compat.js +62 -0
- package/dist/tools/definitions/followup-getcourse-compat.js.map +1 -0
- package/dist/tools/definitions/followup-sequence-config.schema.d.ts +10 -0
- package/dist/tools/definitions/followup-sequence-config.schema.js +14 -0
- package/dist/tools/definitions/followup-sequence-config.schema.js.map +1 -0
- package/dist/tools/definitions/funnel-analytics.d.ts +18 -0
- package/dist/tools/definitions/funnel-analytics.js +150 -0
- package/dist/tools/definitions/funnel-analytics.js.map +1 -0
- package/dist/tools/definitions/getcourse-anchor-refresh.d.ts +5 -9
- package/dist/tools/definitions/getcourse-anchor-refresh.js +26 -31
- package/dist/tools/definitions/getcourse-anchor-refresh.js.map +1 -1
- package/dist/tools/definitions/getcourse-cold-outbound-settings.d.ts +46 -0
- package/dist/tools/definitions/getcourse-cold-outbound-settings.js +37 -0
- package/dist/tools/definitions/getcourse-cold-outbound-settings.js.map +1 -0
- package/dist/tools/definitions/getcourse-cold-welcome.d.ts +14 -29
- package/dist/tools/definitions/getcourse-cold-welcome.js +180 -254
- package/dist/tools/definitions/getcourse-cold-welcome.js.map +1 -1
- package/dist/tools/definitions/getcourse-wave-welcome.messages.d.ts +10 -0
- package/dist/tools/definitions/getcourse-wave-welcome.messages.js +17 -0
- package/dist/tools/definitions/getcourse-wave-welcome.messages.js.map +1 -0
- package/dist/tools/definitions/help.js.map +1 -1
- package/dist/tools/definitions/icp-import-source.d.ts +75 -0
- package/dist/tools/definitions/icp-import-source.js +88 -0
- package/dist/tools/definitions/icp-import-source.js.map +1 -0
- package/dist/tools/definitions/inbound-analytics.d.ts +13 -0
- package/dist/tools/definitions/inbound-analytics.js +55 -0
- package/dist/tools/definitions/inbound-analytics.js.map +1 -0
- package/dist/tools/definitions/instagram-comment.templates.d.ts +19 -0
- package/dist/tools/definitions/instagram-comment.templates.js +34 -0
- package/dist/tools/definitions/instagram-comment.templates.js.map +1 -0
- package/dist/tools/definitions/instagram-settings-compat.d.ts +33 -0
- package/dist/tools/definitions/instagram-settings-compat.js +7 -0
- package/dist/tools/definitions/instagram-settings-compat.js.map +1 -0
- package/dist/tools/definitions/knowledge-chunking.d.ts +42 -0
- package/dist/tools/definitions/knowledge-chunking.js +83 -0
- package/dist/tools/definitions/knowledge-chunking.js.map +1 -0
- package/dist/tools/definitions/knowledge-space-search-fields.d.ts +12 -0
- package/dist/tools/definitions/knowledge-space-search-fields.js +30 -0
- package/dist/tools/definitions/knowledge-space-search-fields.js.map +1 -0
- package/dist/tools/definitions/knowledge.d.ts +24 -14
- package/dist/tools/definitions/knowledge.js +342 -233
- package/dist/tools/definitions/knowledge.js.map +1 -1
- package/dist/tools/definitions/legacy-trigger-repeat.d.ts +17 -0
- package/dist/tools/definitions/legacy-trigger-repeat.js +53 -0
- package/dist/tools/definitions/legacy-trigger-repeat.js.map +1 -0
- package/dist/tools/definitions/link-tracking.d.ts +8 -0
- package/dist/tools/definitions/link-tracking.js +141 -38
- package/dist/tools/definitions/link-tracking.js.map +1 -1
- package/dist/tools/definitions/mailing-variant-content.d.ts +75 -0
- package/dist/tools/definitions/mailing-variant-content.js +73 -0
- package/dist/tools/definitions/mailing-variant-content.js.map +1 -0
- package/dist/tools/definitions/model-comparison.d.ts +1 -0
- package/dist/tools/definitions/model-comparison.js +4 -5
- package/dist/tools/definitions/model-comparison.js.map +1 -1
- package/dist/tools/definitions/money-currency.d.ts +5 -0
- package/dist/tools/definitions/money-currency.js +10 -0
- package/dist/tools/definitions/money-currency.js.map +1 -0
- package/dist/tools/definitions/operator-workflow.d.ts +5 -5
- package/dist/tools/definitions/operator-workflow.js +80 -27
- package/dist/tools/definitions/operator-workflow.js.map +1 -1
- package/dist/tools/definitions/platform-funnel-analytics.d.ts +42 -0
- package/dist/tools/definitions/platform-funnel-analytics.js +72 -0
- package/dist/tools/definitions/platform-funnel-analytics.js.map +1 -0
- package/dist/tools/definitions/platform-getcourse-wave-field-bindings.d.ts +42 -0
- package/dist/tools/definitions/platform-getcourse-wave-field-bindings.js +51 -0
- package/dist/tools/definitions/platform-getcourse-wave-field-bindings.js.map +1 -0
- package/dist/tools/definitions/platform-settings-limits.d.ts +5 -0
- package/dist/tools/definitions/platform-settings-limits.js +6 -0
- package/dist/tools/definitions/platform-settings-limits.js.map +1 -0
- package/dist/tools/definitions/platform-settings-shipped-form.d.ts +37 -0
- package/dist/tools/definitions/platform-settings-shipped-form.js +310 -0
- package/dist/tools/definitions/platform-settings-shipped-form.js.map +1 -0
- package/dist/tools/definitions/platform-settings-update.d.ts +300 -0
- package/dist/tools/definitions/platform-settings-update.js +134 -0
- package/dist/tools/definitions/platform-settings-update.js.map +1 -0
- package/dist/tools/definitions/{getcourse-wave.d.ts → platform-setup-wave.d.ts} +75 -6
- package/dist/tools/definitions/platform-setup-wave.js +1079 -0
- package/dist/tools/definitions/platform-setup-wave.js.map +1 -0
- package/dist/tools/definitions/platform-setup.d.ts +686 -224
- package/dist/tools/definitions/platform-setup.js +313 -752
- package/dist/tools/definitions/platform-setup.js.map +1 -1
- package/dist/tools/definitions/platform-widget-page-rules.schema.d.ts +10 -0
- package/dist/tools/definitions/platform-widget-page-rules.schema.js +7 -0
- package/dist/tools/definitions/platform-widget-page-rules.schema.js.map +1 -0
- package/dist/tools/definitions/prompt-authoring.constants.d.ts +2 -0
- package/dist/tools/definitions/prompt-authoring.constants.js +3 -0
- package/dist/tools/definitions/prompt-authoring.constants.js.map +1 -0
- package/dist/tools/definitions/prompt-batch-controls.d.ts +5 -0
- package/dist/tools/definitions/prompt-batch-controls.js +40 -0
- package/dist/tools/definitions/prompt-batch-controls.js.map +1 -0
- package/dist/tools/definitions/prompt-draft-authoring.d.ts +5 -0
- package/dist/tools/definitions/prompt-draft-authoring.js +24 -0
- package/dist/tools/definitions/prompt-draft-authoring.js.map +1 -0
- package/dist/tools/definitions/prompt-text-projection.d.ts +11 -0
- package/dist/tools/definitions/prompt-text-projection.js +62 -0
- package/dist/tools/definitions/prompt-text-projection.js.map +1 -0
- package/dist/tools/definitions/reviewer-paid.d.ts +19 -0
- package/dist/tools/definitions/reviewer-paid.js +115 -0
- package/dist/tools/definitions/reviewer-paid.js.map +1 -0
- package/dist/tools/definitions/routing-condition-projection.d.ts +31 -0
- package/dist/tools/definitions/routing-condition-projection.js +97 -0
- package/dist/tools/definitions/routing-condition-projection.js.map +1 -0
- package/dist/tools/definitions/schedule-selection-hints.d.ts +3 -0
- package/dist/tools/definitions/schedule-selection-hints.js +42 -0
- package/dist/tools/definitions/schedule-selection-hints.js.map +1 -0
- package/dist/tools/definitions/{scheduled-tasks.d.ts → scheduled-task-alias.d.ts} +12 -10
- package/dist/tools/definitions/scheduled-task-alias.js +207 -0
- package/dist/tools/definitions/scheduled-task-alias.js.map +1 -0
- package/dist/tools/definitions/session.js +3 -3
- package/dist/tools/definitions/session.js.map +1 -1
- package/dist/tools/definitions/setup-init-operation.schema.d.ts +2 -0
- package/dist/tools/definitions/setup-init-operation.schema.js +6 -0
- package/dist/tools/definitions/setup-init-operation.schema.js.map +1 -0
- package/dist/tools/definitions/shared-input.helpers.d.ts +51 -0
- package/dist/tools/definitions/shared-input.helpers.js +323 -0
- package/dist/tools/definitions/shared-input.helpers.js.map +1 -0
- package/dist/tools/definitions/shared.d.ts +396 -307
- package/dist/tools/definitions/shared.js +430 -652
- package/dist/tools/definitions/shared.js.map +1 -1
- package/dist/tools/definitions/shipped-output-names.d.ts +19 -0
- package/dist/tools/definitions/shipped-output-names.js +123 -0
- package/dist/tools/definitions/shipped-output-names.js.map +1 -0
- package/dist/tools/definitions/task-state.d.ts +5 -5
- package/dist/tools/definitions/task-state.js +2 -1
- package/dist/tools/definitions/task-state.js.map +1 -1
- package/dist/tools/definitions/telegram-personal-capacity.d.ts +4 -0
- package/dist/tools/definitions/telegram-personal-capacity.js +18 -0
- package/dist/tools/definitions/telegram-personal-capacity.js.map +1 -0
- package/dist/tools/definitions/telegram-pool-policy.d.ts +8 -0
- package/dist/tools/definitions/telegram-pool-policy.js +56 -0
- package/dist/tools/definitions/telegram-pool-policy.js.map +1 -0
- package/dist/tools/definitions/touch-history-alias.d.ts +4 -0
- package/dist/tools/definitions/touch-history-alias.js +99 -0
- package/dist/tools/definitions/touch-history-alias.js.map +1 -0
- package/dist/tools/definitions/trigger-action-item.schema.d.ts +254 -0
- package/dist/tools/definitions/trigger-action-item.schema.js +121 -0
- package/dist/tools/definitions/trigger-action-item.schema.js.map +1 -0
- package/dist/tools/definitions/trigger-argument.schema.d.ts +14 -0
- package/dist/tools/definitions/trigger-argument.schema.js +23 -0
- package/dist/tools/definitions/trigger-argument.schema.js.map +1 -0
- package/dist/tools/definitions/trigger-claim-alias.d.ts +10 -0
- package/dist/tools/definitions/trigger-claim-alias.js +90 -0
- package/dist/tools/definitions/trigger-claim-alias.js.map +1 -0
- package/dist/tools/definitions/trigger-echo-projection.d.ts +1 -0
- package/dist/tools/definitions/trigger-echo-projection.js +41 -0
- package/dist/tools/definitions/trigger-echo-projection.js.map +1 -0
- package/dist/tools/definitions/trigger-upsert.tool.d.ts +29 -0
- package/dist/tools/definitions/trigger-upsert.tool.js +122 -0
- package/dist/tools/definitions/trigger-upsert.tool.js.map +1 -0
- package/dist/tools/definitions/v15-port-descriptions.d.ts +11 -0
- package/dist/tools/definitions/v15-port-descriptions.js +30 -0
- package/dist/tools/definitions/v15-port-descriptions.js.map +1 -0
- package/dist/tools/definitions/variables.d.ts +44 -0
- package/dist/tools/definitions/variables.js +310 -0
- package/dist/tools/definitions/variables.js.map +1 -0
- package/dist/tools/definitions/voice-action-input.d.ts +9 -0
- package/dist/tools/definitions/voice-action-input.js +141 -0
- package/dist/tools/definitions/voice-action-input.js.map +1 -0
- package/dist/tools/definitions/widget-customization-compat.d.ts +51 -0
- package/dist/tools/definitions/widget-customization-compat.js +23 -0
- package/dist/tools/definitions/widget-customization-compat.js.map +1 -0
- package/dist/tools/definitions.d.ts +1089 -636
- package/dist/tools/definitions.js +57 -27
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/description-localization.js +3 -2
- package/dist/tools/description-localization.js.map +1 -1
- package/dist/tools/follow-up-request.d.ts +19 -0
- package/dist/tools/follow-up-request.js +81 -0
- package/dist/tools/follow-up-request.js.map +1 -0
- package/dist/tools/followup-revision.d.ts +4 -0
- package/dist/tools/followup-revision.js +29 -0
- package/dist/tools/followup-revision.js.map +1 -0
- package/dist/tools/incomplete-list.js +4 -0
- package/dist/tools/incomplete-list.js.map +1 -1
- package/dist/tools/inventory.js +47 -11
- package/dist/tools/inventory.js.map +1 -1
- package/dist/tools/operation-recovery.d.ts +4 -0
- package/dist/tools/operation-recovery.js +33 -0
- package/dist/tools/operation-recovery.js.map +1 -0
- package/dist/tools/registry-mapping-primary.cases.d.ts +2 -0
- package/dist/tools/registry-mapping-primary.cases.js +753 -0
- package/dist/tools/registry-mapping-primary.cases.js.map +1 -0
- package/dist/tools/registry-mapping-secondary.cases.d.ts +2 -0
- package/dist/tools/registry-mapping-secondary.cases.js +626 -0
- package/dist/tools/registry-mapping-secondary.cases.js.map +1 -0
- package/dist/tools/registry-mapping.cases.d.ts +8 -0
- package/dist/tools/registry-mapping.cases.js +13 -0
- package/dist/tools/registry-mapping.cases.js.map +1 -0
- package/dist/tools/registry-test-fixtures.d.ts +50 -0
- package/dist/tools/registry-test-fixtures.js +120 -0
- package/dist/tools/registry-test-fixtures.js.map +1 -0
- package/dist/tools/registry.d.ts +2 -0
- package/dist/tools/registry.js +82 -52
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/result.d.ts +1 -0
- package/dist/tools/result.js +90 -22
- package/dist/tools/result.js.map +1 -1
- package/dist/tools/toolsets.d.ts +16 -0
- package/dist/tools/toolsets.js +25 -1
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/types/api-contract.gen.d.ts +105875 -22205
- package/dist/utils/credential-signatures.d.ts +3 -0
- package/dist/utils/credential-signatures.js +10 -0
- package/dist/utils/credential-signatures.js.map +1 -0
- package/dist/utils/data-source-column-name.d.ts +10 -0
- package/dist/utils/data-source-column-name.js +36 -0
- package/dist/utils/data-source-column-name.js.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.js +32 -8
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/secret-read-boundary.d.ts +2 -0
- package/dist/utils/secret-read-boundary.js +88 -0
- package/dist/utils/secret-read-boundary.js.map +1 -0
- package/dist/utils/setup-secrets.d.ts +4 -0
- package/dist/utils/setup-secrets.js +40 -0
- package/dist/utils/setup-secrets.js.map +1 -0
- package/docs/agent-models.md +9 -0
- package/docs/agent-usage-guide.full.ru.md +1 -4
- package/docs/analytics-contract.md +67 -0
- package/docs/async-operation-lifecycle.md +10 -3
- package/docs/connect.ru.md +144 -4
- package/docs/contact-company-profile.md +17 -0
- package/docs/contact-recommendations.md +7 -0
- package/docs/crm-stage-pool.md +73 -0
- package/docs/customer-data.md +61 -0
- package/docs/edit-versions.md +36 -0
- package/docs/failure-semantics.md +17 -9
- package/docs/help-navigation.md +15 -42
- package/docs/host-compatibility-matrix.md +72 -93
- package/docs/host-setup.md +33 -35
- package/docs/invariants/public-api-and-contracts.md +16 -0
- package/docs/legacy-action-settings.md +21 -0
- package/docs/main-transfer-dependencies.md +38 -0
- package/docs/mcp2-parity.md +50 -0
- package/docs/modules/analytics.md +79 -0
- package/docs/modules/besales-mcp.md +137 -0
- package/docs/modules/dialog-review-report.md +38 -0
- package/docs/modules/dialogue-followup-adapters.md +39 -0
- package/docs/modules/message-reactions.md +17 -0
- package/docs/modules/network-mode.md +284 -0
- package/docs/modules/prompt-batch-and-dialogue-controls.md +69 -0
- package/docs/pii-policy.md +21 -16
- package/docs/response-size-budget.md +197 -7
- package/docs/secret-read-boundary.md +102 -0
- package/docs/task-state.md +7 -2
- package/docs/telegram-pool-policy.md +19 -0
- package/docs/tool-effects.md +15 -9
- package/docs/tool-surface.md +205 -4
- package/docs/voice-actions-and-inbox.md +95 -0
- package/docs/wazzup-instagram-comments.md +26 -0
- package/package.json +17 -10
- package/scripts/api-source-loader.spec.mjs +40 -0
- package/scripts/audit-bridge-controls.mjs +129 -0
- package/scripts/audit-revert-mutants.mjs +107 -0
- package/scripts/bridge-api-input.spec.mjs +98 -0
- package/scripts/bridge-controls-mutants.mjs +130 -0
- package/scripts/brx3-shipped-refusals.spec.mjs +149 -0
- package/scripts/brx4-ledger-payload.spec.mjs +127 -0
- package/scripts/build-onprem.mjs +108 -0
- package/scripts/connect-clients.sh +141 -0
- package/scripts/connect-scopes.mjs +166 -0
- package/scripts/connect-scopes.spec.mjs +83 -0
- package/scripts/emit-personal-link-carrier.mjs +31 -0
- package/scripts/emit-setup-init-schemas.mjs +24 -0
- package/scripts/emit-tool-routes.mjs +878 -0
- package/scripts/emit-tool-routes.spec.mjs +300 -0
- package/scripts/followup-registry.spec.mjs +107 -0
- package/scripts/generate-crm-rotation-contract.mjs +98 -0
- package/scripts/generate-followup-session-contract.mjs +16 -0
- package/scripts/icp-import-verification/mutate.cjs +70 -0
- package/scripts/import-secret-read-contract.mjs +53 -0
- package/scripts/install-claude-desktop.js +1 -1
- package/scripts/lag-decisions.mjs +37 -0
- package/scripts/lag-decisions.spec.mjs +87 -0
- package/scripts/lag-open-task-owners.mjs +46 -0
- package/scripts/lag-open-task-owners.spec.mjs +78 -0
- package/scripts/lag-payload.mjs +10 -0
- package/scripts/legacy-action-lag.spec.mjs +22 -0
- package/scripts/legacy-field-refusal.shipped.spec.mjs +99 -0
- package/scripts/mcpcompat-handler.mjs +34 -0
- package/scripts/mcpcompat-loader.mjs +36 -0
- package/scripts/mcpcompat-typescript.mjs +3 -0
- package/scripts/platform-settings-shipped-parity.spec.mjs +89 -0
- package/scripts/prbr-round1-recheck.spec.mjs +605 -0
- package/scripts/prbr-shipped-compatibility.spec.mjs +276 -0
- package/scripts/publish-mcp-registry.mjs +98 -0
- package/scripts/publish-mcp-registry.spec.mjs +68 -0
- package/scripts/record-scheduled-task-call.mjs +26 -0
- package/scripts/refusal-probe.mjs +17 -0
- package/scripts/refusal-probe.spec.mjs +29 -0
- package/scripts/registry-diff.mjs +502 -0
- package/scripts/registry-diff.spec.mjs +787 -0
- package/scripts/request-query.mjs +43 -0
- package/scripts/request-query.spec.mjs +82 -0
- package/scripts/route-lag.mjs +23 -0
- package/scripts/route-lag.spec.mjs +30 -0
- package/scripts/sample-args.mjs +174 -0
- package/scripts/sample-args.spec.mjs +160 -0
- package/scripts/shipped-definitions.mjs +197 -0
- package/scripts/shipped-definitions.spec.mjs +57 -0
- package/scripts/shipped-inputs.spec.mjs +136 -0
- package/scripts/shipped-recordings.spec.mjs +19 -0
- package/scripts/shipped-ref.d.mts +5 -0
- package/scripts/shipped-ref.mjs +20 -0
- package/scripts/shipped-ref.spec.mjs +59 -0
- package/scripts/shipped-registry.mjs +107 -0
- package/scripts/shipped-sample-candidates.mjs +69 -0
- package/scripts/shipped-sample-candidates.spec.mjs +117 -0
- package/scripts/shipped-sample.mjs +868 -0
- package/scripts/shipped-sample.spec.mjs +451 -0
- package/scripts/sync-agent-model-schemas.mjs +72 -0
- package/scripts/sync-api-contracts.mjs +85 -0
- package/scripts/sync-api-contracts.spec.mjs +144 -0
- package/scripts/sync-contract-ledger-schemas.mjs +161 -0
- package/scripts/sync-crm-stage-pool-schema.mjs +85 -0
- package/scripts/sync-prompt-draft-schema.mjs +92 -0
- package/scripts/sync-route-map.mjs +94 -0
- package/scripts/sync-schema-descriptions.mjs +25 -0
- package/scripts/sync-tool-inventory.mjs +27 -0
- package/scripts/sync-trigger-argument-schema.mjs +121 -0
- package/scripts/sync-trigger-repeat-mapping.mjs +12 -0
- package/scripts/sync-voice-actions-contract.mjs +67 -0
- package/scripts/sync-voice-actions-tools.mjs +97 -0
- package/scripts/sync-wave-id-schemas.mjs +55 -0
- package/scripts/tool-input-schemas.mjs +46 -0
- package/scripts/tool-input-schemas.spec.mjs +50 -0
- package/scripts/verify-followup-adapters.mjs +235 -0
- package/scripts/verify-secret-read-import.mjs +84 -0
- package/scripts/verify-secret-read-mutants.mjs +143 -0
- package/dist/tools/definitions/analytics.d.ts +0 -40
- package/dist/tools/definitions/analytics.js +0 -233
- package/dist/tools/definitions/analytics.js.map +0 -1
- package/dist/tools/definitions/broadcast-mailing-variants.d.ts +0 -41
- package/dist/tools/definitions/broadcast-mailing-variants.js +0 -194
- package/dist/tools/definitions/broadcast-mailing-variants.js.map +0 -1
- package/dist/tools/definitions/dialogue-audit.d.ts +0 -38
- package/dist/tools/definitions/dialogue-audit.js +0 -292
- package/dist/tools/definitions/dialogue-audit.js.map +0 -1
- package/dist/tools/definitions/getcourse-wave.js +0 -519
- package/dist/tools/definitions/getcourse-wave.js.map +0 -1
- package/dist/tools/definitions/operational-overview.d.ts +0 -3
- package/dist/tools/definitions/operational-overview.js +0 -23
- package/dist/tools/definitions/operational-overview.js.map +0 -1
- package/dist/tools/definitions/scheduled-tasks.js +0 -173
- package/dist/tools/definitions/scheduled-tasks.js.map +0 -1
- package/dist/tools/definitions/trigger-contact-claims.d.ts +0 -7
- package/dist/tools/definitions/trigger-contact-claims.js +0 -60
- package/dist/tools/definitions/trigger-contact-claims.js.map +0 -1
- package/dist/tools/registry-mapping-cases-core.d.ts +0 -38
- package/dist/tools/registry-mapping-cases-core.js +0 -963
- package/dist/tools/registry-mapping-cases-core.js.map +0 -1
- package/dist/tools/registry-mapping-cases-platform.d.ts +0 -2
- package/dist/tools/registry-mapping-cases-platform.js +0 -1052
- package/dist/tools/registry-mapping-cases-platform.js.map +0 -1
- package/dist/tools/trigger-action-config.d.ts +0 -49
- package/dist/tools/trigger-action-config.js +0 -171
- package/dist/tools/trigger-action-config.js.map +0 -1
- package/docs/evals/model-behavior-scorecard.md +0 -80
- package/docs/operation-coverage.md +0 -114
- package/scripts/mock-credentials.js +0 -77
- package/scripts/model-eval-server.js +0 -213
- package/scripts/run-model-eval.js +0 -447
|
@@ -1,295 +1,32 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Файлы и вложения
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Файл в Besales имеет два разных назначения: источник знаний и вложение сообщения. Само тело
|
|
4
|
+
хранится в S3-совместимом хранилище, а БД содержит устойчивый object key, MIME, размер и связи.
|
|
5
|
+
Короткоживущая подписанная ссылка не является идентичностью файла и не сохраняется в истории.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Загрузка
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- Аватары `TelegramPersonalAccount`.
|
|
13
|
-
- Картинки для `WarmupImage`.
|
|
14
|
-
- Медиа в `MessageConfig.attachments[]` follow-up.
|
|
15
|
-
- Чанки QA-ответов с медиа (`QaAnswerChunk.storedFileId`).
|
|
16
|
-
- Медиа-блоки в `Template` кампаний.
|
|
9
|
+
Клиент запрашивает загрузку, передаёт тело по выданному безопасному каналу и опрашивает статус.
|
|
10
|
+
Сервер проверяет размер, фактический MIME и принадлежность workspace. Имя файла не используется
|
|
11
|
+
как путь объекта и не даёт права читать чужой объект.
|
|
17
12
|
|
|
18
|
-
|
|
13
|
+
Для базы знаний после загрузки создаётся knowledge source и запускается индексация. Для входящего
|
|
14
|
+
медиа адаптер отдаёт только дескриптор источника; скачивание, SSRF-защита, MIME sniffing и запись
|
|
15
|
+
`message_attachments` выполняются общим media-ingest контуром.
|
|
19
16
|
|
|
20
|
-
##
|
|
17
|
+
## Исходящее медиа
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
│ └── StoredFile[] # Файлы в разделе
|
|
26
|
-
└── StoredFile[] # Файлы без раздела (sectionId=null)
|
|
27
|
-
```
|
|
19
|
+
Собственный файл передаётся через единый шов доставки как object key с признаком `fromStorage`.
|
|
20
|
+
Шов сам выбирает тело или подписанную ссылку по capability канала и строит подпись после плана
|
|
21
|
+
частей. Это сохраняет стабильный отпечаток при повторе и не размножает один текст на два носителя.
|
|
28
22
|
|
|
29
|
-
|
|
23
|
+
Произвольного LLM-инструмента отправки картинки нет. Медиа отправляет серверное действие с
|
|
24
|
+
разрешённым типом шага и обязательным `OutboundIntent`; модель не выбирает object key или UUID.
|
|
30
25
|
|
|
31
|
-
##
|
|
26
|
+
## Безопасность и хранение
|
|
32
27
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"mimeType": "application/pdf",
|
|
39
|
-
"fileType": "DOCUMENT",
|
|
40
|
-
"storageType": "s3",
|
|
41
|
-
"url": "s3://animaly/files/<workspaceId>/price-list-2026.pdf",
|
|
42
|
-
"size": 245678,
|
|
43
|
-
"workspaceId": "<workspaceId>",
|
|
44
|
-
"sectionId": "<FileSection.id>",
|
|
45
|
-
"source": "USER_UPLOAD"
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
| Поле | Тип | Описание |
|
|
50
|
-
|---|---|---|
|
|
51
|
-
| `name` | string | Имя, заданное при загрузке (для UI). Уникален в `(workspaceId, name)`. |
|
|
52
|
-
| `originalFilename` | string | Реальное имя файла при загрузке. |
|
|
53
|
-
| `mimeType` | string | `application/pdf`, `image/jpeg`, `video/mp4` и т.п. |
|
|
54
|
-
| `fileType` | enum `StoredFileType` | `IMAGE` / `DOCUMENT` / `VIDEO` / `AUDIO` / `VOICE` / `VIDEO_NOTE` / `OTHER`. |
|
|
55
|
-
| `storageType` | string (`local` / `s3`) | Где физически хранится. В проде — `s3`. |
|
|
56
|
-
| `url` | string | Путь/URL к файлу. |
|
|
57
|
-
| `size` | int | Размер в байтах. |
|
|
58
|
-
| `sectionId` | uuid / null | ID `FileSection` (или null — без раздела). |
|
|
59
|
-
| `source` | enum `StoredFileSource` | Категория для UI-фильтра. См. ниже. |
|
|
60
|
-
|
|
61
|
-
## 4. `StoredFileSource` — откуда взялся файл
|
|
62
|
-
|
|
63
|
-
| Значение | Когда выставляется |
|
|
64
|
-
|---|---|
|
|
65
|
-
| `USER_UPLOAD` | Загружен админом вручную через UI (default). |
|
|
66
|
-
| `CHAT_MEDIA` | Получен от пользователя в диалоге (картинка/видео/документ от клиента). |
|
|
67
|
-
| `TELEGRAM_AVATAR` | Скачанный аватар Telegram-аккаунта (для UI отображения). |
|
|
68
|
-
| `WARMUP_IMAGE` | Картинка для warmup-сценариев. |
|
|
69
|
-
| `AGENT_GREETING` | Приветственное медиа агента (`AgentBehavior.greetingFileId`). |
|
|
70
|
-
| `CAMPAIGN` | Медиа из шаблона кампании. |
|
|
71
|
-
| `CRM_IMPORT` | Файл, импортированный из CRM (например, документ к сделке). |
|
|
72
|
-
| `OTHER` | Прочее. |
|
|
73
|
-
|
|
74
|
-
AI-сервис должен задавать корректный `source` при загрузке — это влияет на фильтрацию в админке.
|
|
75
|
-
|
|
76
|
-
## 5. JSON-схема `FileSection`
|
|
77
|
-
|
|
78
|
-
```json
|
|
79
|
-
{
|
|
80
|
-
"id": "uuid",
|
|
81
|
-
"name": "Прайсы и каталоги",
|
|
82
|
-
"workspaceId": "<workspaceId>"
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
`name` уникален в `(workspaceId)`. Раздел — это просто группировка для UI; не влияет на логику работы.
|
|
87
|
-
|
|
88
|
-
## 6. Использование `StoredFile` в системе
|
|
89
|
-
|
|
90
|
-
### 6.1. `send_pic` (builtin tool)
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
LLM решает отправить файл → вызывает send_pic("price-list-2026", "delivery-info") или send_pic(["url-1", "url-2"])
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
`send_pic` принимает:
|
|
97
|
-
- **Имя файла** (`StoredFile.name` без расширения) — система найдёт по имени в workspace.
|
|
98
|
-
- **URL** — отправит напрямую без сохранения.
|
|
99
|
-
- **Массив** имён/URL — отправит все по очереди.
|
|
100
|
-
|
|
101
|
-
См. [`03-tools-catalog.md`](03-tools-catalog.md), раздел 2.12.
|
|
102
|
-
|
|
103
|
-
### 6.2. Приветственное медиа
|
|
104
|
-
|
|
105
|
-
```json
|
|
106
|
-
{
|
|
107
|
-
"AgentBehavior": {
|
|
108
|
-
"botGreeting": "Здравствуйте! Я Анна, помогу с заказом.",
|
|
109
|
-
"greetingFileId": "<StoredFile.id>",
|
|
110
|
-
"greetingButtons": [...]
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
Файл (картинка / видео / аудио) отправляется вместе с текстом приветствия. `source` рекомендуется `AGENT_GREETING`.
|
|
116
|
-
|
|
117
|
-
### 6.3. Медиа в follow-up
|
|
118
|
-
|
|
119
|
-
```json
|
|
120
|
-
{
|
|
121
|
-
"MessageConfig": {
|
|
122
|
-
"type": "media",
|
|
123
|
-
"attachments": [
|
|
124
|
-
{ "storedFileId": "<StoredFile.id>", "caption": "Прайс на этот месяц" }
|
|
125
|
-
]
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
До 4 вложений в одном шаге. Caption ≤ 1024 символов.
|
|
131
|
-
|
|
132
|
-
### 6.4. Медиа-блоки в кампаниях
|
|
133
|
-
|
|
134
|
-
```json
|
|
135
|
-
{
|
|
136
|
-
"Template.blocks": [
|
|
137
|
-
{ "type": "media", "storedFileId": "<StoredFile.id>", "caption": "..." }
|
|
138
|
-
]
|
|
139
|
-
}
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
См. [`09-campaigns.md`](09-campaigns.md), раздел 3.2.
|
|
143
|
-
|
|
144
|
-
### 6.5. QA-ответы с медиа
|
|
145
|
-
|
|
146
|
-
```json
|
|
147
|
-
{
|
|
148
|
-
"QaAnswerChunk": {
|
|
149
|
-
"orderIndex": 0,
|
|
150
|
-
"text": null,
|
|
151
|
-
"storedFileId": "<StoredFile.id>",
|
|
152
|
-
"buttons": []
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
QA может отдать медиа без текста (только картинку/документ) или текст + медиа в разных чанках. См. [`07-knowledge-base.md`](07-knowledge-base.md), раздел 6.
|
|
158
|
-
|
|
159
|
-
### 6.6. Warmup
|
|
160
|
-
|
|
161
|
-
```json
|
|
162
|
-
{
|
|
163
|
-
"WarmupImage": {
|
|
164
|
-
"warmupSettingsId": "<warmupSettingsId>",
|
|
165
|
-
"storedFileId": "<StoredFile.id>"
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
См. [`16-warmup-telegram-personal.md`](16-warmup-telegram-personal.md), раздел 7.
|
|
171
|
-
|
|
172
|
-
## 7. Лимиты и платформенные ограничения
|
|
173
|
-
|
|
174
|
-
| Платформа | Image | Video | Document | Audio | Caption |
|
|
175
|
-
|---|---|---|---|---|---|
|
|
176
|
-
| Telegram Bot | ≤ 10 MB | ≤ 50 MB | ≤ 50 MB | ≤ 50 MB | ≤ 1024 |
|
|
177
|
-
| Telegram Personal | ≤ 2 GB | ≤ 2 GB | ≤ 2 GB | ≤ 2 GB | ≤ 1024 |
|
|
178
|
-
| Wazzup (WhatsApp) | ≤ 5 MB | ≤ 16 MB | ≤ 100 MB | ≤ 16 MB | ≤ 1024 |
|
|
179
|
-
| Avito | ≤ 10 MB | ✗ | ✗ | ✗ | — |
|
|
180
|
-
| Instagram | ≤ 8 MB | ≤ 100 MB | ✗ | ≤ 8 MB | ≤ 1000 |
|
|
181
|
-
| VK | ≤ 50 MB | ≤ 200 MB | ≤ 200 MB | ≤ 200 MB | — |
|
|
182
|
-
| Web Widget | ≤ 25 MB | ≤ 100 MB | ≤ 100 MB | ≤ 25 MB | — |
|
|
183
|
-
| SMS | ✗ | ✗ | ✗ | ✗ | — |
|
|
184
|
-
|
|
185
|
-
(Лимиты могут отличаться в реальном времени — указаны типовые значения провайдеров.)
|
|
186
|
-
|
|
187
|
-
## 8. Inline-пример: organize files for e-commerce bot
|
|
188
|
-
|
|
189
|
-
```json
|
|
190
|
-
{
|
|
191
|
-
"fileSections": [
|
|
192
|
-
{ "name": "Прайсы и каталоги" },
|
|
193
|
-
{ "name": "Сертификаты" },
|
|
194
|
-
{ "name": "Welcome-медиа" },
|
|
195
|
-
{ "name": "Карта проезда" }
|
|
196
|
-
],
|
|
197
|
-
"storedFiles": [
|
|
198
|
-
{
|
|
199
|
-
"name": "Прайс-лист 2026",
|
|
200
|
-
"originalFilename": "price-list-2026.pdf",
|
|
201
|
-
"mimeType": "application/pdf",
|
|
202
|
-
"fileType": "DOCUMENT",
|
|
203
|
-
"sectionId": "<id-Прайсы>",
|
|
204
|
-
"source": "USER_UPLOAD"
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
"name": "Каталог товаров (PDF)",
|
|
208
|
-
"originalFilename": "catalog.pdf",
|
|
209
|
-
"mimeType": "application/pdf",
|
|
210
|
-
"fileType": "DOCUMENT",
|
|
211
|
-
"sectionId": "<id-Прайсы>",
|
|
212
|
-
"source": "USER_UPLOAD"
|
|
213
|
-
},
|
|
214
|
-
{
|
|
215
|
-
"name": "Welcome video",
|
|
216
|
-
"originalFilename": "welcome.mp4",
|
|
217
|
-
"mimeType": "video/mp4",
|
|
218
|
-
"fileType": "VIDEO",
|
|
219
|
-
"sectionId": "<id-Welcome>",
|
|
220
|
-
"source": "AGENT_GREETING"
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
"name": "Карта офиса",
|
|
224
|
-
"originalFilename": "office-map.jpg",
|
|
225
|
-
"mimeType": "image/jpeg",
|
|
226
|
-
"fileType": "IMAGE",
|
|
227
|
-
"sectionId": "<id-Карта>",
|
|
228
|
-
"source": "USER_UPLOAD"
|
|
229
|
-
}
|
|
230
|
-
]
|
|
231
|
-
}
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
В `AgentBehavior`:
|
|
235
|
-
```json
|
|
236
|
-
{ "greetingFileId": "<id-Welcome video>" }
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
В `baseSystemPrompt` агента:
|
|
240
|
-
```
|
|
241
|
-
Если клиент спрашивает прайс-лист — отправляй его инструментом send_pic("Прайс-лист 2026").
|
|
242
|
-
Если клиент спрашивает, как добраться — send_pic("Карта офиса").
|
|
243
|
-
Если клиент просит каталог — send_pic("Каталог товаров (PDF)").
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
## 9. Что должен сделать клиент в админке
|
|
247
|
-
|
|
248
|
-
AI-сервис не загружает файлы сам — только описывает структуру. Клиенту нужно:
|
|
249
|
-
|
|
250
|
-
1. Открыть `Files` (раздел в навигации админки).
|
|
251
|
-
2. Создать `FileSection` (например, «Прайсы»).
|
|
252
|
-
3. Загрузить файлы через UI (drag-n-drop или file picker).
|
|
253
|
-
4. Указать `name` (как агент будет ссылаться) и `description` (опционально).
|
|
254
|
-
5. Получить `StoredFile.id` или `name` и подставить в:
|
|
255
|
-
- `AgentBehavior.greetingFileId`
|
|
256
|
-
- `MessageConfig.attachments[].storedFileId`
|
|
257
|
-
- `Template.blocks[].storedFileId`
|
|
258
|
-
- `WarmupImage.storedFileId`
|
|
259
|
-
- `QaAnswerChunk.storedFileId`
|
|
260
|
-
|
|
261
|
-
## 10. Граничные случаи и валидация
|
|
262
|
-
|
|
263
|
-
| Правило | Что AI-сервису помнить |
|
|
264
|
-
|---|---|
|
|
265
|
-
| `name` уникален в `(workspaceId)` | Не назначать два файла с именем «Прайс». |
|
|
266
|
-
| `send_pic` ищет по `name` | AI должен использовать тот же `name`, что админ ввёл при загрузке. Чувствителен к точному совпадению. |
|
|
267
|
-
| `mimeType` определяет, как платформа отрендерит | PDF в Telegram пойдёт как document, в Wazzup-WhatsApp — тоже document, на Avito — не пройдёт. |
|
|
268
|
-
| `source=CHAT_MEDIA` файлы | Растут быстро (от пользователей). Имеют свою retention-политику. AI-сервис не должен ссылаться. |
|
|
269
|
-
| `storageType=local` для прода | Не использовать — только для dev. В проде S3. |
|
|
270
|
-
| Удаление `FileSection` | `sectionId` файлов внутри становится `null`, файлы остаются. |
|
|
271
|
-
| Удаление `StoredFile` | Каскадно удалит ссылки в `AgentBehavior.greetingFile`, `WarmupImage`, `QaAnswerChunk`. |
|
|
272
|
-
| Слишком большой файл (>50 MB) | Многие платформы не примут. Для PDF — рекомендовать сжатие. |
|
|
273
|
-
| `send_pic` с массивом >5 файлов | Платформы могут флаговать как спам. Реалистичный лимит — 1–3 за один вызов. |
|
|
274
|
-
| Voice (Telegram OPUS) vs Audio | `VOICE` и `AUDIO` — разные `fileType`. Голосовые (`VOICE`) авто-транскрибируются через Whisper; аудиофайлы (`AUDIO`) — нет (применяется `audioHandlingBehavior`). См. [`10-agent-behavior.md`](10-agent-behavior.md) §9. |
|
|
275
|
-
|
|
276
|
-
## 11. Что AI-сервис должен спросить у клиента
|
|
277
|
-
|
|
278
|
-
При сценариях с медиа:
|
|
279
|
-
|
|
280
|
-
1. «Какие документы/картинки вы хотите, чтобы агент мог отправлять?» (для `send_pic`).
|
|
281
|
-
2. «Нужно ли приветственное видео/картинка вместе с приветствием?» (для `greetingFileId`).
|
|
282
|
-
3. «Есть ли уже подготовленные прайсы / каталоги / сертификаты?» — указать `StoredFile.name` для использования в промпте.
|
|
283
|
-
4. Для warmup: «Загрузите 5–10 нейтральных картинок (мемы, природа) — они нужны для естественной активности warmup-аккаунтов».
|
|
284
|
-
|
|
285
|
-
## 12. Связь с другими подсистемами
|
|
286
|
-
|
|
287
|
-
| Подсистема | Связь |
|
|
288
|
-
|---|---|
|
|
289
|
-
| **Инструменты** ([`03-tools-catalog.md`](03-tools-catalog.md)) | `send_pic` — единственный инструмент, который работает с файлами на чтение. |
|
|
290
|
-
| **Поведение** ([`10-agent-behavior.md`](10-agent-behavior.md)) | `greetingFileId` — приветственное медиа. |
|
|
291
|
-
| **Follow-up** ([`08-follow-up.md`](08-follow-up.md)) | `MessageConfig.attachments[].storedFileId`. |
|
|
292
|
-
| **Кампании** ([`09-campaigns.md`](09-campaigns.md)) | `Template.blocks[type=media].storedFileId`. |
|
|
293
|
-
| **База знаний** ([`07-knowledge-base.md`](07-knowledge-base.md)) | `QaAnswerChunk.storedFileId` — медиа в QA-ответах. |
|
|
294
|
-
| **Warmup** ([`16-warmup-telegram-personal.md`](16-warmup-telegram-personal.md)) | `WarmupImage.storedFileId`. |
|
|
295
|
-
| **Платформы** ([`11-platforms.md`](11-platforms.md)) | Каждая платформа имеет свои лимиты по типам и размерам. |
|
|
28
|
+
- публичная выдача тела использует ограниченную capability-ссылку;
|
|
29
|
+
- пользовательские URL проходят SSRF-проверку;
|
|
30
|
+
- PII во вложениях подчиняется ретеншну и GDPR-диспозиции;
|
|
31
|
+
- удаление метаданных и тела согласуется cleanup-процессом;
|
|
32
|
+
- секреты и подписанные URL не попадают в промпт, трассу или долговременную историю.
|
|
@@ -1,19 +1,54 @@
|
|
|
1
1
|
# Follow-up и дожимы
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
У календарной цепочки `config.sessionTimeVariable` называет переменную контакта с часом эфира;
|
|
4
|
+
`config.sessionDayOffsets` задаёт непустой список целых дней от 0 до 30 без повторов;
|
|
5
|
+
`config.sessionDurationMinutes` — целые минуты от 1 до 1440. Длительность требует оба соседних поля и не подставляется по умолчанию.
|
|
6
|
+
Поле серии вне календарной цепочки, неизвестное или неоднозначное имя, константа и секрет получают адресный отказ сервера.
|
|
7
|
+
Повтор дня доходит до сервера. Список отдаёт имя и числа; у удалённой переменной выключенной цепочки имя равно `null`.
|
|
4
8
|
|
|
5
|
-
Начни с `besales_followup_sequence_list`. Для редактирования
|
|
6
|
-
|
|
7
|
-
— `
|
|
9
|
+
Начни с `besales_followup_sequence_list`. Для редактирования передай `sequence_id` либо
|
|
10
|
+
`include_config: true`: ответ содержит дословные `type`, `trigger`, `config`. Список без этих
|
|
11
|
+
параметров — инвентаризация. Если `config: null`, причина в `configUnavailableReason`; сначала
|
|
12
|
+
сохрани цепочку целиком формой дожимов. Статистика — `besales_followup_step_stats`, реакции —
|
|
13
|
+
`besales_followup_reactions`.
|
|
8
14
|
|
|
9
|
-
|
|
15
|
+
В реакциях единица счёта — касание, а не человек. Операционная доля `replied / resolvedSent`
|
|
16
|
+
считает только ответы до следующего касания (не более 72 часов); шаги по ней не сравнивай.
|
|
17
|
+
Сравнительная доля `horizonEngaged / comparableSent` объединяет живой ответ ИЛИ настоящий клик
|
|
18
|
+
ссылки касания без двойного счёта. Для всех строк сервер выбирает общий `horizonMinutes`;
|
|
19
|
+
сравнивай только строки с `comparableSent > 0` и `comparableReliable: true`.
|
|
20
|
+
Доля прерванных окон — `maturedCensored / (comparableSent + maturedCensored)`: в знаменатель
|
|
21
|
+
входят только созревшие окна, а не все `censored`. Нулевой пул и причины `noData` или
|
|
22
|
+
`noReliableHorizon` не дают основания для сравнения. Для раскрытия через API используй те же
|
|
23
|
+
горизонт и `calculatedAt` как `asOf`; это граница событий, а не неизменяемый снимок хранения.
|
|
24
|
+
Серверные `totals` и `runs` не пересчитывай из строк. `runs` считает прохождения (`grain: passage`,
|
|
25
|
+
`periodBasis: passageStartedAt`) в отдельном окне `windowDays`; клик сам по себе не означает
|
|
26
|
+
ответ агента, глубокий диалог или оплату. Метки транспорта бери из `dimensions.transports`.
|
|
10
27
|
|
|
11
|
-
`besales_followup_sequence_upsert` заменяет
|
|
12
|
-
|
|
13
|
-
|
|
28
|
+
`besales_followup_sequence_upsert` заменяет config целиком: сохрани все шаги и exclusions.
|
|
29
|
+
`config.stopOnPayment: true` выключает дожимы у оплатившего (в списке — `triggerConfig.stop_on_payment`);
|
|
30
|
+
при правке такой цепочки передай его снова, иначе стоп выключится.
|
|
31
|
+
Клонирование — `besales_followup_sequence_clone`. Копия дожима сохраняет форму, копия канала
|
|
32
|
+
требует одного полного сохранения формы.
|
|
14
33
|
|
|
15
|
-
|
|
34
|
+
Один текст исправляет `besales_followup_step_message_set`: `step_index` — позиция с нуля в
|
|
35
|
+
`config.steps`, `expected_content` — текст свежего чтения. При 409 перечитай цепочку и найди
|
|
36
|
+
шаг заново. Время, условия и соседние сообщения сохраняются. Незаведённый или архивный
|
|
37
|
+
`{{link:слаг}}` даёт отказ. При правке только текстов уже идущие люди получат новый текст со следующего сообщения; начатая отправка завершится прежним текстом без повтора.
|
|
38
|
+
`runs` называет переведённых, уже отправлявших старый текст и оставленных с причиной; перескажи числа и `summary`.
|
|
39
|
+
Изменение расписания, условий, порядка или заметки CRM оставляет идущих на своей версии.
|
|
40
|
+
Текст вместе с настройками цепочки (стоп при оплате, записка в карточку, круги, продолжение, порог молчания, дата календаря)
|
|
41
|
+
идущим не переводится: новые настройки действуют для всех сразу. Повторное сохранение без изменений доставит им текст.
|
|
42
|
+
Это правило применяется и к полной записи формы; `warnings` относится только к оставленным людям.
|
|
43
|
+
UNKNOWN после отправки нельзя повторять без status.
|
|
16
44
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
45
|
+
Тест воронки: `besales_followup_funnel_test_plan` (адрес человека в канале `chat_user_id` —
|
|
46
|
+
`identities[].id` из `besales_contact_get`) строит и замораживает план, ничего не отправляя; покажи
|
|
47
|
+
человеку все тексты и причины пропуска. Запуск —
|
|
48
|
+
`besales_followup_funnel_test_start` с explicit_confirmation и причиной: уходят НАСТОЯЩИЕ сообщения с
|
|
49
|
+
паузой 15 секунд. Дальше — `besales_followup_funnel_test_status`; остановка —
|
|
50
|
+
`besales_followup_funnel_test_cancel` (со следующего касания).
|
|
51
|
+
|
|
52
|
+
До запуска покажи также `deliveryMode`, `requestedTransports` и `transportObservation`, если
|
|
53
|
+
они есть в плане: наблюдение не является разрешением доставки. Проверь `truncated` и
|
|
54
|
+
`unchecked` — усечённый план или непроверенные условия не доказывают полный охват.
|