@besales/mcp 0.33.0 → 0.37.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.
Files changed (37) hide show
  1. package/README.md +45 -12
  2. package/dist/http/api-client.d.ts +2 -0
  3. package/dist/http/api-client.js +55 -0
  4. package/dist/http/api-client.js.map +1 -1
  5. package/dist/schemas/mcp-tools.json +965 -30
  6. package/dist/tools/definitions/broadcast-analytics.d.ts +28 -7
  7. package/dist/tools/definitions/broadcast-analytics.js +399 -33
  8. package/dist/tools/definitions/broadcast-analytics.js.map +1 -1
  9. package/dist/tools/definitions/broadcast-mailing-variants.d.ts +19 -0
  10. package/dist/tools/definitions/broadcast-mailing-variants.js +107 -0
  11. package/dist/tools/definitions/broadcast-mailing-variants.js.map +1 -0
  12. package/dist/tools/definitions/getcourse-wave.d.ts +147 -0
  13. package/dist/tools/definitions/getcourse-wave.js +505 -0
  14. package/dist/tools/definitions/getcourse-wave.js.map +1 -0
  15. package/dist/tools/definitions/platform-setup.d.ts +73 -8
  16. package/dist/tools/definitions/platform-setup.js +106 -504
  17. package/dist/tools/definitions/platform-setup.js.map +1 -1
  18. package/dist/tools/definitions/scheduled-tasks.d.ts +4 -0
  19. package/dist/tools/definitions/scheduled-tasks.js +14 -2
  20. package/dist/tools/definitions/scheduled-tasks.js.map +1 -1
  21. package/dist/tools/definitions/session.js +6 -4
  22. package/dist/tools/definitions/session.js.map +1 -1
  23. package/dist/tools/definitions/shared.d.ts +53 -0
  24. package/dist/tools/definitions/shared.js +71 -0
  25. package/dist/tools/definitions/shared.js.map +1 -1
  26. package/dist/tools/definitions.d.ts +121 -15
  27. package/dist/tools/definitions.js +2 -0
  28. package/dist/tools/definitions.js.map +1 -1
  29. package/dist/tools/registry-mapping-cases-core.d.ts +34 -0
  30. package/dist/tools/registry-mapping-cases-core.js +700 -0
  31. package/dist/tools/registry-mapping-cases-core.js.map +1 -0
  32. package/dist/tools/registry-mapping-cases-platform.d.ts +2 -0
  33. package/dist/tools/registry-mapping-cases-platform.js +910 -0
  34. package/dist/tools/registry-mapping-cases-platform.js.map +1 -0
  35. package/dist/tools/registry.js +12 -6
  36. package/dist/tools/registry.js.map +1 -1
  37. package/package.json +1 -1
@@ -0,0 +1,107 @@
1
+ import { z } from 'zod';
2
+ import { compactObject, defineTool, uuidSchema, withInstructions } from './shared.js';
3
+ const NAME_MAX_LENGTH = 200;
4
+ const DESCRIPTION_MAX_LENGTH = 4000;
5
+ export const broadcastMailingVariantTools = [
6
+ defineTool({
7
+ name: 'besales_broadcast_mailing_variant_list',
8
+ requiredFields: [],
9
+ defaultWorkspaceId: true,
10
+ schema: z
11
+ .object({
12
+ workspace_id: uuidSchema.optional(),
13
+ include_archived: z.boolean().optional(),
14
+ })
15
+ .strict(),
16
+ createRequest: (input) => ({
17
+ method: 'GET',
18
+ path: `/workspaces/${input.workspace_id}/broadcast-mailing-variants${input.include_archived ? '?includeArchived=true' : ''}`,
19
+ }),
20
+ enhanceResponse: (response) => withInstructions(response, [
21
+ 'Возвращает workspace-scoped каталог «Вариантов рассылки». Для нового запуска выбирай ID активного варианта и передавай его как mailing_variant_id.',
22
+ 'include_archived=true нужен для чтения исторических конфигураций аналитики; архивный вариант нельзя назначить новой волне.',
23
+ ]),
24
+ }),
25
+ defineTool({
26
+ name: 'besales_broadcast_mailing_variant_create',
27
+ requiredFields: ['name'],
28
+ defaultWorkspaceId: true,
29
+ schema: z
30
+ .object({
31
+ workspace_id: uuidSchema.optional(),
32
+ name: z.string().trim().min(1).max(NAME_MAX_LENGTH),
33
+ description: z.string().max(DESCRIPTION_MAX_LENGTH).optional(),
34
+ })
35
+ .strict(),
36
+ createRequest: (input) => ({
37
+ method: 'POST',
38
+ path: `/workspaces/${input.workspace_id}/broadcast-mailing-variants`,
39
+ body: compactObject({
40
+ name: input.name,
41
+ description: input.description,
42
+ }),
43
+ }),
44
+ enhanceResponse: (response) => withInstructions(response, [
45
+ 'Создаёт именованный вариант рассылки или восстанавливает архивный вариант с тем же нормализованным именем.',
46
+ 'Описание фиксирует гипотезу, сообщения и GetCourse-процесс; конкретные запуски по-прежнему различаются cohort_label.',
47
+ ]),
48
+ }),
49
+ defineTool({
50
+ name: 'besales_broadcast_mailing_variant_update',
51
+ requiredFields: ['mailing_variant_id'],
52
+ defaultWorkspaceId: true,
53
+ schema: z
54
+ .object({
55
+ workspace_id: uuidSchema.optional(),
56
+ mailing_variant_id: uuidSchema,
57
+ name: z.string().trim().min(1).max(NAME_MAX_LENGTH).optional(),
58
+ description: z.union([z.string().max(DESCRIPTION_MAX_LENGTH), z.null()]).optional(),
59
+ archived: z.boolean().optional(),
60
+ explicit_confirmation: z.literal(true).optional(),
61
+ })
62
+ .strict()
63
+ .refine((input) => input.name !== undefined ||
64
+ input.description !== undefined ||
65
+ input.archived !== undefined, {
66
+ message: 'Передай хотя бы одно из полей: name, description, archived',
67
+ })
68
+ .refine((input) => input.archived !== true || input.explicit_confirmation === true, {
69
+ message: 'Архивация требует explicit_confirmation=true после подтверждения пользователя',
70
+ path: ['explicit_confirmation'],
71
+ }),
72
+ createRequest: (input) => ({
73
+ method: 'PATCH',
74
+ path: `/workspaces/${input.workspace_id}/broadcast-mailing-variants/${input.mailing_variant_id}`,
75
+ body: compactObject({
76
+ name: input.name,
77
+ description: input.description,
78
+ archived: input.archived,
79
+ }),
80
+ }),
81
+ enhanceResponse: (response) => withInstructions(response, [
82
+ 'Переименование синхронно обновляет legacy-снимок имени в связанных когортах. archived=true скрывает вариант из новых запусков, но сохраняет аналитику.',
83
+ 'archived=true требует explicit_confirmation=true после явного подтверждения пользователя; archived=false восстанавливает вариант без подтверждения.',
84
+ ]),
85
+ }),
86
+ defineTool({
87
+ name: 'besales_broadcast_mailing_variant_delete',
88
+ requiredFields: ['mailing_variant_id', 'explicit_confirmation'],
89
+ defaultWorkspaceId: true,
90
+ schema: z
91
+ .object({
92
+ workspace_id: uuidSchema.optional(),
93
+ mailing_variant_id: uuidSchema,
94
+ explicit_confirmation: z.literal(true),
95
+ })
96
+ .strict(),
97
+ createRequest: (input) => ({
98
+ method: 'DELETE',
99
+ path: `/workspaces/${input.workspace_id}/broadcast-mailing-variants/${input.mailing_variant_id}`,
100
+ }),
101
+ enhanceResponse: (response) => withInstructions(response, [
102
+ 'Архивирует вариант без hard-delete: UUID может уже находиться в отложенном durable-run до создания когорты.',
103
+ 'explicit_confirmation=true передавай только после явного подтверждения пользователя. Архивный вариант скрыт из новых запусков, но сохраняет историю и может быть восстановлен.',
104
+ ]),
105
+ }),
106
+ ];
107
+ //# sourceMappingURL=broadcast-mailing-variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast-mailing-variants.js","sourceRoot":"","sources":["../../../src/tools/definitions/broadcast-mailing-variants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ export declare const getCourseWaveTools: (import("./shared.js").ToolDefinition<{
2
+ platform_id: string;
3
+ crm_id: string;
4
+ channels: string[];
5
+ contacts: {
6
+ contact_id: string;
7
+ deal_id?: string | undefined;
8
+ transport?: string | undefined;
9
+ dialog_id?: string | undefined;
10
+ email?: string | undefined;
11
+ phone?: string | undefined;
12
+ first_name?: string | undefined;
13
+ last_name?: string | undefined;
14
+ lead_last_active_at?: string | undefined;
15
+ segment_entered_at?: string | undefined;
16
+ }[];
17
+ workspace_id?: string | undefined;
18
+ launch_type?: "status" | "board" | "group" | undefined;
19
+ funnel?: string | undefined;
20
+ segment?: string | undefined;
21
+ segment_description?: string | undefined;
22
+ cohort_label?: string | undefined;
23
+ mailing_variant_id?: string | undefined;
24
+ message_variant?: string | undefined;
25
+ found_count?: number | undefined;
26
+ product_code?: string | undefined;
27
+ product_name?: string | undefined;
28
+ deal_fields?: Record<string, string | number | boolean | null> | undefined;
29
+ pipeline_id?: number | undefined;
30
+ status_id?: number | undefined;
31
+ group_id?: number | undefined;
32
+ confirm?: boolean | undefined;
33
+ check_messenger_presence?: boolean | undefined;
34
+ dedup_window_days?: number | undefined;
35
+ dedup_scope?: "any" | "same_funnel" | undefined;
36
+ preflight?: {
37
+ enabled?: boolean | undefined;
38
+ product_title?: string | undefined;
39
+ product_match_key?: string | undefined;
40
+ offer_id?: number | undefined;
41
+ other_product_active_deal_mode?: "warn" | "block" | "ignore" | undefined;
42
+ } | undefined;
43
+ }> | import("./shared.js").ToolDefinition<{
44
+ job_id: string;
45
+ workspace_id?: string | undefined;
46
+ }> | import("./shared.js").ToolDefinition<{
47
+ platform_id: string;
48
+ crm_id: string;
49
+ channels: string[];
50
+ contacts: {
51
+ contact_id: string;
52
+ deal_id?: string | undefined;
53
+ transport?: string | undefined;
54
+ dialog_id?: string | undefined;
55
+ email?: string | undefined;
56
+ phone?: string | undefined;
57
+ first_name?: string | undefined;
58
+ last_name?: string | undefined;
59
+ lead_last_active_at?: string | undefined;
60
+ segment_entered_at?: string | undefined;
61
+ }[];
62
+ workspace_id?: string | undefined;
63
+ launch_key?: string | undefined;
64
+ dry_run_hash?: string | undefined;
65
+ launch_type?: "status" | undefined;
66
+ funnel?: string | undefined;
67
+ segment?: string | undefined;
68
+ segment_description?: string | undefined;
69
+ cohort_label?: string | undefined;
70
+ mailing_variant_id?: string | undefined;
71
+ message_variant?: string | undefined;
72
+ found_count?: number | undefined;
73
+ product_code?: string | undefined;
74
+ product_name?: string | undefined;
75
+ deal_fields?: Record<string, string | number | boolean | null> | undefined;
76
+ confirm?: boolean | undefined;
77
+ check_messenger_presence?: boolean | undefined;
78
+ dedup_window_days?: number | undefined;
79
+ dedup_scope?: "any" | "same_funnel" | undefined;
80
+ preflight?: {
81
+ enabled?: boolean | undefined;
82
+ product_title?: string | undefined;
83
+ product_match_key?: string | undefined;
84
+ offer_id?: number | undefined;
85
+ other_product_active_deal_mode?: "warn" | "block" | "ignore" | undefined;
86
+ } | undefined;
87
+ chunk_size?: number | undefined;
88
+ explicit_confirmation?: true | undefined;
89
+ confirmation_reason?: string | undefined;
90
+ }> | import("./shared.js").ToolDefinition<{
91
+ run_id: string;
92
+ workspace_id?: string | undefined;
93
+ }> | import("./shared.js").ToolDefinition<{
94
+ run_id: string;
95
+ workspace_id?: string | undefined;
96
+ status?: "PENDING" | "CLAIMED" | "SENT" | "SKIPPED" | "FAILED" | "UNKNOWN" | undefined;
97
+ cursor?: string | undefined;
98
+ limit?: number | undefined;
99
+ }> | import("./shared.js").ToolDefinition<{
100
+ batch_key: string;
101
+ platform_id: string;
102
+ crm_id: string;
103
+ segments: {
104
+ contacts: {
105
+ contact_id: string;
106
+ deal_id?: string | undefined;
107
+ transport?: string | undefined;
108
+ dialog_id?: string | undefined;
109
+ email?: string | undefined;
110
+ phone?: string | undefined;
111
+ first_name?: string | undefined;
112
+ last_name?: string | undefined;
113
+ lead_last_active_at?: string | undefined;
114
+ segment_entered_at?: string | undefined;
115
+ }[];
116
+ channels: string[];
117
+ deal_fields: Record<string, string | number | boolean | null>;
118
+ launch_type?: "status" | undefined;
119
+ funnel?: string | undefined;
120
+ segment?: string | undefined;
121
+ segment_description?: string | undefined;
122
+ cohort_label?: string | undefined;
123
+ mailing_variant_id?: string | undefined;
124
+ message_variant?: string | undefined;
125
+ found_count?: number | undefined;
126
+ product_code?: string | undefined;
127
+ product_name?: string | undefined;
128
+ preflight?: {
129
+ enabled?: boolean | undefined;
130
+ product_title?: string | undefined;
131
+ product_match_key?: string | undefined;
132
+ offer_id?: number | undefined;
133
+ other_product_active_deal_mode?: "warn" | "block" | "ignore" | undefined;
134
+ } | undefined;
135
+ check_messenger_presence?: boolean | undefined;
136
+ dedup_window_days?: number | undefined;
137
+ dedup_scope?: "any" | "same_funnel" | undefined;
138
+ chunk_size?: number | undefined;
139
+ }[];
140
+ workspace_id?: string | undefined;
141
+ confirm?: boolean | undefined;
142
+ explicit_confirmation?: true | undefined;
143
+ confirmation_reason?: string | undefined;
144
+ }> | import("./shared.js").ToolDefinition<{
145
+ batch_id: string;
146
+ workspace_id?: string | undefined;
147
+ }>)[];