@besales/mcp 1.0.0-beta.4 → 1.0.0-beta.5
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 +5 -3
- package/dist/http/api-client.d.ts +8 -0
- package/dist/http/api-client.js +1 -1
- package/dist/http/api-client.js.map +1 -1
- package/dist/resources/docs/platforms.md +15 -0
- package/dist/schemas/mcp-tools.json +291 -3
- package/dist/tools/definitions/api-tool-request.d.ts +4 -2
- package/dist/tools/definitions/dialogue-nudge.d.ts +7 -0
- package/dist/tools/definitions/dialogue-nudge.js +139 -0
- package/dist/tools/definitions/dialogue-nudge.js.map +1 -0
- package/dist/tools/definitions/telegram-personal-profile.d.ts +24 -0
- package/dist/tools/definitions/telegram-personal-profile.js +154 -0
- package/dist/tools/definitions/telegram-personal-profile.js.map +1 -0
- package/dist/tools/definitions.d.ts +28 -0
- package/dist/tools/definitions.js +4 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/follow-up-request.js +3 -0
- package/dist/tools/follow-up-request.js.map +1 -1
- package/dist/tools/registry-mapping.cases.js +73 -0
- package/dist/tools/registry-mapping.cases.js.map +1 -1
- package/dist/tools/registry-test-fixtures.js +5 -1
- package/dist/tools/registry-test-fixtures.js.map +1 -1
- package/docs/dialogue-nudge.md +50 -0
- package/docs/telegram-personal-management.md +53 -3
- package/package.json +1 -1
- package/scripts/telegram-personal-profile-mutants.mjs +96 -0
package/README.md
CHANGED
|
@@ -359,8 +359,8 @@ from those names after building the package. A test compares this block and
|
|
|
359
359
|
| ICP | 11 | `icp_*` |
|
|
360
360
|
| Knowledge, workbooks, files and variables | 52 | `knowledge_*`, `workbook_*`, `feedback_*`, `variable_*`, `file_*` |
|
|
361
361
|
| CRM and data sources | 32 | `crm_*`, `datasource_*` |
|
|
362
|
-
| Channels and external API credentials |
|
|
363
|
-
| Dialogues and contacts |
|
|
362
|
+
| Channels and external API credentials | 26 | `platform_*`, `external_*`, `get_*` |
|
|
363
|
+
| Dialogues and contacts | 35 | `dialogue_*`, `dialogues_*`, `dialog_*`, `contact_*` |
|
|
364
364
|
| Triggers | 5 | `trigger_*` |
|
|
365
365
|
| Outbound, follow-up and analytics | 72 | `broadcast_*`, `getcourse_*`, `wazzup_*`, `followup_*`, `scheduled_*`, `tracked_*`, `link_*`, `ai_*`, `funnel_*`, `inbound_*`, `custom_*` |
|
|
366
366
|
|
|
@@ -370,6 +370,7 @@ Recent capabilities:
|
|
|
370
370
|
|
|
371
371
|
- `besales_trigger_upsert` поддерживает автоматические событийные триггеры через `trigger: { event, condition? }`; шаги статичные, без значений ИИ. [Условия и события](src/resources/concepts/triggers.md).
|
|
372
372
|
- [Повтор ответа бота](docs/dialogue-reprocess.md): один или до 50 диалогов, только после явного подтверждения администратора; последовательные запросы и отчёт по каждому исходу. Маршрут требует `run:conversation-reprocess`, входящую в `mcp:*`. При отказе по размеру передавай меньше `conversation_ids` в следующих вызовах; уже отправленный пакет не повторяй, сначала проверь квитанции, статус хода и переписку.
|
|
373
|
+
- [Подтолкнуть агента](docs/dialogue-nudge.md): платный полный ход по всей истории от одного до 30 диалогов, настоящее сообщение клиенту, только после явного «да» человека. Нужен `run:conversation-nudge`. Отказывает (`REFUSED`, при тишине обычно `BOT_SILENCED`) при тишине человека/оператора (ручная остановка, стоп-слово), отписке, блокировке, бане, вне срока переписки канала, при выключенном канале/ИИ и пока ход уже идёт. Служебную тишину (ожидание оператора «до /start», стадия CRM, фильтр сделки, тишина агента) снимает: `reactivated: true`. До подтверждения предупреди о настоящем сообщении бота даже при служебном ожидании оператора; покажи `reactivated` в итоге. Повтор защищён ключом на диалог и `attempt_key`; при неизвестном исходе сначала проверь `besales_dialogue_transcript`. Новая беседа после закрытой указывается в `startedConversationId`; `notDelivered` и `deliveryUnknown` в сводке дополняют статус каждого `delivery`.
|
|
373
374
|
|
|
374
375
|
- **OAuth PKCE provisioning** — `besales_platform_create_oauth_init` opens the
|
|
375
376
|
authorization flow in the browser for Instagram/Avito so the OAuth code never
|
|
@@ -481,7 +482,8 @@ on its own does not authorize setup mutations.
|
|
|
481
482
|
Приём прежних настроек пересказа диалога и поиска по знаниям описан в
|
|
482
483
|
[docs/legacy-action-settings.md](docs/legacy-action-settings.md).
|
|
483
484
|
|
|
484
|
-
Personal Telegram account inventory, warmup settings
|
|
485
|
+
Personal Telegram account inventory, warmup settings, the new-number ramp flag and bulk profile edits
|
|
486
|
+
(name, bio, birthday, photo, usernames; the outcome is read per account) are documented in
|
|
485
487
|
[Telegram number management](docs/telegram-personal-management.md).
|
|
486
488
|
Restriction checks, confirmed appeals and task outcomes are documented in
|
|
487
489
|
[Telegram number restrictions](docs/telegram-personal-restrictions.md). Checks contact only
|
|
@@ -77,9 +77,17 @@ export interface ToolApiClient {
|
|
|
77
77
|
post<T>(path: string, apiKey: string, body?: unknown, options?: ApiRequestOptions): Promise<T>;
|
|
78
78
|
request<T>(method: ApiMethod, path: string, apiKey: string, body?: unknown, options?: ApiRequestOptions): Promise<T>;
|
|
79
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Имя заголовка ключа идемпотентности. Ядро читает его по-разному: маршруты запуска — `Idempotency-Key`,
|
|
82
|
+
* профильные операции номеров — `x-idempotency-key`. Перечисление закрытое: произвольное имя заголовка
|
|
83
|
+
* вызывающий задать не может.
|
|
84
|
+
*/
|
|
85
|
+
export type IdempotencyKeyHeader = 'Idempotency-Key' | 'X-Idempotency-Key';
|
|
80
86
|
/** Per-call intent only; callers cannot replace authentication or cache headers. */
|
|
81
87
|
export interface ApiRequestOptions {
|
|
82
88
|
readonly idempotencyKey?: string;
|
|
89
|
+
/** Без значения ключ идёт заголовком `Idempotency-Key`. */
|
|
90
|
+
readonly idempotencyKeyHeader?: IdempotencyKeyHeader;
|
|
83
91
|
readonly ifMatch?: string;
|
|
84
92
|
}
|
|
85
93
|
export declare class ApiClientError extends Error {
|
package/dist/http/api-client.js
CHANGED
|
@@ -61,7 +61,7 @@ export class ApiClient {
|
|
|
61
61
|
...(options?.ifMatch === undefined ? {} : { 'If-Match': `"${options.ifMatch}"` }),
|
|
62
62
|
...(options?.idempotencyKey === undefined
|
|
63
63
|
? {}
|
|
64
|
-
: { 'Idempotency-Key': options.idempotencyKey }),
|
|
64
|
+
: { [options.idempotencyKeyHeader ?? 'Idempotency-Key']: options.idempotencyKey }),
|
|
65
65
|
},
|
|
66
66
|
timeout: this.timeoutMs,
|
|
67
67
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/http/api-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/http/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -129,6 +129,21 @@ true снимает ручной отказ. `besales_platform_telegram_personal
|
|
|
129
129
|
Лесенка: 3, 4, 5, 6, 7 с первого дня рассылки. Прогрев идёт параллельно 5 дней,
|
|
130
130
|
включается сам при подключении номера, если его не выключить вручную.
|
|
131
131
|
|
|
132
|
+
## Профили личных номеров Telegram
|
|
133
|
+
|
|
134
|
+
`besales_platform_telegram_personal_profile_bulk` меняет профили СВОИХ номеров канала пачкой
|
|
135
|
+
(`manage:channels`): `first_name`, `last_name`, `bio`, `birthday` (`null` снимает) и ники.
|
|
136
|
+
Фото через MCP пока не меняется — только в приложении.
|
|
137
|
+
Номера — `account_ids` (1–100 UUID v4) либо `all:true`. Ники — один режим или ни одного:
|
|
138
|
+
`usernames` (пары `account_id` и `username`, без `account_ids` и `all`) либо `username_base` (основа
|
|
139
|
+
для выбранных номеров); оба режима сразу отвергаются до запроса. Обязателен стабильный `idempotency_key`.
|
|
140
|
+
|
|
141
|
+
Ники необратимо освобождают прежние ники у Telegram: перед вызовом покажи человеку список номеров и
|
|
142
|
+
новые значения и получи ответ «делать?». Явное `explicit_confirmation` не требуется. Ответ — принятие
|
|
143
|
+
задания фермы (`job_id`, `state`, `total`), а не итог: результат по каждому номеру читай в
|
|
144
|
+
`besales_platform_telegram_personal_profile_job` (`read:channels`) по `channel_id` и `job_id`.
|
|
145
|
+
Элемент с частичным успехом остаётся `SUCCEEDED`, поэтому смотри `outcome.fields.<поле>`.
|
|
146
|
+
|
|
132
147
|
## Проверка ограничений личных номеров Telegram
|
|
133
148
|
|
|
134
149
|
`besales_platform_telegram_personal_restriction_check` проверяет все номера канала (`all:true`)
|
|
@@ -13504,6 +13504,49 @@
|
|
|
13504
13504
|
"additionalProperties": false
|
|
13505
13505
|
}
|
|
13506
13506
|
},
|
|
13507
|
+
{
|
|
13508
|
+
"name": "besales_dialogue_nudge_agent",
|
|
13509
|
+
"description": "Подтолкнуть агента, если клиент без ответа из-за сбоя или ошибки бота, а переобработка последнего входящего не подходит. Полный ход по ВСЕЙ истории диалога; клиент получит настоящее сообщение, операция платная. Отказывает (REFUSED, при тишине обычно BOT_SILENCED) при тишине, поставленной человеком/оператором (ручная остановка, стоп-слово), отписке, блокировке, бане, вне срока переписки канала, при выключенном канале/ИИ и пока ход уже идёт. Служебную тишину (ожидание оператора «до /start», стадия CRM, фильтр сделки, тишина агента) СНИМАЕТ, возвращая reactivated: true. Перед подтверждением предупреди человека: клиент получит настоящее сообщение бота даже при служебном ожидании оператора. Покажи reactivated в итоге. Не обходи отказ сервера. Только после явного «да» человека: explicit_confirmation=true. От 1 до 30 диалогов без дублей, запросы последовательные, 429 останавливает пакет. Область run:conversation-nudge. attempt_key (до 64 символов, по умолчанию пусто) даёт стабильный ключ на диалог: тот же вход не отправит второй ответ. Новый ключ допустим для нового подтверждённого запуска позже. При 503, таймауте или неизвестном исходе не повторяй и не меняй ключ: проверь besales_dialogue_transcript. Отчёт отдельно: запущено / отказано (код+причина) / исход неизвестен / не обработано; доставка указана отдельно.",
|
|
13510
|
+
"inputSchema": {
|
|
13511
|
+
"type": "object",
|
|
13512
|
+
"properties": {
|
|
13513
|
+
"workspace_id": {
|
|
13514
|
+
"type": "string",
|
|
13515
|
+
"format": "uuid",
|
|
13516
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
13517
|
+
"description": "Рабочая область; без поля используется выбранное подключение."
|
|
13518
|
+
},
|
|
13519
|
+
"conversation_ids": {
|
|
13520
|
+
"minItems": 1,
|
|
13521
|
+
"maxItems": 30,
|
|
13522
|
+
"type": "array",
|
|
13523
|
+
"items": {
|
|
13524
|
+
"type": "string",
|
|
13525
|
+
"format": "uuid",
|
|
13526
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
13527
|
+
},
|
|
13528
|
+
"uniqueItems": true,
|
|
13529
|
+
"description": "Идентификаторы диалогов без дублей, в порядке обработки (1–30)."
|
|
13530
|
+
},
|
|
13531
|
+
"explicit_confirmation": {
|
|
13532
|
+
"type": "boolean",
|
|
13533
|
+
"const": true,
|
|
13534
|
+
"description": "Только после явного «да» человека. Перед подтверждением предупреди: клиент получит настоящее сообщение бота даже при служебном ожидании оператора; служебная тишина снимается (reactivated: true)."
|
|
13535
|
+
},
|
|
13536
|
+
"attempt_key": {
|
|
13537
|
+
"default": "",
|
|
13538
|
+
"description": "Ключ осознанной попытки, до 64 символов; по умолчанию пусто. Тот же ключ для диалога возвращает прежний результат. Новый ключ — только для нового подтверждённого запуска позже, не для повтора неизвестного исхода.",
|
|
13539
|
+
"type": "string",
|
|
13540
|
+
"maxLength": 64
|
|
13541
|
+
}
|
|
13542
|
+
},
|
|
13543
|
+
"required": [
|
|
13544
|
+
"conversation_ids",
|
|
13545
|
+
"explicit_confirmation"
|
|
13546
|
+
],
|
|
13547
|
+
"additionalProperties": false
|
|
13548
|
+
}
|
|
13549
|
+
},
|
|
13507
13550
|
{
|
|
13508
13551
|
"name": "besales_broadcast_analytics_get",
|
|
13509
13552
|
"description": "Отчёты страницы аналитики рассылок: выбор отчёта полем report (16 значений). Scope: read:analytics. Персональные отчёты recipients, recipients+notSent (recipient_metric=notSent), deals, action_failures, indirect_payments, recent_leads, payment_candidates, registration_intake требуют дополнительно read:conversations: ответ несёт имена и идентификаторы людей, номера заказов или ссылки на карточки. Агрегатные отчёты summary, cohorts, skip_reasons, response_windows, insights, data_quality, segments_catalog, funnel_products, payment_candidates_summary доступны с read:analytics. Для report=response_windows в conversionCycles поле cut различает overall (серверный итог), product и segment; пустой ключ в разрезе не является итогом. Строку «Итого» берите только по cut=overall, медианы строк не складывайте. registration_intake — сверка регистраций: состояние, всего/вошли/не вошли, группы, исход приёма и приветствия, воронка, момент, номера заказов, ссылка на живой контакт. Один канал, ограниченный период, view=period; фильтр funnel допустим. Поздние записи могут появиться позже; недошедший заказ без решения при двух каналах одной воронки виден обоим. Отчёт registration_intake также возвращает персональные данные клиентов воркспейса: имя, контакт и номера заказов. У регистраций применяется только view=period; entry/cohort отвергаются. Валютный фильтр currency: ISO 4217 или UNKNOWN. Точные десятичные строки сохраняются без округления; moneyTotalsByCurrency показывает раздельные итоги по валютам, currencyAssumed отмечает предположение. Для segments_catalog, funnel_products, payment_candidates и payment_candidates_summary валютный фильтр недоступен. Список и сводка оплат поддерживают platform_id, funnel, остальные общие измерения и include_archived. Период оплат передаётся как periodMode: без mode/days всё время; mode=days без days — 30 дней. mode=range принимает открытый диапазон: только from, только to или обе границы; если заданы обе, to не раньше from. Параметры должны поддерживаться выбранным report; payment_candidates: page_size не больше 100. payment_view можно сочетать с payment_status/payment_eligibility: API отдаёт приоритет view.",
|
|
@@ -18715,6 +18758,251 @@
|
|
|
18715
18758
|
}
|
|
18716
18759
|
}
|
|
18717
18760
|
}
|
|
18761
|
+
},
|
|
18762
|
+
{
|
|
18763
|
+
"name": "besales_platform_telegram_personal_profile_bulk",
|
|
18764
|
+
"description": "Изменить профили своих личных номеров Telegram пачкой. Меняются СВОИ номера канала, не клиенты: имя first_name, фамилия last_name, описание bio, дата рождения birthday (null снимает) и ники. Фото через этот инструмент не меняется — только в приложении. Требует manage:channels. Поля профиля одинаковы для всех выбранных номеров; пропуск поля сохраняет прежнее значение. Номера выбираются account_ids (1–100 уникальных UUID v4) либо all:true — ровно одно. Ники — один из двух режимов либо ни одного: usernames (по номерам: account_id и новый username; account_ids и all не передаются) или username_base (основа ника; номера выбираются account_ids или all). Оба режима ников сразу отвергаются до запроса. Ники необратимо освобождают прежние ники у Telegram: перед вызовом покажи человеку список номеров и новые значения и получи ответ «делать?»; явное explicit_confirmation не требуется. Операция идёт заданием фермы: ответ — принятие (job_id, state, total), а не итог; итог по каждому номеру смотри в besales_platform_telegram_personal_profile_job. Обязателен стабильный idempotency_key (1–200 видимых ASCII-символов без пробелов): повтор того же намерения — с тем же ключом и аргументами; при неизвестном исходе новый ключ автоматически не создавай.",
|
|
18765
|
+
"inputSchema": {
|
|
18766
|
+
"type": "object",
|
|
18767
|
+
"additionalProperties": false,
|
|
18768
|
+
"required": [
|
|
18769
|
+
"channel_id",
|
|
18770
|
+
"idempotency_key"
|
|
18771
|
+
],
|
|
18772
|
+
"properties": {
|
|
18773
|
+
"workspace_id": {
|
|
18774
|
+
"type": "string",
|
|
18775
|
+
"format": "uuid"
|
|
18776
|
+
},
|
|
18777
|
+
"channel_id": {
|
|
18778
|
+
"type": "string",
|
|
18779
|
+
"format": "uuid"
|
|
18780
|
+
},
|
|
18781
|
+
"account_ids": {
|
|
18782
|
+
"type": "array",
|
|
18783
|
+
"minItems": 1,
|
|
18784
|
+
"maxItems": 100,
|
|
18785
|
+
"uniqueItems": true,
|
|
18786
|
+
"items": {
|
|
18787
|
+
"type": "string",
|
|
18788
|
+
"format": "uuid",
|
|
18789
|
+
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
|
|
18790
|
+
},
|
|
18791
|
+
"description": "Номера канала (UUID из таблицы номеров), 1–100 уникальных. Вместо all; с usernames не передаётся."
|
|
18792
|
+
},
|
|
18793
|
+
"all": {
|
|
18794
|
+
"type": "boolean",
|
|
18795
|
+
"const": true,
|
|
18796
|
+
"description": "Все номера канала. Вместо account_ids; с usernames не передаётся."
|
|
18797
|
+
},
|
|
18798
|
+
"first_name": {
|
|
18799
|
+
"type": "string",
|
|
18800
|
+
"maxLength": 64,
|
|
18801
|
+
"description": "Имя, до 64 знаков. Ограничения Telegram проверяет ферма."
|
|
18802
|
+
},
|
|
18803
|
+
"last_name": {
|
|
18804
|
+
"type": "string",
|
|
18805
|
+
"maxLength": 64,
|
|
18806
|
+
"description": "Фамилия, до 64 знаков."
|
|
18807
|
+
},
|
|
18808
|
+
"bio": {
|
|
18809
|
+
"type": "string",
|
|
18810
|
+
"maxLength": 140,
|
|
18811
|
+
"description": "Описание профиля, до 140 знаков; лимит Telegram — до 70 без Premium, до 140 с Premium, его проверяет ферма по каждому номеру."
|
|
18812
|
+
},
|
|
18813
|
+
"birthday": {
|
|
18814
|
+
"anyOf": [
|
|
18815
|
+
{
|
|
18816
|
+
"type": "object",
|
|
18817
|
+
"additionalProperties": false,
|
|
18818
|
+
"required": [
|
|
18819
|
+
"day",
|
|
18820
|
+
"month"
|
|
18821
|
+
],
|
|
18822
|
+
"properties": {
|
|
18823
|
+
"day": {
|
|
18824
|
+
"type": "integer",
|
|
18825
|
+
"minimum": 1,
|
|
18826
|
+
"maximum": 31
|
|
18827
|
+
},
|
|
18828
|
+
"month": {
|
|
18829
|
+
"type": "integer",
|
|
18830
|
+
"minimum": 1,
|
|
18831
|
+
"maximum": 12
|
|
18832
|
+
},
|
|
18833
|
+
"year": {
|
|
18834
|
+
"type": "integer",
|
|
18835
|
+
"minimum": 1,
|
|
18836
|
+
"maximum": 9999
|
|
18837
|
+
}
|
|
18838
|
+
}
|
|
18839
|
+
},
|
|
18840
|
+
{
|
|
18841
|
+
"type": "null"
|
|
18842
|
+
}
|
|
18843
|
+
],
|
|
18844
|
+
"description": "Дата рождения: день, месяц, год необязателен. null снимает дату."
|
|
18845
|
+
},
|
|
18846
|
+
"usernames": {
|
|
18847
|
+
"type": "array",
|
|
18848
|
+
"minItems": 1,
|
|
18849
|
+
"maxItems": 100,
|
|
18850
|
+
"items": {
|
|
18851
|
+
"type": "object",
|
|
18852
|
+
"additionalProperties": false,
|
|
18853
|
+
"required": [
|
|
18854
|
+
"account_id",
|
|
18855
|
+
"username"
|
|
18856
|
+
],
|
|
18857
|
+
"properties": {
|
|
18858
|
+
"account_id": {
|
|
18859
|
+
"type": "string",
|
|
18860
|
+
"format": "uuid",
|
|
18861
|
+
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
|
|
18862
|
+
},
|
|
18863
|
+
"username": {
|
|
18864
|
+
"type": "string",
|
|
18865
|
+
"minLength": 5,
|
|
18866
|
+
"maxLength": 32,
|
|
18867
|
+
"pattern": "^(?!.*__)[A-Za-z][A-Za-z0-9_]{3,30}[A-Za-z0-9]$"
|
|
18868
|
+
}
|
|
18869
|
+
}
|
|
18870
|
+
},
|
|
18871
|
+
"description": "Режим ников по номерам: пары account_id и новый username (5–32 знака: латиница, цифры, _, без двойного _, с буквы). Номера и ники не повторяются. С account_ids, all и username_base не передаётся."
|
|
18872
|
+
},
|
|
18873
|
+
"username_base": {
|
|
18874
|
+
"type": "string",
|
|
18875
|
+
"minLength": 5,
|
|
18876
|
+
"maxLength": 32,
|
|
18877
|
+
"pattern": "^(?!.*__)[A-Za-z][A-Za-z0-9_]{3,30}[A-Za-z0-9]$",
|
|
18878
|
+
"description": "Режим основы ника: общая основа для выбранных account_ids или all. С usernames не передаётся."
|
|
18879
|
+
},
|
|
18880
|
+
"idempotency_key": {
|
|
18881
|
+
"type": "string",
|
|
18882
|
+
"minLength": 1,
|
|
18883
|
+
"maxLength": 200,
|
|
18884
|
+
"pattern": "^[!-~]+$"
|
|
18885
|
+
}
|
|
18886
|
+
},
|
|
18887
|
+
"allOf": [
|
|
18888
|
+
{
|
|
18889
|
+
"not": {
|
|
18890
|
+
"required": [
|
|
18891
|
+
"usernames",
|
|
18892
|
+
"username_base"
|
|
18893
|
+
]
|
|
18894
|
+
}
|
|
18895
|
+
},
|
|
18896
|
+
{
|
|
18897
|
+
"if": {
|
|
18898
|
+
"required": [
|
|
18899
|
+
"usernames"
|
|
18900
|
+
]
|
|
18901
|
+
},
|
|
18902
|
+
"then": {
|
|
18903
|
+
"not": {
|
|
18904
|
+
"anyOf": [
|
|
18905
|
+
{
|
|
18906
|
+
"required": [
|
|
18907
|
+
"account_ids"
|
|
18908
|
+
]
|
|
18909
|
+
},
|
|
18910
|
+
{
|
|
18911
|
+
"required": [
|
|
18912
|
+
"all"
|
|
18913
|
+
]
|
|
18914
|
+
}
|
|
18915
|
+
]
|
|
18916
|
+
}
|
|
18917
|
+
},
|
|
18918
|
+
"else": {
|
|
18919
|
+
"oneOf": [
|
|
18920
|
+
{
|
|
18921
|
+
"required": [
|
|
18922
|
+
"account_ids"
|
|
18923
|
+
],
|
|
18924
|
+
"not": {
|
|
18925
|
+
"required": [
|
|
18926
|
+
"all"
|
|
18927
|
+
]
|
|
18928
|
+
}
|
|
18929
|
+
},
|
|
18930
|
+
{
|
|
18931
|
+
"required": [
|
|
18932
|
+
"all"
|
|
18933
|
+
],
|
|
18934
|
+
"not": {
|
|
18935
|
+
"required": [
|
|
18936
|
+
"account_ids"
|
|
18937
|
+
]
|
|
18938
|
+
}
|
|
18939
|
+
}
|
|
18940
|
+
]
|
|
18941
|
+
}
|
|
18942
|
+
},
|
|
18943
|
+
{
|
|
18944
|
+
"anyOf": [
|
|
18945
|
+
{
|
|
18946
|
+
"required": [
|
|
18947
|
+
"first_name"
|
|
18948
|
+
]
|
|
18949
|
+
},
|
|
18950
|
+
{
|
|
18951
|
+
"required": [
|
|
18952
|
+
"last_name"
|
|
18953
|
+
]
|
|
18954
|
+
},
|
|
18955
|
+
{
|
|
18956
|
+
"required": [
|
|
18957
|
+
"bio"
|
|
18958
|
+
]
|
|
18959
|
+
},
|
|
18960
|
+
{
|
|
18961
|
+
"required": [
|
|
18962
|
+
"birthday"
|
|
18963
|
+
]
|
|
18964
|
+
},
|
|
18965
|
+
{
|
|
18966
|
+
"required": [
|
|
18967
|
+
"usernames"
|
|
18968
|
+
]
|
|
18969
|
+
},
|
|
18970
|
+
{
|
|
18971
|
+
"required": [
|
|
18972
|
+
"username_base"
|
|
18973
|
+
]
|
|
18974
|
+
}
|
|
18975
|
+
]
|
|
18976
|
+
}
|
|
18977
|
+
]
|
|
18978
|
+
}
|
|
18979
|
+
},
|
|
18980
|
+
{
|
|
18981
|
+
"name": "besales_platform_telegram_personal_profile_job",
|
|
18982
|
+
"description": "Прочитать итог задания фермы по изменению профилей номеров Telegram. Требует read:channels. Принимает channel_id и job_id из ответа besales_platform_telegram_personal_profile_bulk. Возвращает job_id, kind, state (PENDING, RUNNING, COMPLETED), counters (total, pending, running, succeeded, failed) и items по номерам: account_id, state (PENDING, RUNNING, SUCCEEDED, FAILED), failure_code и outcome.fields по каждому полю. Элемент с частичным успехом остаётся SUCCEEDED, поэтому читай поля: отдельное поле может быть FAILED. TELEGRAM_BIO_TOO_LONG — описание длиннее лимита Telegram (до 70 без Premium, до 140 с Premium); PROFILE_PROVIDER_OUTCOME_UNKNOWN — исход у Telegram неизвестен, не повторяй вслепую, сначала сверь профиль номера. Принятие задания итогом не является: пока state не COMPLETED, повтори чтение позже. Ничего не меняет.",
|
|
18983
|
+
"inputSchema": {
|
|
18984
|
+
"type": "object",
|
|
18985
|
+
"additionalProperties": false,
|
|
18986
|
+
"required": [
|
|
18987
|
+
"channel_id",
|
|
18988
|
+
"job_id"
|
|
18989
|
+
],
|
|
18990
|
+
"properties": {
|
|
18991
|
+
"workspace_id": {
|
|
18992
|
+
"type": "string",
|
|
18993
|
+
"format": "uuid"
|
|
18994
|
+
},
|
|
18995
|
+
"channel_id": {
|
|
18996
|
+
"type": "string",
|
|
18997
|
+
"format": "uuid"
|
|
18998
|
+
},
|
|
18999
|
+
"job_id": {
|
|
19000
|
+
"type": "string",
|
|
19001
|
+
"minLength": 1,
|
|
19002
|
+
"maxLength": 128
|
|
19003
|
+
}
|
|
19004
|
+
}
|
|
19005
|
+
}
|
|
18718
19006
|
}
|
|
18719
19007
|
],
|
|
18720
19008
|
"resources": [
|
|
@@ -18954,7 +19242,7 @@
|
|
|
18954
19242
|
}
|
|
18955
19243
|
],
|
|
18956
19244
|
"summary": {
|
|
18957
|
-
"total_tools":
|
|
19245
|
+
"total_tools": 306,
|
|
18958
19246
|
"tools_by_category": {
|
|
18959
19247
|
"workspace_and_help": 18,
|
|
18960
19248
|
"agent_configuration": 15,
|
|
@@ -18962,8 +19250,8 @@
|
|
|
18962
19250
|
"icp": 11,
|
|
18963
19251
|
"knowledge_and_content": 52,
|
|
18964
19252
|
"crm_and_data_sources": 32,
|
|
18965
|
-
"channels_and_credentials":
|
|
18966
|
-
"dialogues_and_contacts":
|
|
19253
|
+
"channels_and_credentials": 26,
|
|
19254
|
+
"dialogues_and_contacts": 35,
|
|
18967
19255
|
"automation": 5,
|
|
18968
19256
|
"outbound_and_analytics": 72
|
|
18969
19257
|
},
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import type { ApiMethod } from '../../http/api-client.js';
|
|
1
|
+
import type { ApiMethod, IdempotencyKeyHeader } from '../../http/api-client.js';
|
|
2
2
|
export interface ApiToolRequest {
|
|
3
3
|
readonly method?: ApiMethod;
|
|
4
4
|
readonly path: string;
|
|
5
5
|
readonly body?: unknown;
|
|
6
|
-
/** Saved launch intent, transported only as Idempotency-Key. */
|
|
6
|
+
/** Saved launch intent, transported only as a header (Idempotency-Key unless the route reads another name). */
|
|
7
7
|
readonly idempotencyKey?: string;
|
|
8
|
+
/** Имя заголовка ключа, если маршрут ядра читает не `Idempotency-Key`. */
|
|
9
|
+
readonly idempotencyKeyHeader?: IdempotencyKeyHeader;
|
|
8
10
|
/** Original resource version; only the client builds the strong If-Match header. */
|
|
9
11
|
readonly ifMatch?: string;
|
|
10
12
|
/** Старая форма PATCH цепочки: прочитать ревизию по ID перед единственной записью. */
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { ApiClientError } from '../../http/api-client.js';
|
|
4
|
+
import { defineTool, uuidSchema, withInstructions } from './shared.js';
|
|
5
|
+
export const dialogueNudgeDescription = [
|
|
6
|
+
'Подтолкнуть агента, если клиент без ответа из-за сбоя или ошибки бота, а переобработка последнего входящего не подходит. Полный ход по ВСЕЙ истории диалога; клиент получит настоящее сообщение, операция платная.',
|
|
7
|
+
'Отказывает (REFUSED, при тишине обычно BOT_SILENCED) при тишине, поставленной человеком/оператором (ручная остановка, стоп-слово), отписке, блокировке, бане, вне срока переписки канала, при выключенном канале/ИИ и пока ход уже идёт.',
|
|
8
|
+
'Служебную тишину (ожидание оператора «до /start», стадия CRM, фильтр сделки, тишина агента) СНИМАЕТ, возвращая reactivated: true. Перед подтверждением предупреди человека: клиент получит настоящее сообщение бота даже при служебном ожидании оператора. Покажи reactivated в итоге. Не обходи отказ сервера.',
|
|
9
|
+
'Только после явного «да» человека: explicit_confirmation=true. От 1 до 30 диалогов без дублей, запросы последовательные, 429 останавливает пакет. Область run:conversation-nudge.',
|
|
10
|
+
'attempt_key (до 64 символов, по умолчанию пусто) даёт стабильный ключ на диалог: тот же вход не отправит второй ответ. Новый ключ допустим для нового подтверждённого запуска позже.',
|
|
11
|
+
'При 503, таймауте или неизвестном исходе не повторяй и не меняй ключ: проверь besales_dialogue_transcript. Отчёт отдельно: запущено / отказано (код+причина) / исход неизвестен / не обработано; доставка указана отдельно.',
|
|
12
|
+
].join(' ');
|
|
13
|
+
const inputSchema = z
|
|
14
|
+
.object({
|
|
15
|
+
workspace_id: uuidSchema.optional(),
|
|
16
|
+
conversation_ids: z
|
|
17
|
+
.array(uuidSchema)
|
|
18
|
+
.min(1)
|
|
19
|
+
.max(30)
|
|
20
|
+
.refine((ids) => new Set(ids.map((id) => id.toLowerCase())).size === ids.length, 'conversation_ids не должен содержать дубли'),
|
|
21
|
+
explicit_confirmation: z
|
|
22
|
+
.literal(true)
|
|
23
|
+
.describe('Только после явного «да» человека. Перед подтверждением предупреди: клиент получит настоящее сообщение бота даже при служебном ожидании оператора; служебная тишина снимается (reactivated: true).'),
|
|
24
|
+
attempt_key: z
|
|
25
|
+
.string()
|
|
26
|
+
.max(64)
|
|
27
|
+
.default('')
|
|
28
|
+
.describe('Ключ осознанной попытки, до 64 символов; по умолчанию пусто. Тот же ключ для диалога возвращает прежний результат. Новый ключ — только для нового подтверждённого запуска позже, не для повтора неизвестного исхода.'),
|
|
29
|
+
})
|
|
30
|
+
.strict();
|
|
31
|
+
const acceptedSchema = z.object({
|
|
32
|
+
delivery: z.enum(['DELIVERED', 'NOT_DELIVERED', 'UNKNOWN', 'PENDING']),
|
|
33
|
+
reactivated: z.boolean(),
|
|
34
|
+
replayed: z.boolean(),
|
|
35
|
+
conversationId: uuidSchema,
|
|
36
|
+
reasonCode: z.string().optional(),
|
|
37
|
+
notice: z.string(),
|
|
38
|
+
});
|
|
39
|
+
const requestFor = (conversationId, attemptKey) => ({
|
|
40
|
+
method: 'POST',
|
|
41
|
+
path: `/conversations/${conversationId}/nudge-agent`,
|
|
42
|
+
body: {},
|
|
43
|
+
// Хеш сохраняет любой текст попытки, не помещая Unicode или переводы строк в заголовок.
|
|
44
|
+
idempotencyKey: `nudge:${conversationId.toLowerCase()}:${createHash('sha256').update(attemptKey).digest('hex')}`,
|
|
45
|
+
});
|
|
46
|
+
async function execute(input, api, apiKey) {
|
|
47
|
+
const results = [];
|
|
48
|
+
let rateLimited = false;
|
|
49
|
+
for (const conversationId of input.conversation_ids) {
|
|
50
|
+
if (rateLimited) {
|
|
51
|
+
results.push({
|
|
52
|
+
conversationId,
|
|
53
|
+
status: 'NOT_PROCESSED',
|
|
54
|
+
code: 'BATCH_STOPPED_RATE_LIMIT',
|
|
55
|
+
message: 'Не обработано: пакет остановлен после ограничения частоты запросов.',
|
|
56
|
+
});
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
const request = requestFor(conversationId, input.attempt_key);
|
|
61
|
+
const response = acceptedSchema.parse(await api.request(request.method, request.path, apiKey, request.body, {
|
|
62
|
+
idempotencyKey: request.idempotencyKey,
|
|
63
|
+
}));
|
|
64
|
+
const createdConversation = response.conversationId.toLowerCase() !== conversationId.toLowerCase();
|
|
65
|
+
results.push({
|
|
66
|
+
...response,
|
|
67
|
+
conversationId,
|
|
68
|
+
...(createdConversation ? { startedConversationId: response.conversationId } : {}),
|
|
69
|
+
status: response.delivery === 'UNKNOWN' ? 'UNKNOWN' : 'STARTED',
|
|
70
|
+
message: createdConversation
|
|
71
|
+
? `Диалог был закрыт — создан новый. ${response.notice}`
|
|
72
|
+
: response.notice,
|
|
73
|
+
...(response.delivery === 'UNKNOWN' ? { code: 'OUTCOME_UNKNOWN' } : {}),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
const httpStatus = error instanceof ApiClientError ? error.status : undefined;
|
|
78
|
+
if (httpStatus !== undefined && httpStatus >= 400 && httpStatus < 500 && httpStatus !== 408) {
|
|
79
|
+
const refusal = error;
|
|
80
|
+
rateLimited = httpStatus === 429;
|
|
81
|
+
results.push({
|
|
82
|
+
conversationId,
|
|
83
|
+
status: 'REFUSED',
|
|
84
|
+
httpStatus,
|
|
85
|
+
code: refusal.details?.code ??
|
|
86
|
+
(httpStatus === 404 ? 'CONVERSATION_NOT_FOUND' : `HTTP_${httpStatus}`),
|
|
87
|
+
message: refusal.responseMessage ?? 'Сервер отказал в запуске агента.',
|
|
88
|
+
...(refusal.details?.reason === undefined ? {} : { reason: refusal.details.reason }),
|
|
89
|
+
...(refusal.details?.retryAfterSeconds === undefined
|
|
90
|
+
? {}
|
|
91
|
+
: { retryAfterSeconds: refusal.details.retryAfterSeconds }),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
results.push({
|
|
96
|
+
conversationId,
|
|
97
|
+
status: 'UNKNOWN',
|
|
98
|
+
code: 'OUTCOME_UNKNOWN',
|
|
99
|
+
...(httpStatus === undefined ? {} : { httpStatus }),
|
|
100
|
+
message: 'Исход неизвестен: запрос мог быть принят. Не повторяй запуск и не меняй attempt_key. Проверь переписку через besales_dialogue_transcript.',
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return withInstructions({
|
|
106
|
+
results,
|
|
107
|
+
summary: {
|
|
108
|
+
started: results.filter((item) => item.status === 'STARTED').length,
|
|
109
|
+
refused: results.filter((item) => item.status === 'REFUSED').length,
|
|
110
|
+
unknown: results.filter((item) => item.status === 'UNKNOWN').length,
|
|
111
|
+
notProcessed: results.filter((item) => item.status === 'NOT_PROCESSED').length,
|
|
112
|
+
notDelivered: results.filter((item) => item.status === 'STARTED' && item.delivery === 'NOT_DELIVERED').length,
|
|
113
|
+
deliveryUnknown: results.filter((item) => item.delivery === 'UNKNOWN' || item.delivery === 'PENDING').length,
|
|
114
|
+
},
|
|
115
|
+
}, [
|
|
116
|
+
'Покажи отдельно запущено, отказано (код, текст и причина), исход неизвестен и не обработано. STARTED — ход принят; доставку показывает delivery: DELIVERED / NOT_DELIVERED / UNKNOWN / PENDING. Покажи notice, reasonCode и reactivated; PENDING не подтверждает доставку. replayed=true — прежний результат, нового запуска не было. Если есть startedConversationId, покажи UUID новой беседы: диалог был закрыт — создан новый; переписку проверяй по новому UUID.',
|
|
117
|
+
'STARTED не равно доставлено: смотри delivery у каждого.',
|
|
118
|
+
'429 останавливает пакет; оставшиеся NOT_PROCESSED не отправлялись. Автоматически не продолжай и не повторяй пакет целиком.',
|
|
119
|
+
'UNKNOWN — исход неизвестен. Не повторяй запуск и не меняй attempt_key. Сначала проверь переписку через besales_dialogue_transcript; отсутствие сообщения ещё не доказывает отказ запуска.',
|
|
120
|
+
'Отказывает (REFUSED, при тишине обычно BOT_SILENCED) при тишине человека/оператора (ручная остановка, стоп-слово), отписке, блокировке, бане, вне срока переписки канала, при выключенном канале/ИИ и пока ход уже идёт. Не обходи отказ. Служебную тишину (ожидание оператора «до /start», стадия CRM, фильтр сделки, тишина агента) снимает: reactivated: true. Перед подтверждением предупреди человека о настоящем сообщении бота даже при служебном ожидании оператора; покажи reactivated в итоге. Новый attempt_key допустим только для нового осознанного запуска позже, после нового явного «да» человека.',
|
|
121
|
+
]);
|
|
122
|
+
}
|
|
123
|
+
export const dialogueNudgeTools = [
|
|
124
|
+
defineTool({
|
|
125
|
+
name: 'besales_dialogue_nudge_agent',
|
|
126
|
+
sideEffect: 'spend',
|
|
127
|
+
requiredFields: ['conversation_ids', 'explicit_confirmation'],
|
|
128
|
+
defaultWorkspaceId: true,
|
|
129
|
+
resultPolicy: {
|
|
130
|
+
// Обрезка скрыла бы исход уже отправленных мутаций.
|
|
131
|
+
neverTruncate: true,
|
|
132
|
+
narrowingHint: 'В следующих вызовах передавай меньше conversation_ids за раз. Уже отправленный пакет не повторяй и не меняй attempt_key: сначала проверь переписку через besales_dialogue_transcript.',
|
|
133
|
+
},
|
|
134
|
+
schema: inputSchema,
|
|
135
|
+
createRequest: (input) => requestFor(input.conversation_ids[0], input.attempt_key),
|
|
136
|
+
executeRequests: execute,
|
|
137
|
+
}),
|
|
138
|
+
];
|
|
139
|
+
//# sourceMappingURL=dialogue-nudge.js.map
|