@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,13 +1,26 @@
|
|
|
1
|
+
import { LINK_PAGINATION_HINT } from './v15-port-descriptions.js';
|
|
2
|
+
// Каталог отслеживаемых ссылок и домен коротких адресов: инструменты, перенесённые с отгруженной
|
|
3
|
+
// линии на контракт v2 (`TrackedLinksController`, `/workspaces/:workspaceId/tracked-links`, и
|
|
4
|
+
// `WorkspaceLinkDomainController`, `/workspaces/:workspaceId/link-tracking-domain`).
|
|
5
|
+
//
|
|
6
|
+
// Каталог v2 постраничный: limit/offset и items/total/limit/offset/hasMore в ответе.
|
|
7
|
+
//
|
|
8
|
+
// ⛔ Сервер называет человека в ленте кликов `contactId`; центральный обработчик инструмента
|
|
9
|
+
// дописывает отгруженное имя `chatUserId` рядом с ним для сохранённых сценариев.
|
|
1
10
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
11
|
+
import { MONEY_CURRENCY_INSTRUCTIONS, moneyCurrencySchema } from './money-currency.js';
|
|
12
|
+
import { buildListQuery, compactObject, defineTool, uuidSchema, withInstructions, } from './shared.js';
|
|
13
|
+
/** Паритет с `CreateTrackedLinkDto.name`. */
|
|
3
14
|
const NAME_MAX_LENGTH = 200;
|
|
15
|
+
/** Паритет с `CreateTrackedLinkDto.targetUrl`. */
|
|
4
16
|
const TARGET_URL_MAX_LENGTH = 2048;
|
|
17
|
+
/** Паритет с `CreateTrackedLinkDto.productCode`. */
|
|
5
18
|
const PRODUCT_CODE_MAX_LENGTH = 64;
|
|
6
|
-
/** Форма слага — паритет с `CreateTrackedLinkDto`: латиница, цифры, дефис, подчёркивание. */
|
|
19
|
+
/** Форма слага — паритет с `CreateTrackedLinkDto.slug`: латиница, цифры, дефис, подчёркивание. */
|
|
7
20
|
const SLUG_PATTERN = /^[a-zA-Z0-9_-]{1,64}$/;
|
|
8
21
|
/** Потолок глубины аналитики — паритет с `LINK_ANALYTICS_MAX_DAYS`. */
|
|
9
22
|
const ANALYTICS_MAX_DAYS = 366;
|
|
10
|
-
/** Потолок страницы
|
|
23
|
+
/** Потолок страницы ленты кликов — паритет с `LINK_CATALOG_PAGE_SIZE_MAX`. */
|
|
11
24
|
const PAGE_SIZE_MAX = 200;
|
|
12
25
|
/** Схемы целевого адреса — паритет с `LINK_ALLOWED_PROTOCOLS`. */
|
|
13
26
|
const ALLOWED_TARGET_PROTOCOLS = ['http:', 'https:'];
|
|
@@ -35,21 +48,28 @@ const targetUrlSchema = z
|
|
|
35
48
|
}
|
|
36
49
|
}, { message: 'target_url должен быть абсолютным http(s)-адресом' });
|
|
37
50
|
const daysSchema = z.number().int().min(1).max(ANALYTICS_MAX_DAYS);
|
|
51
|
+
/**
|
|
52
|
+
* Окно сводки: не задано — за ВСЁ время. Умолчания в 60 дней больше нет нигде, и это несущее:
|
|
53
|
+
* прежде окно расходилось само с собой — выданное раньше него показывалось «выдано 0», а выручка
|
|
54
|
+
* той же строки считалась за всё время.
|
|
55
|
+
*/
|
|
56
|
+
const DAYS_ALL_TIME_NOTE = '⚠️ days не задан — сводка за ВСЁ ВРЕМЯ, умолчания нет. Нужно окно — назови его явно; граница включительная и режет момент выдачи.';
|
|
38
57
|
/** Потолок длины хоста по DNS — паритет с `LINK_DOMAIN_HOST_MAX_LENGTH`. */
|
|
39
58
|
const DOMAIN_HOST_MAX_LENGTH = 253;
|
|
40
|
-
/**
|
|
41
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Имя перед зоной: 1–24 символа, латиница и цифры, дефис внутри — самое мягкое из правил сервера: под собственной
|
|
61
|
+
* зоной клиента имя от одного символа (`LINK_DOMAIN_CLIENT_LABEL_PATTERN`), под зоной платформы — от трёх
|
|
62
|
+
* (`LINK_DOMAIN_LABEL_PATTERN`). Какая зона, решает сервер: список зон рабочей области здесь не дублируется.
|
|
63
|
+
*/
|
|
64
|
+
const DOMAIN_LABEL_PATTERN = /^[a-z0-9](?:[a-z0-9-]{0,22}[a-z0-9])?$/;
|
|
42
65
|
/** Паритет с `LINK_DOMAIN_PUNYCODE_PREFIX`. */
|
|
43
66
|
const DOMAIN_PUNYCODE_PREFIX = 'xn--';
|
|
44
67
|
/**
|
|
45
|
-
* Хост коротких ссылок
|
|
68
|
+
* Хост коротких ссылок воркспейса — копия отгруженной проверки ФОРМЫ.
|
|
46
69
|
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* сервера (`besales_link_domain_get`) и меняются вместе с инфраструктурой. Своя копия
|
|
51
|
-
* разъехалась бы с тем, что реально поднято, и агент либо предлагал бы зону, которой нет,
|
|
52
|
-
* либо отвергал бы живую. Форму же продублировать безопасно: она структурная.
|
|
70
|
+
* ⚠️ Список ЗОН и занятых имён здесь сознательно НЕ дублируется: они приходят с сервера
|
|
71
|
+
* (`besales_link_domain_get`) и меняются вместе с инфраструктурой. Своя копия разъехалась бы с тем,
|
|
72
|
+
* что реально поднято. Форму продублировать безопасно: она структурная.
|
|
53
73
|
*/
|
|
54
74
|
const linkDomainSchema = z
|
|
55
75
|
.string()
|
|
@@ -61,45 +81,84 @@ const linkDomainSchema = z
|
|
|
61
81
|
if (!/^[a-z0-9.-]+$/.test(host))
|
|
62
82
|
return false;
|
|
63
83
|
const [label, ...rest] = host.split('.');
|
|
64
|
-
if (rest.length < 1)
|
|
84
|
+
if (label === undefined || rest.length < 1)
|
|
65
85
|
return false;
|
|
66
86
|
return DOMAIN_LABEL_PATTERN.test(label) && !label.startsWith(DOMAIN_PUNYCODE_PREFIX);
|
|
67
87
|
}, {
|
|
68
|
-
message: 'domain: хост вида <имя>.<зона> без схемы и пути; имя —
|
|
69
|
-
'цифры и дефис
|
|
88
|
+
message: 'domain: хост вида <имя>.<зона> без схемы и пути; имя — до 24 символов латиницей, ' +
|
|
89
|
+
'цифры и дефис внутри (под зоной платформы — от 3), не начинается с xn--. ' +
|
|
90
|
+
'Доступные зоны — в besales_link_domain_get',
|
|
70
91
|
});
|
|
92
|
+
const domainPath = (workspaceId) => `/workspaces/${workspaceId}/link-tracking-domain`;
|
|
93
|
+
/**
|
|
94
|
+
* Отгруженные имена строки охвата дописываются рядом с именами v2.
|
|
95
|
+
*
|
|
96
|
+
* ⛔ Именно дописываются: отгруженный контракт называл канал «площадкой» (`platformId`,
|
|
97
|
+
* `platformName`, `platformDeleted`), и существующий читатель без них получил бы строки без канала —
|
|
98
|
+
* поле просто исчезло бы, молча. Имена v2 остаются на месте для нового читателя.
|
|
99
|
+
*/
|
|
100
|
+
function withShippedReachNames(response) {
|
|
101
|
+
if (!Array.isArray(response))
|
|
102
|
+
return response;
|
|
103
|
+
return response.map((item) => {
|
|
104
|
+
if (typeof item !== 'object' || item === null || Array.isArray(item))
|
|
105
|
+
return item;
|
|
106
|
+
const row = item;
|
|
107
|
+
return {
|
|
108
|
+
...row,
|
|
109
|
+
platformId: row.channelId ?? null,
|
|
110
|
+
platformName: row.channelName ?? null,
|
|
111
|
+
platformDeleted: row.channelDeleted ?? false,
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
const catalogPath = (workspaceId, linkId) => {
|
|
116
|
+
const base = `/workspaces/${workspaceId}/tracked-links`;
|
|
117
|
+
return linkId === undefined ? base : `${base}/${linkId}`;
|
|
118
|
+
};
|
|
71
119
|
export const linkTrackingTools = [
|
|
72
120
|
defineTool({
|
|
73
121
|
name: 'besales_tracked_link_list',
|
|
74
122
|
sideEffect: 'none',
|
|
123
|
+
closedWorld: true,
|
|
75
124
|
requiredFields: [],
|
|
76
125
|
defaultWorkspaceId: true,
|
|
77
126
|
schema: z
|
|
78
127
|
.object({
|
|
79
128
|
workspace_id: uuidSchema.optional(),
|
|
129
|
+
currency: moneyCurrencySchema.optional(),
|
|
80
130
|
include_archived: z.boolean().optional(),
|
|
81
131
|
days: daysSchema.optional(),
|
|
132
|
+
// ⛔ Параметры страницы ВОССТАНОВЛЕНЫ. Прежде они были сняты как «маршрут отдаёт каталог
|
|
133
|
+
// целиком», и это давало живой отказ: отгруженный клиент их шлёт, а приёмная сторона
|
|
134
|
+
// отвергала незнакомый параметр вместе со всем запросом. Маршрут v2 теперь страницы
|
|
135
|
+
// объявляет.
|
|
82
136
|
limit: z.number().int().min(1).max(PAGE_SIZE_MAX).optional(),
|
|
83
137
|
offset: z.number().int().min(0).optional(),
|
|
84
138
|
})
|
|
85
139
|
.strict(),
|
|
86
140
|
createRequest: (input) => ({
|
|
87
141
|
method: 'GET',
|
|
88
|
-
path:
|
|
142
|
+
path: `${catalogPath(input.workspace_id)}${buildListQuery({
|
|
89
143
|
includeArchived: input.include_archived,
|
|
90
144
|
days: input.days,
|
|
145
|
+
currency: input.currency,
|
|
91
146
|
limit: input.limit,
|
|
92
147
|
offset: input.offset,
|
|
93
148
|
})}`,
|
|
94
149
|
}),
|
|
95
150
|
enhanceResponse: (response) => withInstructions(response, [
|
|
151
|
+
...MONEY_CURRENCY_INSTRUCTIONS,
|
|
96
152
|
'Каталог коротких ссылок воркспейса со сводкой «выдано → клики → ответы → заявки → оплаты».',
|
|
153
|
+
LINK_PAGINATION_HINT,
|
|
97
154
|
'Поле placeholder — готовый токен ссылки. Копируй его ДОСЛОВНО в текст дожима, рассылки или шаблона; сырой URL мимо каталога не трекается.',
|
|
98
155
|
'⚠️ Токен не пиши руками и не подставляй в него свой слаг: несуществующий слаг вырезается вместе с маркером, и клиент получит фразу ВООБЩЕ без ссылки — молча, только с ошибкой в логах. В промпт агента токен не клади вовсе (модель воспроизведёт его неточно) — там используй staticUrl.',
|
|
99
|
-
'staticUrl — анонимный короткий адрес для мест, где персональной выдачи нет: промпт агента (модель не воспроизведёт токен дословно), письмо школы, подпись вложения. Клики по нему считаются без привязки к человеку.',
|
|
100
|
-
'hasMore=true означает, что каталог не дочитан: увеличивай offset. Вывод «такого слага нет»
|
|
101
|
-
|
|
156
|
+
'staticUrl — анонимный короткий адрес для мест, где персональной выдачи нет: промпт агента (модель не воспроизведёт токен дословно), письмо школы, подпись вложения. Клики по нему считаются без привязки к человеку. null означает, что публичный адрес платформы не настроен, — тогда анонимного адреса у ссылки нет вовсе.',
|
|
157
|
+
'hasMore=true означает, что каталог не дочитан: увеличивай offset. Вывод «такого слага нет» ' +
|
|
158
|
+
'по неполной странице недействителен.',
|
|
102
159
|
'Архивные ссылки по умолчанию скрыты — чтобы их увидеть, передай include_archived=true. Их слаги ЗАНЯТЫ: создание с тем же слагом даст 409. При include_archived=true архивные идут ПЕРВЫМИ.',
|
|
160
|
+
'Сводка (issued/clicked/...) приходит ТОЛЬКО в этом списке: у создания, правки и архивации счётчиков нет — там ноль означал бы «никому не выдана», хотя замера просто не было. windowDays в ответе называет окно замера: null — за всё время.',
|
|
161
|
+
DAYS_ALL_TIME_NOTE,
|
|
103
162
|
]),
|
|
104
163
|
}),
|
|
105
164
|
defineTool({
|
|
@@ -113,17 +172,24 @@ export const linkTrackingTools = [
|
|
|
113
172
|
name: z.string().trim().min(1).max(NAME_MAX_LENGTH),
|
|
114
173
|
slug: slugSchema,
|
|
115
174
|
target_url: targetUrlSchema,
|
|
175
|
+
personal_url_variable: z
|
|
176
|
+
.string()
|
|
177
|
+
.max(64)
|
|
178
|
+
.regex(/^[a-zA-Z_][a-zA-Z0-9_]*$/)
|
|
179
|
+
.optional()
|
|
180
|
+
.describe('Имя переменной контакта, где школа держит ЛИЧНЫЙ адрес человека (поле заказа GetCourse, например AI_TRF, привязанное к переменной в «Полях заказа → переменные» платформы). Есть годное значение — ссылка ведёт на него; нет, пусто или не адрес — на target_url (адрес по умолчанию). Метки utm_* из target_url ставятся в обоих случаях и перекрывают школьные; остальные параметры target_url дополняют личный адрес, но не затирают его. Личный адрес принимается только с ТОГО ЖЕ хоста И того же продукта (первая часть пути), что и target_url. Латиница, цифры, подчёркивание; до 64 символов.'),
|
|
116
181
|
product_code: z.string().max(PRODUCT_CODE_MAX_LENGTH).optional(),
|
|
117
182
|
})
|
|
118
183
|
.strict(),
|
|
119
184
|
createRequest: (input) => ({
|
|
120
185
|
method: 'POST',
|
|
121
|
-
path:
|
|
186
|
+
path: catalogPath(input.workspace_id),
|
|
122
187
|
body: compactObject({
|
|
123
188
|
name: input.name,
|
|
124
189
|
slug: input.slug,
|
|
125
190
|
targetUrl: input.target_url,
|
|
126
191
|
productCode: input.product_code,
|
|
192
|
+
personalUrlVariable: input.personal_url_variable,
|
|
127
193
|
}),
|
|
128
194
|
}),
|
|
129
195
|
enhanceResponse: (response) => withInstructions(response, [
|
|
@@ -143,6 +209,13 @@ export const linkTrackingTools = [
|
|
|
143
209
|
link_id: uuidSchema,
|
|
144
210
|
name: z.string().trim().min(1).max(NAME_MAX_LENGTH).optional(),
|
|
145
211
|
target_url: targetUrlSchema.optional(),
|
|
212
|
+
personal_url_variable: z
|
|
213
|
+
.string()
|
|
214
|
+
.max(64)
|
|
215
|
+
.regex(/^[a-zA-Z_][a-zA-Z0-9_]*$/)
|
|
216
|
+
.nullable()
|
|
217
|
+
.optional()
|
|
218
|
+
.describe('Имя переменной контакта, где школа держит ЛИЧНЫЙ адрес человека (поле заказа GetCourse, например AI_TRF, привязанное к переменной в «Полях заказа → переменные» платформы). Есть годное значение — ссылка ведёт на него; нет, пусто или не адрес — на target_url (адрес по умолчанию). Метки utm_* из target_url ставятся в обоих случаях и перекрывают школьные; остальные параметры target_url дополняют личный адрес, но не затирают его. Личный адрес принимается только с ТОГО ЖЕ хоста И того же продукта (первая часть пути), что и target_url. Латиница, цифры, подчёркивание; до 64 символов. null — выключить настройку (ссылка снова всегда ведёт на target_url). Как и target_url, действует только ВПЕРЁД: уже выданные коды хранят снимок адреса.'),
|
|
146
219
|
product_code: z.string().max(PRODUCT_CODE_MAX_LENGTH).optional(),
|
|
147
220
|
restore: z.literal(true).optional(),
|
|
148
221
|
})
|
|
@@ -150,14 +223,16 @@ export const linkTrackingTools = [
|
|
|
150
223
|
.refine((input) => input.name !== undefined ||
|
|
151
224
|
input.target_url !== undefined ||
|
|
152
225
|
input.product_code !== undefined ||
|
|
226
|
+
input.personal_url_variable !== undefined ||
|
|
153
227
|
input.restore !== undefined, { message: 'Передай хотя бы одно поле для изменения' }),
|
|
154
228
|
createRequest: (input) => ({
|
|
155
229
|
method: 'PATCH',
|
|
156
|
-
path:
|
|
230
|
+
path: catalogPath(input.workspace_id, input.link_id),
|
|
157
231
|
body: compactObject({
|
|
158
232
|
name: input.name,
|
|
159
233
|
targetUrl: input.target_url,
|
|
160
234
|
productCode: input.product_code,
|
|
235
|
+
personalUrlVariable: input.personal_url_variable,
|
|
161
236
|
restore: input.restore,
|
|
162
237
|
}),
|
|
163
238
|
}),
|
|
@@ -181,7 +256,7 @@ export const linkTrackingTools = [
|
|
|
181
256
|
.strict(),
|
|
182
257
|
createRequest: (input) => ({
|
|
183
258
|
method: 'DELETE',
|
|
184
|
-
path:
|
|
259
|
+
path: catalogPath(input.workspace_id, input.link_id),
|
|
185
260
|
}),
|
|
186
261
|
enhanceResponse: (response) => withInstructions(response, [
|
|
187
262
|
'Это АРХИВАЦИЯ, а не удаление: hard-delete у ссылок отсутствует в принципе. Код уже лежит в отправленных людям сообщениях, и удаление превратило бы живую ссылку в 404.',
|
|
@@ -192,28 +267,36 @@ export const linkTrackingTools = [
|
|
|
192
267
|
defineTool({
|
|
193
268
|
name: 'besales_tracked_link_breakdown',
|
|
194
269
|
sideEffect: 'none',
|
|
270
|
+
closedWorld: true,
|
|
195
271
|
requiredFields: ['link_id'],
|
|
196
272
|
defaultWorkspaceId: true,
|
|
197
273
|
schema: z
|
|
198
274
|
.object({
|
|
199
275
|
workspace_id: uuidSchema.optional(),
|
|
276
|
+
currency: moneyCurrencySchema.optional(),
|
|
200
277
|
link_id: uuidSchema,
|
|
201
278
|
days: daysSchema.optional(),
|
|
202
279
|
})
|
|
203
280
|
.strict(),
|
|
204
281
|
createRequest: (input) => ({
|
|
205
282
|
method: 'GET',
|
|
206
|
-
path:
|
|
283
|
+
path: `${catalogPath(input.workspace_id, input.link_id)}/breakdown${buildListQuery({
|
|
284
|
+
days: input.days,
|
|
285
|
+
currency: input.currency,
|
|
286
|
+
})}`,
|
|
207
287
|
}),
|
|
208
288
|
enhanceResponse: (response) => withInstructions(response, [
|
|
209
|
-
|
|
289
|
+
...MONEY_CURRENCY_INSTRUCTIONS,
|
|
290
|
+
'Разрез одной ссылки по источникам выдачи: WAVE (волна), FOLLOWUP (дожим), CAMPAIGN (кампания), GREETING (приветствие), AGENT (обычный ответ агента), OPERATOR (сообщение оператора), SYSTEM (служебный текст платформы, например извинение после сбоя). Человеку называй источник словами, сам ключ не показывай.',
|
|
210
291
|
'sourceId у волны пуст: welcome запускается переходом сделки, а не джобом импорта, поэтому разрез отвечает «после волны», но не «после какой именно».',
|
|
211
292
|
'Оплата атрибутируется last-touch по ближайшему клику, поэтому суммы по разным ссылкам не складываются в общую выручку дважды.',
|
|
293
|
+
DAYS_ALL_TIME_NOTE,
|
|
212
294
|
]),
|
|
213
295
|
}),
|
|
214
296
|
defineTool({
|
|
215
297
|
name: 'besales_tracked_link_reach',
|
|
216
298
|
sideEffect: 'none',
|
|
299
|
+
closedWorld: true,
|
|
217
300
|
requiredFields: ['link_id'],
|
|
218
301
|
defaultWorkspaceId: true,
|
|
219
302
|
schema: z
|
|
@@ -225,17 +308,25 @@ export const linkTrackingTools = [
|
|
|
225
308
|
.strict(),
|
|
226
309
|
createRequest: (input) => ({
|
|
227
310
|
method: 'GET',
|
|
228
|
-
path:
|
|
311
|
+
path: `${catalogPath(input.workspace_id, input.link_id)}/reach${buildListQuery({
|
|
312
|
+
days: input.days,
|
|
313
|
+
})}`,
|
|
229
314
|
}),
|
|
230
|
-
enhanceResponse: (response) => withInstructions(response, [
|
|
231
|
-
'Разрез одной ссылки по МЕСТУ применения:
|
|
232
|
-
'
|
|
233
|
-
'
|
|
315
|
+
enhanceResponse: (response) => withInstructions(withShippedReachNames(response), [
|
|
316
|
+
'Разрез одной ссылки по МЕСТУ применения: канал и агент, через которых она уходила людям. Отвечает на «где ссылка работает», тогда как besales_tracked_link_breakdown — на «после какого касания по ней ходят». Оси независимые: одна выдача принадлежит ровно одному каналу и одному агенту.',
|
|
317
|
+
'issued — отправленные выдачи, clicked — выдачи с первым живым кликом (предпросмотры мессенджеров отсеяны, повторные клики одной выдачи считаются один раз).',
|
|
318
|
+
'Пустой agentId — отдельная строка, а не ноль, и причина названа полем agentAbsence: NONE — у источника агента не бывает (рассылка, оператор, служебный текст); UNDETERMINED — агент ожидался, но не записан (старые выдачи или агент не найден). Приписывать такие выдачи какому-то агенту нельзя.',
|
|
319
|
+
'Пустой channelId — «канал не определён», тоже отдельная строка. Имена текущие; удалённый канал или агент отмечен признаком channelDeleted / agentDeleted, а имя тогда пустое: выдачи и клики переживают удаление.',
|
|
320
|
+
'Чужая или несуществующая ссылка — отказ 404, как у разбивки и ленты кликов (отгруженная линия отвечала пустым списком).',
|
|
321
|
+
'Отгруженные имена platformId, platformName и platformDeleted дописаны в каждую строку рядом с channelId, channelName и channelDeleted и значат то же самое.',
|
|
322
|
+
DAYS_ALL_TIME_NOTE,
|
|
234
323
|
]),
|
|
235
324
|
}),
|
|
236
325
|
defineTool({
|
|
237
326
|
name: 'besales_tracked_link_clicks',
|
|
327
|
+
carriesCustomerData: true,
|
|
238
328
|
sideEffect: 'none',
|
|
329
|
+
closedWorld: true,
|
|
239
330
|
requiredFields: ['link_id'],
|
|
240
331
|
defaultWorkspaceId: true,
|
|
241
332
|
schema: z
|
|
@@ -249,18 +340,24 @@ export const linkTrackingTools = [
|
|
|
249
340
|
.strict(),
|
|
250
341
|
createRequest: (input) => ({
|
|
251
342
|
method: 'GET',
|
|
252
|
-
path:
|
|
343
|
+
path: `${catalogPath(input.workspace_id, input.link_id)}/clicks${buildListQuery({
|
|
344
|
+
days: input.days,
|
|
345
|
+
page: input.page,
|
|
346
|
+
pageSize: input.page_size,
|
|
347
|
+
})}`,
|
|
253
348
|
}),
|
|
254
349
|
enhanceResponse: (response) => withInstructions(response, [
|
|
255
350
|
'Лента переходов живых людей: контакт, сообщение, источник, время. Клики-предпросмотры мессенджеров отсеяны и сюда не попадают.',
|
|
256
|
-
'⚠️ Анонимные переходы по staticUrl В ЛЕНТЕ ЕСТЬ — строками, где
|
|
351
|
+
'⚠️ Анонимные переходы по staticUrl В ЛЕНТЕ ЕСТЬ — строками, где contactId, contactName, messageId, issuedAt и sourceKind равны null. Это не битый ответ: у анонимного кода человека нет по построению. Не считай такие строки людьми; их суммарное число отдельно лежит в каталоге полем anonymousClicks.',
|
|
257
352
|
'⚠️ total — это число КЛИКОВ (включая повторные и анонимные), а поле clicked в каталоге — число ВЫДАЧ с первым живым кликом. Величины разные, сходиться не обязаны и по-разному отвечают на «сколько человек перешло».',
|
|
258
353
|
'Для следующей страницы увеличивай page; максимальный page_size — 200.',
|
|
354
|
+
DAYS_ALL_TIME_NOTE,
|
|
259
355
|
]),
|
|
260
356
|
}),
|
|
261
357
|
defineTool({
|
|
262
358
|
name: 'besales_link_domain_get',
|
|
263
359
|
sideEffect: 'none',
|
|
360
|
+
closedWorld: true,
|
|
264
361
|
requiredFields: [],
|
|
265
362
|
defaultWorkspaceId: true,
|
|
266
363
|
schema: z
|
|
@@ -270,18 +367,22 @@ export const linkTrackingTools = [
|
|
|
270
367
|
.strict(),
|
|
271
368
|
createRequest: (input) => ({
|
|
272
369
|
method: 'GET',
|
|
273
|
-
path:
|
|
370
|
+
path: domainPath(input.workspace_id),
|
|
274
371
|
}),
|
|
275
372
|
enhanceResponse: (response) => withInstructions(response, [
|
|
276
373
|
'domain — хост, с которого уходят короткие ссылки этого воркспейса; null означает, что используется общий домен платформы (он же defaultBaseUrl).',
|
|
277
|
-
'zones — зоны, доступные для
|
|
374
|
+
'zones — зоны, доступные для назначения ЭТОМУ воркспейсу: зоны платформы и собственные зоны клиента, закреплённые за ним (чужая зона клиента сюда не попадает и назначена быть не может). ПУСТОЙ список означает, что выбор домена не настроен: назначить нельзя, и это не ошибка запроса. Зона появляется только после того, как для неё подняты wildcard-запись DNS и wildcard-сертификат.',
|
|
278
375
|
'⚠️ Смена домена влияет ТОЛЬКО на новые ссылки: короткий адрес собирается в момент отправки и вшивается в сообщение навсегда. Уже разосланные ссылки продолжают открываться на прежнем хосте.',
|
|
279
|
-
'
|
|
376
|
+
'staleUsages — места настройки воркспейса (факты и инструкция агента, приветствие канала, шаги цепочки, ответы базы знаний, переменные и другие), где остался короткий адрес на ЧУЖОМ хосте: place — код места, placeLabel — место словами (показывай человеку его), name — что открыть, host — какой хост там остался.',
|
|
377
|
+
'При отправке платформа сама приводит хост СВОИХ коротких адресов к текущему домену, поэтому клиент прежнего имени не увидит. Но сама настройка не меняется: перевставь адреса из staleUsages, особенно если текст уходит мимо платформы (письма и SMS школы) — там подмены нет.',
|
|
280
378
|
]),
|
|
281
379
|
}),
|
|
282
380
|
defineTool({
|
|
283
381
|
name: 'besales_link_domain_set',
|
|
284
382
|
sideEffect: 'write',
|
|
383
|
+
// Повтор с тем же именем ничего не меняет и в журнал не пишет.
|
|
384
|
+
idempotent: true,
|
|
385
|
+
closedWorld: true,
|
|
285
386
|
requiredFields: ['domain'],
|
|
286
387
|
defaultWorkspaceId: true,
|
|
287
388
|
schema: z
|
|
@@ -294,15 +395,17 @@ export const linkTrackingTools = [
|
|
|
294
395
|
.strict(),
|
|
295
396
|
createRequest: (input) => ({
|
|
296
397
|
method: 'PUT',
|
|
297
|
-
path:
|
|
398
|
+
path: domainPath(input.workspace_id),
|
|
399
|
+
// ⛔ null уходит ЯВНЫМ null: пустое тело сервер отвергает, а не читает как сброс.
|
|
298
400
|
body: { domain: input.domain },
|
|
299
401
|
}),
|
|
300
402
|
enhanceResponse: (response) => withInstructions(response, [
|
|
301
403
|
'Домен назначен. Он влияет только на НОВЫЕ ссылки — уже отправленные продолжают работать на прежнем адресе, и это обязательное свойство: короткий адрес вшит в разосланные сообщения.',
|
|
302
404
|
'⚠️ Выбранное имя закрепляется за воркспейсом НАВСЕГДА. Сброс (domain=null) возвращает воркспейс на общий домен, но имя не освобождает: отдать его другому клиенту нельзя, иначе письма прежнего владельца открывались бы на чужом бренде. Вернуться на своё прежнее имя можно.',
|
|
303
|
-
'400 означает, что домен не прошёл правила: зона не из списка zones, имя не по формату (латиница и цифры, дефис внутри, 3–24 символа,
|
|
304
|
-
'409 означает, что хост занят ДРУГИМ воркспейсом — в том числе тем, который его когда-то
|
|
305
|
-
'⚠️
|
|
405
|
+
'400 означает, что домен не прошёл правила: зона не из списка zones, имя не по формату (латиница и цифры, дефис внутри, ровно один уровень под зоной; под зоной платформы 3–24 символа, под собственной зоной клиента 1–24), имя начинается с xn--, либо имя под зоной платформы занято её служебными адресами. Перечитай besales_link_domain_get и возьми зону оттуда.',
|
|
406
|
+
'409 означает, что хост занят ДРУГИМ воркспейсом — в том числе тем, который его когда-то освободил или был удалён. Выбери другое имя, повторять запрос бессмысленно.',
|
|
407
|
+
'⚠️ Под собственной зоной клиента имя не должно существовать в DNS клиента (www, gc, pay и т. п.): своя запись имени перекрывает wildcard, и ссылки уйдут на сайт клиента — сервис этого не проверяет, сверь имя с DNS клиента до назначения. Если после назначения ссылки открывают чужую страницу — у имени есть своя запись в DNS: назначь другое имя.',
|
|
408
|
+
'staleUsages в ответе — места настройки, где остался адрес на прежнем хосте. Клиенту при отправке хост своих ссылок подменяется автоматически, но в письмах и SMS школы подмены нет — перевставь адреса оттуда.',
|
|
306
409
|
]),
|
|
307
410
|
}),
|
|
308
411
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-tracking.js","sourceRoot":"","sources":["../../../src/tools/definitions/link-tracking.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"link-tracking.js","sourceRoot":"","sources":["../../../src/tools/definitions/link-tracking.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Содержимое варианта рассылки — общее у создания и правки: текст «Первого сообщения», тексты по сегментам и
|
|
4
|
+
* умолчания запуска. Поле не передано — не меняется; `null` — очистить.
|
|
5
|
+
*
|
|
6
|
+
* ⛔ Сервер пишет содержимое только тому, у кого есть право управлять рассылками (у ключа — область маршрута):
|
|
7
|
+
* имя и пояснение варианта этого права не требуют.
|
|
8
|
+
*/
|
|
9
|
+
export declare const mailingVariantContentShape: {
|
|
10
|
+
message_text: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
11
|
+
message_text_by_segment: z.ZodOptional<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodString>, z.ZodNull]>>;
|
|
12
|
+
default_segment: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
13
|
+
default_product_code: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
14
|
+
default_funnel: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
15
|
+
default_channels: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
16
|
+
Site: "Site";
|
|
17
|
+
Email: "Email";
|
|
18
|
+
SMS: "SMS";
|
|
19
|
+
Telegram: "Telegram";
|
|
20
|
+
Facebook: "Facebook";
|
|
21
|
+
VK: "VK";
|
|
22
|
+
Chatium: "Chatium";
|
|
23
|
+
WhatsApp: "WhatsApp";
|
|
24
|
+
Viber: "Viber";
|
|
25
|
+
MAX: "MAX";
|
|
26
|
+
}>>>;
|
|
27
|
+
default_deal_fields: z.ZodOptional<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, z.ZodNull]>>;
|
|
28
|
+
default_platform_id: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
29
|
+
cold_welcome_channels: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
30
|
+
Site: "Site";
|
|
31
|
+
Email: "Email";
|
|
32
|
+
SMS: "SMS";
|
|
33
|
+
Telegram: "Telegram";
|
|
34
|
+
Facebook: "Facebook";
|
|
35
|
+
VK: "VK";
|
|
36
|
+
Chatium: "Chatium";
|
|
37
|
+
WhatsApp: "WhatsApp";
|
|
38
|
+
Viber: "Viber";
|
|
39
|
+
MAX: "MAX";
|
|
40
|
+
}>>>;
|
|
41
|
+
cold_welcome_channels_mode: z.ZodOptional<z.ZodEnum<{
|
|
42
|
+
ADD: "ADD";
|
|
43
|
+
RESTRICT: "RESTRICT";
|
|
44
|
+
}>>;
|
|
45
|
+
quiet_days_override: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
46
|
+
};
|
|
47
|
+
export interface MailingVariantContentInput {
|
|
48
|
+
readonly message_text?: string | null;
|
|
49
|
+
readonly message_text_by_segment?: Record<string, string> | null;
|
|
50
|
+
readonly default_segment?: string | null;
|
|
51
|
+
readonly default_product_code?: string | null;
|
|
52
|
+
readonly default_funnel?: string | null;
|
|
53
|
+
readonly default_channels?: readonly string[];
|
|
54
|
+
readonly default_deal_fields?: Record<string, string | number | boolean | null> | null;
|
|
55
|
+
readonly default_platform_id?: string | null;
|
|
56
|
+
readonly cold_welcome_channels?: readonly string[];
|
|
57
|
+
readonly cold_welcome_channels_mode?: 'RESTRICT' | 'ADD';
|
|
58
|
+
readonly quiet_days_override?: number | null;
|
|
59
|
+
}
|
|
60
|
+
/** Содержимое в именах сервера; `null` доезжает как есть — это «очистить». */
|
|
61
|
+
export declare function mailingVariantContentBody(input: MailingVariantContentInput): {
|
|
62
|
+
messageText: string | null | undefined;
|
|
63
|
+
messageTextBySegment: Record<string, string> | null | undefined;
|
|
64
|
+
defaultSegment: string | null | undefined;
|
|
65
|
+
defaultProductCode: string | null | undefined;
|
|
66
|
+
defaultFunnel: string | null | undefined;
|
|
67
|
+
defaultTransports: readonly string[] | undefined;
|
|
68
|
+
defaultDealFields: Record<string, string | number | boolean | null> | null | undefined;
|
|
69
|
+
defaultChannelId: string | null | undefined;
|
|
70
|
+
coldWelcomeTransports: readonly string[] | undefined;
|
|
71
|
+
coldWelcomeTransportsMode: "ADD" | "RESTRICT" | undefined;
|
|
72
|
+
quietDaysOverride: number | null | undefined;
|
|
73
|
+
};
|
|
74
|
+
/** Подсказки о содержимом варианта — общие у создания и правки. */
|
|
75
|
+
export declare const MAILING_VARIANT_CONTENT_INSTRUCTIONS: readonly ["Текст и умолчания варианта подставляются в запуск «Первого сообщения» с mailing_variant_id, если запуск их не передал: текст сегмента запуска — из message_text_by_segment, иначе message_text.", "message_text_by_segment замещает карту ЦЕЛИКОМ (не по-ключно); null или {} убирают посегментные тексты. Ключ — имя сегмента из справочника пространства: незнакомое имя сервер отвергает с адресом поля.", "Содержимое (тексты, умолчания, каналы, тихий период) меняет только тот, кому разрешено управлять рассылками; имя и пояснение этого права не требуют."];
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { coldWelcomeChannelsModeEnum } from './getcourse-cold-welcome.js';
|
|
3
|
+
import { getcourseTransportEnum, uuidSchema } from './shared.js';
|
|
4
|
+
/** Потолки отгруженной схемы — паритет с сервером: сузить их значит внести отказ там, где клиент уже пишет. */
|
|
5
|
+
const MESSAGE_TEXT_MAX_LENGTH = 4000;
|
|
6
|
+
const LABEL_MAX_LENGTH = 200;
|
|
7
|
+
const MESSAGE_TEXT_BY_SEGMENT_MAX_ENTRIES = 50;
|
|
8
|
+
/**
|
|
9
|
+
* Содержимое варианта рассылки — общее у создания и правки: текст «Первого сообщения», тексты по сегментам и
|
|
10
|
+
* умолчания запуска. Поле не передано — не меняется; `null` — очистить.
|
|
11
|
+
*
|
|
12
|
+
* ⛔ Сервер пишет содержимое только тому, у кого есть право управлять рассылками (у ключа — область маршрута):
|
|
13
|
+
* имя и пояснение варианта этого права не требуют.
|
|
14
|
+
*/
|
|
15
|
+
export const mailingVariantContentShape = {
|
|
16
|
+
message_text: z.union([z.string().max(MESSAGE_TEXT_MAX_LENGTH), z.null()]).optional(),
|
|
17
|
+
// Тексты по сегментам: ключ — ИМЯ сегмента справочника пространства. Незнакомое имя сервер отвергает с
|
|
18
|
+
// адресом поля. `.trim()` здесь потому, что сервер требует непустоты ПОСЛЕ обрезки — иначе пробел проходит
|
|
19
|
+
// клиента и падает уже на сервере.
|
|
20
|
+
message_text_by_segment: z
|
|
21
|
+
.union([
|
|
22
|
+
z
|
|
23
|
+
.record(z.string().trim().min(1).max(LABEL_MAX_LENGTH), z.string().trim().min(1).max(MESSAGE_TEXT_MAX_LENGTH))
|
|
24
|
+
.refine((map) => Object.keys(map).length <= MESSAGE_TEXT_BY_SEGMENT_MAX_ENTRIES, {
|
|
25
|
+
message: `Не больше ${MESSAGE_TEXT_BY_SEGMENT_MAX_ENTRIES} сегментов в message_text_by_segment`,
|
|
26
|
+
}),
|
|
27
|
+
z.null(),
|
|
28
|
+
])
|
|
29
|
+
.optional(),
|
|
30
|
+
default_segment: z.union([z.string().max(LABEL_MAX_LENGTH), z.null()]).optional(),
|
|
31
|
+
default_product_code: z.union([z.string().max(LABEL_MAX_LENGTH), z.null()]).optional(),
|
|
32
|
+
default_funnel: z.union([z.string().max(LABEL_MAX_LENGTH), z.null()]).optional(),
|
|
33
|
+
// Весь набор транспортов школы, а не копия трёх «волновых»: сервер принимает каждый.
|
|
34
|
+
default_channels: z.array(getcourseTransportEnum).optional(),
|
|
35
|
+
default_deal_fields: z
|
|
36
|
+
.union([
|
|
37
|
+
z.record(z.string().regex(/^\d+$/, 'Ключ default_deal_fields обязан быть числовым fieldId GetCourse'), z.union([z.string(), z.number(), z.boolean(), z.null()])),
|
|
38
|
+
z.null(),
|
|
39
|
+
])
|
|
40
|
+
.optional(),
|
|
41
|
+
// Имя отгруженной схемы; на сервере это канал по умолчанию.
|
|
42
|
+
default_platform_id: z.union([uuidSchema, z.null()]).optional(),
|
|
43
|
+
// Каналы «Первого сообщения»: список значит «слать сюда», судьбу КАЖДОГО канала решает сервер по тому, что
|
|
44
|
+
// известно о человеке. НЕ путать с волновым default_channels.
|
|
45
|
+
cold_welcome_channels: z.array(getcourseTransportEnum).optional(),
|
|
46
|
+
// ⚠️ УСТАРЕЛО и на поведение не влияет: принимается ради старых клиентов и игнорируется сервером.
|
|
47
|
+
cold_welcome_channels_mode: coldWelcomeChannelsModeEnum.optional(),
|
|
48
|
+
// ⚠️ null и 0 — РАЗНЫЕ значения: null — рассылка тихий период не перекрывает, 0 — разрешает слать внутри него.
|
|
49
|
+
quiet_days_override: z.number().int().min(0).nullable().optional(),
|
|
50
|
+
};
|
|
51
|
+
/** Содержимое в именах сервера; `null` доезжает как есть — это «очистить». */
|
|
52
|
+
export function mailingVariantContentBody(input) {
|
|
53
|
+
return {
|
|
54
|
+
messageText: input.message_text,
|
|
55
|
+
messageTextBySegment: input.message_text_by_segment,
|
|
56
|
+
defaultSegment: input.default_segment,
|
|
57
|
+
defaultProductCode: input.default_product_code,
|
|
58
|
+
defaultFunnel: input.default_funnel,
|
|
59
|
+
defaultTransports: input.default_channels,
|
|
60
|
+
defaultDealFields: input.default_deal_fields,
|
|
61
|
+
defaultChannelId: input.default_platform_id,
|
|
62
|
+
coldWelcomeTransports: input.cold_welcome_channels,
|
|
63
|
+
coldWelcomeTransportsMode: input.cold_welcome_channels_mode,
|
|
64
|
+
quietDaysOverride: input.quiet_days_override,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/** Подсказки о содержимом варианта — общие у создания и правки. */
|
|
68
|
+
export const MAILING_VARIANT_CONTENT_INSTRUCTIONS = [
|
|
69
|
+
'Текст и умолчания варианта подставляются в запуск «Первого сообщения» с mailing_variant_id, если запуск их не передал: текст сегмента запуска — из message_text_by_segment, иначе message_text.',
|
|
70
|
+
'message_text_by_segment замещает карту ЦЕЛИКОМ (не по-ключно); null или {} убирают посегментные тексты. Ключ — имя сегмента из справочника пространства: незнакомое имя сервер отвергает с адресом поля.',
|
|
71
|
+
'Содержимое (тексты, умолчания, каналы, тихий период) меняет только тот, кому разрешено управлять рассылками; имя и пояснение этого права не требуют.',
|
|
72
|
+
];
|
|
73
|
+
//# sourceMappingURL=mailing-variant-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailing-variant-content.js","sourceRoot":"","sources":["../../../src/tools/definitions/mailing-variant-content.ts"],"names":[],"mappings":"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"}
|