@besales/mcp 0.31.0 → 0.33.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 +9 -2
- package/dist/instructions/server-instructions.d.ts +1 -1
- package/dist/instructions/server-instructions.js +8 -0
- package/dist/instructions/server-instructions.js.map +1 -1
- package/dist/resources/docs/crm-integration.md +2 -2
- package/dist/schemas/mcp-tools.json +1036 -5
- package/dist/tools/definitions/follow-up.d.ts +84 -0
- package/dist/tools/definitions/follow-up.js +161 -0
- package/dist/tools/definitions/follow-up.js.map +1 -0
- package/dist/tools/definitions/knowledge.d.ts +2 -2
- package/dist/tools/definitions/platform-setup.d.ts +91 -0
- package/dist/tools/definitions/platform-setup.js +355 -1
- package/dist/tools/definitions/platform-setup.js.map +1 -1
- package/dist/tools/definitions/scheduled-tasks.d.ts +24 -0
- package/dist/tools/definitions/scheduled-tasks.js +124 -0
- package/dist/tools/definitions/scheduled-tasks.js.map +1 -0
- package/dist/tools/definitions/shared.d.ts +4 -0
- package/dist/tools/definitions/shared.js +14 -0
- package/dist/tools/definitions/shared.js.map +1 -1
- package/dist/tools/definitions.d.ts +123 -2
- package/dist/tools/definitions.js +4 -0
- package/dist/tools/definitions.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const reactivationConfigSchema: z.ZodObject<{
|
|
3
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
4
|
+
filterMode: z.ZodOptional<z.ZodEnum<{
|
|
5
|
+
status: "status";
|
|
6
|
+
variable: "variable";
|
|
7
|
+
eventType: "eventType";
|
|
8
|
+
}>>;
|
|
9
|
+
sequenceConditions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
10
|
+
variable: z.ZodString;
|
|
11
|
+
op: z.ZodEnum<{
|
|
12
|
+
in: "in";
|
|
13
|
+
eq: "eq";
|
|
14
|
+
neq: "neq";
|
|
15
|
+
}>;
|
|
16
|
+
value: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
17
|
+
}, z.core.$loose>>>;
|
|
18
|
+
steps: z.ZodArray<z.ZodObject<{
|
|
19
|
+
stepType: z.ZodOptional<z.ZodEnum<{
|
|
20
|
+
message: "message";
|
|
21
|
+
webhook: "webhook";
|
|
22
|
+
}>>;
|
|
23
|
+
scheduleMode: z.ZodOptional<z.ZodEnum<{
|
|
24
|
+
offset: "offset";
|
|
25
|
+
clock: "clock";
|
|
26
|
+
}>>;
|
|
27
|
+
anchorMode: z.ZodOptional<z.ZodEnum<{
|
|
28
|
+
variable: "variable";
|
|
29
|
+
last_inbound: "last_inbound";
|
|
30
|
+
}>>;
|
|
31
|
+
anchorVariable: z.ZodOptional<z.ZodString>;
|
|
32
|
+
atTime: z.ZodOptional<z.ZodString>;
|
|
33
|
+
dayOffset: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
validityMinutes: z.ZodOptional<z.ZodNumber>;
|
|
35
|
+
slotGroup: z.ZodOptional<z.ZodString>;
|
|
36
|
+
conditions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
37
|
+
variable: z.ZodString;
|
|
38
|
+
op: z.ZodEnum<{
|
|
39
|
+
in: "in";
|
|
40
|
+
eq: "eq";
|
|
41
|
+
neq: "neq";
|
|
42
|
+
}>;
|
|
43
|
+
value: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
44
|
+
}, z.core.$loose>>>;
|
|
45
|
+
delayHours: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
delayMinutes: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
messageConfig: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
|
48
|
+
}, z.core.$loose>>;
|
|
49
|
+
}, z.core.$loose>;
|
|
50
|
+
/**
|
|
51
|
+
* Применяет типизированную схему к `config` ТОЛЬКО для реактивационных цепочек.
|
|
52
|
+
*
|
|
53
|
+
* Через `z.union([reactivationConfigSchema, anyObjectSchema])` это делать нельзя: второй вариант
|
|
54
|
+
* принимает любой объект, поэтому union проходит всегда и ограничения (`steps.min(1)`,
|
|
55
|
+
* `filterMode` enum) не срабатывают ни разу — типизация выглядит рабочей, но её нет.
|
|
56
|
+
*
|
|
57
|
+
* @param input - Разобранный ввод тула
|
|
58
|
+
* @param ctx - Контекст zod для добавления ошибок
|
|
59
|
+
*/
|
|
60
|
+
export declare const refineFollowUpConfig: (input: {
|
|
61
|
+
type?: unknown;
|
|
62
|
+
config?: unknown;
|
|
63
|
+
}, ctx: z.RefinementCtx) => void;
|
|
64
|
+
export declare const followUpSequenceListSchema: z.ZodObject<{
|
|
65
|
+
platform_id: z.ZodString;
|
|
66
|
+
sequence_id: z.ZodOptional<z.ZodString>;
|
|
67
|
+
include_config: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
+
}, z.core.$strip>;
|
|
69
|
+
export declare const followUpStepStatsSchema: z.ZodObject<{
|
|
70
|
+
platform_id: z.ZodString;
|
|
71
|
+
sequence_id: z.ZodString;
|
|
72
|
+
from: z.ZodOptional<z.ZodString>;
|
|
73
|
+
to: z.ZodOptional<z.ZodString>;
|
|
74
|
+
}, z.core.$strip>;
|
|
75
|
+
export declare const followUpTools: (import("./shared.js").ToolDefinition<{
|
|
76
|
+
platform_id: string;
|
|
77
|
+
sequence_id?: string | undefined;
|
|
78
|
+
include_config?: boolean | undefined;
|
|
79
|
+
}> | import("./shared.js").ToolDefinition<{
|
|
80
|
+
platform_id: string;
|
|
81
|
+
sequence_id: string;
|
|
82
|
+
from?: string | undefined;
|
|
83
|
+
to?: string | undefined;
|
|
84
|
+
}>)[];
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { anyObjectSchema, buildListQuery, defineTool, uuidSchema, withInstructions, } from './shared.js';
|
|
3
|
+
/**
|
|
4
|
+
* Схема конфига реактивационной цепочки.
|
|
5
|
+
*
|
|
6
|
+
* ⚠️ Ключи ВНУТРИ `config` — camelCase, в отличие от snake_case параметров тулов: `config`
|
|
7
|
+
* уходит в тело запроса БЕЗ преобразования, а рантайм читает `anchorMode`/`anchorVariable`/
|
|
8
|
+
* `slotGroup`. Назвать их в snake_case значило бы сохранить конфиг, который рантайм не
|
|
9
|
+
* прочитает: календарный шаг молча стал бы обычным offset-шагом.
|
|
10
|
+
*
|
|
11
|
+
* ⚠️ `.passthrough()` на каждом уровне обязателен по двум причинам: legacy-конфиги несут поля
|
|
12
|
+
* вне этой схемы (`finalAction`, `maxCycleCount`, `webhookConfig`, …), и сама схема исполняется
|
|
13
|
+
* на машине оператора — она обновляется независимо от бэкенда и не должна отвергать конфиг,
|
|
14
|
+
* который бэкенд принял бы.
|
|
15
|
+
*/
|
|
16
|
+
const variableConditionSchema = z
|
|
17
|
+
.object({
|
|
18
|
+
variable: z.string().describe('Имя per-contact переменной'),
|
|
19
|
+
op: z.enum(['eq', 'neq', 'in']),
|
|
20
|
+
value: z
|
|
21
|
+
.union([z.string(), z.array(z.string())])
|
|
22
|
+
.describe("Строка для eq/neq, непустой массив непустых строк для 'in'"),
|
|
23
|
+
})
|
|
24
|
+
.passthrough();
|
|
25
|
+
const reactivationStepSchema = z
|
|
26
|
+
.object({
|
|
27
|
+
stepType: z.enum(['message', 'webhook']).optional(),
|
|
28
|
+
scheduleMode: z
|
|
29
|
+
.enum(['offset', 'clock'])
|
|
30
|
+
.optional()
|
|
31
|
+
.describe("'clock' — время суток + сдвиг дней вместо задержки от последней активности"),
|
|
32
|
+
anchorMode: z
|
|
33
|
+
.enum(['last_inbound', 'variable'])
|
|
34
|
+
.optional()
|
|
35
|
+
.describe("'variable' — расписание считается от даты из переменной контакта (календарная цепочка)"),
|
|
36
|
+
anchorVariable: z
|
|
37
|
+
.string()
|
|
38
|
+
.optional()
|
|
39
|
+
.describe('Имя переменной с якорной датой. Обязательно при anchorMode=variable; переменная должна ' +
|
|
40
|
+
'существовать у платформы и НЕ быть константой'),
|
|
41
|
+
atTime: z.string().optional().describe('Время суток "HH:MM" для scheduleMode=clock'),
|
|
42
|
+
dayOffset: z
|
|
43
|
+
.number()
|
|
44
|
+
.int()
|
|
45
|
+
.min(0)
|
|
46
|
+
.max(30)
|
|
47
|
+
.optional()
|
|
48
|
+
.describe('Сдвиг в днях от якоря для scheduleMode=clock'),
|
|
49
|
+
validityMinutes: z
|
|
50
|
+
.number()
|
|
51
|
+
.optional()
|
|
52
|
+
.describe('Окно валидности слота. Меньше 10 минут крон почти всегда промахнётся'),
|
|
53
|
+
slotGroup: z
|
|
54
|
+
.string()
|
|
55
|
+
.optional()
|
|
56
|
+
.describe('Метка взаимоисключающих вариантов одного момента (first-match-wins). Варианты ОБЯЗАНЫ ' +
|
|
57
|
+
'идти в steps подряд: разнесённые по цепочке перестают быть взаимоисключающими'),
|
|
58
|
+
conditions: z
|
|
59
|
+
.array(variableConditionSchema)
|
|
60
|
+
.max(3)
|
|
61
|
+
.optional()
|
|
62
|
+
.describe('Условия на переменные контакта; не прошли — шаг пропускается'),
|
|
63
|
+
delayHours: z.number().optional(),
|
|
64
|
+
delayMinutes: z.number().optional(),
|
|
65
|
+
messageConfig: anyObjectSchema.optional(),
|
|
66
|
+
})
|
|
67
|
+
.passthrough();
|
|
68
|
+
export const reactivationConfigSchema = z
|
|
69
|
+
.object({
|
|
70
|
+
enabled: z.boolean().optional(),
|
|
71
|
+
filterMode: z
|
|
72
|
+
.enum(['status', 'eventType', 'variable'])
|
|
73
|
+
.optional()
|
|
74
|
+
.describe('Режим отбора контактов. Неизвестное значение НЕ включает ни один фильтр — цепочка уйдёт ' +
|
|
75
|
+
'всем контактам канала, поэтому бэкенд отвергает такой конфиг'),
|
|
76
|
+
sequenceConditions: z
|
|
77
|
+
.array(variableConditionSchema)
|
|
78
|
+
.optional()
|
|
79
|
+
.describe("Обязателен и непуст при filterMode='variable'"),
|
|
80
|
+
steps: z.array(reactivationStepSchema).min(1),
|
|
81
|
+
})
|
|
82
|
+
.passthrough();
|
|
83
|
+
/**
|
|
84
|
+
* Применяет типизированную схему к `config` ТОЛЬКО для реактивационных цепочек.
|
|
85
|
+
*
|
|
86
|
+
* Через `z.union([reactivationConfigSchema, anyObjectSchema])` это делать нельзя: второй вариант
|
|
87
|
+
* принимает любой объект, поэтому union проходит всегда и ограничения (`steps.min(1)`,
|
|
88
|
+
* `filterMode` enum) не срабатывают ни разу — типизация выглядит рабочей, но её нет.
|
|
89
|
+
*
|
|
90
|
+
* @param input - Разобранный ввод тула
|
|
91
|
+
* @param ctx - Контекст zod для добавления ошибок
|
|
92
|
+
*/
|
|
93
|
+
export const refineFollowUpConfig = (input, ctx) => {
|
|
94
|
+
if (input.type !== 'INACTIVE_USER_REACTIVATION') {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const parsed = reactivationConfigSchema.safeParse(input.config);
|
|
98
|
+
if (parsed.success) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
for (const issue of parsed.error.issues) {
|
|
102
|
+
ctx.addIssue({
|
|
103
|
+
code: z.ZodIssueCode.custom,
|
|
104
|
+
path: ['config', ...issue.path],
|
|
105
|
+
message: issue.message,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
export const followUpSequenceListSchema = z.object({
|
|
110
|
+
platform_id: uuidSchema,
|
|
111
|
+
sequence_id: uuidSchema
|
|
112
|
+
.optional()
|
|
113
|
+
.describe('Вернуть одну цепочку вместе с полным конфигом'),
|
|
114
|
+
include_config: z
|
|
115
|
+
.boolean()
|
|
116
|
+
.optional()
|
|
117
|
+
.describe('Отдать конфиги всех цепочек. По умолчанию не отдаются — они объёмные'),
|
|
118
|
+
});
|
|
119
|
+
export const followUpStepStatsSchema = z.object({
|
|
120
|
+
platform_id: uuidSchema,
|
|
121
|
+
sequence_id: uuidSchema,
|
|
122
|
+
from: z.string().optional().describe('Начало окна, ISO-дата. По умолчанию 30 дней назад'),
|
|
123
|
+
to: z.string().optional().describe('Конец окна, ISO-дата. По умолчанию сейчас'),
|
|
124
|
+
});
|
|
125
|
+
export const followUpTools = [
|
|
126
|
+
defineTool({
|
|
127
|
+
name: 'besales_followup_sequence_list',
|
|
128
|
+
requiredFields: ['platform_id'],
|
|
129
|
+
schema: followUpSequenceListSchema,
|
|
130
|
+
// Параметры клеим в путь: транспорт (`ApiToolRequest`) знает только method/path/body, и
|
|
131
|
+
// отдельное поле `query` было бы молча выброшено — тул вернул бы 200 без учёта фильтров.
|
|
132
|
+
createRequest: (input) => ({
|
|
133
|
+
method: 'GET',
|
|
134
|
+
path: `/platforms/${input.platform_id}/follow-up/sequences${buildListQuery({
|
|
135
|
+
sequence_id: input.sequence_id,
|
|
136
|
+
include_config: input.include_config,
|
|
137
|
+
})}`,
|
|
138
|
+
}),
|
|
139
|
+
enhanceResponse: (response) => withInstructions(response, [
|
|
140
|
+
'besales_followup_sequence_upsert заменяет config ЦЕЛИКОМ: прочитай конфиг здесь (sequence_id) и пришли ПОЛНЫЙ желаемый набор шагов, а не дельту.',
|
|
141
|
+
'Без sequence_id и include_config конфиги не отдаются — так список остаётся дешёвым по контексту.',
|
|
142
|
+
]),
|
|
143
|
+
}),
|
|
144
|
+
defineTool({
|
|
145
|
+
name: 'besales_followup_step_stats',
|
|
146
|
+
requiredFields: ['platform_id', 'sequence_id'],
|
|
147
|
+
schema: followUpStepStatsSchema,
|
|
148
|
+
createRequest: (input) => ({
|
|
149
|
+
method: 'GET',
|
|
150
|
+
path: `/platforms/${input.platform_id}/follow-up/sequences/${input.sequence_id}/step-stats${buildListQuery({ from: input.from, to: input.to })}`,
|
|
151
|
+
}),
|
|
152
|
+
enhanceResponse: (response) => withInstructions(response, [
|
|
153
|
+
'wasSent=false НЕ означает «отправка не удалась»: SEND_FAILED пишется только если до fence не дошло (мьют, стадия CRM, тихий канал).',
|
|
154
|
+
'SHADOWED — вариант слота, который не оценивался, потому что слот уже закрыт отправкой другого варианта. Это не ошибка.',
|
|
155
|
+
'SENT_UNVERIFIED — отправка зависла после fence: исходом владеет recovery, повтор запрещён.',
|
|
156
|
+
'waitingUpperBound — ВЕРХНЯЯ оценка ожидающих: прогресс создаётся всем включённым цепочкам платформы без проверки sequenceConditions.',
|
|
157
|
+
'Окно по умолчанию — 30 дней; для более раннего периода передай from/to.',
|
|
158
|
+
]),
|
|
159
|
+
}),
|
|
160
|
+
];
|
|
161
|
+
//# sourceMappingURL=follow-up.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"follow-up.js","sourceRoot":"","sources":["../../../src/tools/definitions/follow-up.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,EACV,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;GAYG;AACH,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC3D,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACxC,QAAQ,CAAC,4DAA4D,CAAC;CAC1E,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,YAAY,EAAE,CAAC;SACZ,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SACzB,QAAQ,EAAE;SACV,QAAQ,CAAC,4EAA4E,CAAC;IACzF,UAAU,EAAE,CAAC;SACV,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;SAClC,QAAQ,EAAE;SACV,QAAQ,CACP,wFAAwF,CACzF;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yFAAyF;QACvF,+CAA+C,CAClD;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACpF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sEAAsE,CAAC;IACnF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,wFAAwF;QACtF,+EAA+E,CAClF;IACH,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,uBAAuB,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,aAAa,EAAE,eAAe,CAAC,QAAQ,EAAE;CAC1C,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,CAAC;SACV,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;SACzC,QAAQ,EAAE;SACV,QAAQ,CACP,0FAA0F;QACxF,8DAA8D,CACjE;IACH,kBAAkB,EAAE,CAAC;SAClB,KAAK,CAAC,uBAAuB,CAAC;SAC9B,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9C,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAA2C,EAC3C,GAAoB,EACd,EAAE;IACR,IAAI,KAAK,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,wBAAwB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxC,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;YAC/B,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,UAAU;SACpB,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,sEAAsE,CAAC;CACpF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,UAAU;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACzF,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CAChF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,UAAU,CAAC;QACT,IAAI,EAAE,gCAAgC;QACtC,cAAc,EAAE,CAAC,aAAa,CAAC;QAC/B,MAAM,EAAE,0BAA0B;QAClC,wFAAwF;QACxF,yFAAyF;QACzF,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,KAAK,CAAC,WAAW,uBAAuB,cAAc,CAAC;gBACzE,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;aACrC,CAAC,EAAE;SACL,CAAC;QACF,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5B,gBAAgB,CAAC,QAAQ,EAAE;YACzB,kJAAkJ;YAClJ,kGAAkG;SACnG,CAAC;KACL,CAAC;IACF,UAAU,CAAC;QACT,IAAI,EAAE,6BAA6B;QACnC,cAAc,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;QAC9C,MAAM,EAAE,uBAAuB;QAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,KAAK,CAAC,WAAW,wBAAwB,KAAK,CAAC,WAAW,cAAc,cAAc,CACxG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CACnC,EAAE;SACJ,CAAC;QACF,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5B,gBAAgB,CAAC,QAAQ,EAAE;YACzB,qIAAqI;YACrI,wHAAwH;YACxH,4FAA4F;YAC5F,sIAAsI;YACtI,yEAAyE;SAC1E,CAAC;KACL,CAAC;CACH,CAAC"}
|
|
@@ -65,7 +65,7 @@ export declare const knowledgeTools: (import("./shared.js").ToolDefinition<{
|
|
|
65
65
|
}> | import("./shared.js").ToolDefinition<{
|
|
66
66
|
knowledge_space_id: string;
|
|
67
67
|
workspace_id?: string | undefined;
|
|
68
|
-
status?: "LOADED" | "SPLIT" | "EMBEDDINGS_GENERATED" | "VECTOR_DB_UPLOADED" | "COMPLETED" | "
|
|
68
|
+
status?: "FAILED" | "LOADED" | "SPLIT" | "EMBEDDINGS_GENERATED" | "VECTOR_DB_UPLOADED" | "COMPLETED" | "TEXT_EXTRACTED" | "CHUNKS_SAVED" | undefined;
|
|
69
69
|
page?: number | undefined;
|
|
70
70
|
limit?: number | undefined;
|
|
71
71
|
}> | import("./shared.js").ToolDefinition<{
|
|
@@ -149,7 +149,7 @@ export declare const knowledgeTools: (import("./shared.js").ToolDefinition<{
|
|
|
149
149
|
}> | import("./shared.js").ToolDefinition<{
|
|
150
150
|
knowledge_space_id: string;
|
|
151
151
|
workspace_id?: string | undefined;
|
|
152
|
-
status?: "
|
|
152
|
+
status?: "PENDING" | "FAILED" | "COMPLETED" | "CRAWLING" | "PROCESSING" | undefined;
|
|
153
153
|
page?: number | undefined;
|
|
154
154
|
limit?: number | undefined;
|
|
155
155
|
}> | import("./shared.js").ToolDefinition<{
|
|
@@ -44,6 +44,93 @@ export declare const platformSetupTools: (import("./shared.js").ToolDefinition<{
|
|
|
44
44
|
}> | import("./shared.js").ToolDefinition<{
|
|
45
45
|
job_id: string;
|
|
46
46
|
workspace_id?: string | undefined;
|
|
47
|
+
}> | import("./shared.js").ToolDefinition<{
|
|
48
|
+
platform_id: string;
|
|
49
|
+
crm_id: string;
|
|
50
|
+
channels: string[];
|
|
51
|
+
contacts: {
|
|
52
|
+
contact_id: string;
|
|
53
|
+
deal_id?: string | undefined;
|
|
54
|
+
transport?: string | undefined;
|
|
55
|
+
dialog_id?: string | undefined;
|
|
56
|
+
lead_last_active_at?: string | undefined;
|
|
57
|
+
segment_entered_at?: string | undefined;
|
|
58
|
+
}[];
|
|
59
|
+
workspace_id?: string | undefined;
|
|
60
|
+
launch_type?: "status" | undefined;
|
|
61
|
+
funnel?: string | undefined;
|
|
62
|
+
segment?: string | undefined;
|
|
63
|
+
cohort_label?: string | undefined;
|
|
64
|
+
message_variant?: string | undefined;
|
|
65
|
+
found_count?: number | undefined;
|
|
66
|
+
product_code?: string | undefined;
|
|
67
|
+
product_name?: string | undefined;
|
|
68
|
+
deal_fields?: Record<string, string | number | boolean | null> | undefined;
|
|
69
|
+
confirm?: boolean | undefined;
|
|
70
|
+
check_messenger_presence?: boolean | undefined;
|
|
71
|
+
dedup_window_days?: number | undefined;
|
|
72
|
+
dedup_scope?: "any" | "same_funnel" | undefined;
|
|
73
|
+
preflight?: {
|
|
74
|
+
enabled?: boolean | undefined;
|
|
75
|
+
product_title?: string | undefined;
|
|
76
|
+
product_match_key?: string | undefined;
|
|
77
|
+
offer_id?: number | undefined;
|
|
78
|
+
other_product_active_deal_mode?: "warn" | "block" | "ignore" | undefined;
|
|
79
|
+
} | undefined;
|
|
80
|
+
chunk_size?: number | undefined;
|
|
81
|
+
explicit_confirmation?: true | undefined;
|
|
82
|
+
confirmation_reason?: string | undefined;
|
|
83
|
+
}> | import("./shared.js").ToolDefinition<{
|
|
84
|
+
run_id: string;
|
|
85
|
+
workspace_id?: string | undefined;
|
|
86
|
+
}> | import("./shared.js").ToolDefinition<{
|
|
87
|
+
run_id: string;
|
|
88
|
+
workspace_id?: string | undefined;
|
|
89
|
+
status?: "PENDING" | "CLAIMED" | "SENT" | "SKIPPED" | "FAILED" | "UNKNOWN" | undefined;
|
|
90
|
+
cursor?: string | undefined;
|
|
91
|
+
limit?: number | undefined;
|
|
92
|
+
}> | import("./shared.js").ToolDefinition<{
|
|
93
|
+
batch_key: string;
|
|
94
|
+
platform_id: string;
|
|
95
|
+
crm_id: string;
|
|
96
|
+
segments: {
|
|
97
|
+
mode: "status";
|
|
98
|
+
contacts: {
|
|
99
|
+
contact_id: string;
|
|
100
|
+
deal_id?: string | undefined;
|
|
101
|
+
transport?: string | undefined;
|
|
102
|
+
dialog_id?: string | undefined;
|
|
103
|
+
lead_last_active_at?: string | undefined;
|
|
104
|
+
segment_entered_at?: string | undefined;
|
|
105
|
+
}[];
|
|
106
|
+
channels: string[];
|
|
107
|
+
deal_fields: Record<string, string | number | boolean | null>;
|
|
108
|
+
funnel?: string | undefined;
|
|
109
|
+
segment?: string | undefined;
|
|
110
|
+
cohort_label?: string | undefined;
|
|
111
|
+
message_variant?: string | undefined;
|
|
112
|
+
found_count?: number | undefined;
|
|
113
|
+
product_code?: string | undefined;
|
|
114
|
+
product_name?: string | undefined;
|
|
115
|
+
preflight?: {
|
|
116
|
+
enabled?: boolean | undefined;
|
|
117
|
+
product_title?: string | undefined;
|
|
118
|
+
product_match_key?: string | undefined;
|
|
119
|
+
offer_id?: number | undefined;
|
|
120
|
+
other_product_active_deal_mode?: "warn" | "block" | "ignore" | undefined;
|
|
121
|
+
} | undefined;
|
|
122
|
+
check_messenger_presence?: boolean | undefined;
|
|
123
|
+
dedup_window_days?: number | undefined;
|
|
124
|
+
dedup_scope?: "any" | "same_funnel" | undefined;
|
|
125
|
+
chunk_size?: number | undefined;
|
|
126
|
+
}[];
|
|
127
|
+
workspace_id?: string | undefined;
|
|
128
|
+
confirm?: boolean | undefined;
|
|
129
|
+
explicit_confirmation?: true | undefined;
|
|
130
|
+
confirmation_reason?: string | undefined;
|
|
131
|
+
}> | import("./shared.js").ToolDefinition<{
|
|
132
|
+
batch_id: string;
|
|
133
|
+
workspace_id?: string | undefined;
|
|
47
134
|
}> | import("./shared.js").ToolDefinition<{
|
|
48
135
|
platform_id: string;
|
|
49
136
|
workspace_id?: string | undefined;
|
|
@@ -472,6 +559,10 @@ export declare const platformSetupTools: (import("./shared.js").ToolDefinition<{
|
|
|
472
559
|
manual_mute_field_id?: string | null | undefined;
|
|
473
560
|
manual_mute_value?: string | null | undefined;
|
|
474
561
|
manual_mute_active_value?: string | null | undefined;
|
|
562
|
+
create_missing_deal_enabled?: boolean | undefined;
|
|
563
|
+
create_missing_deal_offer_id?: number | null | undefined;
|
|
564
|
+
create_missing_deal_funnel_id?: number | null | undefined;
|
|
565
|
+
create_missing_deal_stage_id?: number | null | undefined;
|
|
475
566
|
} | undefined;
|
|
476
567
|
}> | import("./shared.js").ToolDefinition<{
|
|
477
568
|
audit_log_id: string;
|