@besales/mcp 0.46.0 → 0.47.0
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 +96 -55
- package/dist/auth/connection-store.d.ts +21 -1
- package/dist/auth/connection-store.js +46 -2
- package/dist/auth/connection-store.js.map +1 -1
- package/dist/auth/oauth-client.d.ts +5 -1
- package/dist/auth/oauth-client.js +22 -12
- package/dist/auth/oauth-client.js.map +1 -1
- package/dist/cli.js +14 -5
- package/dist/cli.js.map +1 -1
- package/dist/http/api-client.d.ts +16 -1
- package/dist/http/api-client.js +50 -2
- package/dist/http/api-client.js.map +1 -1
- package/dist/instructions/server-instructions.d.ts +4 -13
- package/dist/instructions/server-instructions.js +68 -274
- package/dist/instructions/server-instructions.js.map +1 -1
- package/dist/prompts/registry.d.ts +15 -0
- package/dist/prompts/registry.js +83 -0
- package/dist/prompts/registry.js.map +1 -0
- package/dist/resources/concepts/feedback-sheets.md +7 -4
- package/dist/resources/concepts/handoff.md +4 -1
- package/dist/resources/concepts/sandbox.md +14 -5
- package/dist/resources/concepts/triggers.md +6 -2
- package/dist/resources/concepts/workbook-classification.md +26 -21
- package/dist/resources/docs/campaigns.md +20 -0
- package/dist/resources/docs/follow-up.md +19 -0
- package/dist/resources/docs/platforms.md +2 -2
- package/dist/resources/docs/routing.md +18 -0
- package/dist/resources/docs/task-state.md +30 -0
- package/dist/resources/docs/trigger-actions.md +28 -0
- package/dist/resources/docs/variables.md +18 -0
- package/dist/resources/registry.js +51 -2
- package/dist/resources/registry.js.map +1 -1
- package/dist/resources/workflows/extract-from-document.md +8 -1
- package/dist/resources/workflows/iterate-with-sandbox.md +5 -2
- package/dist/resources/workflows/platform-setup-from-scratch.md +90 -2
- package/dist/resources/workflows/production-readiness-check.md +22 -18
- package/dist/schemas/mcp-tools.json +1058 -99
- package/dist/server.d.ts +2 -0
- package/dist/server.js +8 -2
- package/dist/server.js.map +1 -1
- package/dist/tasks/task-state-store.d.ts +68 -0
- package/dist/tasks/task-state-store.js +278 -0
- package/dist/tasks/task-state-store.js.map +1 -0
- package/dist/tools/annotations.d.ts +7 -0
- package/dist/tools/annotations.js +16 -0
- package/dist/tools/annotations.js.map +1 -0
- package/dist/tools/contracts.js +7 -1
- package/dist/tools/contracts.js.map +1 -1
- package/dist/tools/definitions/agent-design.d.ts +41 -20
- package/dist/tools/definitions/agent-design.js +189 -19
- package/dist/tools/definitions/agent-design.js.map +1 -1
- package/dist/tools/definitions/analytics.d.ts +40 -0
- package/dist/tools/definitions/analytics.js +233 -0
- package/dist/tools/definitions/analytics.js.map +1 -0
- package/dist/tools/definitions/broadcast-analytics.js +12 -0
- package/dist/tools/definitions/broadcast-analytics.js.map +1 -1
- package/dist/tools/definitions/broadcast-mailing-variants.d.ts +2 -0
- package/dist/tools/definitions/broadcast-mailing-variants.js +10 -0
- package/dist/tools/definitions/broadcast-mailing-variants.js.map +1 -1
- package/dist/tools/definitions/broadcast-scheduler.d.ts +7 -1
- package/dist/tools/definitions/broadcast-scheduler.js +71 -4
- package/dist/tools/definitions/broadcast-scheduler.js.map +1 -1
- package/dist/tools/definitions/contacts.d.ts +15 -0
- package/dist/tools/definitions/contacts.js +84 -0
- package/dist/tools/definitions/contacts.js.map +1 -0
- package/dist/tools/definitions/crm-platform.d.ts +2 -0
- package/dist/tools/definitions/crm-platform.js +75 -5
- package/dist/tools/definitions/crm-platform.js.map +1 -1
- package/dist/tools/definitions/datasource.d.ts +1 -0
- package/dist/tools/definitions/datasource.js +16 -1
- package/dist/tools/definitions/datasource.js.map +1 -1
- package/dist/tools/definitions/dialogue-audit.d.ts +2 -2
- package/dist/tools/definitions/dialogue-audit.js +54 -16
- package/dist/tools/definitions/dialogue-audit.js.map +1 -1
- package/dist/tools/definitions/dialogue-export.d.ts +1 -1
- package/dist/tools/definitions/dialogue-export.js +12 -0
- package/dist/tools/definitions/dialogue-export.js.map +1 -1
- package/dist/tools/definitions/external-api-channels.js +39 -12
- package/dist/tools/definitions/external-api-channels.js.map +1 -1
- package/dist/tools/definitions/follow-up-funnel-test.js +4 -0
- package/dist/tools/definitions/follow-up-funnel-test.js.map +1 -1
- package/dist/tools/definitions/follow-up-setup.js +3 -0
- package/dist/tools/definitions/follow-up-setup.js.map +1 -1
- package/dist/tools/definitions/follow-up.d.ts +1 -1
- package/dist/tools/definitions/follow-up.js +4 -0
- package/dist/tools/definitions/follow-up.js.map +1 -1
- package/dist/tools/definitions/getcourse-anchor-refresh.d.ts +3 -0
- package/dist/tools/definitions/getcourse-anchor-refresh.js +29 -2
- package/dist/tools/definitions/getcourse-anchor-refresh.js.map +1 -1
- package/dist/tools/definitions/getcourse-cold-welcome.d.ts +12 -2
- package/dist/tools/definitions/getcourse-cold-welcome.js +79 -4
- package/dist/tools/definitions/getcourse-cold-welcome.js.map +1 -1
- package/dist/tools/definitions/getcourse-wave.js +14 -0
- package/dist/tools/definitions/getcourse-wave.js.map +1 -1
- package/dist/tools/definitions/help.d.ts +8 -0
- package/dist/tools/definitions/help.js +219 -0
- package/dist/tools/definitions/help.js.map +1 -0
- package/dist/tools/definitions/knowledge.d.ts +27 -5
- package/dist/tools/definitions/knowledge.js +200 -33
- package/dist/tools/definitions/knowledge.js.map +1 -1
- package/dist/tools/definitions/link-tracking.js +9 -0
- package/dist/tools/definitions/link-tracking.js.map +1 -1
- package/dist/tools/definitions/model-comparison.js +6 -0
- package/dist/tools/definitions/model-comparison.js.map +1 -1
- package/dist/tools/definitions/operational-overview.d.ts +3 -0
- package/dist/tools/definitions/operational-overview.js +23 -0
- package/dist/tools/definitions/operational-overview.js.map +1 -0
- package/dist/tools/definitions/operator-workflow.d.ts +20 -0
- package/dist/tools/definitions/operator-workflow.js +114 -0
- package/dist/tools/definitions/operator-workflow.js.map +1 -0
- package/dist/tools/definitions/platform-setup.d.ts +25 -3
- package/dist/tools/definitions/platform-setup.js +198 -5
- package/dist/tools/definitions/platform-setup.js.map +1 -1
- package/dist/tools/definitions/scheduled-tasks.js +2 -0
- package/dist/tools/definitions/scheduled-tasks.js.map +1 -1
- package/dist/tools/definitions/session.js +103 -5
- package/dist/tools/definitions/session.js.map +1 -1
- package/dist/tools/definitions/shared.d.ts +153 -11
- package/dist/tools/definitions/shared.js +59 -9
- package/dist/tools/definitions/shared.js.map +1 -1
- package/dist/tools/definitions/task-state.d.ts +76 -0
- package/dist/tools/definitions/task-state.js +301 -0
- package/dist/tools/definitions/task-state.js.map +1 -0
- package/dist/tools/definitions/trigger-contact-claims.js +2 -0
- package/dist/tools/definitions/trigger-contact-claims.js.map +1 -1
- package/dist/tools/definitions.d.ts +265 -31
- package/dist/tools/definitions.js +12 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/description-localization.d.ts +2 -0
- package/dist/tools/description-localization.js +46 -0
- package/dist/tools/description-localization.js.map +1 -0
- package/dist/tools/incomplete-list.d.ts +23 -0
- package/dist/tools/incomplete-list.js +39 -0
- package/dist/tools/incomplete-list.js.map +1 -0
- package/dist/tools/inventory.d.ts +10 -0
- package/dist/tools/inventory.js +49 -0
- package/dist/tools/inventory.js.map +1 -0
- package/dist/tools/registry-mapping-cases-core.js +111 -2
- package/dist/tools/registry-mapping-cases-core.js.map +1 -1
- package/dist/tools/registry-mapping-cases-platform.js +69 -0
- package/dist/tools/registry-mapping-cases-platform.js.map +1 -1
- package/dist/tools/registry.d.ts +2 -0
- package/dist/tools/registry.js +60 -8
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/result-envelope.d.ts +46 -0
- package/dist/tools/result-envelope.js +184 -0
- package/dist/tools/result-envelope.js.map +1 -0
- package/dist/tools/result.d.ts +41 -3
- package/dist/tools/result.js +229 -27
- package/dist/tools/result.js.map +1 -1
- package/dist/tools/tool-title.d.ts +2 -0
- package/dist/tools/tool-title.js +12 -0
- package/dist/tools/tool-title.js.map +1 -0
- package/dist/tools/toolsets.d.ts +37 -0
- package/dist/tools/toolsets.js +64 -0
- package/dist/tools/toolsets.js.map +1 -0
- package/dist/tools/verify-with.d.ts +5 -0
- package/dist/tools/verify-with.js +36 -0
- package/dist/tools/verify-with.js.map +1 -0
- package/dist/types/api-contract.gen.d.ts +1421 -80
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.js +64 -8
- package/dist/utils/logger.js.map +1 -1
- package/docs/agent-usage-guide.full.ru.md +20 -15
- package/docs/agent-usage-guide.ru.md +24 -16
- package/docs/async-operation-lifecycle.md +46 -0
- package/docs/connect.ru.md +120 -0
- package/docs/evals/model-behavior-scorecard.md +80 -0
- package/docs/failure-semantics.md +56 -0
- package/docs/help-navigation.md +48 -0
- package/docs/host-compatibility-matrix.md +153 -0
- package/docs/host-setup.md +22 -6
- package/docs/operation-coverage.md +114 -0
- package/docs/pii-policy.md +46 -0
- package/docs/response-size-budget.md +150 -0
- package/docs/task-state.md +58 -0
- package/docs/tool-effects.md +46 -0
- package/docs/tool-surface.md +91 -0
- package/package.json +6 -2
- package/scripts/model-eval-server.js +213 -0
- package/scripts/probe-mcp-protocol.js +134 -0
- package/scripts/run-model-eval.js +447 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { compactObject, defineTool, getcourseTransportEnum, uuidSchema, withInstructions, } from './shared.js';
|
|
2
|
+
import { buildListQuery, compactObject, defineTool, getcourseTransportEnum, uuidSchema, withInstructions, } from './shared.js';
|
|
3
3
|
/** Границы — паритет с DTO бэкенда: расхождение даёт 400 уже после подтверждения оператором. */
|
|
4
4
|
const DAILY_CAP_MAX = 5000;
|
|
5
5
|
/**
|
|
@@ -9,6 +9,14 @@ const DAILY_CAP_MAX = 5000;
|
|
|
9
9
|
*/
|
|
10
10
|
const FRESHNESS_DAYS_MAX = 78;
|
|
11
11
|
const COOLDOWN_DAYS_MAX = 365;
|
|
12
|
+
/**
|
|
13
|
+
* Потолок строк в выдаче снимков — паритет с `POOL_SNAPSHOT_LIST_LIMIT` бэкенда.
|
|
14
|
+
*
|
|
15
|
+
* ⚠️⚠️ Границу обязан знать ИМЕННО агент, а не только сервер: ответ печатается целиком, и полный
|
|
16
|
+
* период на две тысячи строк со счётчиками — это мегабайты текста. Инструмент заведён из-за
|
|
17
|
+
* таймаута предпросмотра; без потолка он упёрся бы в предел того же рода с другой стороны.
|
|
18
|
+
*/
|
|
19
|
+
const POOL_SNAPSHOT_LIST_LIMIT = 2000;
|
|
12
20
|
const WAIT_HOURS_MAX = 720;
|
|
13
21
|
/** Локальная дата площадки — та же форма, что у бэкенда. */
|
|
14
22
|
const LOCAL_DATE_RE = /^\d{4}-\d{2}-\d{2}$/u;
|
|
@@ -124,6 +132,7 @@ const toScheduleBody = (input) => compactObject({
|
|
|
124
132
|
export const broadcastSchedulerTools = [
|
|
125
133
|
defineTool({
|
|
126
134
|
name: 'besales_broadcast_schedule_list',
|
|
135
|
+
sideEffect: 'none',
|
|
127
136
|
requiredFields: [],
|
|
128
137
|
defaultWorkspaceId: true,
|
|
129
138
|
schema: z.object({ workspace_id: uuidSchema.optional() }).strict(),
|
|
@@ -138,6 +147,7 @@ export const broadcastSchedulerTools = [
|
|
|
138
147
|
}),
|
|
139
148
|
defineTool({
|
|
140
149
|
name: 'besales_broadcast_schedule_preview',
|
|
150
|
+
sideEffect: 'none',
|
|
141
151
|
requiredFields: [
|
|
142
152
|
'segment_id',
|
|
143
153
|
'mailing_variant_id',
|
|
@@ -158,11 +168,12 @@ export const broadcastSchedulerTools = [
|
|
|
158
168
|
}),
|
|
159
169
|
enhanceResponse: (response) => withInstructions(response, [
|
|
160
170
|
'Ничего не отправляет и не пишет: считает ТЕМ ЖЕ путём, что и крон — тот же источник фактов, тот же компилятор правила, те же исключения.',
|
|
161
|
-
'⚠️ Показывай пользователю excludedBy числами. alreadySentSegment — этим сегментом уже слали; alreadyGreeted — человек уже получал «Первое сообщение» (одно на контакт навсегда, любым сегментом; прежнее имя ключа coldWelcomeClaimed приходит от старого бэкенда в окне выкатки); journal — контакт подавался этим расписанием и ждёт паузы; cooldown — получал любую нашу рассылку в окне.',
|
|
171
|
+
'⚠️ Показывай пользователю excludedBy числами. alreadySentSegment — этим сегментом уже слали; alreadyGreeted — человек уже получал «Первое сообщение» (одно на контакт навсегда, любым сегментом; прежнее имя ключа coldWelcomeClaimed приходит от старого бэкенда в окне выкатки); activeEpisode — человека уже ведёт автоприём регистраций (приветствие должны и не отдали, либо подготовлен повторный вход на новый эфир); touchClaimed — это касание уже занято в журнале; journal — контакт подавался этим расписанием и ждёт паузы; cooldown — получал любую нашу рассылку в окне.',
|
|
162
172
|
'⚠️⚠️ productNotInList — у расписания задан список продуктов, а у этих людей продукт другой или не указан вовсе. Прежде этот отсев шёл МОЛЧА: строка выбрасывалась без счётчика, и часть пула исчезала без причины. Чинится списком продуктов в расписании.',
|
|
163
173
|
'⚠️⚠️ notReachable — ни один из ВЫБРАННЫХ каналов до человека не доходит, и это подтвердил ответ школы. Про невыбранные каналы число не говорит ничего. Чинится составом каналов расписания или рассылки, а не правилом сегмента: вердикт записывается вместе с набором каналов и перестаёт держать паузу, как только набор изменили.',
|
|
164
174
|
'⚠️⚠️ factsUnknown — НЕ отсев: эти люди в пуле. Число значит «школу про них ещё не спрашивали», и без него ноль в notReachable читается как «все достижимы». Доставки оно НЕ обещает: тот же прогон опрашивает школу перед подачей (по 300 за раз) и часть из них тогда отсеет — в отчёте прогона эти числа уже пересчитаны.',
|
|
165
175
|
'⚠️ Если notReachable равен размеру пула, сперва проверь площадку: когда НИ ОДИН выбранный канал ею не обслуживается, недостижимы будут все до единого, и чинится это в настройках площадки, а не в расписании. Предпросмотр в этом случае показывает отдельное предупреждение, а прогон закрывается своей причиной.', '⚠️ unverifiable — «нечем проверить», а НЕ «не подходит»: нет назначения серии, серия ещё идёт, нет длительности просмотра. Эти люди в рассылку не идут, и это правильно: отсутствие данных о явке не равно отсутствию человека на эфире.',
|
|
176
|
+
'⚠️⚠️ truncatedSeriesSkipped — ЕДИНСТВЕННАЯ источниковая причина, которую чинит сам оператор: выборка упёрлась в потолок строк, и запись о явке серии могла остаться за его границей, поэтому судить о ней нечем. Чинится окном расписания за минуту — сузить свежесть, список воронок или продуктов. До 10.09.2026 это число складывалось с unverifiable и читалось как жалоба на данные школы: не путай их снова.',
|
|
166
177
|
'factsAsOf — момент, на который источник считает данные полными. Сильно устаревшее значение означает, что аналитика отстаёт и «не пришедшие» могут быть ложными.',
|
|
167
178
|
'⚠️⚠️ overlaps — контакты, которых за последнюю неделю подавали ДРУГИЕ расписания. Непустой список означает, что человек рискует получить несколько сообщений: разведи расписания кулдауном или приоритетом сегментов, прежде чем включать.',
|
|
168
179
|
'byProduct показывает, как отбор разложится по продуктам — крон нарежет подачу этими же блоками.',
|
|
@@ -170,6 +181,7 @@ export const broadcastSchedulerTools = [
|
|
|
170
181
|
}),
|
|
171
182
|
defineTool({
|
|
172
183
|
name: 'besales_broadcast_schedule_upsert',
|
|
184
|
+
sideEffect: 'write',
|
|
173
185
|
requiredFields: [
|
|
174
186
|
'segment_id',
|
|
175
187
|
'mailing_variant_id',
|
|
@@ -207,6 +219,7 @@ export const broadcastSchedulerTools = [
|
|
|
207
219
|
}),
|
|
208
220
|
defineTool({
|
|
209
221
|
name: 'besales_broadcast_schedule_delete',
|
|
222
|
+
sideEffect: 'write',
|
|
210
223
|
requiredFields: ['schedule_id', 'explicit_confirmation'],
|
|
211
224
|
defaultWorkspaceId: true,
|
|
212
225
|
schema: z
|
|
@@ -227,6 +240,7 @@ export const broadcastSchedulerTools = [
|
|
|
227
240
|
}),
|
|
228
241
|
defineTool({
|
|
229
242
|
name: 'besales_broadcast_schedule_runs',
|
|
243
|
+
sideEffect: 'none',
|
|
230
244
|
requiredFields: ['schedule_id'],
|
|
231
245
|
defaultWorkspaceId: true,
|
|
232
246
|
schema: z
|
|
@@ -236,10 +250,14 @@ export const broadcastSchedulerTools = [
|
|
|
236
250
|
limit: z.number().int().min(1).max(100).optional(),
|
|
237
251
|
})
|
|
238
252
|
.strict(),
|
|
253
|
+
// ⚠️⚠️ Параметр клеится в ПУТЬ. Транспорт (`ApiToolRequest`) знает только method/path/body,
|
|
254
|
+
// поля `query` в нём нет — оно выбрасывалось МОЛЧА, и `limit` не доезжал до бэкенда никогда:
|
|
255
|
+
// сколько бы прогонов агент ни просил, приходило серверных 30, без ошибки и без признака
|
|
256
|
+
// усечения. Тот же приём уже применён в `follow-up.ts` и `platform-setup.ts`.
|
|
239
257
|
createRequest: (input) => ({
|
|
240
258
|
method: 'GET',
|
|
241
|
-
path: `/workspaces/${input.workspace_id}/broadcast-schedules/${input.schedule_id}/runs
|
|
242
|
-
|
|
259
|
+
path: `/workspaces/${input.workspace_id}/broadcast-schedules/${input.schedule_id}/runs` +
|
|
260
|
+
buildListQuery({ limit: input.limit }),
|
|
243
261
|
}),
|
|
244
262
|
enhanceResponse: (response) => withInstructions(response, [
|
|
245
263
|
'periodBucket — локальная ДАТА площадки: один прогон на сутки, повтор в тот же день невозможен.',
|
|
@@ -248,8 +266,47 @@ export const broadcastSchedulerTools = [
|
|
|
248
266
|
'attempts растёт на каждом WAITING_RESOURCE: большое число означает, что воркспейс постоянно занят и расписание стоит передвинуть по времени.',
|
|
249
267
|
]),
|
|
250
268
|
}),
|
|
269
|
+
/**
|
|
270
|
+
* Суточные снимки пула.
|
|
271
|
+
*
|
|
272
|
+
* ⚠️⚠️ Существует ровно потому, что `besales_broadcast_schedule_preview` боевого расписания НЕ
|
|
273
|
+
* укладывается в таймаут MCP (замер 09.09.2026): он ходит во внешний источник фактов и обходит
|
|
274
|
+
* десятки тысяч строк. Снимок читается из своей таблицы мгновенно. Это не замена предпросмотру:
|
|
275
|
+
* предпросмотр отвечает «как будет, если поменять правило», снимок — «что было вчера».
|
|
276
|
+
*/
|
|
277
|
+
defineTool({
|
|
278
|
+
name: 'besales_broadcast_schedule_pool_snapshots',
|
|
279
|
+
sideEffect: 'none',
|
|
280
|
+
requiredFields: [],
|
|
281
|
+
defaultWorkspaceId: true,
|
|
282
|
+
schema: z
|
|
283
|
+
.object({
|
|
284
|
+
workspace_id: uuidSchema.optional(),
|
|
285
|
+
// ⚠️ Проверяется только ФОРМА: `2026-02-30` регуляркой проходит, существование даты
|
|
286
|
+
// сверяет сервер. Форма здесь ради того же, ради чего и остальные границы в этом файле —
|
|
287
|
+
// чтобы правило было известно ДО вызова, а не приезжало 400-й.
|
|
288
|
+
from: z.string().regex(LOCAL_DATE_RE).optional(),
|
|
289
|
+
to: z.string().regex(LOCAL_DATE_RE).optional(),
|
|
290
|
+
limit: z.number().int().min(1).max(POOL_SNAPSHOT_LIST_LIMIT).optional(),
|
|
291
|
+
})
|
|
292
|
+
.strict(),
|
|
293
|
+
createRequest: (input) => ({
|
|
294
|
+
method: 'GET',
|
|
295
|
+
path: `/workspaces/${input.workspace_id}/broadcast-schedules/pool-snapshots` +
|
|
296
|
+
buildListQuery({ from: input.from, to: input.to, limit: input.limit }),
|
|
297
|
+
}),
|
|
298
|
+
enhanceResponse: (response) => withInstructions(response, [
|
|
299
|
+
'⚠️⚠️ Три состояния РАЗНЫЕ, и схлопывать их в ноль нельзя: строки за день нет — снимок не считали; status=FAILED — считали и не смогли (причина в error), poolSize и selectedCount при этом null, а не 0; truncated=true — снимок упёрся в бюджет строк источника, то есть показано НАЧАЛО окна, а не окно.',
|
|
300
|
+
'⚠️ truncated в КОРНЕ ответа, рядом с rows, — про ВЫДАЧУ, а не про пул. Потолков два и лечатся они противоположным: если ты передал limit — строк больше ТВОЕГО потолка, подними limit; если не передал — упёрлись в общий потолок выдачи, сузь from/to. Одноимённое поле ВНУТРИ строки — про пул того дня.',
|
|
301
|
+
'⚠️ selectedCount значит «отобрано на момент расчёта», а не «уедет сегодня»: день мог быть нерабочим по расписанию, площадка — неактивной, а части отобранных прогон сперва заведёт карточку.',
|
|
302
|
+
'Снимок берётся раз в сутки утром по зоне ПЛОЩАДКИ и ПРИБЛИЖАЕТ момент тика, но с ним не совпадает: скользящее окно свежести привязано к «сейчас» расчёта, а тик срабатывает в своё timeLocal. Точный час — константа бэкенда, наизусть его не называй.',
|
|
303
|
+
'Строки живут дольше расписаний: внешнего ключа нет намеренно, и снимки удалённого расписания остаются в истории — scheduleId в ответе может не найтись в besales_broadcast_schedule_list.',
|
|
304
|
+
'⚠️ Ответ печатается ЦЕЛИКОМ. Строк в сутки столько же, сколько расписаний, и без from/limit за год наберутся мегабайты текста: спрашивай окно, которое собираешься читать.',
|
|
305
|
+
]),
|
|
306
|
+
}),
|
|
251
307
|
defineTool({
|
|
252
308
|
name: 'besales_broadcast_segment_rule_set',
|
|
309
|
+
sideEffect: 'write',
|
|
253
310
|
requiredFields: ['segment_id', 'facets', 'freshness_anchor'],
|
|
254
311
|
defaultWorkspaceId: true,
|
|
255
312
|
schema: z
|
|
@@ -281,6 +338,15 @@ export const broadcastSchedulerTools = [
|
|
|
281
338
|
})
|
|
282
339
|
.strict()
|
|
283
340
|
.optional(),
|
|
341
|
+
/**
|
|
342
|
+
* Право первого касания: сегмент уходит только тем, кому мы ещё НИКОГДА не писали.
|
|
343
|
+
*
|
|
344
|
+
* ⚠️⚠️ Молчание значит `true` — это сегодняшнее поведение платформы. Выключение
|
|
345
|
+
* осознанное и снимает ровно одну защиту: человеку, уже получившему от нас холодное
|
|
346
|
+
* приветствие, уйдёт ВТОРОЕ первое сообщение. Остальные гейты (ответ, оператор,
|
|
347
|
+
* тихий период, «этим сегментом уже слали») продолжают работать.
|
|
348
|
+
*/
|
|
349
|
+
untouchedOnly: z.boolean().optional(),
|
|
284
350
|
// ⚠️⚠️ ОБЯЗАТЕЛЬНЫ на сервере (`SEGMENT_FACETS_REQUIRED_GUARDS`): необязательное
|
|
285
351
|
// поле с дефолтом «неважно» делало законным правило целиком из умолчаний, а такое
|
|
286
352
|
// правило матчит КАЖДОГО в окне — рассылка ушла бы и людям с живой заявкой у
|
|
@@ -311,6 +377,7 @@ export const broadcastSchedulerTools = [
|
|
|
311
377
|
'wait_after_series_end_hours — сколько ждать после эфира, прежде чем считать отсутствие явки доказанным. Дефолт 1 час: касание свежее, но явка к этому моменту досчитана у меньшинства (6 ч → 56 %, 24 ч → 74 %, 48 ч → 81 %), и недосчитанный контакт в отбор не попадает. Поэтому при коротком ожидании ставьте freshness_days от 3: при 1 человека смотрят ровно один раз.',
|
|
312
378
|
'application=CANCELLED требует отменённой заявки И отсутствия живой: с человеком, у которого заявка в работе, разговаривает менеджер.',
|
|
313
379
|
'payment=NOT_ANYWHERE исключает всех, кто когда-либо успешно платил — включая тех, кому потом сделали возврат: он действительно платил.',
|
|
380
|
+
'untouchedOnly не указан = true: сегмент уходит только тем, кому мы никогда не писали. Ставьте false осознанно — это разрешает второе первое сообщение человеку, уже получившему от нас холодное приветствие в другой воронке.',
|
|
314
381
|
]),
|
|
315
382
|
}),
|
|
316
383
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast-scheduler.js","sourceRoot":"","sources":["../../../src/tools/definitions/broadcast-scheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"broadcast-scheduler.js","sourceRoot":"","sources":["../../../src/tools/definitions/broadcast-scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const contactTools: (import("./shared.js").ToolDefinition<{
|
|
2
|
+
workspace_id?: string | undefined;
|
|
3
|
+
limit?: number | undefined;
|
|
4
|
+
cursor?: string | undefined;
|
|
5
|
+
search?: string | undefined;
|
|
6
|
+
external_id?: string | undefined;
|
|
7
|
+
phone?: string | undefined;
|
|
8
|
+
email?: string | undefined;
|
|
9
|
+
channel_id?: string | undefined;
|
|
10
|
+
}> | import("./shared.js").ToolDefinition<{
|
|
11
|
+
contact_id: string;
|
|
12
|
+
}> | import("./shared.js").ToolDefinition<{
|
|
13
|
+
contact_id: string;
|
|
14
|
+
message_id?: string | undefined;
|
|
15
|
+
}>)[];
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { assertCompleteList } from '../incomplete-list.js';
|
|
3
|
+
import { defineTool, uuidSchema, withInstructions } from './shared.js';
|
|
4
|
+
const CONTACTS_MAX_PAGE_SIZE = 50;
|
|
5
|
+
export const contactTools = [
|
|
6
|
+
defineTool({
|
|
7
|
+
name: 'besales_contact_search',
|
|
8
|
+
sideEffect: 'none',
|
|
9
|
+
closedWorld: true,
|
|
10
|
+
defaultWorkspaceId: true,
|
|
11
|
+
requiredFields: [],
|
|
12
|
+
resultPolicy: { neverTruncate: true },
|
|
13
|
+
schema: z
|
|
14
|
+
.object({
|
|
15
|
+
workspace_id: uuidSchema.optional(),
|
|
16
|
+
limit: z.number().int().min(1).max(CONTACTS_MAX_PAGE_SIZE).optional(),
|
|
17
|
+
cursor: z.string().min(1).optional(),
|
|
18
|
+
search: z.string().trim().min(1).optional(),
|
|
19
|
+
external_id: z.string().trim().min(1).optional(),
|
|
20
|
+
phone: z.string().trim().min(1).optional(),
|
|
21
|
+
email: z.string().trim().min(1).optional(),
|
|
22
|
+
channel_id: uuidSchema.optional(),
|
|
23
|
+
})
|
|
24
|
+
.strict(),
|
|
25
|
+
createRequest: (input) => {
|
|
26
|
+
const query = new URLSearchParams();
|
|
27
|
+
if (input.limit !== undefined)
|
|
28
|
+
query.set('limit', String(input.limit));
|
|
29
|
+
if (input.cursor)
|
|
30
|
+
query.set('cursor', input.cursor);
|
|
31
|
+
if (input.search)
|
|
32
|
+
query.set('search', input.search);
|
|
33
|
+
if (input.external_id)
|
|
34
|
+
query.set('externalId', input.external_id);
|
|
35
|
+
if (input.phone)
|
|
36
|
+
query.set('phone', input.phone);
|
|
37
|
+
if (input.email)
|
|
38
|
+
query.set('email', input.email);
|
|
39
|
+
if (input.channel_id)
|
|
40
|
+
query.set('channelId', input.channel_id);
|
|
41
|
+
const suffix = query.size > 0 ? `?${query.toString()}` : '';
|
|
42
|
+
return { method: 'GET', path: `/workspaces/${input.workspace_id}/contacts${suffix}` };
|
|
43
|
+
},
|
|
44
|
+
enhanceResponse: (response, input) => assertCompleteList(response, {
|
|
45
|
+
pageRequested: input.limit !== undefined || input.cursor !== undefined,
|
|
46
|
+
toolName: 'besales_contact_search',
|
|
47
|
+
howToPage: `Повтори вызов с limit до ${CONTACTS_MAX_PAGE_SIZE} и cursor из ответа, пока cursor не станет пустым.`,
|
|
48
|
+
}),
|
|
49
|
+
}),
|
|
50
|
+
defineTool({
|
|
51
|
+
name: 'besales_contact_get',
|
|
52
|
+
sideEffect: 'none',
|
|
53
|
+
closedWorld: true,
|
|
54
|
+
requiredFields: ['contact_id'],
|
|
55
|
+
resultPolicy: { neverTruncate: true },
|
|
56
|
+
schema: z.object({ contact_id: uuidSchema }).strict(),
|
|
57
|
+
createRequest: (input) => ({ method: 'GET', path: `/contacts/${input.contact_id}` }),
|
|
58
|
+
}),
|
|
59
|
+
defineTool({
|
|
60
|
+
name: 'besales_contact_diagnostics_get',
|
|
61
|
+
sideEffect: 'none',
|
|
62
|
+
closedWorld: true,
|
|
63
|
+
requiredFields: ['contact_id'],
|
|
64
|
+
resultPolicy: { neverTruncate: true },
|
|
65
|
+
schema: z
|
|
66
|
+
.object({
|
|
67
|
+
contact_id: uuidSchema,
|
|
68
|
+
message_id: uuidSchema.optional(),
|
|
69
|
+
})
|
|
70
|
+
.strict(),
|
|
71
|
+
createRequest: (input) => ({
|
|
72
|
+
method: 'GET',
|
|
73
|
+
path: `/contacts/${input.contact_id}/diagnostics` +
|
|
74
|
+
(input.message_id ? `?messageId=${encodeURIComponent(input.message_id)}` : ''),
|
|
75
|
+
}),
|
|
76
|
+
enhanceResponse: (response) => withInstructions(response, [
|
|
77
|
+
'Evidence-first: silence/operator/routing/transport описывают только сохранённые факты.',
|
|
78
|
+
'rag=not_recorded означает отсутствие durable production trace, а не ноль найденных знаний.',
|
|
79
|
+
'Tool executions связаны с контактом по времени; не называй их точным событием выбранного сообщения.',
|
|
80
|
+
'Для следующего шага используй contact/platform/agent/message IDs из ответа; не повторяй отправку по неизвестному исходу.',
|
|
81
|
+
]),
|
|
82
|
+
}),
|
|
83
|
+
];
|
|
84
|
+
//# sourceMappingURL=contacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../src/tools/definitions/contacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ export declare const crmPlatformTools: (import("./shared.js").ToolDefinition<{
|
|
|
3
3
|
workspace_id?: string | undefined;
|
|
4
4
|
platform_id?: string | undefined;
|
|
5
5
|
filter?: "all" | "variables" | "constants" | undefined;
|
|
6
|
+
limit?: number | undefined;
|
|
7
|
+
cursor?: string | undefined;
|
|
6
8
|
}> | import("./shared.js").ToolDefinition<{
|
|
7
9
|
scope: "WORKSPACE" | "CHANNEL";
|
|
8
10
|
name: string;
|