@besales/mcp 0.45.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/crm-integration.md +3 -1
- 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/compare-models.md +4 -3
- package/dist/resources/workflows/connect-crm-from-scratch.md +8 -0
- 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 +1537 -177
- 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 +49 -20
- package/dist/tools/definitions/agent-design.js +192 -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.d.ts +5 -4
- package/dist/tools/definitions/broadcast-analytics.js +26 -4
- 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 +20 -1
- package/dist/tools/definitions/broadcast-scheduler.js +134 -8
- 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 +95 -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 +6 -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 +20 -2
- package/dist/tools/definitions/getcourse-cold-welcome.js +128 -7
- 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 +31 -0
- package/dist/tools/definitions/link-tracking.js.map +1 -1
- package/dist/tools/definitions/model-comparison.js +12 -3
- 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 +54 -3
- package/dist/tools/definitions/platform-setup.js +211 -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 +272 -10
- package/dist/tools/definitions/shared.js +154 -8
- 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.d.ts +7 -0
- package/dist/tools/definitions/trigger-contact-claims.js +60 -0
- package/dist/tools/definitions/trigger-contact-claims.js.map +1 -0
- package/dist/tools/definitions.d.ts +334 -35
- package/dist/tools/definitions.js +14 -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 +122 -4
- 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/trigger-action-config.js +4 -0
- package/dist/tools/trigger-action-config.js.map +1 -1
- 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 +2612 -332
- 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 +21 -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
|
@@ -10,11 +10,79 @@ export interface ApiToolRequest {
|
|
|
10
10
|
export interface LocalToolContext {
|
|
11
11
|
readonly store: ConnectionStore;
|
|
12
12
|
readonly env: NodeJS.ProcessEnv;
|
|
13
|
+
readonly apiClient: ToolApiClient;
|
|
14
|
+
/** Имена, доступные этой MCP-сессии после применения tool profile. */
|
|
15
|
+
readonly availableToolNames?: ReadonlySet<string>;
|
|
13
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Как обходиться с ответом инструмента, если он не влезает в потолок. Общего алгоритма нет:
|
|
19
|
+
* что здесь можно потерять, знает только сам инструмент. Числа и классы — `docs/response-size-budget.md`.
|
|
20
|
+
*/
|
|
21
|
+
export interface ToolResultPolicy {
|
|
22
|
+
/**
|
|
23
|
+
* Ответ обрезать нельзя ни при каких условиях — при превышении уходит отказ, а не данные.
|
|
24
|
+
* Два случая: (1) ответ является снимком для замещающей записи («прочитай всё → пришли всё
|
|
25
|
+
* обратно»), и усечённый снимок молча удалит непрочитанное; (2) у инструмента уже работает
|
|
26
|
+
* постраничная выдача, и конверт подменил бы исправный механизм тихой потерей.
|
|
27
|
+
*/
|
|
28
|
+
readonly neverTruncate?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Пути, которые разрешено выбросить при превышении, в порядке готовности расстаться.
|
|
31
|
+
* Путь `agents[].baseSystemPrompt` снимает поле у каждого элемента массива. Объявляется
|
|
32
|
+
* только для того, что читается ОТДЕЛЬНЫМ инструментом, — иначе это потеря, а не сжатие.
|
|
33
|
+
* `requiredPaths` намеренно отсутствует: выбрасывается ровно перечисленное, всё прочее
|
|
34
|
+
* неприкосновенно по построению, и второй список был бы носителем без читателя.
|
|
35
|
+
*/
|
|
36
|
+
readonly droppablePaths?: readonly string[];
|
|
37
|
+
/** Потолок именно этого инструмента; без него берётся общий по классу. */
|
|
38
|
+
readonly maxResultBytes?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Чем сузить запрос — уходит в текст отказа и в маркер. Ставится ТОЛЬКО когда у инструмента
|
|
41
|
+
* действительно есть параметры сужения: общая подсказка там, где сузить нечем, — ложь.
|
|
42
|
+
*/
|
|
43
|
+
readonly narrowingHint?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Что инструмент делает с состоянием. Проставляется РУКАМИ у каждого определения, потому что
|
|
47
|
+
* ни имя, ни HTTP-метод этого не выводят — и врут в обе стороны:
|
|
48
|
+
* семь `*_get_instructions` — POST, создающий долговечную запись операции (подстрока `_get`
|
|
49
|
+
* увела бы их в «только чтение»); список операторов CRM и проверка живости источника — GET,
|
|
50
|
+
* которые пишут; расхождение промптов, линт и поиск по вопросам-ответам — POST, которые читают.
|
|
51
|
+
*
|
|
52
|
+
* `spend` — тратит деньги или квоту на стороне сервера (обращение к модели, векторизация,
|
|
53
|
+
* отправка людям). Отдельно от `write`, потому что цена ошибки другая: повторный вызов
|
|
54
|
+
* не «перезапишет то же самое», а заплатит второй раз.
|
|
55
|
+
*/
|
|
56
|
+
export type ToolSideEffect = 'none' | 'write' | 'spend';
|
|
14
57
|
export interface ToolDefinition<Input> {
|
|
15
58
|
readonly name: string;
|
|
59
|
+
readonly sideEffect: ToolSideEffect;
|
|
60
|
+
/**
|
|
61
|
+
* Операция доказуемо обратима — снимает пометку «разрушительная». По спецификации MCP у
|
|
62
|
+
* не-читающего инструмента она подразумевается ИСТИННОЙ, поэтому опасна не пропущенная
|
|
63
|
+
* пометка, а ошибочно снятая: она сделала бы удаление безопасным в глазах хоста,
|
|
64
|
+
* одобряющего вызовы автоматически.
|
|
65
|
+
*/
|
|
66
|
+
readonly reversible?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Повтор с теми же аргументами даёт тот же результат БЕЗУСЛОВНО. Правило «все `*_upsert`
|
|
69
|
+
* идемпотентны» неверно: без идентификатора они уходят в создание, и автоповтор заводит
|
|
70
|
+
* вторую сущность.
|
|
71
|
+
*/
|
|
72
|
+
readonly idempotent?: boolean;
|
|
73
|
+
/** Инструмент заведомо не выходит за пределы Besales. Умолчание — обратное, как худшее. */
|
|
74
|
+
readonly closedWorld?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Чем свериться, если исход остался НЕИЗВЕСТЕН: связь оборвалась или сервер ответил отказом
|
|
77
|
+
* уже после того, как запрос до него дошёл. Отсутствие локального подтверждения не
|
|
78
|
+
* доказывает, что операция не состоялась, поэтому вызывающему называют инструмент проверки,
|
|
79
|
+
* а не советуют повтор. Заполняется у неидемпотентных операций, у которых такой инструмент
|
|
80
|
+
* есть; без него текст просто не называет конкретное имя.
|
|
81
|
+
*/
|
|
82
|
+
readonly verifyWithToolName?: string;
|
|
16
83
|
readonly requiredFields: readonly string[];
|
|
17
84
|
readonly schema: ZodType<Input>;
|
|
85
|
+
readonly resultPolicy?: ToolResultPolicy;
|
|
18
86
|
readonly defaultWorkspaceId?: boolean;
|
|
19
87
|
/** API-проксирующие тулы. Взаимоисключающе с `localHandler`. */
|
|
20
88
|
readonly createRequest?: (input: Input) => ApiToolRequest;
|
|
@@ -50,6 +118,13 @@ export declare const modelLaneSchema: z.ZodEnum<{
|
|
|
50
118
|
export declare const MAX_FILE_UPLOAD_BYTES: number;
|
|
51
119
|
/** Верхняя граница `max_lines` в `besales_prompt_diff` — должна совпадать с DTO бэкенда. */
|
|
52
120
|
export declare const PROMPT_DIFF_MAX_LINES_LIMIT = 1000;
|
|
121
|
+
/**
|
|
122
|
+
* Верхняя граница страницы перечня переменных — совпадает с `VARIABLES_LIST_MAX_LIMIT` бэкенда.
|
|
123
|
+
* Больший `limit` сервер отвергнет валидацией, поэтому граница объявлена и здесь.
|
|
124
|
+
*/
|
|
125
|
+
export declare const VARIABLES_MAX_PAGE_SIZE = 200;
|
|
126
|
+
/** Максимальный размер явно запрошенной страницы списка агентов платформы. */
|
|
127
|
+
export declare const PLATFORM_AGENTS_MAX_PAGE_SIZE = 200;
|
|
53
128
|
/** Потолок агентов в одном пакетном прогоне — должен совпадать с `PROMPT_BATCH_MAX_AGENTS`. */
|
|
54
129
|
export declare const PROMPT_BATCH_MAX_AGENTS = 200;
|
|
55
130
|
/** Длина ключа идемпотентности пакетного прогона — должна совпадать с DTO бэкенда. */
|
|
@@ -179,7 +254,7 @@ export declare const promptAnalysisStageOutputSchema: z.ZodObject<{
|
|
|
179
254
|
}>;
|
|
180
255
|
output: z.ZodObject<{}, z.core.$loose>;
|
|
181
256
|
}, z.core.$strip>;
|
|
182
|
-
export declare const icpAnalysisSegmentSchema: z.ZodObject<{
|
|
257
|
+
export declare const icpAnalysisSegmentSchema: z.ZodPipe<z.ZodObject<{
|
|
183
258
|
id: z.ZodOptional<z.ZodString>;
|
|
184
259
|
name: z.ZodString;
|
|
185
260
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -187,15 +262,90 @@ export declare const icpAnalysisSegmentSchema: z.ZodObject<{
|
|
|
187
262
|
pains: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
188
263
|
motivations: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
189
264
|
language_style: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
190
|
-
}, z.core.$
|
|
191
|
-
|
|
265
|
+
languageStyle: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
266
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
267
|
+
language_style: {
|
|
268
|
+
[x: string]: unknown;
|
|
269
|
+
} | undefined;
|
|
270
|
+
name: string;
|
|
271
|
+
id?: string | undefined;
|
|
272
|
+
description?: string | undefined;
|
|
273
|
+
demographics?: {
|
|
274
|
+
[x: string]: unknown;
|
|
275
|
+
} | undefined;
|
|
276
|
+
pains?: unknown[] | undefined;
|
|
277
|
+
motivations?: unknown[] | undefined;
|
|
278
|
+
}, {
|
|
279
|
+
name: string;
|
|
280
|
+
id?: string | undefined;
|
|
281
|
+
description?: string | undefined;
|
|
282
|
+
demographics?: {
|
|
283
|
+
[x: string]: unknown;
|
|
284
|
+
} | undefined;
|
|
285
|
+
pains?: unknown[] | undefined;
|
|
286
|
+
motivations?: unknown[] | undefined;
|
|
287
|
+
language_style?: {
|
|
288
|
+
[x: string]: unknown;
|
|
289
|
+
} | undefined;
|
|
290
|
+
languageStyle?: {
|
|
291
|
+
[x: string]: unknown;
|
|
292
|
+
} | undefined;
|
|
293
|
+
}>>;
|
|
294
|
+
export declare const icpAnalysisPersonaSchema: z.ZodPipe<z.ZodObject<{
|
|
192
295
|
name: z.ZodString;
|
|
193
|
-
segment_id: z.ZodString
|
|
296
|
+
segment_id: z.ZodOptional<z.ZodString>;
|
|
297
|
+
segmentId: z.ZodOptional<z.ZodString>;
|
|
194
298
|
description: z.ZodOptional<z.ZodString>;
|
|
195
299
|
pain_points: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
300
|
+
painPoints: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
196
301
|
goals: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
197
302
|
objections: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
198
303
|
messaging_hints: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
304
|
+
messagingHints: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
305
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
306
|
+
segment_id: string | undefined;
|
|
307
|
+
pain_points: unknown[] | undefined;
|
|
308
|
+
messaging_hints: {
|
|
309
|
+
[x: string]: unknown;
|
|
310
|
+
} | undefined;
|
|
311
|
+
name: string;
|
|
312
|
+
description?: string | undefined;
|
|
313
|
+
goals?: unknown[] | undefined;
|
|
314
|
+
objections?: {
|
|
315
|
+
[x: string]: unknown;
|
|
316
|
+
} | undefined;
|
|
317
|
+
}, {
|
|
318
|
+
name: string;
|
|
319
|
+
segment_id?: string | undefined;
|
|
320
|
+
segmentId?: string | undefined;
|
|
321
|
+
description?: string | undefined;
|
|
322
|
+
pain_points?: unknown[] | undefined;
|
|
323
|
+
painPoints?: unknown[] | undefined;
|
|
324
|
+
goals?: unknown[] | undefined;
|
|
325
|
+
objections?: {
|
|
326
|
+
[x: string]: unknown;
|
|
327
|
+
} | undefined;
|
|
328
|
+
messaging_hints?: {
|
|
329
|
+
[x: string]: unknown;
|
|
330
|
+
} | undefined;
|
|
331
|
+
messagingHints?: {
|
|
332
|
+
[x: string]: unknown;
|
|
333
|
+
} | undefined;
|
|
334
|
+
}>>;
|
|
335
|
+
/**
|
|
336
|
+
* Машинные ожидания реплики: что раннер песочницы обязан увидеть в ответе агента на неё.
|
|
337
|
+
*
|
|
338
|
+
* ⚠️ Без этой схемы поле не просто «не валидируется», а ИСЧЕЗАЕТ: zod стрипает неизвестные ключи
|
|
339
|
+
* молча, и ожидания не доехали бы до backend вовсе. Вторая точка потери — маппинг сабмита, где
|
|
340
|
+
* реплики пересобираются по явному списку полей.
|
|
341
|
+
*/
|
|
342
|
+
export declare const scenarioTurnExpectationSchema: z.ZodObject<{
|
|
343
|
+
triggers: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
344
|
+
noTriggers: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
345
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
346
|
+
noTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
347
|
+
answerContains: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
348
|
+
answerNotContains: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
199
349
|
}, z.core.$strip>;
|
|
200
350
|
export declare const scenarioSituationSchema: z.ZodObject<{
|
|
201
351
|
role: z.ZodEnum<{
|
|
@@ -203,6 +353,14 @@ export declare const scenarioSituationSchema: z.ZodObject<{
|
|
|
203
353
|
agent: "agent";
|
|
204
354
|
}>;
|
|
205
355
|
text: z.ZodString;
|
|
356
|
+
expect: z.ZodOptional<z.ZodObject<{
|
|
357
|
+
triggers: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
358
|
+
noTriggers: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
359
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
360
|
+
noTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
361
|
+
answerContains: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
362
|
+
answerNotContains: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
363
|
+
}, z.core.$strip>>;
|
|
206
364
|
}, z.core.$strip>;
|
|
207
365
|
export declare const generatedScenarioSchema: z.ZodPipe<z.ZodObject<{
|
|
208
366
|
name: z.ZodString;
|
|
@@ -215,6 +373,14 @@ export declare const generatedScenarioSchema: z.ZodPipe<z.ZodObject<{
|
|
|
215
373
|
agent: "agent";
|
|
216
374
|
}>;
|
|
217
375
|
text: z.ZodString;
|
|
376
|
+
expect: z.ZodOptional<z.ZodObject<{
|
|
377
|
+
triggers: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
378
|
+
noTriggers: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
379
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
380
|
+
noTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
381
|
+
answerContains: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
382
|
+
answerNotContains: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
383
|
+
}, z.core.$strip>>;
|
|
218
384
|
}, z.core.$strip>>;
|
|
219
385
|
}, z.core.$strip>, z.ZodTransform<{
|
|
220
386
|
segment_ids: string[] | undefined;
|
|
@@ -222,6 +388,14 @@ export declare const generatedScenarioSchema: z.ZodPipe<z.ZodObject<{
|
|
|
222
388
|
situations: {
|
|
223
389
|
role: "client" | "agent";
|
|
224
390
|
text: string;
|
|
391
|
+
expect?: {
|
|
392
|
+
triggers?: string[] | undefined;
|
|
393
|
+
noTriggers?: string[] | undefined;
|
|
394
|
+
tools?: string[] | undefined;
|
|
395
|
+
noTools?: string[] | undefined;
|
|
396
|
+
answerContains?: string[] | undefined;
|
|
397
|
+
answerNotContains?: string[] | undefined;
|
|
398
|
+
} | undefined;
|
|
225
399
|
}[];
|
|
226
400
|
description?: string | undefined;
|
|
227
401
|
}, {
|
|
@@ -229,6 +403,14 @@ export declare const generatedScenarioSchema: z.ZodPipe<z.ZodObject<{
|
|
|
229
403
|
situations: {
|
|
230
404
|
role: "client" | "agent";
|
|
231
405
|
text: string;
|
|
406
|
+
expect?: {
|
|
407
|
+
triggers?: string[] | undefined;
|
|
408
|
+
noTriggers?: string[] | undefined;
|
|
409
|
+
tools?: string[] | undefined;
|
|
410
|
+
noTools?: string[] | undefined;
|
|
411
|
+
answerContains?: string[] | undefined;
|
|
412
|
+
answerNotContains?: string[] | undefined;
|
|
413
|
+
} | undefined;
|
|
232
414
|
}[];
|
|
233
415
|
description?: string | undefined;
|
|
234
416
|
segment_ids?: string[] | undefined;
|
|
@@ -236,27 +418,32 @@ export declare const generatedScenarioSchema: z.ZodPipe<z.ZodObject<{
|
|
|
236
418
|
}>>;
|
|
237
419
|
export declare const sandboxFindingSchema: z.ZodObject<{
|
|
238
420
|
scenario_id: z.ZodOptional<z.ZodString>;
|
|
421
|
+
scenarioId: z.ZodOptional<z.ZodString>;
|
|
239
422
|
category: z.ZodEnum<{
|
|
240
423
|
other: "other";
|
|
241
424
|
hallucination: "hallucination";
|
|
242
425
|
wrong_action: "wrong_action";
|
|
243
426
|
bad_tone: "bad_tone";
|
|
427
|
+
missed_context: "missed_context";
|
|
244
428
|
wrong_routing: "wrong_routing";
|
|
245
|
-
missed_trigger: "missed_trigger";
|
|
246
|
-
wrong_pipeline_transition: "wrong_pipeline_transition";
|
|
247
429
|
rag_miss: "rag_miss";
|
|
248
430
|
}>;
|
|
249
431
|
severity: z.ZodEnum<{
|
|
432
|
+
critical: "critical";
|
|
250
433
|
low: "low";
|
|
251
434
|
medium: "medium";
|
|
252
|
-
critical: "critical";
|
|
253
435
|
}>;
|
|
254
|
-
|
|
436
|
+
description: z.ZodOptional<z.ZodString>;
|
|
437
|
+
message: z.ZodOptional<z.ZodString>;
|
|
438
|
+
evidence: z.ZodOptional<z.ZodString>;
|
|
439
|
+
recommendation: z.ZodOptional<z.ZodString>;
|
|
255
440
|
suggestion: z.ZodOptional<z.ZodString>;
|
|
256
441
|
turn_index: z.ZodOptional<z.ZodNumber>;
|
|
442
|
+
turnIndex: z.ZodOptional<z.ZodNumber>;
|
|
257
443
|
}, z.core.$strip>;
|
|
258
444
|
export declare const simulationFindingSchema: z.ZodObject<{
|
|
259
445
|
dialogue_id: z.ZodOptional<z.ZodString>;
|
|
446
|
+
dialogueId: z.ZodOptional<z.ZodString>;
|
|
260
447
|
category: z.ZodEnum<{
|
|
261
448
|
other: "other";
|
|
262
449
|
hallucination: "hallucination";
|
|
@@ -267,13 +454,14 @@ export declare const simulationFindingSchema: z.ZodObject<{
|
|
|
267
454
|
off_topic: "off_topic";
|
|
268
455
|
}>;
|
|
269
456
|
severity: z.ZodEnum<{
|
|
457
|
+
critical: "critical";
|
|
270
458
|
low: "low";
|
|
271
459
|
medium: "medium";
|
|
272
|
-
critical: "critical";
|
|
273
460
|
}>;
|
|
274
461
|
message: z.ZodString;
|
|
275
462
|
suggestion: z.ZodOptional<z.ZodString>;
|
|
276
463
|
reference_message_index: z.ZodOptional<z.ZodNumber>;
|
|
464
|
+
referenceMessageIndex: z.ZodOptional<z.ZodNumber>;
|
|
277
465
|
}, z.core.$strip>;
|
|
278
466
|
export declare const routingRuleLeadStatusSchema: z.ZodObject<{
|
|
279
467
|
lead_status_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -675,6 +863,51 @@ export declare const platformInstagramCommentSchema: z.ZodObject<{
|
|
|
675
863
|
instagram_comment_keywords: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$loose>>>;
|
|
676
864
|
reply_to_story_mentions: z.ZodOptional<z.ZodBoolean>;
|
|
677
865
|
}, z.core.$strict>;
|
|
866
|
+
/**
|
|
867
|
+
* Ссылка на стадию CRM ПОЛНЫМ композитом.
|
|
868
|
+
*
|
|
869
|
+
* ⚠️ Голый `status_id` не годится: статусы 142/143 и одноимённые стадии есть в КАЖДОЙ
|
|
870
|
+
* воронке, и выбор по номеру попал бы не туда.
|
|
871
|
+
*/
|
|
872
|
+
export declare const funnelStageRefSchema: z.ZodObject<{
|
|
873
|
+
pipeline_crm_id: z.ZodString;
|
|
874
|
+
pipeline_id: z.ZodNumber;
|
|
875
|
+
status_id: z.ZodNumber;
|
|
876
|
+
}, z.core.$strict>;
|
|
877
|
+
/**
|
|
878
|
+
* Настройки раздела «Воронка канала».
|
|
879
|
+
*
|
|
880
|
+
* ⚠️ `null` у `decision_gate`/`path_target_stage` — СБРОС; отсутствие поля — «не трогать».
|
|
881
|
+
* Бэкенд ДЕЛЕГИРУЕТ запись сервисам раздела, поэтому здесь нет своей валидации стадий:
|
|
882
|
+
* «стадии разные» и «стадия есть в каталоге площадки» проверяет он, и второй набор правил
|
|
883
|
+
* рядом разошёлся бы с первым.
|
|
884
|
+
*/
|
|
885
|
+
export declare const platformFunnelAnalyticsSchema: z.ZodObject<{
|
|
886
|
+
decision_gate: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
887
|
+
submitted: z.ZodObject<{
|
|
888
|
+
pipeline_crm_id: z.ZodString;
|
|
889
|
+
pipeline_id: z.ZodNumber;
|
|
890
|
+
status_id: z.ZodNumber;
|
|
891
|
+
}, z.core.$strict>;
|
|
892
|
+
approved: z.ZodObject<{
|
|
893
|
+
pipeline_crm_id: z.ZodString;
|
|
894
|
+
pipeline_id: z.ZodNumber;
|
|
895
|
+
status_id: z.ZodNumber;
|
|
896
|
+
}, z.core.$strict>;
|
|
897
|
+
rejected: z.ZodObject<{
|
|
898
|
+
pipeline_crm_id: z.ZodString;
|
|
899
|
+
pipeline_id: z.ZodNumber;
|
|
900
|
+
status_id: z.ZodNumber;
|
|
901
|
+
}, z.core.$strict>;
|
|
902
|
+
}, z.core.$strict>>>;
|
|
903
|
+
path_target_stage: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
904
|
+
pipeline_crm_id: z.ZodString;
|
|
905
|
+
pipeline_id: z.ZodNumber;
|
|
906
|
+
status_id: z.ZodNumber;
|
|
907
|
+
}, z.core.$strict>>>;
|
|
908
|
+
engaged_inbound_count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
909
|
+
stuck_threshold_hours: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
910
|
+
}, z.core.$strict>;
|
|
678
911
|
export declare const platformGeneralSettingsSchema: z.ZodObject<{
|
|
679
912
|
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
680
913
|
off_message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -713,6 +946,18 @@ export declare const coldWelcomeChannelsModeEnum: z.ZodEnum<{
|
|
|
713
946
|
RESTRICT: "RESTRICT";
|
|
714
947
|
ADD: "ADD";
|
|
715
948
|
}>;
|
|
949
|
+
/**
|
|
950
|
+
* Режим правила предохранителя холодных отправок.
|
|
951
|
+
*
|
|
952
|
+
* OFF — правило выключено; WARN — сработавшее правило только записывается в аудит, отправка
|
|
953
|
+
* идёт; BLOCK — отправка останавливается. По умолчанию `active_series` = BLOCK (правило,
|
|
954
|
+
* из-за нарушения которого пришла жалоба клиента), остальные = WARN.
|
|
955
|
+
*/
|
|
956
|
+
export declare const guardModeEnum: z.ZodEnum<{
|
|
957
|
+
OFF: "OFF";
|
|
958
|
+
WARN: "WARN";
|
|
959
|
+
BLOCK: "BLOCK";
|
|
960
|
+
}>;
|
|
716
961
|
export declare const getcourseTransportEnum: z.ZodEnum<{
|
|
717
962
|
Site: "Site";
|
|
718
963
|
Email: "Email";
|
|
@@ -794,6 +1039,22 @@ export declare const platformGetcourseSettingsSchema: z.ZodObject<{
|
|
|
794
1039
|
}, z.core.$strict>>>>;
|
|
795
1040
|
target_department_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
796
1041
|
delivery_check_enabled: z.ZodOptional<z.ZodBoolean>;
|
|
1042
|
+
guard_active_series: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
1043
|
+
OFF: "OFF";
|
|
1044
|
+
WARN: "WARN";
|
|
1045
|
+
BLOCK: "BLOCK";
|
|
1046
|
+
}>>>;
|
|
1047
|
+
guard_active_application: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
1048
|
+
OFF: "OFF";
|
|
1049
|
+
WARN: "WARN";
|
|
1050
|
+
BLOCK: "BLOCK";
|
|
1051
|
+
}>>>;
|
|
1052
|
+
guard_paid: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
1053
|
+
OFF: "OFF";
|
|
1054
|
+
WARN: "WARN";
|
|
1055
|
+
BLOCK: "BLOCK";
|
|
1056
|
+
}>>>;
|
|
1057
|
+
quiet_days: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
797
1058
|
delivery_field_map: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
798
1059
|
Site: "Site";
|
|
799
1060
|
Email: "Email";
|
|
@@ -837,7 +1098,7 @@ export declare function setupConfirmation(input: {
|
|
|
837
1098
|
export declare function withInstructions(response: unknown, instructions: readonly string[]): unknown;
|
|
838
1099
|
export declare function buildKnowledgeSpaceListQuery(scopeType?: string, channelId?: string): string;
|
|
839
1100
|
export declare function buildListQuery(params: Record<string, string | number | boolean | string[] | undefined>): string;
|
|
840
|
-
export declare function buildVariableListQuery(scope: 'WORKSPACE' | 'CHANNEL', platformId?: string, filter?: 'all' | 'variables' | 'constants'): string;
|
|
1101
|
+
export declare function buildVariableListQuery(scope: 'WORKSPACE' | 'CHANNEL', platformId?: string, filter?: 'all' | 'variables' | 'constants', limit?: number, cursor?: string): string;
|
|
841
1102
|
export declare function buildVariableScopeQuery(scope: 'WORKSPACE' | 'CHANNEL', platformId?: string): string;
|
|
842
1103
|
export declare function buildFileListQuery(input: {
|
|
843
1104
|
file_type?: string;
|
|
@@ -862,6 +1123,7 @@ export declare function mapPlatformVariablesConfigInput(input: z.infer<typeof pl
|
|
|
862
1123
|
export declare function mapPlatformCrmBehaviorInput(input: z.infer<typeof platformCrmBehaviorSchema>): Record<string, unknown>;
|
|
863
1124
|
export declare function mapPlatformWidgetMarketingInput(input: z.infer<typeof platformWidgetMarketingSchema>): Record<string, unknown>;
|
|
864
1125
|
export declare function mapPlatformInstagramCommentInput(input: z.infer<typeof platformInstagramCommentSchema>): Record<string, unknown>;
|
|
1126
|
+
export declare function mapPlatformFunnelAnalyticsInput(input: z.infer<typeof platformFunnelAnalyticsSchema>): Record<string, unknown>;
|
|
865
1127
|
export declare function mapPlatformGeneralSettingsInput(input: z.infer<typeof platformGeneralSettingsSchema>): Record<string, unknown>;
|
|
866
1128
|
export declare function mapPlatformSalebotSettingsInput(input: z.infer<typeof platformSalebotSettingsSchema>): Record<string, unknown>;
|
|
867
1129
|
export declare function mapPlatformSmsgorodSettingsInput(input: z.infer<typeof platformSmsgorodSettingsSchema>): Record<string, unknown>;
|