@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
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
* Do not make direct changes to the file.
|
|
4
4
|
*/
|
|
5
5
|
export interface paths {
|
|
6
|
+
"/api/v2/agents/{agentId}/readiness": {
|
|
7
|
+
parameters: {
|
|
8
|
+
query?: never;
|
|
9
|
+
header?: never;
|
|
10
|
+
path?: never;
|
|
11
|
+
cookie?: never;
|
|
12
|
+
};
|
|
13
|
+
/** Доказательная готовность выбранного агента и текущей версии конфигурации */
|
|
14
|
+
get: operations["AgentReadinessController_get"];
|
|
15
|
+
put?: never;
|
|
16
|
+
post?: never;
|
|
17
|
+
delete?: never;
|
|
18
|
+
options?: never;
|
|
19
|
+
head?: never;
|
|
20
|
+
patch?: never;
|
|
21
|
+
trace?: never;
|
|
22
|
+
};
|
|
6
23
|
"/api/v2/auth/login": {
|
|
7
24
|
parameters: {
|
|
8
25
|
query?: never;
|
|
@@ -235,8 +252,8 @@ export interface paths {
|
|
|
235
252
|
/** @description PKCE S256 challenge — SHA256(code_verifier) base64url-encoded */
|
|
236
253
|
code_challenge: string;
|
|
237
254
|
code_challenge_method: "S256";
|
|
238
|
-
/** @description Requested scopes: base `mcp:*` plus any subset of the optional scopes, in the canonical order `mcp:platform-setup`, `mcp:funnel-test`, `read:campaigns`, `launch:campaigns`. `mcp:*` enables PromptHub/ICP/Sandbox/Knowledge tools; `mcp:platform-setup` enables Platform Setup Bridge mutations; `mcp:funnel-test` permits frozen-plan funnel tests that can send real messages; `read:campaigns` covers cold-welcome preview and broadcast reads; `launch:campaigns` covers cold-welcome/broadcast launches. `besales-mcp connect` always requests the widest string. INVARIANT: a new scope is APPENDED to the optional list — never swapped in for an existing one, or every reconnect silently narrows live keys. */
|
|
239
|
-
scope: "mcp:*" | "mcp:* mcp:platform-setup" | "mcp:* mcp:funnel-test" | "mcp:* mcp:platform-setup mcp:funnel-test" | "mcp:* read:campaigns" | "mcp:* mcp:platform-setup read:campaigns" | "mcp:* mcp:funnel-test read:campaigns" | "mcp:* mcp:platform-setup mcp:funnel-test read:campaigns" | "mcp:* launch:campaigns" | "mcp:* mcp:platform-setup launch:campaigns" | "mcp:* mcp:funnel-test launch:campaigns" | "mcp:* mcp:platform-setup mcp:funnel-test launch:campaigns" | "mcp:* read:campaigns launch:campaigns" | "mcp:* mcp:platform-setup read:campaigns launch:campaigns" | "mcp:* mcp:funnel-test read:campaigns launch:campaigns" | "mcp:* mcp:platform-setup mcp:funnel-test read:campaigns launch:campaigns";
|
|
255
|
+
/** @description Requested scopes: base `mcp:*` plus any subset of the optional scopes, in the canonical order `mcp:platform-setup`, `mcp:funnel-test`, `read:campaigns`, `launch:campaigns`, `read:contacts`, `write:operators`. `mcp:*` enables PromptHub/ICP/Sandbox/Knowledge tools; `mcp:platform-setup` enables Platform Setup Bridge mutations; `mcp:funnel-test` permits frozen-plan funnel tests that can send real messages; `read:campaigns` covers cold-welcome preview and broadcast reads; `launch:campaigns` covers cold-welcome/broadcast launches; `read:contacts` covers contact search, cards and safe diagnostics; `write:operators` permits a CAS-protected local workspace-operator assignment without sending messages. `besales-mcp connect` always requests the widest string. INVARIANT: a new scope is APPENDED to the optional list — never swapped in for an existing one, or every reconnect silently narrows live keys. */
|
|
256
|
+
scope: "mcp:*" | "mcp:* mcp:platform-setup" | "mcp:* mcp:funnel-test" | "mcp:* mcp:platform-setup mcp:funnel-test" | "mcp:* read:campaigns" | "mcp:* mcp:platform-setup read:campaigns" | "mcp:* mcp:funnel-test read:campaigns" | "mcp:* mcp:platform-setup mcp:funnel-test read:campaigns" | "mcp:* launch:campaigns" | "mcp:* mcp:platform-setup launch:campaigns" | "mcp:* mcp:funnel-test launch:campaigns" | "mcp:* mcp:platform-setup mcp:funnel-test launch:campaigns" | "mcp:* read:campaigns launch:campaigns" | "mcp:* mcp:platform-setup read:campaigns launch:campaigns" | "mcp:* mcp:funnel-test read:campaigns launch:campaigns" | "mcp:* mcp:platform-setup mcp:funnel-test read:campaigns launch:campaigns" | "mcp:* read:contacts" | "mcp:* mcp:platform-setup read:contacts" | "mcp:* mcp:funnel-test read:contacts" | "mcp:* mcp:platform-setup mcp:funnel-test read:contacts" | "mcp:* read:campaigns read:contacts" | "mcp:* mcp:platform-setup read:campaigns read:contacts" | "mcp:* mcp:funnel-test read:campaigns read:contacts" | "mcp:* mcp:platform-setup mcp:funnel-test read:campaigns read:contacts" | "mcp:* launch:campaigns read:contacts" | "mcp:* mcp:platform-setup launch:campaigns read:contacts" | "mcp:* mcp:funnel-test launch:campaigns read:contacts" | "mcp:* mcp:platform-setup mcp:funnel-test launch:campaigns read:contacts" | "mcp:* read:campaigns launch:campaigns read:contacts" | "mcp:* mcp:platform-setup read:campaigns launch:campaigns read:contacts" | "mcp:* mcp:funnel-test read:campaigns launch:campaigns read:contacts" | "mcp:* mcp:platform-setup mcp:funnel-test read:campaigns launch:campaigns read:contacts" | "mcp:* write:operators" | "mcp:* mcp:platform-setup write:operators" | "mcp:* mcp:funnel-test write:operators" | "mcp:* mcp:platform-setup mcp:funnel-test write:operators" | "mcp:* read:campaigns write:operators" | "mcp:* mcp:platform-setup read:campaigns write:operators" | "mcp:* mcp:funnel-test read:campaigns write:operators" | "mcp:* mcp:platform-setup mcp:funnel-test read:campaigns write:operators" | "mcp:* launch:campaigns write:operators" | "mcp:* mcp:platform-setup launch:campaigns write:operators" | "mcp:* mcp:funnel-test launch:campaigns write:operators" | "mcp:* mcp:platform-setup mcp:funnel-test launch:campaigns write:operators" | "mcp:* read:campaigns launch:campaigns write:operators" | "mcp:* mcp:platform-setup read:campaigns launch:campaigns write:operators" | "mcp:* mcp:funnel-test read:campaigns launch:campaigns write:operators" | "mcp:* mcp:platform-setup mcp:funnel-test read:campaigns launch:campaigns write:operators" | "mcp:* read:contacts write:operators" | "mcp:* mcp:platform-setup read:contacts write:operators" | "mcp:* mcp:funnel-test read:contacts write:operators" | "mcp:* mcp:platform-setup mcp:funnel-test read:contacts write:operators" | "mcp:* read:campaigns read:contacts write:operators" | "mcp:* mcp:platform-setup read:campaigns read:contacts write:operators" | "mcp:* mcp:funnel-test read:campaigns read:contacts write:operators" | "mcp:* mcp:platform-setup mcp:funnel-test read:campaigns read:contacts write:operators" | "mcp:* launch:campaigns read:contacts write:operators" | "mcp:* mcp:platform-setup launch:campaigns read:contacts write:operators" | "mcp:* mcp:funnel-test launch:campaigns read:contacts write:operators" | "mcp:* mcp:platform-setup mcp:funnel-test launch:campaigns read:contacts write:operators" | "mcp:* read:campaigns launch:campaigns read:contacts write:operators" | "mcp:* mcp:platform-setup read:campaigns launch:campaigns read:contacts write:operators" | "mcp:* mcp:funnel-test read:campaigns launch:campaigns read:contacts write:operators" | "mcp:* mcp:platform-setup mcp:funnel-test read:campaigns launch:campaigns read:contacts write:operators";
|
|
240
257
|
};
|
|
241
258
|
header?: never;
|
|
242
259
|
path?: never;
|
|
@@ -450,6 +467,10 @@ export interface paths {
|
|
|
450
467
|
api_key: string;
|
|
451
468
|
/** Format: uuid */
|
|
452
469
|
workspace_id: string;
|
|
470
|
+
/** @description Workspace name captured at token exchange for local human-readable selection */
|
|
471
|
+
workspace_name: string;
|
|
472
|
+
/** @description Masked account email (for example, o***@example.com); never contains the raw email */
|
|
473
|
+
account_label: string | null;
|
|
453
474
|
/**
|
|
454
475
|
* Format: date-time
|
|
455
476
|
* @description API key expiration (90 days from now)
|
|
@@ -477,6 +498,59 @@ export interface paths {
|
|
|
477
498
|
patch?: never;
|
|
478
499
|
trace?: never;
|
|
479
500
|
};
|
|
501
|
+
"/api/v2/auth/mcp-context": {
|
|
502
|
+
parameters: {
|
|
503
|
+
query?: never;
|
|
504
|
+
header?: never;
|
|
505
|
+
path?: never;
|
|
506
|
+
cookie?: never;
|
|
507
|
+
};
|
|
508
|
+
/**
|
|
509
|
+
* Read safe labels for the current MCP connection
|
|
510
|
+
* @description Lightweight alternative to workspace overview for local workspace selection.
|
|
511
|
+
*/
|
|
512
|
+
get: {
|
|
513
|
+
parameters: {
|
|
514
|
+
query?: never;
|
|
515
|
+
header?: never;
|
|
516
|
+
path?: never;
|
|
517
|
+
cookie?: never;
|
|
518
|
+
};
|
|
519
|
+
requestBody?: never;
|
|
520
|
+
responses: {
|
|
521
|
+
/** @description Current workspace and masked account label */
|
|
522
|
+
200: {
|
|
523
|
+
headers: {
|
|
524
|
+
[name: string]: unknown;
|
|
525
|
+
};
|
|
526
|
+
content: {
|
|
527
|
+
"application/json": {
|
|
528
|
+
/** Format: uuid */
|
|
529
|
+
workspace_id: string;
|
|
530
|
+
workspace_name: string;
|
|
531
|
+
account_label: string | null;
|
|
532
|
+
/** @description Effective scopes of this exact MCP key */
|
|
533
|
+
scopes: string[];
|
|
534
|
+
};
|
|
535
|
+
};
|
|
536
|
+
};
|
|
537
|
+
/** @description MCP key is missing, revoked, or belongs to another workspace */
|
|
538
|
+
403: {
|
|
539
|
+
headers: {
|
|
540
|
+
[name: string]: unknown;
|
|
541
|
+
};
|
|
542
|
+
content?: never;
|
|
543
|
+
};
|
|
544
|
+
};
|
|
545
|
+
};
|
|
546
|
+
put?: never;
|
|
547
|
+
post?: never;
|
|
548
|
+
delete?: never;
|
|
549
|
+
options?: never;
|
|
550
|
+
head?: never;
|
|
551
|
+
patch?: never;
|
|
552
|
+
trace?: never;
|
|
553
|
+
};
|
|
480
554
|
"/api/v2/auth/mcp-connections": {
|
|
481
555
|
parameters: {
|
|
482
556
|
query?: never;
|
|
@@ -890,6 +964,28 @@ export interface paths {
|
|
|
890
964
|
patch?: never;
|
|
891
965
|
trace?: never;
|
|
892
966
|
};
|
|
967
|
+
"/api/v2/workspaces/{workspaceId}/navigation": {
|
|
968
|
+
parameters: {
|
|
969
|
+
query?: never;
|
|
970
|
+
header?: never;
|
|
971
|
+
path?: never;
|
|
972
|
+
cookie?: never;
|
|
973
|
+
};
|
|
974
|
+
get?: never;
|
|
975
|
+
put?: never;
|
|
976
|
+
/**
|
|
977
|
+
* Выбрать один следующий шаг по намерению и живому overview
|
|
978
|
+
* @description Read-only навигатор. Учитывает тип бота, уже выбранные объекты и текущее состояние
|
|
979
|
+
* workspace. Возвращает конкретный MCP tool, аргументы, необходимый ввод человека и способ
|
|
980
|
+
* проверки; сам мутацию не выполняет и readiness не подменяет.
|
|
981
|
+
*/
|
|
982
|
+
post: operations["navigateWorkspaceTask"];
|
|
983
|
+
delete?: never;
|
|
984
|
+
options?: never;
|
|
985
|
+
head?: never;
|
|
986
|
+
patch?: never;
|
|
987
|
+
trace?: never;
|
|
988
|
+
};
|
|
893
989
|
"/api/v2/setup-sessions": {
|
|
894
990
|
parameters: {
|
|
895
991
|
query?: never;
|
|
@@ -5422,7 +5518,10 @@ export interface paths {
|
|
|
5422
5518
|
/** Sanitized setup context with readiness flags */
|
|
5423
5519
|
get: {
|
|
5424
5520
|
parameters: {
|
|
5425
|
-
query?:
|
|
5521
|
+
query?: {
|
|
5522
|
+
/** @description Секции снимка через запятую; agent_summaries исключает полный промпт. */
|
|
5523
|
+
sections?: string;
|
|
5524
|
+
};
|
|
5426
5525
|
header?: never;
|
|
5427
5526
|
path: {
|
|
5428
5527
|
platformId: components["parameters"]["PlatformIdPath"];
|
|
@@ -5449,6 +5548,49 @@ export interface paths {
|
|
|
5449
5548
|
patch?: never;
|
|
5450
5549
|
trace?: never;
|
|
5451
5550
|
};
|
|
5551
|
+
"/api/v2/platforms/{platformId}/setup/trigger-action-catalog": {
|
|
5552
|
+
parameters: {
|
|
5553
|
+
query?: never;
|
|
5554
|
+
header?: never;
|
|
5555
|
+
path?: never;
|
|
5556
|
+
cookie?: never;
|
|
5557
|
+
};
|
|
5558
|
+
/**
|
|
5559
|
+
* Current trigger action schemas, examples and dependencies
|
|
5560
|
+
* @description Каталог строится из боевого `CreateTriggerActionDto` и `TRIGGER_ACTION_CONFIG`.
|
|
5561
|
+
* `actionType` позволяет запросить один тип без загрузки всех схем.
|
|
5562
|
+
*/
|
|
5563
|
+
get: {
|
|
5564
|
+
parameters: {
|
|
5565
|
+
query?: {
|
|
5566
|
+
actionType?: string;
|
|
5567
|
+
};
|
|
5568
|
+
header?: never;
|
|
5569
|
+
path: {
|
|
5570
|
+
platformId: components["parameters"]["PlatformIdPath"];
|
|
5571
|
+
};
|
|
5572
|
+
cookie?: never;
|
|
5573
|
+
};
|
|
5574
|
+
requestBody?: never;
|
|
5575
|
+
responses: {
|
|
5576
|
+
200: {
|
|
5577
|
+
headers: {
|
|
5578
|
+
[name: string]: unknown;
|
|
5579
|
+
};
|
|
5580
|
+
content: {
|
|
5581
|
+
"application/json": components["schemas"]["TriggerActionCatalogResponse"];
|
|
5582
|
+
};
|
|
5583
|
+
};
|
|
5584
|
+
};
|
|
5585
|
+
};
|
|
5586
|
+
put?: never;
|
|
5587
|
+
post?: never;
|
|
5588
|
+
delete?: never;
|
|
5589
|
+
options?: never;
|
|
5590
|
+
head?: never;
|
|
5591
|
+
patch?: never;
|
|
5592
|
+
trace?: never;
|
|
5593
|
+
};
|
|
5452
5594
|
"/api/v2/platforms/{platformId}/agents": {
|
|
5453
5595
|
parameters: {
|
|
5454
5596
|
query?: never;
|
|
@@ -5459,7 +5601,14 @@ export interface paths {
|
|
|
5459
5601
|
/** List agents attached to existing platform */
|
|
5460
5602
|
get: {
|
|
5461
5603
|
parameters: {
|
|
5462
|
-
query?:
|
|
5604
|
+
query?: {
|
|
5605
|
+
/** @description Размер страницы; без него список отдаётся целиком. */
|
|
5606
|
+
limit?: number;
|
|
5607
|
+
/** @description Курсор из предыдущего ответа. */
|
|
5608
|
+
cursor?: string;
|
|
5609
|
+
/** @description Поиск без учёта регистра по name или displayName. */
|
|
5610
|
+
q?: string;
|
|
5611
|
+
};
|
|
5463
5612
|
header?: never;
|
|
5464
5613
|
path: {
|
|
5465
5614
|
platformId: components["parameters"]["PlatformIdPath"];
|
|
@@ -6340,6 +6489,26 @@ export interface paths {
|
|
|
6340
6489
|
patch?: never;
|
|
6341
6490
|
trace?: never;
|
|
6342
6491
|
};
|
|
6492
|
+
"/api/v2/workspaces/{workspaceId}/getcourse-cold-welcome/touch-history/{gcUserId}": {
|
|
6493
|
+
parameters: {
|
|
6494
|
+
query?: never;
|
|
6495
|
+
header?: never;
|
|
6496
|
+
path?: never;
|
|
6497
|
+
cookie?: never;
|
|
6498
|
+
};
|
|
6499
|
+
/**
|
|
6500
|
+
* What we have already sent this person, and by what right
|
|
6501
|
+
* @description Three sources with DIFFERENT keys, joined into one answer. `touches` is the touch journal: a RIGHT taken BEFORE transport, so a row exists even for an attempt that never sent (UNKNOWN, stuck CLAIMED). `sends` is the recipient registry: written AFTER delivery and best-effort, so its absence does NOT prove non-delivery. `firstWelcomeAt` is the earliest mark across the person cards. Do not add `touches` and `sends` together — they answer different questions.
|
|
6502
|
+
*/
|
|
6503
|
+
get: operations["getContactTouchHistory"];
|
|
6504
|
+
put?: never;
|
|
6505
|
+
post?: never;
|
|
6506
|
+
delete?: never;
|
|
6507
|
+
options?: never;
|
|
6508
|
+
head?: never;
|
|
6509
|
+
patch?: never;
|
|
6510
|
+
trace?: never;
|
|
6511
|
+
};
|
|
6343
6512
|
"/api/v2/workspaces/{workspaceId}/getcourse-cold-welcome/preview": {
|
|
6344
6513
|
parameters: {
|
|
6345
6514
|
query?: never;
|
|
@@ -6537,6 +6706,49 @@ export interface paths {
|
|
|
6537
6706
|
patch?: never;
|
|
6538
6707
|
trace?: never;
|
|
6539
6708
|
};
|
|
6709
|
+
"/api/v2/workspaces/{workspaceId}/getcourse-anchor-refresh/{correlationId}": {
|
|
6710
|
+
parameters: {
|
|
6711
|
+
query?: never;
|
|
6712
|
+
header?: never;
|
|
6713
|
+
path?: never;
|
|
6714
|
+
cookie?: never;
|
|
6715
|
+
};
|
|
6716
|
+
/**
|
|
6717
|
+
* Статус фонового перечитывания календарных якорей
|
|
6718
|
+
* @description Retained 24 часа. STALLED означает, что фоновый процесс больше не владеет lock; часть дат могла быть переписана, поэтому перед повтором нужен аудит по correlationId. Отмены нет: уже выполненные частичные перезаписи необратимы. Scope `read:campaigns`.
|
|
6719
|
+
*/
|
|
6720
|
+
get: {
|
|
6721
|
+
parameters: {
|
|
6722
|
+
query?: never;
|
|
6723
|
+
header?: never;
|
|
6724
|
+
path: {
|
|
6725
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
6726
|
+
correlationId: string;
|
|
6727
|
+
};
|
|
6728
|
+
cookie?: never;
|
|
6729
|
+
};
|
|
6730
|
+
requestBody?: never;
|
|
6731
|
+
responses: {
|
|
6732
|
+
/** @description Состояние и terminal result/error */
|
|
6733
|
+
200: {
|
|
6734
|
+
headers: {
|
|
6735
|
+
[name: string]: unknown;
|
|
6736
|
+
};
|
|
6737
|
+
content: {
|
|
6738
|
+
"application/json": components["schemas"]["GetCourseAnchorRefreshStatusResponse"];
|
|
6739
|
+
};
|
|
6740
|
+
};
|
|
6741
|
+
404: components["responses"]["NotFound"];
|
|
6742
|
+
};
|
|
6743
|
+
};
|
|
6744
|
+
put?: never;
|
|
6745
|
+
post?: never;
|
|
6746
|
+
delete?: never;
|
|
6747
|
+
options?: never;
|
|
6748
|
+
head?: never;
|
|
6749
|
+
patch?: never;
|
|
6750
|
+
trace?: never;
|
|
6751
|
+
};
|
|
6540
6752
|
"/api/v2/workspaces/{workspaceId}/getcourse-cold-welcome/batch": {
|
|
6541
6753
|
parameters: {
|
|
6542
6754
|
query?: never;
|
|
@@ -8774,8 +8986,8 @@ export interface paths {
|
|
|
8774
8986
|
get?: never;
|
|
8775
8987
|
put?: never;
|
|
8776
8988
|
/**
|
|
8777
|
-
* Создать External API канал
|
|
8778
|
-
* @description
|
|
8989
|
+
* Создать External API канал и выдать browser-handoff ссылку
|
|
8990
|
+
* @description Секреты не проходят через API/MCP-ответ. Scope `mcp:platform-setup` (или UI JWT).
|
|
8779
8991
|
*/
|
|
8780
8992
|
post: {
|
|
8781
8993
|
parameters: {
|
|
@@ -8792,13 +9004,13 @@ export interface paths {
|
|
|
8792
9004
|
};
|
|
8793
9005
|
};
|
|
8794
9006
|
responses: {
|
|
8795
|
-
/** @description Канал
|
|
9007
|
+
/** @description Канал создан; credentials покажет вошедшему человеку одноразовая страница */
|
|
8796
9008
|
201: {
|
|
8797
9009
|
headers: {
|
|
8798
9010
|
[name: string]: unknown;
|
|
8799
9011
|
};
|
|
8800
9012
|
content: {
|
|
8801
|
-
"application/json": components["schemas"]["
|
|
9013
|
+
"application/json": components["schemas"]["ExternalApiChannelCreated"];
|
|
8802
9014
|
};
|
|
8803
9015
|
};
|
|
8804
9016
|
};
|
|
@@ -8818,7 +9030,7 @@ export interface paths {
|
|
|
8818
9030
|
};
|
|
8819
9031
|
get?: never;
|
|
8820
9032
|
put?: never;
|
|
8821
|
-
/**
|
|
9033
|
+
/** Выдать browser-handoff ссылку на перевыпуск bsl-ключа */
|
|
8822
9034
|
post: {
|
|
8823
9035
|
parameters: {
|
|
8824
9036
|
query?: never;
|
|
@@ -8831,15 +9043,13 @@ export interface paths {
|
|
|
8831
9043
|
};
|
|
8832
9044
|
requestBody?: never;
|
|
8833
9045
|
responses: {
|
|
8834
|
-
/** @description
|
|
9046
|
+
/** @description Ротация произойдёт только при открытии одноразовой страницы */
|
|
8835
9047
|
201: {
|
|
8836
9048
|
headers: {
|
|
8837
9049
|
[name: string]: unknown;
|
|
8838
9050
|
};
|
|
8839
9051
|
content: {
|
|
8840
|
-
"application/json":
|
|
8841
|
-
apiKey: string;
|
|
8842
|
-
};
|
|
9052
|
+
"application/json": components["schemas"]["IssuedCredentialReveal"];
|
|
8843
9053
|
};
|
|
8844
9054
|
};
|
|
8845
9055
|
};
|
|
@@ -8859,7 +9069,7 @@ export interface paths {
|
|
|
8859
9069
|
};
|
|
8860
9070
|
get?: never;
|
|
8861
9071
|
put?: never;
|
|
8862
|
-
/**
|
|
9072
|
+
/** Выдать browser-handoff ссылку на замену webhook-secret */
|
|
8863
9073
|
post: {
|
|
8864
9074
|
parameters: {
|
|
8865
9075
|
query?: never;
|
|
@@ -8872,15 +9082,13 @@ export interface paths {
|
|
|
8872
9082
|
};
|
|
8873
9083
|
requestBody?: never;
|
|
8874
9084
|
responses: {
|
|
8875
|
-
/** @description
|
|
9085
|
+
/** @description Замена произойдёт только при открытии одноразовой страницы */
|
|
8876
9086
|
201: {
|
|
8877
9087
|
headers: {
|
|
8878
9088
|
[name: string]: unknown;
|
|
8879
9089
|
};
|
|
8880
9090
|
content: {
|
|
8881
|
-
"application/json":
|
|
8882
|
-
webhookSecret: string;
|
|
8883
|
-
};
|
|
9091
|
+
"application/json": components["schemas"]["IssuedCredentialReveal"];
|
|
8884
9092
|
};
|
|
8885
9093
|
};
|
|
8886
9094
|
};
|
|
@@ -9158,6 +9366,81 @@ export interface paths {
|
|
|
9158
9366
|
patch?: never;
|
|
9159
9367
|
trace?: never;
|
|
9160
9368
|
};
|
|
9369
|
+
"/api/v2/contacts/{contactId}/diagnostics": {
|
|
9370
|
+
parameters: {
|
|
9371
|
+
query?: never;
|
|
9372
|
+
header?: never;
|
|
9373
|
+
path?: never;
|
|
9374
|
+
cookie?: never;
|
|
9375
|
+
};
|
|
9376
|
+
/**
|
|
9377
|
+
* Диагностика причин молчания, operator workflow, действий и доставки
|
|
9378
|
+
* @description MCP-only read: возвращает метаданные и сохранённые evidence без тел сообщений, аргументов/результатов инструментов и raw error text. Отсутствующий production RAG trace помечается unknown, а не нулём.
|
|
9379
|
+
*/
|
|
9380
|
+
get: {
|
|
9381
|
+
parameters: {
|
|
9382
|
+
query?: {
|
|
9383
|
+
messageId?: string;
|
|
9384
|
+
};
|
|
9385
|
+
header?: never;
|
|
9386
|
+
path: {
|
|
9387
|
+
contactId: string;
|
|
9388
|
+
};
|
|
9389
|
+
cookie?: never;
|
|
9390
|
+
};
|
|
9391
|
+
requestBody?: never;
|
|
9392
|
+
responses: {
|
|
9393
|
+
200: {
|
|
9394
|
+
headers: {
|
|
9395
|
+
[name: string]: unknown;
|
|
9396
|
+
};
|
|
9397
|
+
content: {
|
|
9398
|
+
"application/json": {
|
|
9399
|
+
contact: {
|
|
9400
|
+
[key: string]: unknown;
|
|
9401
|
+
};
|
|
9402
|
+
platform: {
|
|
9403
|
+
[key: string]: unknown;
|
|
9404
|
+
} | null;
|
|
9405
|
+
message: {
|
|
9406
|
+
[key: string]: unknown;
|
|
9407
|
+
} | null;
|
|
9408
|
+
agent: {
|
|
9409
|
+
[key: string]: unknown;
|
|
9410
|
+
} | null;
|
|
9411
|
+
operatorEvents: {
|
|
9412
|
+
[key: string]: unknown;
|
|
9413
|
+
}[];
|
|
9414
|
+
triggerExecutions: {
|
|
9415
|
+
[key: string]: unknown;
|
|
9416
|
+
}[];
|
|
9417
|
+
toolExecutions: {
|
|
9418
|
+
[key: string]: unknown;
|
|
9419
|
+
}[];
|
|
9420
|
+
evidence: {
|
|
9421
|
+
[key: string]: unknown;
|
|
9422
|
+
};
|
|
9423
|
+
limitations: string[];
|
|
9424
|
+
};
|
|
9425
|
+
};
|
|
9426
|
+
};
|
|
9427
|
+
/** @description Контакт или выбранное сообщение не найдено в workspace */
|
|
9428
|
+
404: {
|
|
9429
|
+
headers: {
|
|
9430
|
+
[name: string]: unknown;
|
|
9431
|
+
};
|
|
9432
|
+
content?: never;
|
|
9433
|
+
};
|
|
9434
|
+
};
|
|
9435
|
+
};
|
|
9436
|
+
put?: never;
|
|
9437
|
+
post?: never;
|
|
9438
|
+
delete?: never;
|
|
9439
|
+
options?: never;
|
|
9440
|
+
head?: never;
|
|
9441
|
+
patch?: never;
|
|
9442
|
+
trace?: never;
|
|
9443
|
+
};
|
|
9161
9444
|
"/api/v2/contacts/import": {
|
|
9162
9445
|
parameters: {
|
|
9163
9446
|
query?: never;
|
|
@@ -9246,35 +9529,77 @@ export interface paths {
|
|
|
9246
9529
|
patch?: never;
|
|
9247
9530
|
trace?: never;
|
|
9248
9531
|
};
|
|
9249
|
-
"/api/v2/
|
|
9532
|
+
"/api/v2/workspaces/{workspaceId}/getcourse-contact-imports/{jobId}": {
|
|
9250
9533
|
parameters: {
|
|
9251
9534
|
query?: never;
|
|
9252
9535
|
header?: never;
|
|
9253
9536
|
path?: never;
|
|
9254
9537
|
cookie?: never;
|
|
9255
9538
|
};
|
|
9256
|
-
|
|
9257
|
-
|
|
9258
|
-
|
|
9259
|
-
|
|
9539
|
+
/**
|
|
9540
|
+
* Статус импорта GetCourse-контактов или одиночной cold-welcome отправки
|
|
9541
|
+
* @description Возвращает только ImportJob типа GETCOURSE_CONTACTS в указанном workspace. PARTIAL и FAILED выводятся из terminal counters. Scope `launch:campaigns`, потому что этот же ключ запускает обе операции и `mcp:*` намеренно не включает массовое чтение контактов.
|
|
9542
|
+
*/
|
|
9543
|
+
get: {
|
|
9260
9544
|
parameters: {
|
|
9261
9545
|
query?: never;
|
|
9262
9546
|
header?: never;
|
|
9263
|
-
path
|
|
9264
|
-
|
|
9265
|
-
|
|
9266
|
-
requestBody?: {
|
|
9267
|
-
content: {
|
|
9268
|
-
"application/json": components["schemas"]["ContactExportRequest"];
|
|
9547
|
+
path: {
|
|
9548
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
9549
|
+
jobId: string;
|
|
9269
9550
|
};
|
|
9551
|
+
cookie?: never;
|
|
9270
9552
|
};
|
|
9553
|
+
requestBody?: never;
|
|
9271
9554
|
responses: {
|
|
9272
|
-
|
|
9555
|
+
200: {
|
|
9273
9556
|
headers: {
|
|
9274
9557
|
[name: string]: unknown;
|
|
9275
9558
|
};
|
|
9276
9559
|
content: {
|
|
9277
|
-
"application/json": components["schemas"]["
|
|
9560
|
+
"application/json": components["schemas"]["GetCourseContactImportStatusResponse"];
|
|
9561
|
+
};
|
|
9562
|
+
};
|
|
9563
|
+
404: components["responses"]["NotFound"];
|
|
9564
|
+
};
|
|
9565
|
+
};
|
|
9566
|
+
put?: never;
|
|
9567
|
+
post?: never;
|
|
9568
|
+
delete?: never;
|
|
9569
|
+
options?: never;
|
|
9570
|
+
head?: never;
|
|
9571
|
+
patch?: never;
|
|
9572
|
+
trace?: never;
|
|
9573
|
+
};
|
|
9574
|
+
"/api/v2/contacts/export": {
|
|
9575
|
+
parameters: {
|
|
9576
|
+
query?: never;
|
|
9577
|
+
header?: never;
|
|
9578
|
+
path?: never;
|
|
9579
|
+
cookie?: never;
|
|
9580
|
+
};
|
|
9581
|
+
get?: never;
|
|
9582
|
+
put?: never;
|
|
9583
|
+
/** Export contacts by filter */
|
|
9584
|
+
post: {
|
|
9585
|
+
parameters: {
|
|
9586
|
+
query?: never;
|
|
9587
|
+
header?: never;
|
|
9588
|
+
path?: never;
|
|
9589
|
+
cookie?: never;
|
|
9590
|
+
};
|
|
9591
|
+
requestBody?: {
|
|
9592
|
+
content: {
|
|
9593
|
+
"application/json": components["schemas"]["ContactExportRequest"];
|
|
9594
|
+
};
|
|
9595
|
+
};
|
|
9596
|
+
responses: {
|
|
9597
|
+
202: {
|
|
9598
|
+
headers: {
|
|
9599
|
+
[name: string]: unknown;
|
|
9600
|
+
};
|
|
9601
|
+
content: {
|
|
9602
|
+
"application/json": components["schemas"]["AsyncJobResponse"];
|
|
9278
9603
|
};
|
|
9279
9604
|
};
|
|
9280
9605
|
};
|
|
@@ -12402,6 +12727,71 @@ export interface paths {
|
|
|
12402
12727
|
patch?: never;
|
|
12403
12728
|
trace?: never;
|
|
12404
12729
|
};
|
|
12730
|
+
"/api/v2/workspaces/{workspaceId}/workbooks/{workbookId}/sheets/read": {
|
|
12731
|
+
parameters: {
|
|
12732
|
+
query?: never;
|
|
12733
|
+
header?: never;
|
|
12734
|
+
path?: never;
|
|
12735
|
+
cookie?: never;
|
|
12736
|
+
};
|
|
12737
|
+
/**
|
|
12738
|
+
* Постранично прочитать диапазон листа без записи в знания
|
|
12739
|
+
* @description Inspect возвращает только sample. Этот endpoint читает поздние строки и колонки,
|
|
12740
|
+
* возвращает явные признаки продолжения и fingerprint страницы. Для Google Sheets
|
|
12741
|
+
* точные total могут быть неизвестны и тогда возвращаются null.
|
|
12742
|
+
*/
|
|
12743
|
+
get: {
|
|
12744
|
+
parameters: {
|
|
12745
|
+
query?: {
|
|
12746
|
+
sheetTitle?: string;
|
|
12747
|
+
sheetGid?: number;
|
|
12748
|
+
sheetIndex?: number;
|
|
12749
|
+
rowOffset?: number;
|
|
12750
|
+
rowLimit?: number;
|
|
12751
|
+
columnOffset?: number;
|
|
12752
|
+
columnLimit?: number;
|
|
12753
|
+
};
|
|
12754
|
+
header?: never;
|
|
12755
|
+
path: {
|
|
12756
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
12757
|
+
workbookId: string;
|
|
12758
|
+
};
|
|
12759
|
+
cookie?: never;
|
|
12760
|
+
};
|
|
12761
|
+
requestBody?: never;
|
|
12762
|
+
responses: {
|
|
12763
|
+
200: {
|
|
12764
|
+
headers: {
|
|
12765
|
+
[name: string]: unknown;
|
|
12766
|
+
};
|
|
12767
|
+
content: {
|
|
12768
|
+
"application/json": components["schemas"]["WorkbookSheetPage"];
|
|
12769
|
+
};
|
|
12770
|
+
};
|
|
12771
|
+
/** @description Селектор листа неоднозначен или не подходит типу книги */
|
|
12772
|
+
400: {
|
|
12773
|
+
headers: {
|
|
12774
|
+
[name: string]: unknown;
|
|
12775
|
+
};
|
|
12776
|
+
content?: never;
|
|
12777
|
+
};
|
|
12778
|
+
/** @description SourceWorkbook */
|
|
12779
|
+
404: {
|
|
12780
|
+
headers: {
|
|
12781
|
+
[name: string]: unknown;
|
|
12782
|
+
};
|
|
12783
|
+
content?: never;
|
|
12784
|
+
};
|
|
12785
|
+
};
|
|
12786
|
+
};
|
|
12787
|
+
put?: never;
|
|
12788
|
+
post?: never;
|
|
12789
|
+
delete?: never;
|
|
12790
|
+
options?: never;
|
|
12791
|
+
head?: never;
|
|
12792
|
+
patch?: never;
|
|
12793
|
+
trace?: never;
|
|
12794
|
+
};
|
|
12405
12795
|
"/api/v2/workspaces/{workspaceId}/workbooks/{workbookId}/extract-amocrm-leads": {
|
|
12406
12796
|
parameters: {
|
|
12407
12797
|
query?: never;
|
|
@@ -12782,7 +13172,7 @@ export interface paths {
|
|
|
12782
13172
|
put?: never;
|
|
12783
13173
|
/**
|
|
12784
13174
|
* Переиндексация knowledge space (re-embed Qa + KnowledgeChunk → Pinecone)
|
|
12785
|
-
* @description Идемпотентная фоновая пересборка векторов из Postgres — восстанавливает поиск после рассинхрона Postgres↔Pinecone (v1.5 Increment 15). Возвращает job_id сразу; итог фоновой BullMQ-задачи
|
|
13175
|
+
* @description Идемпотентная фоновая пересборка векторов из Postgres — восстанавливает поиск после рассинхрона Postgres↔Pinecone (v1.5 Increment 15). Возвращает job_id сразу; итог фоновой BullMQ-задачи доступен через status endpoint в течение 24 часов.
|
|
12786
13176
|
*/
|
|
12787
13177
|
post: {
|
|
12788
13178
|
parameters: {
|
|
@@ -12816,6 +13206,44 @@ export interface paths {
|
|
|
12816
13206
|
patch?: never;
|
|
12817
13207
|
trace?: never;
|
|
12818
13208
|
};
|
|
13209
|
+
"/api/v2/workspaces/{workspaceId}/knowledge-spaces/{knowledgeSpaceId}/reindex/status": {
|
|
13210
|
+
parameters: {
|
|
13211
|
+
query?: never;
|
|
13212
|
+
header?: never;
|
|
13213
|
+
path?: never;
|
|
13214
|
+
cookie?: never;
|
|
13215
|
+
};
|
|
13216
|
+
/** Статус фоновой переиндексации knowledge space */
|
|
13217
|
+
get: {
|
|
13218
|
+
parameters: {
|
|
13219
|
+
query?: never;
|
|
13220
|
+
header?: never;
|
|
13221
|
+
path: {
|
|
13222
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
13223
|
+
knowledgeSpaceId: string;
|
|
13224
|
+
};
|
|
13225
|
+
cookie?: never;
|
|
13226
|
+
};
|
|
13227
|
+
requestBody?: never;
|
|
13228
|
+
responses: {
|
|
13229
|
+
200: {
|
|
13230
|
+
headers: {
|
|
13231
|
+
[name: string]: unknown;
|
|
13232
|
+
};
|
|
13233
|
+
content: {
|
|
13234
|
+
"application/json": components["schemas"]["AsyncJobStatusResponse"];
|
|
13235
|
+
};
|
|
13236
|
+
};
|
|
13237
|
+
};
|
|
13238
|
+
};
|
|
13239
|
+
put?: never;
|
|
13240
|
+
post?: never;
|
|
13241
|
+
delete?: never;
|
|
13242
|
+
options?: never;
|
|
13243
|
+
head?: never;
|
|
13244
|
+
patch?: never;
|
|
13245
|
+
trace?: never;
|
|
13246
|
+
};
|
|
12819
13247
|
"/api/v2/workspaces/{workspaceId}/knowledge-spaces/{knowledgeSpaceId}/channel-links": {
|
|
12820
13248
|
parameters: {
|
|
12821
13249
|
query?: never;
|
|
@@ -13800,6 +14228,45 @@ export interface paths {
|
|
|
13800
14228
|
patch?: never;
|
|
13801
14229
|
trace?: never;
|
|
13802
14230
|
};
|
|
14231
|
+
"/api/v2/workspaces/{workspaceId}/knowledge-spaces/{knowledgeSpaceId}/tables/{tableId}/reindex/status": {
|
|
14232
|
+
parameters: {
|
|
14233
|
+
query?: never;
|
|
14234
|
+
header?: never;
|
|
14235
|
+
path?: never;
|
|
14236
|
+
cookie?: never;
|
|
14237
|
+
};
|
|
14238
|
+
/** Статус фоновой переиндексации knowledge table */
|
|
14239
|
+
get: {
|
|
14240
|
+
parameters: {
|
|
14241
|
+
query?: never;
|
|
14242
|
+
header?: never;
|
|
14243
|
+
path: {
|
|
14244
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
14245
|
+
knowledgeSpaceId: string;
|
|
14246
|
+
tableId: string;
|
|
14247
|
+
};
|
|
14248
|
+
cookie?: never;
|
|
14249
|
+
};
|
|
14250
|
+
requestBody?: never;
|
|
14251
|
+
responses: {
|
|
14252
|
+
200: {
|
|
14253
|
+
headers: {
|
|
14254
|
+
[name: string]: unknown;
|
|
14255
|
+
};
|
|
14256
|
+
content: {
|
|
14257
|
+
"application/json": components["schemas"]["AsyncJobStatusResponse"];
|
|
14258
|
+
};
|
|
14259
|
+
};
|
|
14260
|
+
};
|
|
14261
|
+
};
|
|
14262
|
+
put?: never;
|
|
14263
|
+
post?: never;
|
|
14264
|
+
delete?: never;
|
|
14265
|
+
options?: never;
|
|
14266
|
+
head?: never;
|
|
14267
|
+
patch?: never;
|
|
14268
|
+
trace?: never;
|
|
14269
|
+
};
|
|
13803
14270
|
"/api/v2/workspaces/{workspaceId}/variables": {
|
|
13804
14271
|
parameters: {
|
|
13805
14272
|
query?: never;
|
|
@@ -19352,6 +19819,91 @@ export interface paths {
|
|
|
19352
19819
|
patch?: never;
|
|
19353
19820
|
trace?: never;
|
|
19354
19821
|
};
|
|
19822
|
+
"/api/v2/workspaces/{workspaceId}/analytics/inbound/{report}": {
|
|
19823
|
+
parameters: {
|
|
19824
|
+
query?: never;
|
|
19825
|
+
header?: never;
|
|
19826
|
+
path?: never;
|
|
19827
|
+
cookie?: never;
|
|
19828
|
+
};
|
|
19829
|
+
/** Агрегаты органических входящих диалогов */
|
|
19830
|
+
get: operations["getInboundAnalytics"];
|
|
19831
|
+
put?: never;
|
|
19832
|
+
post?: never;
|
|
19833
|
+
delete?: never;
|
|
19834
|
+
options?: never;
|
|
19835
|
+
head?: never;
|
|
19836
|
+
patch?: never;
|
|
19837
|
+
trace?: never;
|
|
19838
|
+
};
|
|
19839
|
+
"/api/v2/workspaces/{workspaceId}/analytics/funnel/{report}": {
|
|
19840
|
+
parameters: {
|
|
19841
|
+
query?: never;
|
|
19842
|
+
header?: never;
|
|
19843
|
+
path?: never;
|
|
19844
|
+
cookie?: never;
|
|
19845
|
+
};
|
|
19846
|
+
/** Мета, сводка или недельные когорты воронки площадки */
|
|
19847
|
+
get: operations["getFunnelAnalytics"];
|
|
19848
|
+
put?: never;
|
|
19849
|
+
post?: never;
|
|
19850
|
+
delete?: never;
|
|
19851
|
+
options?: never;
|
|
19852
|
+
head?: never;
|
|
19853
|
+
patch?: never;
|
|
19854
|
+
trace?: never;
|
|
19855
|
+
};
|
|
19856
|
+
"/api/v2/workspaces/{workspaceId}/analytics/costs/{report}": {
|
|
19857
|
+
parameters: {
|
|
19858
|
+
query?: never;
|
|
19859
|
+
header?: never;
|
|
19860
|
+
path?: never;
|
|
19861
|
+
cookie?: never;
|
|
19862
|
+
};
|
|
19863
|
+
/** Фактический AI usage ledger и его разрезы */
|
|
19864
|
+
get: operations["getAiCosts"];
|
|
19865
|
+
put?: never;
|
|
19866
|
+
post?: never;
|
|
19867
|
+
delete?: never;
|
|
19868
|
+
options?: never;
|
|
19869
|
+
head?: never;
|
|
19870
|
+
patch?: never;
|
|
19871
|
+
trace?: never;
|
|
19872
|
+
};
|
|
19873
|
+
"/api/v2/workspaces/{workspaceId}/custom-reports": {
|
|
19874
|
+
parameters: {
|
|
19875
|
+
query?: never;
|
|
19876
|
+
header?: never;
|
|
19877
|
+
path?: never;
|
|
19878
|
+
cookie?: never;
|
|
19879
|
+
};
|
|
19880
|
+
/** Список сохранённых кастомных отчётов */
|
|
19881
|
+
get: operations["listCustomReports"];
|
|
19882
|
+
put?: never;
|
|
19883
|
+
post?: never;
|
|
19884
|
+
delete?: never;
|
|
19885
|
+
options?: never;
|
|
19886
|
+
head?: never;
|
|
19887
|
+
patch?: never;
|
|
19888
|
+
trace?: never;
|
|
19889
|
+
};
|
|
19890
|
+
"/api/v2/workspaces/{workspaceId}/custom-reports/{reportId}": {
|
|
19891
|
+
parameters: {
|
|
19892
|
+
query?: never;
|
|
19893
|
+
header?: never;
|
|
19894
|
+
path?: never;
|
|
19895
|
+
cookie?: never;
|
|
19896
|
+
};
|
|
19897
|
+
/** Определение сохранённого кастомного отчёта */
|
|
19898
|
+
get: operations["getCustomReport"];
|
|
19899
|
+
put?: never;
|
|
19900
|
+
post?: never;
|
|
19901
|
+
delete?: never;
|
|
19902
|
+
options?: never;
|
|
19903
|
+
head?: never;
|
|
19904
|
+
patch?: never;
|
|
19905
|
+
trace?: never;
|
|
19906
|
+
};
|
|
19355
19907
|
"/api/v2/workspaces/{workspaceId}/custom-reports/{reportId}/report": {
|
|
19356
19908
|
parameters: {
|
|
19357
19909
|
query?: never;
|
|
@@ -19372,7 +19924,7 @@ export interface paths {
|
|
|
19372
19924
|
patch?: never;
|
|
19373
19925
|
trace?: never;
|
|
19374
19926
|
};
|
|
19375
|
-
"/api/v2/workspaces/{workspaceId}/
|
|
19927
|
+
"/api/v2/workspaces/{workspaceId}/operational-overview": {
|
|
19376
19928
|
parameters: {
|
|
19377
19929
|
query?: never;
|
|
19378
19930
|
header?: never;
|
|
@@ -19380,10 +19932,10 @@ export interface paths {
|
|
|
19380
19932
|
cookie?: never;
|
|
19381
19933
|
};
|
|
19382
19934
|
/**
|
|
19383
|
-
*
|
|
19384
|
-
* @description Возвращает
|
|
19935
|
+
* Эксплуатационная сводка воркспейса
|
|
19936
|
+
* @description Возвращает состояние follow-up цепочек, расписаний и последних задач, безопасные метаданные ошибок действий и предупреждения с drill-down. Очередь операторов включается только когда effective scopes текущего вызова содержат read:conversations; иначе ответ явно сообщает missingScope.
|
|
19385
19937
|
*/
|
|
19386
|
-
get: operations["
|
|
19938
|
+
get: operations["getWorkspaceOperationalOverview"];
|
|
19387
19939
|
put?: never;
|
|
19388
19940
|
post?: never;
|
|
19389
19941
|
delete?: never;
|
|
@@ -19392,28 +19944,103 @@ export interface paths {
|
|
|
19392
19944
|
patch?: never;
|
|
19393
19945
|
trace?: never;
|
|
19394
19946
|
};
|
|
19395
|
-
}
|
|
19396
|
-
|
|
19397
|
-
|
|
19398
|
-
|
|
19399
|
-
|
|
19400
|
-
|
|
19401
|
-
|
|
19402
|
-
|
|
19403
|
-
|
|
19404
|
-
|
|
19405
|
-
|
|
19406
|
-
|
|
19407
|
-
|
|
19408
|
-
|
|
19409
|
-
|
|
19410
|
-
|
|
19411
|
-
|
|
19412
|
-
|
|
19413
|
-
|
|
19414
|
-
|
|
19415
|
-
|
|
19416
|
-
|
|
19947
|
+
"/api/v2/workspaces/{workspaceId}/workspace-operators": {
|
|
19948
|
+
parameters: {
|
|
19949
|
+
query?: never;
|
|
19950
|
+
header?: never;
|
|
19951
|
+
path?: never;
|
|
19952
|
+
cookie?: never;
|
|
19953
|
+
};
|
|
19954
|
+
/** Системные операторы Besales для фильтра и назначения */
|
|
19955
|
+
get: operations["listWorkspaceOperatorsForWorkflow"];
|
|
19956
|
+
put?: never;
|
|
19957
|
+
post?: never;
|
|
19958
|
+
delete?: never;
|
|
19959
|
+
options?: never;
|
|
19960
|
+
head?: never;
|
|
19961
|
+
patch?: never;
|
|
19962
|
+
trace?: never;
|
|
19963
|
+
};
|
|
19964
|
+
"/api/v2/workspaces/{workspaceId}/operator-queue": {
|
|
19965
|
+
parameters: {
|
|
19966
|
+
query?: never;
|
|
19967
|
+
header?: never;
|
|
19968
|
+
path?: never;
|
|
19969
|
+
cookie?: never;
|
|
19970
|
+
};
|
|
19971
|
+
/** Пагинированная очередь живых операторов */
|
|
19972
|
+
get: operations["listWorkspaceOperatorQueue"];
|
|
19973
|
+
put?: never;
|
|
19974
|
+
post?: never;
|
|
19975
|
+
delete?: never;
|
|
19976
|
+
options?: never;
|
|
19977
|
+
head?: never;
|
|
19978
|
+
patch?: never;
|
|
19979
|
+
trace?: never;
|
|
19980
|
+
};
|
|
19981
|
+
"/api/v2/workspaces/{workspaceId}/chats/{contactId}/operator-assignment": {
|
|
19982
|
+
parameters: {
|
|
19983
|
+
query?: never;
|
|
19984
|
+
header?: never;
|
|
19985
|
+
path?: never;
|
|
19986
|
+
cookie?: never;
|
|
19987
|
+
};
|
|
19988
|
+
/** Текущее назначение оператора и CAS-версия */
|
|
19989
|
+
get: operations["getWorkspaceOperatorAssignment"];
|
|
19990
|
+
put?: never;
|
|
19991
|
+
post?: never;
|
|
19992
|
+
delete?: never;
|
|
19993
|
+
options?: never;
|
|
19994
|
+
head?: never;
|
|
19995
|
+
/**
|
|
19996
|
+
* Назначить, переназначить или снять системного оператора
|
|
19997
|
+
* @description CAS-операция меняет только локальное назначение Besales. Она не меняет CRM operator, operatorStatus и не отправляет сообщение.
|
|
19998
|
+
*/
|
|
19999
|
+
patch: operations["updateWorkspaceOperatorAssignment"];
|
|
20000
|
+
trace?: never;
|
|
20001
|
+
};
|
|
20002
|
+
"/api/v2/workspaces/{workspaceId}/custom-reports/{reportId}/drilldown": {
|
|
20003
|
+
parameters: {
|
|
20004
|
+
query?: never;
|
|
20005
|
+
header?: never;
|
|
20006
|
+
path?: never;
|
|
20007
|
+
cookie?: never;
|
|
20008
|
+
};
|
|
20009
|
+
/**
|
|
20010
|
+
* Контакты и сделки за числом сохранённой таблицы
|
|
20011
|
+
* @description Возвращает конкретные исполнения, контакты или сделки за числовой ячейкой источников «Обзор», «Фоллоу-апы» и «Перс воронка». Сервер перечитывает определение отчёта и проверяет updatedAt; сводная передаёт полный путь строки. Snapshot и fingerprint обязательны только для personalized-источника. Для процентной колонки раскрывается фактический числитель.
|
|
20012
|
+
*/
|
|
20013
|
+
get: operations["getCustomReportDrilldown"];
|
|
20014
|
+
put?: never;
|
|
20015
|
+
post?: never;
|
|
20016
|
+
delete?: never;
|
|
20017
|
+
options?: never;
|
|
20018
|
+
head?: never;
|
|
20019
|
+
patch?: never;
|
|
20020
|
+
trace?: never;
|
|
20021
|
+
};
|
|
20022
|
+
}
|
|
20023
|
+
export type webhooks = Record<string, never>;
|
|
20024
|
+
export interface components {
|
|
20025
|
+
schemas: {
|
|
20026
|
+
TriggerContactClaim: {
|
|
20027
|
+
/** Format: uuid */
|
|
20028
|
+
triggerId: string;
|
|
20029
|
+
triggerName: string;
|
|
20030
|
+
/** Format: uuid */
|
|
20031
|
+
agentId: string;
|
|
20032
|
+
agentName: string | null;
|
|
20033
|
+
/** @enum {string} */
|
|
20034
|
+
status: "IN_PROGRESS" | "COMPLETED";
|
|
20035
|
+
/** Format: date-time */
|
|
20036
|
+
claimedAt: string;
|
|
20037
|
+
/** @description false у status=IN_PROGRESS — право держит владелец */
|
|
20038
|
+
canReset: boolean;
|
|
20039
|
+
/** @enum {string|null} */
|
|
20040
|
+
blockedReason: "RUNNING" | null;
|
|
20041
|
+
triggerIsEnabled: boolean;
|
|
20042
|
+
/** @description Осталась ли включённой настройка «сработать один раз». Право переживает её выключение: тогда строка висит, но триггер срабатывает как обычный. */
|
|
20043
|
+
stillOneTime: boolean;
|
|
19417
20044
|
};
|
|
19418
20045
|
TriggerContactClaimsPage: {
|
|
19419
20046
|
claims: components["schemas"]["TriggerContactClaim"][];
|
|
@@ -19469,6 +20096,125 @@ export interface components {
|
|
|
19469
20096
|
dayOffset?: number;
|
|
19470
20097
|
atTime?: string;
|
|
19471
20098
|
};
|
|
20099
|
+
/** @description Pass-through ответа канонической UI-витрины. Конкретная форма зависит от report и сохраняется без пересчёта адаптером; nullable и unknown-поля имеют доменный смысл. */
|
|
20100
|
+
AnalyticsAggregateResponse: {
|
|
20101
|
+
[key: string]: unknown;
|
|
20102
|
+
};
|
|
20103
|
+
OperationalOverviewWarning: {
|
|
20104
|
+
/** @enum {string} */
|
|
20105
|
+
severity: "info" | "warning" | "critical";
|
|
20106
|
+
code: string;
|
|
20107
|
+
sourceType: string;
|
|
20108
|
+
sourceId: string;
|
|
20109
|
+
/** Format: date-time */
|
|
20110
|
+
occurredAt: string | null;
|
|
20111
|
+
reason: string;
|
|
20112
|
+
drilldown: {
|
|
20113
|
+
type: string;
|
|
20114
|
+
id: string;
|
|
20115
|
+
};
|
|
20116
|
+
};
|
|
20117
|
+
OperationalOverviewResponse: {
|
|
20118
|
+
/** Format: date-time */
|
|
20119
|
+
generatedAt: string;
|
|
20120
|
+
summary: {
|
|
20121
|
+
[key: string]: number;
|
|
20122
|
+
};
|
|
20123
|
+
followUp: {
|
|
20124
|
+
[key: string]: unknown;
|
|
20125
|
+
};
|
|
20126
|
+
schedules: {
|
|
20127
|
+
[key: string]: unknown;
|
|
20128
|
+
}[];
|
|
20129
|
+
jobs: {
|
|
20130
|
+
[key: string]: unknown;
|
|
20131
|
+
}[];
|
|
20132
|
+
actionErrors: {
|
|
20133
|
+
[key: string]: unknown;
|
|
20134
|
+
}[];
|
|
20135
|
+
operatorQueue: {
|
|
20136
|
+
[key: string]: unknown;
|
|
20137
|
+
};
|
|
20138
|
+
warnings: components["schemas"]["OperationalOverviewWarning"][];
|
|
20139
|
+
};
|
|
20140
|
+
WorkspaceOperatorOption: {
|
|
20141
|
+
/** Format: uuid */
|
|
20142
|
+
id: string;
|
|
20143
|
+
displayName: string | null;
|
|
20144
|
+
assignable: boolean;
|
|
20145
|
+
/** @enum {string} */
|
|
20146
|
+
operatorType: "WORKSPACE";
|
|
20147
|
+
};
|
|
20148
|
+
WorkspaceOperatorIdentity: {
|
|
20149
|
+
/** Format: uuid */
|
|
20150
|
+
id: string;
|
|
20151
|
+
displayName: string | null;
|
|
20152
|
+
};
|
|
20153
|
+
OperatorWorkflowEvidence: {
|
|
20154
|
+
/** Format: uuid */
|
|
20155
|
+
id: string;
|
|
20156
|
+
/** @enum {string} */
|
|
20157
|
+
eventType: "OPERATOR_TAKEOVER" | "FINISH_RESOLVED";
|
|
20158
|
+
/** Format: date-time */
|
|
20159
|
+
occurredAt: string;
|
|
20160
|
+
};
|
|
20161
|
+
WorkspaceOperatorAssignmentState: {
|
|
20162
|
+
/** Format: uuid */
|
|
20163
|
+
contactId: string;
|
|
20164
|
+
/** @enum {string|null} */
|
|
20165
|
+
status: "WAITING_OPERATOR" | "IN_PROGRESS" | "WAITING_CUSTOMER" | "RESOLVED" | null;
|
|
20166
|
+
/** Format: date-time */
|
|
20167
|
+
statusUpdatedAt: string | null;
|
|
20168
|
+
/** Format: uuid */
|
|
20169
|
+
workspaceOperatorId: string | null;
|
|
20170
|
+
/** Format: date-time */
|
|
20171
|
+
assignedAt: string | null;
|
|
20172
|
+
operatorDisplayName: string | null;
|
|
20173
|
+
workflowEvidence: components["schemas"]["OperatorWorkflowEvidence"] | null;
|
|
20174
|
+
};
|
|
20175
|
+
OperatorQueueResponse: {
|
|
20176
|
+
data: {
|
|
20177
|
+
[key: string]: unknown;
|
|
20178
|
+
}[];
|
|
20179
|
+
page: number;
|
|
20180
|
+
limit: number;
|
|
20181
|
+
total: number;
|
|
20182
|
+
hasMore: boolean;
|
|
20183
|
+
};
|
|
20184
|
+
UpdateWorkspaceOperatorAssignment: {
|
|
20185
|
+
/** Format: uuid */
|
|
20186
|
+
workspaceOperatorId: string | null;
|
|
20187
|
+
/** Format: uuid */
|
|
20188
|
+
expectedWorkspaceOperatorId: string | null;
|
|
20189
|
+
/** Format: date-time */
|
|
20190
|
+
expectedAssignedOperatorAt: string | null;
|
|
20191
|
+
};
|
|
20192
|
+
WorkspaceOperatorAssignmentResult: {
|
|
20193
|
+
changed: boolean;
|
|
20194
|
+
assignedOperator: components["schemas"]["WorkspaceOperatorIdentity"] | null;
|
|
20195
|
+
/** Format: date-time */
|
|
20196
|
+
assignedOperatorAt: string | null;
|
|
20197
|
+
};
|
|
20198
|
+
CustomReportDefinition: {
|
|
20199
|
+
/** Format: uuid */
|
|
20200
|
+
id: string;
|
|
20201
|
+
name: string;
|
|
20202
|
+
sourceKey: string;
|
|
20203
|
+
section: string;
|
|
20204
|
+
view: string;
|
|
20205
|
+
filters: {
|
|
20206
|
+
[key: string]: unknown;
|
|
20207
|
+
};
|
|
20208
|
+
dimensionValues: string[];
|
|
20209
|
+
rowDimensions: string[];
|
|
20210
|
+
metricKeys: string[];
|
|
20211
|
+
/** Format: date-time */
|
|
20212
|
+
archivedAt?: string | null;
|
|
20213
|
+
/** Format: date-time */
|
|
20214
|
+
createdAt?: string;
|
|
20215
|
+
/** Format: date-time */
|
|
20216
|
+
updatedAt: string;
|
|
20217
|
+
};
|
|
19472
20218
|
CustomReportDataResponse: {
|
|
19473
20219
|
metricKeys: string[];
|
|
19474
20220
|
dimensionValues: string[];
|
|
@@ -19751,6 +20497,10 @@ export interface components {
|
|
|
19751
20497
|
createdAfter?: string;
|
|
19752
20498
|
contacts?: components["schemas"]["GetCourseColdWelcomeContact"][];
|
|
19753
20499
|
channels?: components["schemas"]["GetCourseTransport"][];
|
|
20500
|
+
/** @description Метка сегмента запуска. Ею считается правило «этим сегментом человеку уже уходило»: без неё прогноз правил (policyForecast) по этому правилу структурно пуст, и ноль читается как «проверили, никого». Аудиторию метка не отбирает. */
|
|
20501
|
+
segment?: string;
|
|
20502
|
+
/** @description Разовый текст запуска — им считается правило «тот же текст не дважды» (журнал касаний ключуется отпечатком шаблона). Для запуска с сохранённой рассылкой не нужен: текст берётся из неё тем же резолвером, что на старте, включая посегментные тексты. */
|
|
20503
|
+
message?: string;
|
|
19754
20504
|
/** @deprecated */
|
|
19755
20505
|
channelsMode?: components["schemas"]["ColdWelcomeChannelsMode"];
|
|
19756
20506
|
};
|
|
@@ -19761,6 +20511,23 @@ export interface components {
|
|
|
19761
20511
|
*/
|
|
19762
20512
|
ColdWelcomeChannelsMode: "RESTRICT" | "ADD";
|
|
19763
20513
|
GetCourseColdWelcomePreviewResponse: {
|
|
20514
|
+
/** @description ПРОГНОЗ ПРАВИЛ ОТПРАВКИ на момент запроса, а не обещание. Блокирует одна точка — пересчёт правил постранично вплотную к транспорту, и между предпросмотром и отправкой человек успевает зарегистрироваться на эфир или получить это же касание другим запуском. Причины ВЗАИМНО ИСКЛЮЧАЮТ друг друга (сервер возвращает первую сработавшую), поэтому сумма — это ЛЮДИ, а не срабатывания. Считается по МЕТКЕ и ТЕКСТУ запроса: без segment (и без message у запуска разовым текстом) соответствующие правила дают нули. */
|
|
20515
|
+
policyForecast?: {
|
|
20516
|
+
blockedBy: {
|
|
20517
|
+
/** @description Этим сегментом человеку уже уходило НАШЕЙ отправкой. Периметр строго наш (волна школы тем же ярлыком отправкой здесь не считается — иначе запрет накрыл бы 37 % отправок; замер прода 10.09.2026). */
|
|
20518
|
+
alreadySentSegment: number;
|
|
20519
|
+
/** @description Уже получал «Первое сообщение» — оно одноразово НА ЧЕЛОВЕКА. */
|
|
20520
|
+
alreadyGreeted: number;
|
|
20521
|
+
/** @description Идёт эпизод регистрации: приветствие ДОЛЖНЫ и не отдали либо подготовлен повторный вход на новый эфир. Считается ПО ЧЕЛОВЕКУ, без скоупа площадки. */
|
|
20522
|
+
activeEpisode: number;
|
|
20523
|
+
/** @description Тихий период: человека трогали (нашей отправкой либо шагом календарной цепочки) внутри окна. Окно резолвится настройками — перекрытие рассылки, затем площадка, затем воркспейс, затем 0. По умолчанию 0, то есть правило выключено, пока оператор его не выставит; рекомендация — 7 суток. Волна школы касанием НЕ считается. Расписания судятся своим cooldownDays. */
|
|
20524
|
+
cooldown: number;
|
|
20525
|
+
};
|
|
20526
|
+
/** @description Тот же ТЕКСТ уже занят в журнале касаний под ДРУГИМ ярлыком. Отдельно от blockedBy: это не правило владельца, а атомарное право — «тот же текст не дважды» держится строкой журнала, а не читающей проверкой. */
|
|
20527
|
+
touchClaimed: number;
|
|
20528
|
+
/** @description ИНФОРМАЦИЯ, а не запрет: этим же ярлыком человека рассылал ВНЕШНИЙ механизм — волна школы своими процессами либо шаблон Wazzup. Наш догон в мессенджерах уйдёт как обычно: так работает штатный процесс. В отсев это число НЕ входит. */
|
|
20529
|
+
externalWaveTouched: number;
|
|
20530
|
+
};
|
|
19764
20531
|
/** @description Выбранные каналы, которых НЕТ в allowlist площадки: они не уедут ни в каком режиме. Чинится галочкой в настройках площадки, поэтому возвращаются ИМЕНАМИ, а не числом. */
|
|
19765
20532
|
channelsNotAllowedByPlatform?: components["schemas"]["GetCourseTransport"][];
|
|
19766
20533
|
/** @description Сколько ещё МОЖЕТ получить первое сообщение. */
|
|
@@ -19809,6 +20576,28 @@ export interface components {
|
|
|
19809
20576
|
alreadyRunning: boolean;
|
|
19810
20577
|
refreshableVariables: string[];
|
|
19811
20578
|
};
|
|
20579
|
+
GetCourseAnchorRefreshStatusResponse: {
|
|
20580
|
+
correlationId: string;
|
|
20581
|
+
/** Format: uuid */
|
|
20582
|
+
platformId: string;
|
|
20583
|
+
/** @enum {string} */
|
|
20584
|
+
status: "RUNNING" | "COMPLETED" | "FAILED" | "STALLED";
|
|
20585
|
+
result: {
|
|
20586
|
+
correlationId: string;
|
|
20587
|
+
contactsScanned: number;
|
|
20588
|
+
outcomes: {
|
|
20589
|
+
[key: string]: number;
|
|
20590
|
+
};
|
|
20591
|
+
changedByVariable: {
|
|
20592
|
+
[key: string]: number;
|
|
20593
|
+
};
|
|
20594
|
+
} | null;
|
|
20595
|
+
error: string | null;
|
|
20596
|
+
/** Format: date-time */
|
|
20597
|
+
startedAt: string;
|
|
20598
|
+
/** Format: date-time */
|
|
20599
|
+
finishedAt: string | null;
|
|
20600
|
+
};
|
|
19812
20601
|
/** @description Ровно один источник текста (message ЛИБО mailingVariantId) и ровно одна аудитория (createdAfter ЛИБО contacts). */
|
|
19813
20602
|
GetCourseColdWelcomeLaunchRequest: {
|
|
19814
20603
|
/**
|
|
@@ -20181,6 +20970,32 @@ export interface components {
|
|
|
20181
20970
|
} & {
|
|
20182
20971
|
[key: string]: unknown;
|
|
20183
20972
|
};
|
|
20973
|
+
TriggerActionCatalogItem: {
|
|
20974
|
+
actionType: string;
|
|
20975
|
+
title: string;
|
|
20976
|
+
configInputKey: string | null;
|
|
20977
|
+
responseRelation: string | null;
|
|
20978
|
+
configRequired: boolean;
|
|
20979
|
+
/** @enum {string} */
|
|
20980
|
+
requiredScope: "mcp:platform-setup";
|
|
20981
|
+
requiredRelations: string[];
|
|
20982
|
+
effect: string;
|
|
20983
|
+
verification: string;
|
|
20984
|
+
actionSchema: {
|
|
20985
|
+
[key: string]: unknown;
|
|
20986
|
+
};
|
|
20987
|
+
minimalExample: {
|
|
20988
|
+
[key: string]: unknown;
|
|
20989
|
+
};
|
|
20990
|
+
};
|
|
20991
|
+
TriggerActionCatalogResponse: {
|
|
20992
|
+
/** @enum {string} */
|
|
20993
|
+
source: "CreateTriggerActionDto+TRIGGER_ACTION_CONFIG";
|
|
20994
|
+
/** @enum {boolean} */
|
|
20995
|
+
complete: true;
|
|
20996
|
+
total: number;
|
|
20997
|
+
items: components["schemas"]["TriggerActionCatalogItem"][];
|
|
20998
|
+
};
|
|
20184
20999
|
ConfirmableSetupMutation: {
|
|
20185
21000
|
explicitConfirmation?: boolean;
|
|
20186
21001
|
confirmationReason?: string;
|
|
@@ -20864,6 +21679,8 @@ export interface components {
|
|
|
20864
21679
|
guardActiveSeries?: components["schemas"]["OutboundGuardMode"];
|
|
20865
21680
|
guardActiveApplication?: components["schemas"]["OutboundGuardMode"];
|
|
20866
21681
|
guardPaid?: components["schemas"]["OutboundGuardMode"];
|
|
21682
|
+
/** @description Quiet period in days after ANY touch OF OURS (a send or a calendar-chain follow-up step). Counted PER PERSON across the workspace; a school wave does NOT count as a touch (measured: the wide perimeter would have blocked 15.3% of our sends). null = not configured, effective value 0 (rule disabled); the owner recommends 7. Schedules are NOT judged by this number — they have their own cooldownDays. */
|
|
21683
|
+
quietDays?: number | null;
|
|
20867
21684
|
/** @description Transport → exact deal custom field NAME (read API returns no field ids). Clear with {}. */
|
|
20868
21685
|
deliveryFieldMap?: {
|
|
20869
21686
|
[key: string]: string;
|
|
@@ -21049,6 +21866,50 @@ export interface components {
|
|
|
21049
21866
|
suggestedNextPhase: "1" | "2" | "3" | "4" | "5" | "6" | null;
|
|
21050
21867
|
};
|
|
21051
21868
|
};
|
|
21869
|
+
WorkspaceNavigationRequest: {
|
|
21870
|
+
/** @enum {string} */
|
|
21871
|
+
intent: "CREATE_BOT" | "IMPROVE_AGENT" | "DIAGNOSE_CONTACT" | "AUDIT_DIALOGUES" | "CAMPAIGN_REPORT" | "CONNECT_CRM" | "CONNECT_DATASOURCE" | "CONFIGURE_FOLLOWUP" | "CONTINUE_TASK" | "FREEFORM";
|
|
21872
|
+
/** @enum {string} */
|
|
21873
|
+
botType?: "FAQ" | "SALES" | "BOOKING" | "OUTBOUND" | "SUPPORT" | "UNKNOWN";
|
|
21874
|
+
/** Format: uuid */
|
|
21875
|
+
platformId?: string;
|
|
21876
|
+
/** Format: uuid */
|
|
21877
|
+
agentId?: string;
|
|
21878
|
+
/** Format: uuid */
|
|
21879
|
+
contactId?: string;
|
|
21880
|
+
/** Format: uuid */
|
|
21881
|
+
taskId?: string;
|
|
21882
|
+
question?: string;
|
|
21883
|
+
};
|
|
21884
|
+
WorkspaceNavigationResponse: {
|
|
21885
|
+
objective: string;
|
|
21886
|
+
intent: components["schemas"]["WorkspaceNavigationRequest"]["intent"];
|
|
21887
|
+
/** @enum {string|null} */
|
|
21888
|
+
botType: "FAQ" | "SALES" | "BOOKING" | "OUTBOUND" | "SUPPORT" | "UNKNOWN" | null;
|
|
21889
|
+
selectedObjects: {
|
|
21890
|
+
type: string;
|
|
21891
|
+
id: string;
|
|
21892
|
+
label: string | null;
|
|
21893
|
+
}[];
|
|
21894
|
+
completed: string[];
|
|
21895
|
+
missing: string[];
|
|
21896
|
+
requiredUserInput: {
|
|
21897
|
+
field: string;
|
|
21898
|
+
reason: string;
|
|
21899
|
+
options?: string[];
|
|
21900
|
+
}[];
|
|
21901
|
+
next: {
|
|
21902
|
+
tool: string;
|
|
21903
|
+
arguments: {
|
|
21904
|
+
[key: string]: unknown;
|
|
21905
|
+
};
|
|
21906
|
+
reason: string;
|
|
21907
|
+
verifyWith: string;
|
|
21908
|
+
} | null;
|
|
21909
|
+
finishCondition: string;
|
|
21910
|
+
/** @enum {string} */
|
|
21911
|
+
evidenceSource: "live_workspace_overview";
|
|
21912
|
+
};
|
|
21052
21913
|
CreateSetupSessionRequest: {
|
|
21053
21914
|
/** Format: uuid */
|
|
21054
21915
|
workspaceId: string;
|
|
@@ -21447,6 +22308,8 @@ export interface components {
|
|
|
21447
22308
|
writtenAt?: string;
|
|
21448
22309
|
};
|
|
21449
22310
|
StartSandboxRunRequest: {
|
|
22311
|
+
/** @description Неактивированный системный промпт для изолированной проверки. Допустим только при options.mode=single_agent, действует лишь внутри sandbox run и не меняет production AgentChat или PromptVersion. */
|
|
22312
|
+
candidatePrompt?: string;
|
|
21450
22313
|
/** @description Test scenarios to run (default — all linked to agent's ICP) */
|
|
21451
22314
|
scenarioIds?: string[];
|
|
21452
22315
|
options?: {
|
|
@@ -22247,15 +23110,21 @@ export interface components {
|
|
|
22247
23110
|
callbackUrl?: string;
|
|
22248
23111
|
sourceChannel?: string;
|
|
22249
23112
|
};
|
|
22250
|
-
|
|
23113
|
+
IssuedCredentialReveal: {
|
|
23114
|
+
/** @description Одноразовая ссылка для вошедшего человека */
|
|
23115
|
+
revealUrl: string;
|
|
23116
|
+
/** Format: date-time */
|
|
23117
|
+
revealExpiresAt: string;
|
|
23118
|
+
};
|
|
23119
|
+
ExternalApiChannelCreated: {
|
|
22251
23120
|
/** Format: uuid */
|
|
22252
23121
|
channelId: string;
|
|
22253
|
-
/** @description Bearer-ключ партнёра для входящих (показывается ОДИН раз) */
|
|
22254
|
-
apiKey: string;
|
|
22255
|
-
/** @description Секрет HMAC-подписи колбэков (показывается ОДИН раз) */
|
|
22256
|
-
webhookSecret: string;
|
|
22257
23122
|
/** @description Путь приёма входящих: /api/v2/channels/{channelId}/messages */
|
|
22258
23123
|
ingestPath: string;
|
|
23124
|
+
/** @description Одноразовая ссылка для вошедшего человека */
|
|
23125
|
+
revealUrl: string;
|
|
23126
|
+
/** Format: date-time */
|
|
23127
|
+
revealExpiresAt: string;
|
|
22259
23128
|
};
|
|
22260
23129
|
/** @enum {string} */
|
|
22261
23130
|
CallDirection: "Inbound" | "Outbound";
|
|
@@ -23690,6 +24559,23 @@ export interface components {
|
|
|
23690
24559
|
checkerEnabled?: boolean;
|
|
23691
24560
|
errorReasons?: string[];
|
|
23692
24561
|
};
|
|
24562
|
+
GetCourseContactImportStatusResponse: {
|
|
24563
|
+
/** Format: uuid */
|
|
24564
|
+
id: string;
|
|
24565
|
+
/** Format: uuid */
|
|
24566
|
+
workspaceId: string;
|
|
24567
|
+
/** @enum {string} */
|
|
24568
|
+
status: "RUNNING" | "COMPLETED" | "PARTIAL" | "FAILED";
|
|
24569
|
+
totalRows: number;
|
|
24570
|
+
processedRows: number;
|
|
24571
|
+
successCount: number;
|
|
24572
|
+
failedCount: number;
|
|
24573
|
+
errorReasons: string[];
|
|
24574
|
+
/** Format: date-time */
|
|
24575
|
+
createdAt: string;
|
|
24576
|
+
/** Format: date-time */
|
|
24577
|
+
completedAt: string | null;
|
|
24578
|
+
};
|
|
23693
24579
|
ContactExportRequest: {
|
|
23694
24580
|
/** Format: uuid */
|
|
23695
24581
|
workspaceId?: string;
|
|
@@ -23935,6 +24821,8 @@ export interface components {
|
|
|
23935
24821
|
defaultPlatformId: string | null;
|
|
23936
24822
|
defaultChannels: string[];
|
|
23937
24823
|
defaultDealFields: Record<string, never> | null;
|
|
24824
|
+
/** @description Quiet-period override for this mailing, in days. 0 means "this text may be sent inside the quiet period" — that IS the permission. null means the mailing does not override; the platform setting applies, then the workspace one, then 0. */
|
|
24825
|
+
quietDaysOverride: number | null;
|
|
23938
24826
|
};
|
|
23939
24827
|
CreateBroadcastMailingVariantRequest: {
|
|
23940
24828
|
name: string;
|
|
@@ -23951,6 +24839,8 @@ export interface components {
|
|
|
23951
24839
|
defaultPlatformId?: string | null;
|
|
23952
24840
|
defaultChannels?: string[];
|
|
23953
24841
|
defaultDealFields?: Record<string, never> | null;
|
|
24842
|
+
/** @description Quiet-period override for this mailing, in days. 0 means "this text may be sent inside the quiet period" — that IS the permission. null means the mailing does not override; the platform setting applies, then the workspace one, then 0. */
|
|
24843
|
+
quietDaysOverride?: number | null;
|
|
23954
24844
|
};
|
|
23955
24845
|
UpdateBroadcastMailingVariantRequest: {
|
|
23956
24846
|
name?: string;
|
|
@@ -23968,6 +24858,8 @@ export interface components {
|
|
|
23968
24858
|
defaultPlatformId?: string | null;
|
|
23969
24859
|
defaultChannels?: string[];
|
|
23970
24860
|
defaultDealFields?: Record<string, never> | null;
|
|
24861
|
+
/** @description Quiet-period override for this mailing, in days. 0 means "this text may be sent inside the quiet period" — that IS the permission. null means the mailing does not override; the platform setting applies, then the workspace one, then 0. */
|
|
24862
|
+
quietDaysOverride?: number | null;
|
|
23971
24863
|
};
|
|
23972
24864
|
WorkspaceLinkDomain: {
|
|
23973
24865
|
/**
|
|
@@ -24268,7 +25160,9 @@ export interface components {
|
|
|
24268
25160
|
indirect: number;
|
|
24269
25161
|
indirectAmount: number;
|
|
24270
25162
|
notSent: {
|
|
24271
|
-
|
|
25163
|
+
/** @description Всего не отправлено по этой волне. null — «не выяснено», а НЕ ноль: активен фильтр по измерению (воронка/сегмент/продукт), а снимок волны его не несёт — волна охватила несколько воронок. Отсев принадлежит ВОЛНЕ, у отсеянного своей воронки нет (он отсеян до отправки), поэтому какой воронке достался этот отсев — неизвестно. Ноль означал бы «никого не отсеяли», а полное число волны — цифру, за которой откроется пустой список. */
|
|
25164
|
+
total: number | null;
|
|
25165
|
+
/** @description Пусто, когда total = null. */
|
|
24272
25166
|
byReason: {
|
|
24273
25167
|
[key: string]: number;
|
|
24274
25168
|
};
|
|
@@ -24300,6 +25194,8 @@ export interface components {
|
|
|
24300
25194
|
total: number;
|
|
24301
25195
|
failedDelivery: number;
|
|
24302
25196
|
byDayProduct: components["schemas"]["BroadcastSkipDayProduct"][];
|
|
25197
|
+
/** @description Отсев волн, который выбранный фильтр по измерению не относит ни к одному своему значению: волна охватила несколько воронок/сегментов/продуктов, и снимок оставил ось пустой. Отсев принадлежит ВОЛНЕ — у отсеянного контакта своей воронки нет, он отсеян до отправки и строки реестра не имеет. Показывать обязательно: у Ксаматы за август 2026 таких 7157 из 9674, то есть разрез по воронкам покрывает лишь четверть отсева. 0 — фильтра по измерению нет либо распределено всё. */
|
|
25198
|
+
unattributed: number;
|
|
24303
25199
|
};
|
|
24304
25200
|
BroadcastRecipientItem: {
|
|
24305
25201
|
/** Format: uuid */
|
|
@@ -25276,13 +26172,14 @@ export interface components {
|
|
|
25276
26172
|
SandboxFinding: {
|
|
25277
26173
|
/** Format: uuid */
|
|
25278
26174
|
scenarioId?: string | null;
|
|
26175
|
+
turnIndex?: number;
|
|
25279
26176
|
/** @enum {string} */
|
|
25280
|
-
category: "hallucination" | "wrong_action" | "wrong_routing" | "
|
|
26177
|
+
category: "hallucination" | "wrong_action" | "wrong_routing" | "missed_context" | "rag_miss" | "bad_tone" | "off_topic" | "contradiction" | "other";
|
|
25281
26178
|
/** @enum {string} */
|
|
25282
26179
|
severity: "low" | "medium" | "critical";
|
|
25283
|
-
|
|
25284
|
-
|
|
25285
|
-
|
|
26180
|
+
description: string;
|
|
26181
|
+
evidence?: string;
|
|
26182
|
+
recommendation?: string;
|
|
25286
26183
|
};
|
|
25287
26184
|
/** @enum {string} */
|
|
25288
26185
|
SourceWorkbookKind: "XLSX_UPLOAD" | "GOOGLE_SHEETS";
|
|
@@ -25337,11 +26234,22 @@ export interface components {
|
|
|
25337
26234
|
/** @description Для Google Sheets — числовой gid */
|
|
25338
26235
|
sheetGid?: number;
|
|
25339
26236
|
sheetIndex: number;
|
|
25340
|
-
rowCount: number;
|
|
25341
|
-
columnCount: number;
|
|
26237
|
+
rowCount: number | null;
|
|
26238
|
+
columnCount: number | null;
|
|
26239
|
+
dimensionsKnown: boolean;
|
|
26240
|
+
/** @description Источник содержит строки за доступной parser-границей. */
|
|
26241
|
+
rowsTruncated?: boolean;
|
|
26242
|
+
/** @description Граница полного обхода Google grid; может включать пустые строки. */
|
|
26243
|
+
scanUpperBoundRowCount?: number;
|
|
26244
|
+
/** @description Граница полного обхода Google grid; может включать пустые колонки. */
|
|
26245
|
+
scanUpperBoundColumnCount?: number;
|
|
25342
26246
|
sampleRows: components["schemas"]["SheetCellMetadata"][][];
|
|
25343
26247
|
hyperlinkStats: components["schemas"]["ColumnLinkStats"][];
|
|
25344
26248
|
truncated: boolean;
|
|
26249
|
+
readError?: {
|
|
26250
|
+
code: string;
|
|
26251
|
+
message: string;
|
|
26252
|
+
};
|
|
25345
26253
|
};
|
|
25346
26254
|
InspectWorkbookResponse: {
|
|
25347
26255
|
workbook: components["schemas"]["SourceWorkbook"];
|
|
@@ -25349,6 +26257,35 @@ export interface components {
|
|
|
25349
26257
|
totalSampleCells: number;
|
|
25350
26258
|
globallyTruncated: boolean;
|
|
25351
26259
|
};
|
|
26260
|
+
WorkbookSheetPage: {
|
|
26261
|
+
/** Format: uuid */
|
|
26262
|
+
workbookId: string;
|
|
26263
|
+
sourceIdentity: string;
|
|
26264
|
+
sheetTitle: string;
|
|
26265
|
+
sheetGid?: number;
|
|
26266
|
+
sheetIndex: number;
|
|
26267
|
+
rowOffset: number;
|
|
26268
|
+
rowLimit: number;
|
|
26269
|
+
returnedRowCount: number;
|
|
26270
|
+
columnOffset: number;
|
|
26271
|
+
columnLimit: number;
|
|
26272
|
+
returnedColumnCount: number;
|
|
26273
|
+
totalRowCount: number | null;
|
|
26274
|
+
totalColumnCount: number | null;
|
|
26275
|
+
dimensionsKnown: boolean;
|
|
26276
|
+
/** @description Часть источника лежит за доступной scan-границей; полный вывод делать нельзя. */
|
|
26277
|
+
sourceTruncated?: boolean;
|
|
26278
|
+
/** @description Граница, до которой надо пройти rowOffset для полного обхода. */
|
|
26279
|
+
scanUpperBoundRowCount: number;
|
|
26280
|
+
/** @description Граница, до которой надо пройти columnOffset для полного обхода. */
|
|
26281
|
+
scanUpperBoundColumnCount: number;
|
|
26282
|
+
rows: components["schemas"]["SheetCellMetadata"][][];
|
|
26283
|
+
hasMoreRows: boolean;
|
|
26284
|
+
hasMoreColumns: boolean;
|
|
26285
|
+
nextRowOffset: number | null;
|
|
26286
|
+
nextColumnOffset: number | null;
|
|
26287
|
+
pageFingerprint: string;
|
|
26288
|
+
};
|
|
25352
26289
|
WorkbookInspectError: {
|
|
25353
26290
|
/** @enum {string} */
|
|
25354
26291
|
error: "google_sheets_not_shared";
|
|
@@ -25794,8 +26731,9 @@ export interface components {
|
|
|
25794
26731
|
limit?: number;
|
|
25795
26732
|
};
|
|
25796
26733
|
KnowledgeTableReindexResponse: {
|
|
26734
|
+
job_id: string;
|
|
25797
26735
|
/**
|
|
25798
|
-
* @description QUEUED — reindex поставлен в фоновую очередь (для крупных источников вроде каталога 1С); опрашивай GET .../tables/:id
|
|
26736
|
+
* @description QUEUED — reindex поставлен в фоновую очередь (для крупных источников вроде каталога 1С); опрашивай GET .../tables/:id/reindex/status для подтверждения завершения. INDEXED/SKIPPED — legacy синхронный результат.
|
|
25799
26737
|
* @enum {string}
|
|
25800
26738
|
*/
|
|
25801
26739
|
status: "QUEUED" | "INDEXED" | "SKIPPED";
|
|
@@ -25803,6 +26741,20 @@ export interface components {
|
|
|
25803
26741
|
/** Format: date-time */
|
|
25804
26742
|
indexed_at: string;
|
|
25805
26743
|
};
|
|
26744
|
+
AsyncJobStatusResponse: {
|
|
26745
|
+
job_id: string;
|
|
26746
|
+
/** @enum {string} */
|
|
26747
|
+
status: "QUEUED" | "RUNNING" | "COMPLETED" | "FAILED" | "EXPIRED";
|
|
26748
|
+
progress: unknown;
|
|
26749
|
+
result: unknown;
|
|
26750
|
+
error: string | null;
|
|
26751
|
+
/** Format: date-time */
|
|
26752
|
+
queued_at: string | null;
|
|
26753
|
+
/** Format: date-time */
|
|
26754
|
+
started_at: string | null;
|
|
26755
|
+
/** Format: date-time */
|
|
26756
|
+
finished_at: string | null;
|
|
26757
|
+
};
|
|
25806
26758
|
/** @enum {string} */
|
|
25807
26759
|
VariableType: "TEXT" | "NUMBER" | "FLOAT" | "BOOLEAN";
|
|
25808
26760
|
VariableResponse: {
|
|
@@ -26437,21 +27389,66 @@ export interface components {
|
|
|
26437
27389
|
}
|
|
26438
27390
|
export type $defs = Record<string, never>;
|
|
26439
27391
|
export interface operations {
|
|
26440
|
-
|
|
27392
|
+
AgentReadinessController_get: {
|
|
26441
27393
|
parameters: {
|
|
26442
27394
|
query?: never;
|
|
26443
27395
|
header?: never;
|
|
26444
|
-
path
|
|
26445
|
-
|
|
26446
|
-
};
|
|
26447
|
-
requestBody: {
|
|
26448
|
-
content: {
|
|
26449
|
-
"application/json": components["schemas"]["StartIcpAudioImportRequest"];
|
|
27396
|
+
path: {
|
|
27397
|
+
agentId: string;
|
|
26450
27398
|
};
|
|
27399
|
+
cookie?: never;
|
|
26451
27400
|
};
|
|
27401
|
+
requestBody?: never;
|
|
26452
27402
|
responses: {
|
|
26453
|
-
/** @description
|
|
26454
|
-
|
|
27403
|
+
/** @description NOT_PROVEN с отдельными gates; configurationCurrent null до фиксации полной версии зависимых настроек, promptAndAgentCurrent проверяет только промпт и запись агента */
|
|
27404
|
+
200: {
|
|
27405
|
+
headers: {
|
|
27406
|
+
[name: string]: unknown;
|
|
27407
|
+
};
|
|
27408
|
+
content?: never;
|
|
27409
|
+
};
|
|
27410
|
+
};
|
|
27411
|
+
};
|
|
27412
|
+
navigateWorkspaceTask: {
|
|
27413
|
+
parameters: {
|
|
27414
|
+
query?: never;
|
|
27415
|
+
header?: never;
|
|
27416
|
+
path: {
|
|
27417
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
27418
|
+
};
|
|
27419
|
+
cookie?: never;
|
|
27420
|
+
};
|
|
27421
|
+
requestBody: {
|
|
27422
|
+
content: {
|
|
27423
|
+
"application/json": components["schemas"]["WorkspaceNavigationRequest"];
|
|
27424
|
+
};
|
|
27425
|
+
};
|
|
27426
|
+
responses: {
|
|
27427
|
+
200: {
|
|
27428
|
+
headers: {
|
|
27429
|
+
[name: string]: unknown;
|
|
27430
|
+
};
|
|
27431
|
+
content: {
|
|
27432
|
+
"application/json": components["schemas"]["WorkspaceNavigationResponse"];
|
|
27433
|
+
};
|
|
27434
|
+
};
|
|
27435
|
+
};
|
|
27436
|
+
};
|
|
27437
|
+
startIcpAudioImportRun: {
|
|
27438
|
+
parameters: {
|
|
27439
|
+
query?: never;
|
|
27440
|
+
header?: never;
|
|
27441
|
+
path?: never;
|
|
27442
|
+
cookie?: never;
|
|
27443
|
+
};
|
|
27444
|
+
requestBody: {
|
|
27445
|
+
content: {
|
|
27446
|
+
"application/json": components["schemas"]["StartIcpAudioImportRequest"];
|
|
27447
|
+
};
|
|
27448
|
+
};
|
|
27449
|
+
responses: {
|
|
27450
|
+
/** @description Run accepted, items scheduled */
|
|
27451
|
+
202: {
|
|
26455
27452
|
headers: {
|
|
26456
27453
|
[name: string]: unknown;
|
|
26457
27454
|
};
|
|
@@ -26588,6 +27585,62 @@ export interface operations {
|
|
|
26588
27585
|
};
|
|
26589
27586
|
};
|
|
26590
27587
|
};
|
|
27588
|
+
getContactTouchHistory: {
|
|
27589
|
+
parameters: {
|
|
27590
|
+
query?: never;
|
|
27591
|
+
header?: never;
|
|
27592
|
+
path: {
|
|
27593
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
27594
|
+
/** @description GetCourse school-side person id (getcourse_user_id). */
|
|
27595
|
+
gcUserId: number;
|
|
27596
|
+
};
|
|
27597
|
+
cookie?: never;
|
|
27598
|
+
};
|
|
27599
|
+
requestBody?: never;
|
|
27600
|
+
responses: {
|
|
27601
|
+
/** @description OK */
|
|
27602
|
+
200: {
|
|
27603
|
+
headers: {
|
|
27604
|
+
[name: string]: unknown;
|
|
27605
|
+
};
|
|
27606
|
+
content: {
|
|
27607
|
+
"application/json": {
|
|
27608
|
+
getcourseUserId: number;
|
|
27609
|
+
/** Format: date-time */
|
|
27610
|
+
firstWelcomeAt: string | null;
|
|
27611
|
+
/** @description More journal rows exist than fit in this response. */
|
|
27612
|
+
truncated: boolean;
|
|
27613
|
+
touches: {
|
|
27614
|
+
/** @description Touch name = the right key. Four kinds: a segment label, `text:<template fingerprint>`, `registration:<deal>`, and `legacy:welcome` (a right restored by backfill for the period before the journal existed). */
|
|
27615
|
+
touchKey: string;
|
|
27616
|
+
/** @enum {string} */
|
|
27617
|
+
kind: "FIRST" | "REPEAT" | "REGISTRATION";
|
|
27618
|
+
/** @enum {string} */
|
|
27619
|
+
status: "CLAIMED" | "SENT" | "UNKNOWN" | "RELEASED";
|
|
27620
|
+
/** Format: date-time */
|
|
27621
|
+
claimedAt: string;
|
|
27622
|
+
/** Format: date-time */
|
|
27623
|
+
sentAt: string | null;
|
|
27624
|
+
/** @description Empty for rows written before 2026-09-09 — the column did not exist yet. */
|
|
27625
|
+
mailingName: string | null;
|
|
27626
|
+
/** Format: uuid */
|
|
27627
|
+
platformId: string | null;
|
|
27628
|
+
lastError: string | null;
|
|
27629
|
+
}[];
|
|
27630
|
+
sends: {
|
|
27631
|
+
segment: string | null;
|
|
27632
|
+
/** @enum {string} */
|
|
27633
|
+
mode: "cold_welcome" | "registration_welcome" | "scheduled";
|
|
27634
|
+
/** Format: date-time */
|
|
27635
|
+
receivedAt: string;
|
|
27636
|
+
/** Format: uuid */
|
|
27637
|
+
platformId: string | null;
|
|
27638
|
+
}[];
|
|
27639
|
+
};
|
|
27640
|
+
};
|
|
27641
|
+
};
|
|
27642
|
+
};
|
|
27643
|
+
};
|
|
26591
27644
|
listWorkspaceDataSources: {
|
|
26592
27645
|
parameters: {
|
|
26593
27646
|
query?: never;
|
|
@@ -26665,6 +27718,159 @@ export interface operations {
|
|
|
26665
27718
|
};
|
|
26666
27719
|
};
|
|
26667
27720
|
};
|
|
27721
|
+
getInboundAnalytics: {
|
|
27722
|
+
parameters: {
|
|
27723
|
+
query?: {
|
|
27724
|
+
platformId?: string;
|
|
27725
|
+
channels?: string[];
|
|
27726
|
+
mode?: "all" | "days" | "range";
|
|
27727
|
+
days?: number;
|
|
27728
|
+
from?: string;
|
|
27729
|
+
to?: string;
|
|
27730
|
+
};
|
|
27731
|
+
header?: never;
|
|
27732
|
+
path: {
|
|
27733
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
27734
|
+
report: "summary" | "topics" | "speed" | "money" | "cycle" | "quality";
|
|
27735
|
+
};
|
|
27736
|
+
cookie?: never;
|
|
27737
|
+
};
|
|
27738
|
+
requestBody?: never;
|
|
27739
|
+
responses: {
|
|
27740
|
+
/** @description Канонический ответ выбранной входящей витрины; null не заменяется нулём. */
|
|
27741
|
+
200: {
|
|
27742
|
+
headers: {
|
|
27743
|
+
[name: string]: unknown;
|
|
27744
|
+
};
|
|
27745
|
+
content: {
|
|
27746
|
+
"application/json": components["schemas"]["AnalyticsAggregateResponse"];
|
|
27747
|
+
};
|
|
27748
|
+
};
|
|
27749
|
+
400: components["responses"]["ValidationError"];
|
|
27750
|
+
401: components["responses"]["Unauthorized"];
|
|
27751
|
+
403: components["responses"]["Forbidden"];
|
|
27752
|
+
};
|
|
27753
|
+
};
|
|
27754
|
+
getFunnelAnalytics: {
|
|
27755
|
+
parameters: {
|
|
27756
|
+
query: {
|
|
27757
|
+
platformId: string;
|
|
27758
|
+
from?: string;
|
|
27759
|
+
to?: string;
|
|
27760
|
+
view?: "cohort" | "period";
|
|
27761
|
+
managerId?: number;
|
|
27762
|
+
};
|
|
27763
|
+
header?: never;
|
|
27764
|
+
path: {
|
|
27765
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
27766
|
+
report: "meta" | "summary" | "cohorts";
|
|
27767
|
+
};
|
|
27768
|
+
cookie?: never;
|
|
27769
|
+
};
|
|
27770
|
+
requestBody?: never;
|
|
27771
|
+
responses: {
|
|
27772
|
+
/** @description Канонический ответ воронки с неизменным view и зерном. */
|
|
27773
|
+
200: {
|
|
27774
|
+
headers: {
|
|
27775
|
+
[name: string]: unknown;
|
|
27776
|
+
};
|
|
27777
|
+
content: {
|
|
27778
|
+
"application/json": components["schemas"]["AnalyticsAggregateResponse"];
|
|
27779
|
+
};
|
|
27780
|
+
};
|
|
27781
|
+
400: components["responses"]["ValidationError"];
|
|
27782
|
+
401: components["responses"]["Unauthorized"];
|
|
27783
|
+
403: components["responses"]["Forbidden"];
|
|
27784
|
+
404: components["responses"]["NotFound"];
|
|
27785
|
+
};
|
|
27786
|
+
};
|
|
27787
|
+
getAiCosts: {
|
|
27788
|
+
parameters: {
|
|
27789
|
+
query?: {
|
|
27790
|
+
mode?: "all" | "days" | "range";
|
|
27791
|
+
days?: number;
|
|
27792
|
+
from?: string;
|
|
27793
|
+
to?: string;
|
|
27794
|
+
scope?: "production" | "with_tests";
|
|
27795
|
+
groupBy?: "customer" | "platform" | "tag" | "operation" | "provider";
|
|
27796
|
+
page?: number;
|
|
27797
|
+
limit?: number;
|
|
27798
|
+
};
|
|
27799
|
+
header?: never;
|
|
27800
|
+
path: {
|
|
27801
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
27802
|
+
report: "summary" | "tasks" | "breakdown";
|
|
27803
|
+
};
|
|
27804
|
+
cookie?: never;
|
|
27805
|
+
};
|
|
27806
|
+
requestBody?: never;
|
|
27807
|
+
responses: {
|
|
27808
|
+
/** @description Ledger с отдельным числом priced и unpriced usage events. */
|
|
27809
|
+
200: {
|
|
27810
|
+
headers: {
|
|
27811
|
+
[name: string]: unknown;
|
|
27812
|
+
};
|
|
27813
|
+
content: {
|
|
27814
|
+
"application/json": components["schemas"]["AnalyticsAggregateResponse"];
|
|
27815
|
+
};
|
|
27816
|
+
};
|
|
27817
|
+
400: components["responses"]["ValidationError"];
|
|
27818
|
+
401: components["responses"]["Unauthorized"];
|
|
27819
|
+
403: components["responses"]["Forbidden"];
|
|
27820
|
+
};
|
|
27821
|
+
};
|
|
27822
|
+
listCustomReports: {
|
|
27823
|
+
parameters: {
|
|
27824
|
+
query?: never;
|
|
27825
|
+
header?: never;
|
|
27826
|
+
path: {
|
|
27827
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
27828
|
+
};
|
|
27829
|
+
cookie?: never;
|
|
27830
|
+
};
|
|
27831
|
+
requestBody?: never;
|
|
27832
|
+
responses: {
|
|
27833
|
+
/** @description Неархивированные определения отчётов. */
|
|
27834
|
+
200: {
|
|
27835
|
+
headers: {
|
|
27836
|
+
[name: string]: unknown;
|
|
27837
|
+
};
|
|
27838
|
+
content: {
|
|
27839
|
+
"application/json": {
|
|
27840
|
+
items: components["schemas"]["CustomReportDefinition"][];
|
|
27841
|
+
};
|
|
27842
|
+
};
|
|
27843
|
+
};
|
|
27844
|
+
401: components["responses"]["Unauthorized"];
|
|
27845
|
+
403: components["responses"]["Forbidden"];
|
|
27846
|
+
};
|
|
27847
|
+
};
|
|
27848
|
+
getCustomReport: {
|
|
27849
|
+
parameters: {
|
|
27850
|
+
query?: never;
|
|
27851
|
+
header?: never;
|
|
27852
|
+
path: {
|
|
27853
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
27854
|
+
reportId: string;
|
|
27855
|
+
};
|
|
27856
|
+
cookie?: never;
|
|
27857
|
+
};
|
|
27858
|
+
requestBody?: never;
|
|
27859
|
+
responses: {
|
|
27860
|
+
/** @description Определение и версия отчёта. */
|
|
27861
|
+
200: {
|
|
27862
|
+
headers: {
|
|
27863
|
+
[name: string]: unknown;
|
|
27864
|
+
};
|
|
27865
|
+
content: {
|
|
27866
|
+
"application/json": components["schemas"]["CustomReportDefinition"];
|
|
27867
|
+
};
|
|
27868
|
+
};
|
|
27869
|
+
401: components["responses"]["Unauthorized"];
|
|
27870
|
+
403: components["responses"]["Forbidden"];
|
|
27871
|
+
404: components["responses"]["NotFound"];
|
|
27872
|
+
};
|
|
27873
|
+
};
|
|
26668
27874
|
getCustomReportData: {
|
|
26669
27875
|
parameters: {
|
|
26670
27876
|
query: {
|
|
@@ -26696,6 +27902,141 @@ export interface operations {
|
|
|
26696
27902
|
404: components["responses"]["NotFound"];
|
|
26697
27903
|
};
|
|
26698
27904
|
};
|
|
27905
|
+
getWorkspaceOperationalOverview: {
|
|
27906
|
+
parameters: {
|
|
27907
|
+
query?: never;
|
|
27908
|
+
header?: never;
|
|
27909
|
+
path: {
|
|
27910
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
27911
|
+
};
|
|
27912
|
+
cookie?: never;
|
|
27913
|
+
};
|
|
27914
|
+
requestBody?: never;
|
|
27915
|
+
responses: {
|
|
27916
|
+
/** @description Текущее состояние и приоритетные предупреждения. */
|
|
27917
|
+
200: {
|
|
27918
|
+
headers: {
|
|
27919
|
+
[name: string]: unknown;
|
|
27920
|
+
};
|
|
27921
|
+
content: {
|
|
27922
|
+
"application/json": components["schemas"]["OperationalOverviewResponse"];
|
|
27923
|
+
};
|
|
27924
|
+
};
|
|
27925
|
+
401: components["responses"]["Unauthorized"];
|
|
27926
|
+
403: components["responses"]["Forbidden"];
|
|
27927
|
+
};
|
|
27928
|
+
};
|
|
27929
|
+
listWorkspaceOperatorsForWorkflow: {
|
|
27930
|
+
parameters: {
|
|
27931
|
+
query?: never;
|
|
27932
|
+
header?: never;
|
|
27933
|
+
path: {
|
|
27934
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
27935
|
+
};
|
|
27936
|
+
cookie?: never;
|
|
27937
|
+
};
|
|
27938
|
+
requestBody?: never;
|
|
27939
|
+
responses: {
|
|
27940
|
+
/** @description Только workspace operators; CRM operators в ответ не входят. */
|
|
27941
|
+
200: {
|
|
27942
|
+
headers: {
|
|
27943
|
+
[name: string]: unknown;
|
|
27944
|
+
};
|
|
27945
|
+
content: {
|
|
27946
|
+
"application/json": components["schemas"]["WorkspaceOperatorOption"][];
|
|
27947
|
+
};
|
|
27948
|
+
};
|
|
27949
|
+
401: components["responses"]["Unauthorized"];
|
|
27950
|
+
403: components["responses"]["Forbidden"];
|
|
27951
|
+
};
|
|
27952
|
+
};
|
|
27953
|
+
listWorkspaceOperatorQueue: {
|
|
27954
|
+
parameters: {
|
|
27955
|
+
query?: {
|
|
27956
|
+
status?: "WAITING_OPERATOR" | "IN_PROGRESS" | "WAITING_CUSTOMER" | "RESOLVED";
|
|
27957
|
+
workspaceOperatorId?: string;
|
|
27958
|
+
contactId?: string;
|
|
27959
|
+
page?: number;
|
|
27960
|
+
limit?: number;
|
|
27961
|
+
};
|
|
27962
|
+
header?: never;
|
|
27963
|
+
path: {
|
|
27964
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
27965
|
+
};
|
|
27966
|
+
cookie?: never;
|
|
27967
|
+
};
|
|
27968
|
+
requestBody?: never;
|
|
27969
|
+
responses: {
|
|
27970
|
+
/** @description Текущее состояние и последнее связанное доказательство workflow. */
|
|
27971
|
+
200: {
|
|
27972
|
+
headers: {
|
|
27973
|
+
[name: string]: unknown;
|
|
27974
|
+
};
|
|
27975
|
+
content: {
|
|
27976
|
+
"application/json": components["schemas"]["OperatorQueueResponse"];
|
|
27977
|
+
};
|
|
27978
|
+
};
|
|
27979
|
+
401: components["responses"]["Unauthorized"];
|
|
27980
|
+
403: components["responses"]["Forbidden"];
|
|
27981
|
+
};
|
|
27982
|
+
};
|
|
27983
|
+
getWorkspaceOperatorAssignment: {
|
|
27984
|
+
parameters: {
|
|
27985
|
+
query?: never;
|
|
27986
|
+
header?: never;
|
|
27987
|
+
path: {
|
|
27988
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
27989
|
+
contactId: string;
|
|
27990
|
+
};
|
|
27991
|
+
cookie?: never;
|
|
27992
|
+
};
|
|
27993
|
+
requestBody?: never;
|
|
27994
|
+
responses: {
|
|
27995
|
+
/** @description Назначение, статус и доказательство workflow. */
|
|
27996
|
+
200: {
|
|
27997
|
+
headers: {
|
|
27998
|
+
[name: string]: unknown;
|
|
27999
|
+
};
|
|
28000
|
+
content: {
|
|
28001
|
+
"application/json": components["schemas"]["WorkspaceOperatorAssignmentState"];
|
|
28002
|
+
};
|
|
28003
|
+
};
|
|
28004
|
+
401: components["responses"]["Unauthorized"];
|
|
28005
|
+
403: components["responses"]["Forbidden"];
|
|
28006
|
+
404: components["responses"]["NotFound"];
|
|
28007
|
+
};
|
|
28008
|
+
};
|
|
28009
|
+
updateWorkspaceOperatorAssignment: {
|
|
28010
|
+
parameters: {
|
|
28011
|
+
query?: never;
|
|
28012
|
+
header?: never;
|
|
28013
|
+
path: {
|
|
28014
|
+
workspaceId: components["parameters"]["WorkspaceIdPath"];
|
|
28015
|
+
contactId: string;
|
|
28016
|
+
};
|
|
28017
|
+
cookie?: never;
|
|
28018
|
+
};
|
|
28019
|
+
requestBody: {
|
|
28020
|
+
content: {
|
|
28021
|
+
"application/json": components["schemas"]["UpdateWorkspaceOperatorAssignment"];
|
|
28022
|
+
};
|
|
28023
|
+
};
|
|
28024
|
+
responses: {
|
|
28025
|
+
/** @description Фактически сохранённое назначение. */
|
|
28026
|
+
200: {
|
|
28027
|
+
headers: {
|
|
28028
|
+
[name: string]: unknown;
|
|
28029
|
+
};
|
|
28030
|
+
content: {
|
|
28031
|
+
"application/json": components["schemas"]["WorkspaceOperatorAssignmentResult"];
|
|
28032
|
+
};
|
|
28033
|
+
};
|
|
28034
|
+
401: components["responses"]["Unauthorized"];
|
|
28035
|
+
403: components["responses"]["Forbidden"];
|
|
28036
|
+
404: components["responses"]["NotFound"];
|
|
28037
|
+
409: components["responses"]["Conflict"];
|
|
28038
|
+
};
|
|
28039
|
+
};
|
|
26699
28040
|
getCustomReportDrilldown: {
|
|
26700
28041
|
parameters: {
|
|
26701
28042
|
query: {
|