@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,10 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { compactObject, defineTool, uuidSchema, withInstructions } from './shared.js';
|
|
3
3
|
// Зеркало MAX_MODELS в prompt-services model-comparison.constants.ts (размер каталога).
|
|
4
|
-
// ⚠️ Зеркало ручное и уже отставало (23 против 24
|
|
5
|
-
// законный набор моделей ещё до
|
|
6
|
-
|
|
7
|
-
const MODEL_COMPARISON_MAX_MODELS = 35;
|
|
4
|
+
// ⚠️ Зеркало ручное и уже отставало (23 против 24 у прежней системы, 21 против 35 у новой): при отставании схема
|
|
5
|
+
// режет законный набор моделей ещё до запроса. Равенство с исполнителем и с JSON-схемой держит model-comparison.spec.ts.
|
|
6
|
+
export const MODEL_COMPARISON_MAX_MODELS = 36;
|
|
8
7
|
// Оценка ИИ по одной модели (eval-submit). Маппится snake→camel в createRequest.
|
|
9
8
|
const modelEvalPerModelSchema = z.object({
|
|
10
9
|
model: z.string(),
|
|
@@ -29,7 +28,7 @@ export const modelComparisonTools = [
|
|
|
29
28
|
enhanceResponse: (response) => withInstructions(response, [
|
|
30
29
|
'Каталог моделей сравнения: id, label, tier, bestFor-теги «когда что лучше», доступность провайдера, лимиты.',
|
|
31
30
|
'Выбери ~5 моделей под use-case агента по bestFor; defaultModelIds — разумный набор по умолчанию.',
|
|
32
|
-
'available=false → провайдер не настроен (
|
|
31
|
+
'available=false → провайдер не настроен (модели с префиксом провайдера — claude, grok, deepseek, gemini, GLM, qwen/* и другие → OPENROUTER_API_KEY; qwen3.8-flash → DASHSCOPE_API_KEY; для GLM выбирай z-ai/glm-5.3, z-ai/glm-5.3-flash, z-ai/glm-5.3-flashx через OpenRouter; yandexgpt/aliceai → YANDEX_API_KEY+YANDEX_FOLDER_ID).',
|
|
33
32
|
]),
|
|
34
33
|
}),
|
|
35
34
|
defineTool({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-comparison.js","sourceRoot":"","sources":["../../../src/tools/definitions/model-comparison.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEtF,wFAAwF;AACxF,
|
|
1
|
+
{"version":3,"file":"model-comparison.js","sourceRoot":"","sources":["../../../src/tools/definitions/model-comparison.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Тот же вход, что у MoneyCurrencyQueryDto; без догадок о валюте школы. */
|
|
3
|
+
export declare const moneyCurrencySchema: z.ZodString;
|
|
4
|
+
/** Инструкции ассистенту: серверные деньги не пересчитываются в мосте. */
|
|
5
|
+
export declare const MONEY_CURRENCY_INSTRUCTIONS: readonly ["currency — исходная валюта суммы. Фильтр принимает код ISO 4217 из трёх заглавных букв или UNKNOWN для неизвестной валюты. Без фильтра скалярные суммы включают валюту школы и прежние суммы с неизвестной валютой; это не итог всех валют.", "moneyTotalsByCurrency — отдельные итоги по исходным валютам. Разные валюты не складывай и по курсу не пересчитывай. currency=null означает «валюта неизвестна»; displayCurrency — только подпись для показа, currencyAssumed=true — предположение, а не доказанная валюта платежа.", "Точные суммы amountExact и другие поля с суффиксом Exact, если они есть, сохраняй как десятичные строки без Number, parseFloat и округления; они предпочтительнее числового приближения. В валютных разрезах строковое amount тоже точное. Отсутствующую точную сумму не придумывай."];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Тот же вход, что у MoneyCurrencyQueryDto; без догадок о валюте школы. */
|
|
3
|
+
export const moneyCurrencySchema = z.string().regex(/^(?:[A-Z]{3}|UNKNOWN)$/);
|
|
4
|
+
/** Инструкции ассистенту: серверные деньги не пересчитываются в мосте. */
|
|
5
|
+
export const MONEY_CURRENCY_INSTRUCTIONS = [
|
|
6
|
+
'currency — исходная валюта суммы. Фильтр принимает код ISO 4217 из трёх заглавных букв или UNKNOWN для неизвестной валюты. Без фильтра скалярные суммы включают валюту школы и прежние суммы с неизвестной валютой; это не итог всех валют.',
|
|
7
|
+
'moneyTotalsByCurrency — отдельные итоги по исходным валютам. Разные валюты не складывай и по курсу не пересчитывай. currency=null означает «валюта неизвестна»; displayCurrency — только подпись для показа, currencyAssumed=true — предположение, а не доказанная валюта платежа.',
|
|
8
|
+
'Точные суммы amountExact и другие поля с суффиксом Exact, если они есть, сохраняй как десятичные строки без Number, parseFloat и округления; они предпочтительнее числового приближения. В валютных разрезах строковое amount тоже точное. Отсутствующую точную сумму не придумывай.',
|
|
9
|
+
];
|
|
10
|
+
//# sourceMappingURL=money-currency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"money-currency.js","sourceRoot":"","sources":["../../../src/tools/definitions/money-currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,4EAA4E;AAC5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAE9E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,6OAA6O;IAC7O,oRAAoR;IACpR,sRAAsR;CAC9Q,CAAC"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
export declare const operatorWorkflowTools: (import("./shared.js").ToolDefinition<{
|
|
2
2
|
workspace_id?: string | undefined;
|
|
3
3
|
}> | import("./shared.js").ToolDefinition<{
|
|
4
|
-
page: number;
|
|
5
|
-
limit: number;
|
|
6
4
|
workspace_id?: string | undefined;
|
|
7
5
|
status?: "IN_PROGRESS" | "WAITING_OPERATOR" | "WAITING_CUSTOMER" | "RESOLVED" | undefined;
|
|
8
6
|
workspace_operator_id?: string | undefined;
|
|
9
7
|
contact_id?: string | undefined;
|
|
8
|
+
page?: number | undefined;
|
|
9
|
+
limit?: number | undefined;
|
|
10
10
|
}> | import("./shared.js").ToolDefinition<{
|
|
11
|
-
|
|
11
|
+
conversation_id: string;
|
|
12
12
|
workspace_id?: string | undefined;
|
|
13
13
|
}> | import("./shared.js").ToolDefinition<{
|
|
14
|
-
|
|
14
|
+
conversation_id: string;
|
|
15
15
|
workspace_operator_id: string | null;
|
|
16
16
|
expected_workspace_operator_id: string | null;
|
|
17
|
-
|
|
17
|
+
expected_assigned_at: string | null;
|
|
18
18
|
explicit_confirmation: true;
|
|
19
19
|
workspace_id?: string | undefined;
|
|
20
20
|
}>)[];
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { defineTool, uuidSchema, withInstructions } from './shared.js';
|
|
3
|
+
/**
|
|
4
|
+
* Операторский поток: реестр сотрудников, очередь, чтение и запись назначения.
|
|
5
|
+
*
|
|
6
|
+
* ⛔ Ключ чтения и записи назначения — БЕСЕДА, а не карточка контакта. Отгруженная линия принимала
|
|
7
|
+
* карточку, потому что там строка означала пару «человек × площадка». У v2 карточка объединяет
|
|
8
|
+
* каналы: у человека с двумя каналами бесед две, и по карточке нельзя выбрать, в какую писать.
|
|
9
|
+
* Переименование аргумента объявлено строкой реестра отставания.
|
|
10
|
+
*
|
|
11
|
+
* ⛔ Ручной переход состояния диалога инструментом НЕ выдаётся, хотя маршрут построен: отгруженная
|
|
12
|
+
* линия такого инструмента не имеет, и расширять поверхность моста без запроса нельзя. Строка
|
|
13
|
+
* очереди пустеет и без него — её чистит координатор передачи (возврат боту, истечение срока,
|
|
14
|
+
* ночное закрытие).
|
|
15
|
+
*/
|
|
3
16
|
const nullableUuidSchema = z.union([uuidSchema, z.null()]);
|
|
4
17
|
const nullableIsoDateSchema = z.union([z.string().datetime({ offset: true }), z.null()]);
|
|
5
18
|
export const operatorWorkflowTools = [
|
|
@@ -15,8 +28,8 @@ export const operatorWorkflowTools = [
|
|
|
15
28
|
path: `/workspaces/${input.workspace_id}/workspace-operators`,
|
|
16
29
|
}),
|
|
17
30
|
enhanceResponse: (response) => withInstructions(response, [
|
|
18
|
-
'Это
|
|
19
|
-
'assignable=false
|
|
31
|
+
'Это сотрудники рабочей области, а не операторы CRM: их идентификаторы в CRM не подставлять.',
|
|
32
|
+
'assignable=false означает «нельзя назначить СЕЙЧАС», а не «человека нет»: за ним могут быть закреплены диалоги, и фильтр по нему работает.',
|
|
20
33
|
]),
|
|
21
34
|
}),
|
|
22
35
|
defineTool({
|
|
@@ -25,51 +38,65 @@ export const operatorWorkflowTools = [
|
|
|
25
38
|
closedWorld: true,
|
|
26
39
|
requiredFields: [],
|
|
27
40
|
defaultWorkspaceId: true,
|
|
28
|
-
resultPolicy: {
|
|
41
|
+
resultPolicy: {
|
|
42
|
+
neverTruncate: true,
|
|
43
|
+
narrowingHint: 'Уменьшите limit либо перейдите на следующую page.',
|
|
44
|
+
},
|
|
29
45
|
schema: z
|
|
30
46
|
.object({
|
|
31
47
|
workspace_id: uuidSchema.optional(),
|
|
32
|
-
status: z
|
|
48
|
+
status: z
|
|
49
|
+
.enum(['WAITING_OPERATOR', 'IN_PROGRESS', 'WAITING_CUSTOMER', 'RESOLVED'])
|
|
50
|
+
.optional(),
|
|
33
51
|
workspace_operator_id: uuidSchema.optional(),
|
|
34
52
|
contact_id: uuidSchema.optional(),
|
|
35
|
-
page: z.number().int().min(1).
|
|
36
|
-
limit: z.number().int().min(1).max(100).
|
|
53
|
+
page: z.number().int().min(1).optional(),
|
|
54
|
+
limit: z.number().int().min(1).max(100).optional(),
|
|
37
55
|
})
|
|
38
56
|
.strict(),
|
|
39
57
|
createRequest: (input) => {
|
|
40
58
|
const query = new URLSearchParams();
|
|
41
|
-
if (input.status)
|
|
59
|
+
if (input.status !== undefined)
|
|
42
60
|
query.set('status', input.status);
|
|
43
|
-
if (input.workspace_operator_id)
|
|
61
|
+
if (input.workspace_operator_id !== undefined) {
|
|
44
62
|
query.set('workspaceOperatorId', input.workspace_operator_id);
|
|
45
|
-
|
|
63
|
+
}
|
|
64
|
+
if (input.contact_id !== undefined)
|
|
46
65
|
query.set('contactId', input.contact_id);
|
|
47
|
-
|
|
48
|
-
|
|
66
|
+
if (input.page !== undefined)
|
|
67
|
+
query.set('page', String(input.page));
|
|
68
|
+
if (input.limit !== undefined)
|
|
69
|
+
query.set('limit', String(input.limit));
|
|
70
|
+
const suffix = query.toString();
|
|
49
71
|
return {
|
|
50
72
|
method: 'GET',
|
|
51
|
-
path: `/workspaces/${input.workspace_id}/operator-queue
|
|
73
|
+
path: `/workspaces/${input.workspace_id}/operator-queue${suffix ? `?${suffix}` : ''}`,
|
|
52
74
|
};
|
|
53
75
|
},
|
|
54
76
|
enhanceResponse: (response) => withInstructions(response, [
|
|
55
|
-
'
|
|
56
|
-
'
|
|
77
|
+
'Без фильтра состояния выдаются ТРИ активных; «решён» и диалоги вне операторского потока — только по явному status.',
|
|
78
|
+
'Порядок — от самых давно ждущих: первая строка это тот, кто ждёт дольше всех.',
|
|
79
|
+
'Строка несёт И conversationId, И contactId: писать назначение нужно по БЕСЕДЕ, карточка служит для показа.',
|
|
80
|
+
'Если hasMore=true, продолжай со следующей page: одна страница не равна всей очереди.',
|
|
57
81
|
]),
|
|
58
82
|
}),
|
|
59
83
|
defineTool({
|
|
60
84
|
name: 'besales_workspace_operator_assignment_get',
|
|
61
85
|
sideEffect: 'none',
|
|
62
86
|
closedWorld: true,
|
|
63
|
-
requiredFields: ['
|
|
87
|
+
requiredFields: ['conversation_id'],
|
|
64
88
|
defaultWorkspaceId: true,
|
|
65
|
-
schema: z
|
|
89
|
+
schema: z
|
|
90
|
+
.object({ workspace_id: uuidSchema.optional(), conversation_id: uuidSchema })
|
|
91
|
+
.strict(),
|
|
66
92
|
createRequest: (input) => ({
|
|
67
93
|
method: 'GET',
|
|
68
|
-
path: `/workspaces/${input.workspace_id}/
|
|
94
|
+
path: `/workspaces/${input.workspace_id}/conversations/${input.conversation_id}/operator-assignment`,
|
|
69
95
|
}),
|
|
70
96
|
enhanceResponse: (response) => withInstructions(response, [
|
|
71
|
-
'Перед
|
|
72
|
-
'
|
|
97
|
+
'Перед записью передай workspaceOperatorId и assignedAt отсюда как expected_*: без них чужое решение перетирается молча.',
|
|
98
|
+
'status и назначение — РАЗНЫЕ оси: смена сотрудника не двигает очередь, а смена состояния не меняет сотрудника.',
|
|
99
|
+
'crmOperatorId — ответственный в CRM, другой человек в другой системе; за локальное назначение он не отвечает.',
|
|
73
100
|
]),
|
|
74
101
|
}),
|
|
75
102
|
defineTool({
|
|
@@ -79,35 +106,61 @@ export const operatorWorkflowTools = [
|
|
|
79
106
|
closedWorld: true,
|
|
80
107
|
verifyWithToolName: 'besales_workspace_operator_assignment_get',
|
|
81
108
|
requiredFields: [
|
|
82
|
-
'
|
|
109
|
+
'conversation_id',
|
|
83
110
|
'workspace_operator_id',
|
|
84
111
|
'expected_workspace_operator_id',
|
|
85
|
-
'
|
|
112
|
+
'expected_assigned_at',
|
|
86
113
|
'explicit_confirmation',
|
|
87
114
|
],
|
|
88
115
|
defaultWorkspaceId: true,
|
|
89
116
|
schema: z
|
|
90
117
|
.object({
|
|
91
118
|
workspace_id: uuidSchema.optional(),
|
|
92
|
-
|
|
119
|
+
conversation_id: uuidSchema,
|
|
93
120
|
workspace_operator_id: nullableUuidSchema,
|
|
94
121
|
expected_workspace_operator_id: nullableUuidSchema,
|
|
95
|
-
|
|
122
|
+
expected_assigned_at: nullableIsoDateSchema,
|
|
96
123
|
explicit_confirmation: z.literal(true),
|
|
97
124
|
})
|
|
98
125
|
.strict(),
|
|
99
126
|
createRequest: (input) => ({
|
|
100
127
|
method: 'PATCH',
|
|
101
|
-
path: `/workspaces/${input.workspace_id}/
|
|
128
|
+
path: `/workspaces/${input.workspace_id}/conversations/${input.conversation_id}/operator-assignment`,
|
|
102
129
|
body: {
|
|
103
130
|
workspaceOperatorId: input.workspace_operator_id,
|
|
104
131
|
expectedWorkspaceOperatorId: input.expected_workspace_operator_id,
|
|
105
|
-
|
|
132
|
+
expectedAssignedAt: input.expected_assigned_at,
|
|
133
|
+
explicitConfirmation: input.explicit_confirmation,
|
|
106
134
|
},
|
|
107
135
|
}),
|
|
108
136
|
enhanceResponse: (response) => withInstructions(response, [
|
|
109
|
-
'
|
|
110
|
-
'
|
|
137
|
+
'Операция локальная: сообщений не отправляет, CRM не трогает, состояние очереди не меняет.',
|
|
138
|
+
'changed=false означает «тот же сотрудник уже назначен», а не отказ.',
|
|
139
|
+
'Отказ WORKSPACE_OPERATOR_ASSIGNMENT_CONFLICT — назначение изменили между чтением и записью: перечитай и реши заново, не повторяй вслепую.',
|
|
140
|
+
'Отказ WORKSPACE_OPERATOR_ASSIGNMENT_TARGET_UNAVAILABLE — сотрудник существует, но выведен из назначаемых; выбери другого.',
|
|
141
|
+
]),
|
|
142
|
+
}),
|
|
143
|
+
defineTool({
|
|
144
|
+
name: 'besales_workspace_operational_overview',
|
|
145
|
+
sideEffect: 'none',
|
|
146
|
+
closedWorld: true,
|
|
147
|
+
requiredFields: [],
|
|
148
|
+
defaultWorkspaceId: true,
|
|
149
|
+
resultPolicy: {
|
|
150
|
+
neverTruncate: true,
|
|
151
|
+
narrowingHint: 'Читайте разделы по одному через их собственные инструменты.',
|
|
152
|
+
},
|
|
153
|
+
schema: z.object({ workspace_id: uuidSchema.optional() }).strict(),
|
|
154
|
+
createRequest: (input) => ({
|
|
155
|
+
method: 'GET',
|
|
156
|
+
path: `/workspaces/${input.workspace_id}/operational-overview`,
|
|
157
|
+
}),
|
|
158
|
+
enhanceResponse: (response) => withInstructions(response, [
|
|
159
|
+
'Начни с warnings: critical — идти чинить сейчас, warning — посмотреть. Дальше переходи по drilldown.',
|
|
160
|
+
'liveness=STALE означает ПОТЕРЮ подтверждения исхода: не объявляй задачу ни выполненной, ни проваленной.',
|
|
161
|
+
'DISABLED и «включено без шагов» — разные вещи: второе означает, что человек ждёт дожимов, а не идёт ни один.',
|
|
162
|
+
'Если раздел отвечает included=false, назови причину из reason и НЕ делай вывода «там пусто».',
|
|
163
|
+
'Если operatorQueue.included=false, назови missingScope и не делай вывода о пустой очереди.',
|
|
111
164
|
]),
|
|
112
165
|
}),
|
|
113
166
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator-workflow.js","sourceRoot":"","sources":["../../../src/tools/definitions/operator-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3D,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAEzF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,UAAU,CAAC;QACT,IAAI,EAAE,iCAAiC;QACvC,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,EAAE;QAClB,kBAAkB,EAAE,IAAI;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QAClE,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,eAAe,KAAK,CAAC,YAAY,sBAAsB;SAC9D,CAAC;QACF,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5B,gBAAgB,CAAC,QAAQ,EAAE;YACzB,
|
|
1
|
+
{"version":3,"file":"operator-workflow.js","sourceRoot":"","sources":["../../../src/tools/definitions/operator-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Настройки раздела «Воронка канала» — схема отгруженного моста без изменений: ворота решения,
|
|
4
|
+
* цель «Пути до стадии», пороги вовлечённости и «застрял». `null` — сброс, отсутствие поля — «не
|
|
5
|
+
* трогать».
|
|
6
|
+
*/
|
|
7
|
+
export declare const platformFunnelAnalyticsSchema: z.ZodObject<{
|
|
8
|
+
decision_gate: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
9
|
+
submitted: z.ZodUnion<readonly [z.ZodObject<{
|
|
10
|
+
pipeline_crm_id: z.ZodString;
|
|
11
|
+
pipeline_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
12
|
+
status_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
13
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
14
|
+
stage_id: z.ZodString;
|
|
15
|
+
}, z.core.$strict>]>;
|
|
16
|
+
approved: z.ZodUnion<readonly [z.ZodObject<{
|
|
17
|
+
pipeline_crm_id: z.ZodString;
|
|
18
|
+
pipeline_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
19
|
+
status_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
20
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
21
|
+
stage_id: z.ZodString;
|
|
22
|
+
}, z.core.$strict>]>;
|
|
23
|
+
rejected: z.ZodUnion<readonly [z.ZodObject<{
|
|
24
|
+
pipeline_crm_id: z.ZodString;
|
|
25
|
+
pipeline_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
26
|
+
status_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
27
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
28
|
+
stage_id: z.ZodString;
|
|
29
|
+
}, z.core.$strict>]>;
|
|
30
|
+
}, z.core.$strict>>>;
|
|
31
|
+
path_target_stage: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodObject<{
|
|
32
|
+
pipeline_crm_id: z.ZodString;
|
|
33
|
+
pipeline_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
34
|
+
status_id: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
35
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
36
|
+
stage_id: z.ZodString;
|
|
37
|
+
}, z.core.$strict>]>>>;
|
|
38
|
+
engaged_inbound_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
39
|
+
stuck_threshold_hours: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
40
|
+
}, z.core.$strict>;
|
|
41
|
+
/** snake → camel; `null` доезжает как сброс, `undefined` стрипается («не трогать»). */
|
|
42
|
+
export declare function mapPlatformFunnelAnalyticsInput(input: z.infer<typeof platformFunnelAnalyticsSchema>): Record<string, unknown>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { compactObject, uuidSchema } from './shared.js';
|
|
3
|
+
/** Код воронки или статуса CRM: числом у отгруженного клиента, строкой у Bitrix24 (`C1:NEW`). */
|
|
4
|
+
const crmCodeSchema = z.union([z.number().int(), z.string().trim().min(1)]);
|
|
5
|
+
/**
|
|
6
|
+
* Ссылка на стадию: `{stage_id}` из справочника воронки либо составной ключ ОТГРУЖЕННОГО контракта — подключение CRM
|
|
7
|
+
* и внешние коды воронки и статуса. Путь «прочитал справочник воронки → записал в настройки» даёт коды строками и
|
|
8
|
+
* идентификатор стадии, поэтому обе формы принимаются; отгруженная числовая форма работает как раньше.
|
|
9
|
+
*
|
|
10
|
+
* ⛔ Голый номер статуса стадию не опознаёт: статусы 142/143 и одноимённые стадии есть в каждой
|
|
11
|
+
* воронке. Сервер переводит ключ в свою стадию по каталогу подключения и проверяет, что воронка —
|
|
12
|
+
* у канала.
|
|
13
|
+
*/
|
|
14
|
+
const funnelStageRefSchema = z.union([
|
|
15
|
+
z
|
|
16
|
+
.object({
|
|
17
|
+
pipeline_crm_id: z.string(),
|
|
18
|
+
pipeline_id: crmCodeSchema,
|
|
19
|
+
status_id: crmCodeSchema,
|
|
20
|
+
})
|
|
21
|
+
.strict(),
|
|
22
|
+
z.object({ stage_id: uuidSchema }).strict(),
|
|
23
|
+
]);
|
|
24
|
+
/**
|
|
25
|
+
* Настройки раздела «Воронка канала» — схема отгруженного моста без изменений: ворота решения,
|
|
26
|
+
* цель «Пути до стадии», пороги вовлечённости и «застрял». `null` — сброс, отсутствие поля — «не
|
|
27
|
+
* трогать».
|
|
28
|
+
*/
|
|
29
|
+
export const platformFunnelAnalyticsSchema = z
|
|
30
|
+
.object({
|
|
31
|
+
decision_gate: z
|
|
32
|
+
.object({
|
|
33
|
+
submitted: funnelStageRefSchema,
|
|
34
|
+
approved: funnelStageRefSchema,
|
|
35
|
+
rejected: funnelStageRefSchema,
|
|
36
|
+
})
|
|
37
|
+
.strict()
|
|
38
|
+
.nullable()
|
|
39
|
+
.optional(),
|
|
40
|
+
path_target_stage: funnelStageRefSchema.nullable().optional(),
|
|
41
|
+
engaged_inbound_count: z.number().int().min(2).max(20).nullable().optional(),
|
|
42
|
+
stuck_threshold_hours: z.number().int().min(1).max(720).nullable().optional(),
|
|
43
|
+
})
|
|
44
|
+
.strict()
|
|
45
|
+
// ⛔ Пустой раздел сервер принимает как «ничего не менять»; здесь он отвергается, чтобы модель не
|
|
46
|
+
// думала, что что-то сохранила.
|
|
47
|
+
.refine((section) => Object.keys(section).length > 0, {
|
|
48
|
+
message: 'funnel_analytics без полей ничего не меняет: пришли хотя бы одну настройку или не присылай раздел',
|
|
49
|
+
});
|
|
50
|
+
function mapStageRef(ref) {
|
|
51
|
+
if ('stage_id' in ref)
|
|
52
|
+
return { stageId: ref.stage_id };
|
|
53
|
+
return { pipelineCrmId: ref.pipeline_crm_id, pipelineId: ref.pipeline_id, statusId: ref.status_id };
|
|
54
|
+
}
|
|
55
|
+
/** snake → camel; `null` доезжает как сброс, `undefined` стрипается («не трогать»). */
|
|
56
|
+
export function mapPlatformFunnelAnalyticsInput(input) {
|
|
57
|
+
return compactObject({
|
|
58
|
+
decisionGate: input.decision_gate == null
|
|
59
|
+
? input.decision_gate
|
|
60
|
+
: {
|
|
61
|
+
submitted: mapStageRef(input.decision_gate.submitted),
|
|
62
|
+
approved: mapStageRef(input.decision_gate.approved),
|
|
63
|
+
rejected: mapStageRef(input.decision_gate.rejected),
|
|
64
|
+
},
|
|
65
|
+
pathTargetStage: input.path_target_stage == null
|
|
66
|
+
? input.path_target_stage
|
|
67
|
+
: mapStageRef(input.path_target_stage),
|
|
68
|
+
engagedInboundCount: input.engaged_inbound_count,
|
|
69
|
+
stuckThresholdHours: input.stuck_threshold_hours,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=platform-funnel-analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-funnel-analytics.js","sourceRoot":"","sources":["../../../src/tools/definitions/platform-funnel-analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Привязки ролей волны к полям СДЕЛКИ школы — схема отгруженного моста без изменений. Значения
|
|
4
|
+
* ролей status-волна ставит в сделку сама (тип запуска, продукт, сегмент, воронка, каналы); на этих
|
|
5
|
+
* полях школа строит отчёты.
|
|
6
|
+
*
|
|
7
|
+
* ⛔ Файл не импортирует `shared.ts`: схема нужна там при вычислении модуля, и обратный импорт
|
|
8
|
+
* замкнул бы цикл, в котором одна из сторон читала бы ещё не вычисленную константу.
|
|
9
|
+
*/
|
|
10
|
+
export declare const platformGetcourseWaveFieldBindingsSchema: z.ZodObject<{
|
|
11
|
+
product_value_source: z.ZodEnum<{
|
|
12
|
+
CODE: "CODE";
|
|
13
|
+
NAME: "NAME";
|
|
14
|
+
}>;
|
|
15
|
+
launch_type: z.ZodOptional<z.ZodObject<{
|
|
16
|
+
field_id: z.ZodNumber;
|
|
17
|
+
field_label: z.ZodString;
|
|
18
|
+
}, z.core.$strict>>;
|
|
19
|
+
product: z.ZodOptional<z.ZodObject<{
|
|
20
|
+
field_id: z.ZodNumber;
|
|
21
|
+
field_label: z.ZodString;
|
|
22
|
+
}, z.core.$strict>>;
|
|
23
|
+
segment: z.ZodOptional<z.ZodObject<{
|
|
24
|
+
field_id: z.ZodNumber;
|
|
25
|
+
field_label: z.ZodString;
|
|
26
|
+
}, z.core.$strict>>;
|
|
27
|
+
funnel: z.ZodOptional<z.ZodObject<{
|
|
28
|
+
field_id: z.ZodNumber;
|
|
29
|
+
field_label: z.ZodString;
|
|
30
|
+
}, z.core.$strict>>;
|
|
31
|
+
channels: z.ZodOptional<z.ZodObject<{
|
|
32
|
+
field_id: z.ZodNumber;
|
|
33
|
+
field_label: z.ZodString;
|
|
34
|
+
}, z.core.$strict>>;
|
|
35
|
+
}, z.core.$strict>;
|
|
36
|
+
type WaveFieldBindingsInput = z.infer<typeof platformGetcourseWaveFieldBindingsSchema>;
|
|
37
|
+
/**
|
|
38
|
+
* snake → camel. Отсутствующая роль не отправляется: сервер заменяет привязки ЦЕЛИКОМ, и роль,
|
|
39
|
+
* не названная в запросе, снимается — «не трогать одну роль» этой формой не выражается.
|
|
40
|
+
*/
|
|
41
|
+
export declare function mapPlatformGetcourseWaveFieldBindingsInput(input: WaveFieldBindingsInput): Record<string, unknown>;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Потолок номера поля сделки GetCourse: номер — знаковое 32-битное целое школы. */
|
|
3
|
+
const GETCOURSE_DEAL_FIELD_ID_MAX = 2_147_483_647;
|
|
4
|
+
/** Привязка одной роли волны к полю сделки школы: номер поля и его подпись в кабинете школы. */
|
|
5
|
+
const waveFieldBindingSchema = z
|
|
6
|
+
.object({
|
|
7
|
+
field_id: z.number().int().positive().max(GETCOURSE_DEAL_FIELD_ID_MAX),
|
|
8
|
+
field_label: z.string().trim().min(1),
|
|
9
|
+
})
|
|
10
|
+
.strict();
|
|
11
|
+
/**
|
|
12
|
+
* Привязки ролей волны к полям СДЕЛКИ школы — схема отгруженного моста без изменений. Значения
|
|
13
|
+
* ролей status-волна ставит в сделку сама (тип запуска, продукт, сегмент, воронка, каналы); на этих
|
|
14
|
+
* полях школа строит отчёты.
|
|
15
|
+
*
|
|
16
|
+
* ⛔ Файл не импортирует `shared.ts`: схема нужна там при вычислении модуля, и обратный импорт
|
|
17
|
+
* замкнул бы цикл, в котором одна из сторон читала бы ещё не вычисленную константу.
|
|
18
|
+
*/
|
|
19
|
+
export const platformGetcourseWaveFieldBindingsSchema = z
|
|
20
|
+
.object({
|
|
21
|
+
product_value_source: z.enum(['CODE', 'NAME']),
|
|
22
|
+
launch_type: waveFieldBindingSchema.optional(),
|
|
23
|
+
product: waveFieldBindingSchema.optional(),
|
|
24
|
+
segment: waveFieldBindingSchema.optional(),
|
|
25
|
+
funnel: waveFieldBindingSchema.optional(),
|
|
26
|
+
channels: waveFieldBindingSchema.optional(),
|
|
27
|
+
})
|
|
28
|
+
.strict();
|
|
29
|
+
/** Роль в форме моста → роль в теле запроса сервера. */
|
|
30
|
+
const ROLE_BODY_KEYS = [
|
|
31
|
+
['launch_type', 'launchType'],
|
|
32
|
+
['product', 'product'],
|
|
33
|
+
['segment', 'segment'],
|
|
34
|
+
['funnel', 'funnel'],
|
|
35
|
+
['channels', 'channels'],
|
|
36
|
+
];
|
|
37
|
+
/**
|
|
38
|
+
* snake → camel. Отсутствующая роль не отправляется: сервер заменяет привязки ЦЕЛИКОМ, и роль,
|
|
39
|
+
* не названная в запросе, снимается — «не трогать одну роль» этой формой не выражается.
|
|
40
|
+
*/
|
|
41
|
+
export function mapPlatformGetcourseWaveFieldBindingsInput(input) {
|
|
42
|
+
const body = { productValueSource: input.product_value_source };
|
|
43
|
+
for (const [role, bodyKey] of ROLE_BODY_KEYS) {
|
|
44
|
+
const binding = input[role];
|
|
45
|
+
if (binding !== undefined) {
|
|
46
|
+
body[bodyKey] = { fieldId: binding.field_id, fieldLabel: binding.field_label };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return body;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=platform-getcourse-wave-field-bindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-getcourse-wave-field-bindings.js","sourceRoot":"","sources":["../../../src/tools/definitions/platform-getcourse-wave-field-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oFAAoF;AACpF,MAAM,2BAA2B,GAAG,aAAa,CAAC;AAElD,gGAAgG;AAChG,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,2BAA2B,CAAC;IACtE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACtC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC;KACtD,MAAM,CAAC;IACN,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,WAAW,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC9C,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,sBAAsB,CAAC,QAAQ,EAAE;CAC5C,CAAC;KACD,MAAM,EAAE,CAAC;AAIZ,wDAAwD;AACxD,MAAM,cAAc,GAAG;IACrB,CAAC,aAAa,EAAE,YAAY,CAAC;IAC7B,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,UAAU,EAAE,UAAU,CAAC;CAChB,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,0CAA0C,CACxD,KAA6B;IAE7B,MAAM,IAAI,GAA4B,EAAE,kBAAkB,EAAE,KAAK,CAAC,oBAAoB,EAAE,CAAC;IACzF,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,cAAc,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QACjF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Защитный, не семантический потолок дней автозавершения.
|
|
3
|
+
* Сто лет оставляют большой запас для рабочей настройки и удерживают дату в диапазоне API/БД.
|
|
4
|
+
*/
|
|
5
|
+
export const PLATFORM_FINISH_AUTO_MAX_DAYS = 36_500;
|
|
6
|
+
//# sourceMappingURL=platform-settings-limits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-settings-limits.js","sourceRoot":"","sources":["../../../src/tools/definitions/platform-settings-limits.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const shippedFormAccessControlSchema: z.ZodObject<{
|
|
3
|
+
is_user_filter_enabled: z.ZodOptional<z.ZodBoolean>;
|
|
4
|
+
filtered_user_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
5
|
+
enable_cleanup_commands: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
+
is_active: z.ZodOptional<z.ZodBoolean>;
|
|
7
|
+
is_ai_enabled: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
}, z.core.$strict>;
|
|
9
|
+
export declare const shippedFormWidgetMarketingSchema: z.ZodObject<{
|
|
10
|
+
marketing_field_mappings: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
11
|
+
entry_url_variable_mapping: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
12
|
+
web_widget_allowed_origins: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>>;
|
|
13
|
+
web_widget_show_page_info: z.ZodOptional<z.ZodBoolean>;
|
|
14
|
+
web_widget_rate_limit_per_minute: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
web_widget_customization: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
16
|
+
web_widget_marketing_field_mappings: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$loose>>>;
|
|
17
|
+
web_widget_entry_url_variable_mapping: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$loose>>>;
|
|
18
|
+
}, z.core.$strict>;
|
|
19
|
+
/** Ключи прежнего DTO; карта оформления совпадает с переносом v1.5 в map-v1-provider-config.ts. */
|
|
20
|
+
export declare const BUTTON_NAMES: Readonly<Record<string, string>>;
|
|
21
|
+
export declare const WINDOW_NAMES: Readonly<Record<string, string>>;
|
|
22
|
+
export declare const MARKETING_NAMES: Readonly<Record<string, string>>;
|
|
23
|
+
export declare const ENTRY_NAMES: Readonly<Record<string, string>>;
|
|
24
|
+
export declare const RULE_NAMES: Readonly<Record<string, string>>;
|
|
25
|
+
interface ShippedSettingsInput {
|
|
26
|
+
readonly access_control?: Record<string, unknown>;
|
|
27
|
+
readonly widget_marketing?: Record<string, unknown>;
|
|
28
|
+
readonly general_settings?: Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
/** Отказы прежней формы настроек канала — адрес поля и причина человеческим языком. */
|
|
31
|
+
export declare function shippedSettingsIssues(input: ShippedSettingsInput): Array<{
|
|
32
|
+
readonly path: string[];
|
|
33
|
+
readonly message: string;
|
|
34
|
+
}>;
|
|
35
|
+
/** Разделы настроек в каноне новой версии: прежние поля переложены в general_settings и переименованы. */
|
|
36
|
+
export declare function translateShippedSettings<Input extends ShippedSettingsInput>(input: Input): Input;
|
|
37
|
+
export {};
|