@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
|
@@ -0,0 +1,559 @@
|
|
|
1
|
+
import { readAgentScopedFindings } from './dialogue-audit-agent-scope.js';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { safeReviewRun, safeReviewRunPage } from './dialog-review-safe-response.js';
|
|
4
|
+
// Отгруженные имена ревизора диалогов, вернувшиеся в ветку `v2`.
|
|
5
|
+
//
|
|
6
|
+
// ⚠️ ПСЕВДОНИМЫ поверх построенных маршрутов: тот же предмет обслуживают канонические
|
|
7
|
+
// `besales_dialog_review_*`. Имена возвращены потому, что клиент, зовущий отгруженное имя сегодня,
|
|
8
|
+
// получает «инструмент не найден».
|
|
9
|
+
//
|
|
10
|
+
// ⛔ Единица настройки у v2 — АГЕНТ, у отгруженного контракта — ПЛОЩАДКА (канал). Перевод делает
|
|
11
|
+
// СЕРВЕР: «ровно один агент с включённым разбором покрывает этот канал», иначе отказ со списком
|
|
12
|
+
// кандидатов. Выбор агента по каналу остаётся на сервере.
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
import { projectReviewFindingsPage } from './dialog-review-findings-response.js';
|
|
15
|
+
import { buildListQuery, defineTool, uuidSchema, withInstructions } from './shared.js';
|
|
16
|
+
const FINDINGS_LIMIT_MIN = 1;
|
|
17
|
+
const FINDINGS_LIMIT_MAX = 100;
|
|
18
|
+
/**
|
|
19
|
+
* Предел находок, который сервер применяет САМ, когда вызывающий его не назвал.
|
|
20
|
+
*
|
|
21
|
+
* ⛔ Обязан совпадать с `IMPROVEMENT_LIST_DEFAULT_LIMIT` besales-api. Признак усечения считается
|
|
22
|
+
* сравнением длины страницы с ДЕЙСТВУЮЩИМ пределом, и подставь сюда потолок (100) вместо
|
|
23
|
+
* умолчания — полная страница из 25 строк объявлялась бы неусечённой, то есть инструмент врал бы
|
|
24
|
+
* ровно там, где отгруженный контракт обещает правду.
|
|
25
|
+
*/
|
|
26
|
+
const FINDINGS_LIMIT_DEFAULT = 25;
|
|
27
|
+
/**
|
|
28
|
+
* Карта родов находки: отгруженное имя → род разбора v2.
|
|
29
|
+
*
|
|
30
|
+
* Классы внешнего импорта и переноса сохраняются под исходными именами, даже если штатная
|
|
31
|
+
* модель их не производит. Фильтр должен находить и такие сохранённые наблюдения.
|
|
32
|
+
*
|
|
33
|
+
* RAG_MISS сохраняет смысл отгруженной линии — промах поиска по знаниям. Находки
|
|
34
|
+
* MISSING_KNOWLEDGE в ответе идут именем v2: отгруженного двойника у них нет.
|
|
35
|
+
*/
|
|
36
|
+
const CATEGORY_TO_V2 = {
|
|
37
|
+
HALLUCINATION: 'HALLUCINATION',
|
|
38
|
+
PROMPT_VIOLATION: 'PROMPT_VIOLATION',
|
|
39
|
+
SCRIPT_DEVIATION: 'SCRIPT_DEVIATION',
|
|
40
|
+
CUSTOM_RULE_CONFLICT: 'CUSTOM_RULE_CONFLICT',
|
|
41
|
+
BAD_TONE: 'WRONG_TONE',
|
|
42
|
+
RAG_MISS: 'RAG_MISS',
|
|
43
|
+
WRONG_ROUTING: 'WRONG_ROUTING',
|
|
44
|
+
WRONG_ACTION: 'WRONG_ACTION',
|
|
45
|
+
MISSED_CONTEXT: 'MISSED_CONTEXT',
|
|
46
|
+
OTHER: 'OTHER',
|
|
47
|
+
};
|
|
48
|
+
/** Обратная карта для ОТВЕТА: род v2 → отгруженное имя. */
|
|
49
|
+
const CATEGORY_TO_SHIPPED = Object.fromEntries(Object.entries(CATEGORY_TO_V2).map(([shipped, v2]) => [v2, shipped]));
|
|
50
|
+
/** Все десять отгруженных категорий доступны в импорте и фильтре выдачи. */
|
|
51
|
+
const SHIPPED_CATEGORIES = Object.keys(CATEGORY_TO_V2);
|
|
52
|
+
/**
|
|
53
|
+
* Классы находок штатного разбора v2 — ровно тот словарь, которым материал внешнего разбора
|
|
54
|
+
* инструктирует ревизора (он судит по той же инструкции, что и штатная модель).
|
|
55
|
+
*/
|
|
56
|
+
export const V2_REVIEW_CLASSES = [
|
|
57
|
+
'PROMPT_VIOLATION',
|
|
58
|
+
'SCRIPT_DEVIATION',
|
|
59
|
+
'CUSTOM_RULE_CONFLICT',
|
|
60
|
+
'BROKEN_PROMISE',
|
|
61
|
+
'HALLUCINATION',
|
|
62
|
+
'POLICY_VIOLATION',
|
|
63
|
+
'WRONG_TONE',
|
|
64
|
+
'MISSED_OPPORTUNITY',
|
|
65
|
+
'MISSING_KNOWLEDGE',
|
|
66
|
+
'WRONG_ROUTING',
|
|
67
|
+
'RAG_MISS',
|
|
68
|
+
];
|
|
69
|
+
/**
|
|
70
|
+
* Роды, которые принимает ИМПОРТ: классы v2 как есть плюс отгруженные имена, переведённые картой
|
|
71
|
+
* выше.
|
|
72
|
+
*
|
|
73
|
+
* ⛔ Материал для внешнего ревизора называет ОДИННАДЦАТЬ классов и ЧЕТЫРЕ уровня важности. Импорт,
|
|
74
|
+
* принимавший только отгруженные имена и три уровня, не мог вернуть находки классов
|
|
75
|
+
* BROKEN_PROMISE, POLICY_VIOLATION, MISSED_OPPORTUNITY и уровня HIGH вовсе: работа ревизора
|
|
76
|
+
* терялась на границе моста. Отгруженные имена остаются — ими пользуется прежний клиент.
|
|
77
|
+
*/
|
|
78
|
+
export const IMPORT_CATEGORY_TO_V2 = {
|
|
79
|
+
...Object.fromEntries(V2_REVIEW_CLASSES.map((reviewClass) => [reviewClass, reviewClass])),
|
|
80
|
+
...CATEGORY_TO_V2,
|
|
81
|
+
};
|
|
82
|
+
const IMPORT_CATEGORIES = Object.keys(IMPORT_CATEGORY_TO_V2);
|
|
83
|
+
/** Уровни важности находки у v2 — четыре; отгруженный фильтр знал три. */
|
|
84
|
+
export const IMPORT_SEVERITIES = ['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'];
|
|
85
|
+
/** Разметка человеком: отгруженное имя → фильтр v2 и обратно. */
|
|
86
|
+
const STATUS_TO_V2 = {
|
|
87
|
+
NEW: 'NOT_REVIEWED',
|
|
88
|
+
LIKED: 'GOOD',
|
|
89
|
+
DISLIKED: 'BAD',
|
|
90
|
+
};
|
|
91
|
+
const VERDICT_TO_SHIPPED = {
|
|
92
|
+
GOOD: 'LIKED',
|
|
93
|
+
BAD: 'DISLIKED',
|
|
94
|
+
};
|
|
95
|
+
/** Потолки внешнего разбора — те же, что держит сервер. */
|
|
96
|
+
const EXTERNAL_PAGE_MAX_SEGMENTS = 25;
|
|
97
|
+
const EXTERNAL_IMPORT_MAX_FINDINGS = 500;
|
|
98
|
+
/** Потолок поля «как агент должен был поступить» — тот же, что держит сервер. */
|
|
99
|
+
const EXTERNAL_EXPECTED_BEHAVIOR_MAX = 4_000;
|
|
100
|
+
/**
|
|
101
|
+
* Кто разбирал снаружи — попадает в прогон как имя исполнителя. Умолчание есть, потому что
|
|
102
|
+
* спрашивать это у человека бессмысленно: имя исполнителя знает клиент, а не оператор.
|
|
103
|
+
*/
|
|
104
|
+
const DEFAULT_EXTERNAL_CLIENT_ID = 'claude-code';
|
|
105
|
+
/**
|
|
106
|
+
* Находка внешнего разбора. Роды — классы v2 либо отгруженные имена, переводимые в них; три
|
|
107
|
+
* отгруженных рода (WRONG_ACTION, MISSED_CONTEXT, OTHER) сохраняются под исходными именами:
|
|
108
|
+
* выбор «ближайшего» класса исказил бы находку.
|
|
109
|
+
*/
|
|
110
|
+
const externalFindingSchema = z
|
|
111
|
+
.object({
|
|
112
|
+
// Непрозрачная строка из выдачи: назвать отрезок самому нельзя.
|
|
113
|
+
ticket: z.string().min(1),
|
|
114
|
+
category: z.enum(IMPORT_CATEGORIES),
|
|
115
|
+
severity: z.enum(IMPORT_SEVERITIES),
|
|
116
|
+
title: z.string().min(1).max(300),
|
|
117
|
+
description: z.string().min(1).max(4000),
|
|
118
|
+
prompt_suggestion: z.string().max(4000).nullish(),
|
|
119
|
+
// Якорь [msg=N] из транскрипта: сервер проверяет принадлежность своему отрезку.
|
|
120
|
+
primary_message_id: z.string().min(1),
|
|
121
|
+
quote: z.string().max(4000).nullish(),
|
|
122
|
+
// Как ревизор ожидал, что агент поступит: без него находка «не так» не говорит, как надо.
|
|
123
|
+
expected_behavior: z.string().max(EXTERNAL_EXPECTED_BEHAVIOR_MAX).nullish(),
|
|
124
|
+
})
|
|
125
|
+
.strict();
|
|
126
|
+
const externalPath = (workspaceId) => `/workspaces/${workspaceId}/improvement-lab/dialog-review/external`;
|
|
127
|
+
const runsPath = (workspaceId, runId) => {
|
|
128
|
+
const base = `/workspaces/${workspaceId}/improvement-lab/dialog-review/runs`;
|
|
129
|
+
return runId === undefined ? base : `${base}/${runId}`;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Ловушки покрытия — общие с каноническим инструментом.
|
|
133
|
+
*
|
|
134
|
+
* Канал с НЕЧИТАЕМОЙ настройкой приватности выпадает из охвата МОЛЧА, и разрешение «канал →
|
|
135
|
+
* агент» этого не меняет: оно отвечает на вопрос «чей это разбор», а не «найдётся ли материал».
|
|
136
|
+
* Канал с включённым обезличиванием, наоборот, разбирается — переписка уходит модели обезличенной.
|
|
137
|
+
*/
|
|
138
|
+
const COVERAGE_TRAPS = [
|
|
139
|
+
'Канал с включённым обезличиванием РАЗБИРАЕТСЯ: его переписка уходит модели обезличенной. Из охвата молча выпадает только канал, у которого настройка приватности не читается, — прогон по такому каналу законно закончится нулём разобранного.',
|
|
140
|
+
'Канал в охвате проверяется на принадлежность рабочей области, но НЕ на привязку к агенту: агент с охватом «все каналы» покрывает и тот, где он не работает.',
|
|
141
|
+
];
|
|
142
|
+
const CHANNEL_RESOLUTION = [
|
|
143
|
+
'platform_id здесь означает КАНАЛ. Единица настройки разбора у v2 — АГЕНТ, поэтому сервер выводит агента: покрывает ровно один агент с включённым разбором — берётся он.',
|
|
144
|
+
'Ни одного такого агента — 404 (DIALOG_REVIEW_CHANNEL_HAS_NO_AGENT). Несколько — 409 (DIALOG_REVIEW_CHANNEL_AMBIGUOUS) со списком кандидатов и их именами: назови агента явно через besales_dialog_review_*.',
|
|
145
|
+
];
|
|
146
|
+
/**
|
|
147
|
+
* Сколько строк ПРОСИТЬ у сервера, чтобы признак усечения был доказуемым.
|
|
148
|
+
*
|
|
149
|
+
* ⛔ Признака усечения у v2 нет, и вывести его из полной страницы нельзя: ровно `limit` строк
|
|
150
|
+
* одинаково выглядят и как «дальше есть», и как «дальше пусто». Поэтому запрашивается на одну
|
|
151
|
+
* больше запрошенного, лишняя отрезается, а её НАЛИЧИЕ и есть доказательство хвоста.
|
|
152
|
+
*/
|
|
153
|
+
function probeLimit(limit) {
|
|
154
|
+
return Math.min((limit ?? FINDINGS_LIMIT_DEFAULT) + 1, FINDINGS_LIMIT_MAX);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Признак усечения и возврат страницы к запрошенному размеру.
|
|
158
|
+
*
|
|
159
|
+
* ⚠️ У потолка (limit=100) лишнюю строку попросить НЕ у кого: сервер режет по тому же потолку.
|
|
160
|
+
* Там полная страница объявляется усечённой — совет «сузь фильтр» безвреден, а молчание о хвосте
|
|
161
|
+
* нет.
|
|
162
|
+
*/
|
|
163
|
+
function withTruncationFlag(items, limit) {
|
|
164
|
+
const requested = limit ?? FINDINGS_LIMIT_DEFAULT;
|
|
165
|
+
const probe = probeLimit(limit);
|
|
166
|
+
const truncated = items.length > requested || (probe === requested && items.length === requested);
|
|
167
|
+
return { items: items.slice(0, requested), truncated };
|
|
168
|
+
}
|
|
169
|
+
/** Поле объекта, если оно там есть и оно строка. */
|
|
170
|
+
function detailString(details, key) {
|
|
171
|
+
if (typeof details !== 'object' || details === null)
|
|
172
|
+
return undefined;
|
|
173
|
+
const value = details[key];
|
|
174
|
+
return typeof value === 'string' ? value : undefined;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Перевод находки обратно в отгруженный словарь.
|
|
178
|
+
*
|
|
179
|
+
* ⛔ Текст находки и якорь реплики лежат у v2 ВНУТРИ `details`, а отгруженный клиент читает их
|
|
180
|
+
* верхними полями (`description`, `primaryMessageId`). Оставив перевод на родах и разметке, мы
|
|
181
|
+
* отдали бы находки без текста и без ссылки на реплику — то есть ответ, по которому нельзя ни
|
|
182
|
+
* прочитать претензию, ни проверить её по переписке.
|
|
183
|
+
*
|
|
184
|
+
* ⚠️ Отгруженных полей, которых у v2 НЕТ, здесь не изобретается ни одного: `title` (у v2 один
|
|
185
|
+
* текст, не пара), `agentName` (выдача находок агента не присоединяет) и `promptDrift` (у v2 он
|
|
186
|
+
* свойство ПРОГОНА, а не находки) отсутствуют, и это названо в подсказке. Подставить их пустыми
|
|
187
|
+
* значило бы соврать, что разбор их посчитал.
|
|
188
|
+
*/
|
|
189
|
+
function translateFindings(response, limit) {
|
|
190
|
+
const page = projectReviewFindingsPage(response);
|
|
191
|
+
const items = page.items.map((raw) => {
|
|
192
|
+
if (typeof raw !== 'object' || raw === null)
|
|
193
|
+
return raw;
|
|
194
|
+
const row = raw;
|
|
195
|
+
const v2Category = typeof row.observationType === 'string' ? row.observationType : undefined;
|
|
196
|
+
const verdict = typeof row.reviewVerdict === 'string' ? row.reviewVerdict : undefined;
|
|
197
|
+
const details = row.details;
|
|
198
|
+
const quote = detailString(details, 'quote');
|
|
199
|
+
const messageId = detailString(details, 'primary_message_id');
|
|
200
|
+
const suggestion = detailString(details, 'suggested_fix');
|
|
201
|
+
// ⛔ «Значения нет» выражается ОДИНАКОВО во всех полях: скаляр — `null`, список — пустой.
|
|
202
|
+
// Три разных соглашения в одной находке заставляли бы читателя проверять каждое поле
|
|
203
|
+
// по-своему, а `undefined` вдобавок исчезает при сериализации — поле просто пропадало бы.
|
|
204
|
+
return {
|
|
205
|
+
...row,
|
|
206
|
+
observationStatus: row.status,
|
|
207
|
+
// ⛔ Род без отгруженного имени отдаётся КАК ЕСТЬ, а не схлопывается в OTHER: подмена
|
|
208
|
+
// именем, которого у него нет, соврала бы о классе находки.
|
|
209
|
+
category: v2Category === undefined ? null : (CATEGORY_TO_SHIPPED[v2Category] ?? v2Category),
|
|
210
|
+
// «Не размечено» у v2 выражено пустотой; отгруженный клиент ждал слова.
|
|
211
|
+
status: verdict === undefined ? 'NEW' : (VERDICT_TO_SHIPPED[verdict] ?? verdict),
|
|
212
|
+
description: detailString(details, 'summary') ?? null,
|
|
213
|
+
primaryMessageId: messageId ?? null,
|
|
214
|
+
promptSuggestion: suggestion ?? null,
|
|
215
|
+
// Отгруженная опора — список ссылок на реплики. У v2 якорь один, и цитата к нему
|
|
216
|
+
// необязательна: без цитаты список ПУСТ, а не заполнен пустой строкой.
|
|
217
|
+
evidence: quote === undefined || messageId === undefined
|
|
218
|
+
? []
|
|
219
|
+
: [
|
|
220
|
+
{
|
|
221
|
+
contactId: detailString(details, 'contact_id') ?? null,
|
|
222
|
+
messageId,
|
|
223
|
+
quote,
|
|
224
|
+
},
|
|
225
|
+
],
|
|
226
|
+
reviewReason: typeof row.reviewComment === 'string' ? row.reviewComment : null,
|
|
227
|
+
};
|
|
228
|
+
});
|
|
229
|
+
if (page.truncated === null)
|
|
230
|
+
return withTruncationFlag(items, limit);
|
|
231
|
+
const requested = limit ?? FINDINGS_LIMIT_DEFAULT;
|
|
232
|
+
return {
|
|
233
|
+
items: items.slice(0, requested),
|
|
234
|
+
truncated: page.truncated || items.length > requested,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Перевод прогона обратно в отгруженный словарь.
|
|
239
|
+
*
|
|
240
|
+
* ⛔ Три поля у v2 названы иначе, и читатель, знающий только отгруженные имена, увидел бы вместо
|
|
241
|
+
* них пустоту: повод запуска (`trigger: SCHEDULE|MANUAL` против `type: DAILY|MANUAL`), время
|
|
242
|
+
* завершения (`finishedAt` против `completedAt`) и причина обрыва (пара `errorCode`+`errorMessage`
|
|
243
|
+
* против одной строки `lastError`). Статусы и счётчики отрезков совпадают дословно и не трогаются.
|
|
244
|
+
*/
|
|
245
|
+
function translateRun(raw) {
|
|
246
|
+
const row = safeReviewRun(raw);
|
|
247
|
+
const trigger = typeof row.trigger === 'string' ? row.trigger : undefined;
|
|
248
|
+
const code = typeof row.errorCode === 'string' ? row.errorCode : undefined;
|
|
249
|
+
const safeError = row.lastError !== null && typeof row.lastError === 'object'
|
|
250
|
+
? row.lastError
|
|
251
|
+
: undefined;
|
|
252
|
+
const message = typeof safeError?.message === 'string' ? safeError.message : undefined;
|
|
253
|
+
return {
|
|
254
|
+
...row,
|
|
255
|
+
type: trigger === 'SCHEDULE' ? 'DAILY' : trigger,
|
|
256
|
+
completedAt: row.finishedAt ?? null,
|
|
257
|
+
chunkCount: row.segmentAttemptCount ?? null,
|
|
258
|
+
agentCount: 1,
|
|
259
|
+
// Код и текст склеиваются, потому что отгруженное поле одно; наличие ровно одной половины —
|
|
260
|
+
// законный случай, и подставлять «undefined» в строку нельзя.
|
|
261
|
+
lastError: code === undefined && message === undefined
|
|
262
|
+
? null
|
|
263
|
+
: [code, message].filter((part) => part !== undefined).join(': '),
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
/** Тот же перевод для страницы прогонов: форма ответа — `{items, nextCursor}`. */
|
|
267
|
+
function translateRunPage(response) {
|
|
268
|
+
const page = safeReviewRunPage(response);
|
|
269
|
+
if (!Array.isArray(page.items))
|
|
270
|
+
return page;
|
|
271
|
+
return { ...page, items: page.items.map(translateRun) };
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Настройка ОДНА, а маршрут v2 списочный.
|
|
275
|
+
*
|
|
276
|
+
* ⛔ Отгруженный инструмент отдавал объект настройки; отдав массив, мы заставили бы каждого
|
|
277
|
+
* читателя разбирать форму, которой отгруженный контракт не объявлял. Второго запроса у моста
|
|
278
|
+
* нет — но и не нужно: список, суженный каналом, длиннее одного быть не может, потому что сервер
|
|
279
|
+
* уже отказал бы при нескольких кандидатах.
|
|
280
|
+
*
|
|
281
|
+
* ⚠️ Пустой список сервер вернуть НЕ может: агент выводится из существующей настройки, и его
|
|
282
|
+
* отсутствие приходит отказом 404, а не пустотой. `null` здесь — страховка на случай, если
|
|
283
|
+
* выдача сервера однажды изменится; ветка недостижима по построению, и теста на неё нет
|
|
284
|
+
* намеренно — он был бы зелёным при любой правке живого пути.
|
|
285
|
+
*/
|
|
286
|
+
function singleConfig(response) {
|
|
287
|
+
if (!Array.isArray(response))
|
|
288
|
+
return response;
|
|
289
|
+
return response[0] ?? null;
|
|
290
|
+
}
|
|
291
|
+
const findingsSchema = z
|
|
292
|
+
.object({
|
|
293
|
+
workspace_id: uuidSchema.optional(),
|
|
294
|
+
run_id: uuidSchema,
|
|
295
|
+
agent_id: uuidSchema.optional().describe('Проверка принадлежности разбора агенту: сначала читается разбор; при несовпадении отказ без чтения находок.'),
|
|
296
|
+
category: z.enum(SHIPPED_CATEGORIES).optional(),
|
|
297
|
+
severity: z.enum(['LOW', 'MEDIUM', 'CRITICAL']).optional(),
|
|
298
|
+
status: z.enum(['NEW', 'LIKED', 'DISLIKED']).optional(),
|
|
299
|
+
limit: z.number().int().min(FINDINGS_LIMIT_MIN).max(FINDINGS_LIMIT_MAX).optional(),
|
|
300
|
+
})
|
|
301
|
+
.strict();
|
|
302
|
+
const findingsRequest = (input) => ({
|
|
303
|
+
method: 'GET',
|
|
304
|
+
path: `${runsPath(input.workspace_id, input.run_id)}/findings${buildListQuery({
|
|
305
|
+
observationType: input.category === undefined ? undefined : CATEGORY_TO_V2[input.category],
|
|
306
|
+
severity: input.severity,
|
|
307
|
+
reviewState: input.status === undefined ? undefined : STATUS_TO_V2[input.status],
|
|
308
|
+
// ⛔ На одну больше запрошенного — лишняя строка и есть доказательство хвоста; она
|
|
309
|
+
// отрезается при сборке ответа и вызывающему не показывается.
|
|
310
|
+
limit: probeLimit(input.limit),
|
|
311
|
+
format: 'page',
|
|
312
|
+
})}`,
|
|
313
|
+
});
|
|
314
|
+
const enhanceFindings = (response, input) => withInstructions(translateFindings(response, input.limit), [
|
|
315
|
+
'⚠️ Ответ несёт ЦИТАТЫ реплик конкретных людей, а не агрегат.',
|
|
316
|
+
'⚠️ У важности находки в v2 ЧЕТЫРЕ уровня: LOW, MEDIUM, HIGH, CRITICAL. Отгруженный фильтр знает три, поэтому severity=CRITICAL НЕ покажет находки уровня HIGH — за ними иди в besales_dialog_review_findings. В самом ответе HIGH встречается.',
|
|
317
|
+
'Роды находок переведены в отгруженный словарь. Роды, у которых отгруженного имени нет вовсе (BROKEN_PROMISE, POLICY_VIOLATION, MISSED_OPPORTUNITY, MISSING_KNOWLEDGE), отдаются как есть — это не ошибка перевода. ⚠️ Фильтр RAG_MISS находит настоящий класс «поиск по знаниям промахнулся»; находки MISSING_KNOWLEDGE («ответа нет ни в инструкции, ни в знаниях») он больше не возвращает — они идут своим именем.',
|
|
318
|
+
'status=NEW означает «человек находку ещё не смотрел»; у v2 это выражено пустой разметкой.',
|
|
319
|
+
'Фильтр принимает все десять отгруженных категорий. WRONG_ACTION, MISSED_CONTEXT и OTHER сохраняются внешним импортом и переносом без подмены; штатная модель использует собственный словарь.',
|
|
320
|
+
'agent_id необязателен: перед чтением находок мост проверяет agentId разбора тем же маршрутом, что besales_dialogue_audit_run_get. Если разбор относится к другому агенту — отказ без запроса находок. Без agent_id находки читаются сразу.',
|
|
321
|
+
'truncated=true означает, что находок больше, чем показано. Первыми идут самые тяжёлые. При limit меньше 100 увеличьте limit; на потолке сузьте отбор.',
|
|
322
|
+
'Разметка находок через этот инструмент НЕ выводится: это человеческая оценка работы ревизора.',
|
|
323
|
+
'⛔ Трёх отгруженных полей у находки v2 нет, и пустыми они не подставлены: title (текст находки ОДИН и лежит в description), agentName (выдача имени агента не присоединяет — его отдаёт besales_dialogue_audit_run_get) и promptDrift (у v2 это свойство ПРОГОНА, а не находки).',
|
|
324
|
+
'Текст находки, якорь реплики, предложенная правка и цитата лежат у v2 внутри details и продублированы верхними полями description, primaryMessageId, promptSuggestion, evidence — исходный details остаётся в ответе как есть. «Значения нет» выражено одинаково: null у скаляров, пустой список у evidence.',
|
|
325
|
+
'В details есть ещё expected_behavior — как ревизор ожидал, что агент поступит. Отгруженного поля под него нет вовсе, поэтому наверх он не поднят: читай его прямо из details.',
|
|
326
|
+
]);
|
|
327
|
+
export const dialogueAuditAliasTools = [
|
|
328
|
+
defineTool({
|
|
329
|
+
name: 'besales_dialogue_audit_config_get',
|
|
330
|
+
sideEffect: 'none',
|
|
331
|
+
closedWorld: true,
|
|
332
|
+
requiredFields: ['platform_id'],
|
|
333
|
+
defaultWorkspaceId: true,
|
|
334
|
+
schema: z.object({ workspace_id: uuidSchema.optional(), platform_id: uuidSchema }).strict(),
|
|
335
|
+
createRequest: (input) => ({
|
|
336
|
+
method: 'GET',
|
|
337
|
+
path: `/workspaces/${input.workspace_id}/improvement-lab/dialog-review/configs${buildListQuery({
|
|
338
|
+
channelId: input.platform_id,
|
|
339
|
+
})}`,
|
|
340
|
+
}),
|
|
341
|
+
enhanceResponse: (response) => withInstructions(singleConfig(response), [
|
|
342
|
+
...CHANNEL_RESOLUTION,
|
|
343
|
+
'Поля модели у настройки v2 НЕТ вовсе: полосу модели разбора задаёт система, а не настройка канала.',
|
|
344
|
+
'Отгруженный признак isConfigured в v2 не отдаётся, и он не нужен: настройка либо есть — тогда она в ответе, либо её нет — тогда приходит отказ 404, а не «пустая настройка с умолчаниями».',
|
|
345
|
+
'Настройка ВЫКЛЮЧЕННОГО разбора читается так же: сервер сперва ищет агента с включённым разбором, а не найдя — среди выключенных. Именно поэтому «разбор молчит» отличимо от «канал никем не разбирается».',
|
|
346
|
+
...COVERAGE_TRAPS,
|
|
347
|
+
]),
|
|
348
|
+
}),
|
|
349
|
+
defineTool({
|
|
350
|
+
name: 'besales_dialogue_audit_runs_list',
|
|
351
|
+
sideEffect: 'none',
|
|
352
|
+
closedWorld: true,
|
|
353
|
+
requiredFields: ['platform_id'],
|
|
354
|
+
defaultWorkspaceId: true,
|
|
355
|
+
resultPolicy: { neverTruncate: true },
|
|
356
|
+
schema: z
|
|
357
|
+
.object({
|
|
358
|
+
workspace_id: uuidSchema.optional(),
|
|
359
|
+
platform_id: uuidSchema,
|
|
360
|
+
// Курсор — id последнего прогона страницы, как у прежней системы и отгруженного моста.
|
|
361
|
+
cursor: uuidSchema.optional(),
|
|
362
|
+
limit: z.number().int().min(FINDINGS_LIMIT_MIN).max(FINDINGS_LIMIT_MAX).optional(),
|
|
363
|
+
})
|
|
364
|
+
.strict(),
|
|
365
|
+
createRequest: (input) => ({
|
|
366
|
+
method: 'GET',
|
|
367
|
+
path: `${runsPath(input.workspace_id)}${buildListQuery({
|
|
368
|
+
channelId: input.platform_id,
|
|
369
|
+
cursor: input.cursor,
|
|
370
|
+
limit: input.limit,
|
|
371
|
+
})}`,
|
|
372
|
+
}),
|
|
373
|
+
enhanceResponse: (response) => withInstructions(translateRunPage(response), [
|
|
374
|
+
...CHANNEL_RESOLUTION,
|
|
375
|
+
'Указатель страницы — id последнего прогона предыдущей страницы: бери nextCursor из предыдущего ответа.',
|
|
376
|
+
'type=DAILY — плановый прогон, MANUAL — запущенный руками или через MCP. Рядом лежит исходное имя повода (trigger=SCHEDULE у планового).',
|
|
377
|
+
'lastError у FAILED называет причину обрыва кодом и текстом через двоеточие.',
|
|
378
|
+
]),
|
|
379
|
+
}),
|
|
380
|
+
defineTool({
|
|
381
|
+
name: 'besales_dialogue_audit_run_get',
|
|
382
|
+
carriesCustomerData: true,
|
|
383
|
+
sideEffect: 'none',
|
|
384
|
+
closedWorld: true,
|
|
385
|
+
requiredFields: ['run_id'],
|
|
386
|
+
defaultWorkspaceId: true,
|
|
387
|
+
schema: z.object({ workspace_id: uuidSchema.optional(), run_id: uuidSchema }).strict(),
|
|
388
|
+
createRequest: (input) => ({
|
|
389
|
+
method: 'GET',
|
|
390
|
+
path: runsPath(input.workspace_id, input.run_id),
|
|
391
|
+
}),
|
|
392
|
+
enhanceResponse: (response) => withInstructions(translateRun(response), [
|
|
393
|
+
'Прогон v2 принадлежит одному АГЕНТУ, а не каналу: поле agentId и отвечает на «чей это разбор».',
|
|
394
|
+
'Счётчики охвата зафиксированы на момент прогона и не пересчитываются.',
|
|
395
|
+
'Смотри candidateSegments против auditedSegments и failedSegments: «находок мало» бывает следствием того, что мало разобрали.',
|
|
396
|
+
'Происхождение находок — в executionMode: INTERNAL — разбирала штатная модель, EXTERNAL_IMPORT — внешний ревизор через besales_dialogue_audit_import. Внутренние отпечатки и произвольное имя внешнего клиента не выдаются; author — безопасное представление инициатора.',
|
|
397
|
+
'promptDrift показывает изменение инструкции относительно прошлого прогона: UNKNOWN — неизвестно, UNCHANGED — без изменений, CHANGED — изменилась. Используй это поле карточки, чтобы оценить смену инструкции.',
|
|
398
|
+
'⛔ Полей model и principlesHash у прогона v2 нет. chunkCount — число начатых попыток разбора, а не обращений к провайдеру; null означает «не измерено». У прогона один агент. rejectedFindingCount — находки, которые сервер не записал. Внутренние отпечатки не выдаются. Измеренные segmentAttemptCount/rejectedFindingCount могут быть null, если исторический прогон их не измерял.',
|
|
399
|
+
]),
|
|
400
|
+
}),
|
|
401
|
+
defineTool({
|
|
402
|
+
name: 'besales_dialogue_audit_run_cancel',
|
|
403
|
+
sideEffect: 'write',
|
|
404
|
+
requiredFields: ['run_id'],
|
|
405
|
+
defaultWorkspaceId: true,
|
|
406
|
+
schema: z
|
|
407
|
+
.object({
|
|
408
|
+
workspace_id: uuidSchema.optional(),
|
|
409
|
+
run_id: uuidSchema,
|
|
410
|
+
explicit_confirmation: z.boolean().optional(),
|
|
411
|
+
})
|
|
412
|
+
.strict(),
|
|
413
|
+
createRequest: (input) => ({
|
|
414
|
+
method: 'POST',
|
|
415
|
+
path: `${runsPath(input.workspace_id, input.run_id)}/cancel`,
|
|
416
|
+
}),
|
|
417
|
+
enhanceResponse: (response) => withInstructions(response, [
|
|
418
|
+
'⛔ Подтверждение здесь НЕ требуется: прежнее поле explicit_confirmation: true принимается для совместимости и не уходит на сервер. Остановка прекращает трату.',
|
|
419
|
+
'Остановка освобождает агента немедленно: следующий запуск возможен сразу.',
|
|
420
|
+
'Уже завершённый прогон остановить нельзя — это отказ, а не повторная остановка.',
|
|
421
|
+
'Отрезки, разобранные до остановки, остаются: их находки читаются besales_dialogue_audit_findings.',
|
|
422
|
+
]),
|
|
423
|
+
}),
|
|
424
|
+
defineTool({
|
|
425
|
+
name: 'besales_dialogue_audit_run_start',
|
|
426
|
+
sideEffect: 'spend',
|
|
427
|
+
requiredFields: ['platform_id', 'explicit_confirmation'],
|
|
428
|
+
defaultWorkspaceId: true,
|
|
429
|
+
verifyWithToolName: 'besales_dialogue_audit_run_get',
|
|
430
|
+
schema: z
|
|
431
|
+
.object({
|
|
432
|
+
workspace_id: uuidSchema.optional(),
|
|
433
|
+
platform_id: uuidSchema,
|
|
434
|
+
period_from: z.string().datetime().optional(),
|
|
435
|
+
period_to: z.string().datetime().optional(),
|
|
436
|
+
explicit_confirmation: z.literal(true),
|
|
437
|
+
})
|
|
438
|
+
.strict(),
|
|
439
|
+
createRequest: (input) => ({
|
|
440
|
+
method: 'POST',
|
|
441
|
+
path: `${runsPath(input.workspace_id)}/keyed`,
|
|
442
|
+
body: {
|
|
443
|
+
channelId: input.platform_id,
|
|
444
|
+
idempotencyKey: randomUUID(),
|
|
445
|
+
...(input.period_from === undefined ? {} : { periodFrom: input.period_from }),
|
|
446
|
+
...(input.period_to === undefined ? {} : { periodTo: input.period_to }),
|
|
447
|
+
},
|
|
448
|
+
}),
|
|
449
|
+
enhanceResponse: (response) => withInstructions(response, [
|
|
450
|
+
...CHANNEL_RESOLUTION,
|
|
451
|
+
'⛔ Отказ «кандидатов несколько» НЕ создаёт прогона: платный разбор веером не расходится. Это ДРУГОЙ 409, чем «у агента уже идёт живой прогон» (DIALOG_REVIEW_RUN_ALREADY_LIVE) — ждать во втором случае осмысленно, в первом нет.',
|
|
452
|
+
'Прогон ставится в очередь: ответ отдаёт идентификатор, состояние читается besales_dialogue_audit_run_get.',
|
|
453
|
+
'Без периода разбирается всё непроверенное. С периодом окно перепроверяется ЗАНОВО — это отдельный оплаченный проход.',
|
|
454
|
+
...COVERAGE_TRAPS,
|
|
455
|
+
]),
|
|
456
|
+
}),
|
|
457
|
+
defineTool({
|
|
458
|
+
name: 'besales_dialogue_audit_findings',
|
|
459
|
+
sideEffect: 'none',
|
|
460
|
+
closedWorld: true,
|
|
461
|
+
carriesCustomerData: true,
|
|
462
|
+
resultPolicy: { neverTruncate: true },
|
|
463
|
+
requiredFields: ['run_id'],
|
|
464
|
+
defaultWorkspaceId: true,
|
|
465
|
+
schema: findingsSchema,
|
|
466
|
+
// Конструктор сохраняется для штатной инспекции маршрутов и контрактов.
|
|
467
|
+
// Исполнение целиком принадлежит localHandler (registry выбирает его первым).
|
|
468
|
+
createRequest: findingsRequest,
|
|
469
|
+
localHandler: async (input, ctx) => enhanceFindings(await readAgentScopedFindings(input, ctx, (workspaceId) => findingsRequest({ ...input, workspace_id: workspaceId })), input),
|
|
470
|
+
enhanceResponse: enhanceFindings,
|
|
471
|
+
}),
|
|
472
|
+
defineTool({
|
|
473
|
+
name: 'besales_dialogue_audit_segments_get',
|
|
474
|
+
sideEffect: 'none',
|
|
475
|
+
closedWorld: true,
|
|
476
|
+
carriesCustomerData: true,
|
|
477
|
+
// Усечь страницу нельзя: вместе с отрезками пропали бы их тикеты, и импорт не принял бы работу.
|
|
478
|
+
// Свой потолок, а не общий: сервер режет ВСЮ страницу по байтам компактного JSON (380 000 —
|
|
479
|
+
// общая часть плюс отрезки), а здесь сверху ложатся подсказки инструмента. Серверный потолок
|
|
480
|
+
// обязан оставаться ниже этого с запасом: иначе страница, допустимая для сервера, падала бы здесь.
|
|
481
|
+
resultPolicy: { neverTruncate: true, maxResultBytes: 400_000 },
|
|
482
|
+
requiredFields: ['platform_id'],
|
|
483
|
+
defaultWorkspaceId: true,
|
|
484
|
+
schema: z
|
|
485
|
+
.object({
|
|
486
|
+
workspace_id: uuidSchema.optional(),
|
|
487
|
+
platform_id: uuidSchema,
|
|
488
|
+
})
|
|
489
|
+
.strict(),
|
|
490
|
+
createRequest: (input) => ({
|
|
491
|
+
method: 'GET',
|
|
492
|
+
path: `${externalPath(input.workspace_id)}/segments${buildListQuery({ channelId: input.platform_id })}`,
|
|
493
|
+
}),
|
|
494
|
+
enhanceResponse: (response) => withInstructions(response, [
|
|
495
|
+
'Это МАТЕРИАЛ для разбора ТВОЕЙ моделью, а не готовые находки. Разбирай сам и возвращай результат через besales_dialogue_audit_import — иначе работа никуда не денется.',
|
|
496
|
+
...CHANNEL_RESOLUTION,
|
|
497
|
+
'Судить по ЭТИМ текстам, а не по своим копиям: reviewerRole — роль проверяющего, principles — свод правил речи, отгружаемый этому агенту (раздел продаж есть только у продающих агентов, правила про длинное тире нет вовсе), agentPrompt — инструкция агента, customerRules — требования заказчика. Всё это ровно то, что увидела бы штатная модель разбора.',
|
|
498
|
+
'Страница ОДНОРОДНА: один агент и одна инструкция. Каждому отрезку — свой ticket; назвать отрезок самому нельзя.',
|
|
499
|
+
'Якорь находки бери ТОЛЬКО из [msg=N] в транскрипте своего отрезка: primary_message_id — это N. Реплики с пометкой [не судить] судить запрещено — за ними чужой агент, оператор или автоотправка.',
|
|
500
|
+
'Блоки под репликами агента — его обращения во внешние системы с исходом как есть. Прежде чем писать «выдумал», проверь их; «неизвестны» и «недоступны» прямо запрещают вывод о выдумке.',
|
|
501
|
+
'Две выдачи подряд вернут ОДНУ И ТУ ЖЕ страницу: отметку «докуда разобрано» двигает импорт. Цикл — выдача → разбор → импорт → выдача.',
|
|
502
|
+
'segments пуст — разбирать нечего, это валидный исход. pendingSegments — сколько отрезков ждут разбора «не меньше», включая эту страницу.',
|
|
503
|
+
'409 с кодом DIALOG_REVIEW_EXTERNAL_ANONYMIZATION_ENABLED — на канале включено обезличивание: внешний разбор там запрещён осознанно, переписка ушла бы наружу открытой. 503 — внешний разбор не настроен на сервере.',
|
|
504
|
+
]),
|
|
505
|
+
}),
|
|
506
|
+
defineTool({
|
|
507
|
+
name: 'besales_dialogue_audit_import',
|
|
508
|
+
sideEffect: 'write',
|
|
509
|
+
closedWorld: true,
|
|
510
|
+
verifyWithToolName: 'besales_dialogue_audit_runs_list',
|
|
511
|
+
requiredFields: ['platform_id', 'tickets', 'findings'],
|
|
512
|
+
defaultWorkspaceId: true,
|
|
513
|
+
schema: z
|
|
514
|
+
.object({
|
|
515
|
+
workspace_id: uuidSchema.optional(),
|
|
516
|
+
platform_id: uuidSchema,
|
|
517
|
+
client_id: z.string().min(2).max(40).optional(),
|
|
518
|
+
principles_hash: z.string().min(1).max(64).optional(),
|
|
519
|
+
// ВСЕ разобранные отрезки, включая чистые: тикет — единственное, что двигает их отметку.
|
|
520
|
+
tickets: z.array(z.string().min(1)).min(1).max(EXTERNAL_PAGE_MAX_SEGMENTS),
|
|
521
|
+
findings: z.array(externalFindingSchema).max(EXTERNAL_IMPORT_MAX_FINDINGS),
|
|
522
|
+
})
|
|
523
|
+
.strict(),
|
|
524
|
+
createRequest: (input) => ({
|
|
525
|
+
method: 'POST',
|
|
526
|
+
path: `${externalPath(input.workspace_id)}/imports`,
|
|
527
|
+
body: {
|
|
528
|
+
channelId: input.platform_id,
|
|
529
|
+
clientId: input.client_id ?? DEFAULT_EXTERNAL_CLIENT_ID,
|
|
530
|
+
...(input.principles_hash === undefined ? {} : { clientRulesHash: input.principles_hash }),
|
|
531
|
+
tickets: input.tickets,
|
|
532
|
+
findings: input.findings.map((finding) => ({
|
|
533
|
+
ticket: finding.ticket,
|
|
534
|
+
primaryMessageId: finding.primary_message_id,
|
|
535
|
+
observationType: IMPORT_CATEGORY_TO_V2[finding.category],
|
|
536
|
+
severity: finding.severity,
|
|
537
|
+
// У находки v2 текст ОДИН: заголовок и описание склеиваются, ничего не теряя.
|
|
538
|
+
summary: `${finding.title}\n\n${finding.description}`,
|
|
539
|
+
...(finding.quote == null ? {} : { quote: finding.quote }),
|
|
540
|
+
...(finding.prompt_suggestion == null ? {} : { suggestedFix: finding.prompt_suggestion }),
|
|
541
|
+
...(finding.expected_behavior == null
|
|
542
|
+
? {}
|
|
543
|
+
: { expectedBehavior: finding.expected_behavior }),
|
|
544
|
+
})),
|
|
545
|
+
},
|
|
546
|
+
}),
|
|
547
|
+
enhanceResponse: (response) => withInstructions(response, [
|
|
548
|
+
'Перечисляй в tickets ВСЕ разобранные отрезки, включая те, где находок нет: иначе их отметка не сдвинется и следующая выдача вернёт их снова.',
|
|
549
|
+
'rejectedSegments — отрезки, которые сервер не принял; они НЕ записаны и остались неразобранными. Причины: CURSOR_MOVED и SEGMENT_GONE (их разобрал плановый прогон либо переписки больше нет), MATERIAL_CHANGED (переписка изменилась с выдачи), CLAIMED_BY_OTHER_RUN (отрезок сейчас разбирает другой прогон), TICKET_EXPIRED (тикет старше суток). Лечение одно — перезабери выдачу.',
|
|
550
|
+
'rejectedFindings — находки принятых отрезков, не записанные из-за чужого якоря (primary_message_id не из своего отрезка) или стёртого контакта. Ненулевое значение само по себе не означает ошибку якоря.',
|
|
551
|
+
'Род находки — любой из одиннадцати классов материала (PROMPT_VIOLATION, SCRIPT_DEVIATION, CUSTOM_RULE_CONFLICT, BROKEN_PROMISE, HALLUCINATION, POLICY_VIOLATION, WRONG_TONE, MISSED_OPPORTUNITY, MISSING_KNOWLEDGE, WRONG_ROUTING, RAG_MISS) либо отгруженное имя. BAD_TONE переводится в WRONG_TONE; WRONG_ACTION, MISSED_CONTEXT, OTHER и RAG_MISS сохраняются под исходными именами. Важность — LOW, MEDIUM, HIGH или CRITICAL.',
|
|
552
|
+
'expected_behavior — как агент должен был поступить; заполняй его, когда находка говорит «не так».',
|
|
553
|
+
'Прогон создаётся с исполнителем «внешний» и именем клиента — происхождение находок видно в отчёте. Смотреть результат: besales_dialogue_audit_run_get с runId.',
|
|
554
|
+
'Импорт НИЧЕГО не правит в промпте. Правку делай отдельно и явно: besales_prompt_patch_start → apply → lint → commit.',
|
|
555
|
+
'400 — тикет подделан, выдан другому каналу, тикеты из разных выдач либо находка ссылается на тикет вне списка: такой импорт не пишет ничего. 409 — у агента идёт живой прогон разбора либо на канале включено обезличивание.',
|
|
556
|
+
]),
|
|
557
|
+
}),
|
|
558
|
+
];
|
|
559
|
+
//# sourceMappingURL=dialogue-audit-alias.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogue-audit-alias.js","sourceRoot":"","sources":["../../../src/tools/definitions/dialogue-audit-alias.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
export declare const dialogueExportTools: (import("./shared.js").ToolDefinition<{
|
|
2
2
|
workspace_id?: string | undefined;
|
|
3
|
+
source?: "export" | "inbox" | undefined;
|
|
4
|
+
channel_id?: string | undefined;
|
|
5
|
+
contact_id?: string | undefined;
|
|
6
|
+
purchased?: boolean | undefined;
|
|
7
|
+
has_payment?: boolean | undefined;
|
|
8
|
+
with_totals?: boolean | undefined;
|
|
3
9
|
platform_ids?: string[] | undefined;
|
|
4
10
|
date_from?: string | undefined;
|
|
5
11
|
date_to?: string | undefined;
|
|
6
12
|
lead_status?: string[] | undefined;
|
|
7
13
|
deactivate_reason?: string[] | undefined;
|
|
8
|
-
work_log_event?: ("FAILED" | "
|
|
14
|
+
work_log_event?: ("FAILED" | "FINISH_LOST" | "FINISH_WIN" | "IN_PROCESS" | "OPERATOR_TAKEOVER" | "START" | "FINISH_AUTO")[] | undefined;
|
|
9
15
|
action_type?: string[] | undefined;
|
|
10
16
|
action_success?: boolean | undefined;
|
|
11
17
|
action_execution_mode?: "test" | "production" | undefined;
|