@opencx/mcp 1.15.3 → 1.15.4

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/dist/schema.d.ts CHANGED
@@ -175,6 +175,70 @@ export interface paths {
175
175
  patch?: never;
176
176
  trace?: never;
177
177
  };
178
+ "/availability-statuses": {
179
+ parameters: {
180
+ query?: never;
181
+ header?: never;
182
+ path?: never;
183
+ cookie?: never;
184
+ };
185
+ /**
186
+ * List availability statuses
187
+ * @description List the organization's defined availability statuses (excluding deleted ones), ordered as shown in the dashboard. The hardcoded 'online' and 'offline' shortcuts are not listed — they are always applicable via the special field of applyUserAvailabilityStatus.
188
+ */
189
+ get: operations["listAvailabilityStatuses"];
190
+ put?: never;
191
+ post?: never;
192
+ delete?: never;
193
+ options?: never;
194
+ head?: never;
195
+ patch?: never;
196
+ trace?: never;
197
+ };
198
+ "/availability-statuses/users": {
199
+ parameters: {
200
+ query?: never;
201
+ header?: never;
202
+ path?: never;
203
+ cookie?: never;
204
+ };
205
+ /**
206
+ * Get users availability statuses (bulk)
207
+ * @description Resolve availability for up to 100 users in one call — same per-user shape as getUserAvailabilityStatus, ordered by user id. Ids that are unknown or outside the API key's organization are silently skipped, so the response only contains org members.
208
+ */
209
+ get: operations["getUsersAvailabilityStatuses"];
210
+ put?: never;
211
+ post?: never;
212
+ delete?: never;
213
+ options?: never;
214
+ head?: never;
215
+ patch?: never;
216
+ trace?: never;
217
+ };
218
+ "/availability-statuses/users/{user_id}": {
219
+ parameters: {
220
+ query?: never;
221
+ header?: never;
222
+ path?: never;
223
+ cookie?: never;
224
+ };
225
+ /**
226
+ * Get user availability status
227
+ * @description Get a user's current availability: the raw availability record, the resolved status (an applied defined status, or the derived online / offline / mixed state), and the full per-support-team switch matrix. The user must belong to the API key's organization.
228
+ */
229
+ get: operations["getUserAvailabilityStatus"];
230
+ /**
231
+ * Apply user availability status
232
+ * @description Apply a defined availability status (status_id) or a hardcoded shortcut (special: 'online' | 'offline') to a user, switching their main availability and per-support-team availability exactly like the dashboard status picker. If both fields are sent, special wins. Responds with the user's resulting resolved availability. The user must belong to the API key's organization.
233
+ */
234
+ put: operations["applyUserAvailabilityStatus"];
235
+ post?: never;
236
+ delete?: never;
237
+ options?: never;
238
+ head?: never;
239
+ patch?: never;
240
+ trace?: never;
241
+ };
178
242
  "/chat/sessions": {
179
243
  parameters: {
180
244
  query?: never;
@@ -1219,6 +1283,70 @@ export interface paths {
1219
1283
  patch?: never;
1220
1284
  trace?: never;
1221
1285
  };
1286
+ "/blocklist/ips": {
1287
+ parameters: {
1288
+ query?: never;
1289
+ header?: never;
1290
+ path?: never;
1291
+ cookie?: never;
1292
+ };
1293
+ /**
1294
+ * List blocked IPs
1295
+ * @description List all blocked IP addresses and CIDR ranges. Visitors on these addresses cannot interact with the AI assistant.
1296
+ */
1297
+ get: operations["listBlockedIps"];
1298
+ put?: never;
1299
+ /**
1300
+ * Block IP addresses
1301
+ * @description Block one or more IP addresses or CIDR ranges. Pass a comma-separated string for multiple values (e.g. "203.0.113.7, 198.51.100.0/24"). Both IPv4 and IPv6 are supported.
1302
+ */
1303
+ post: operations["blockIps"];
1304
+ delete?: never;
1305
+ options?: never;
1306
+ head?: never;
1307
+ patch?: never;
1308
+ trace?: never;
1309
+ };
1310
+ "/blocklist/ips/check": {
1311
+ parameters: {
1312
+ query?: never;
1313
+ header?: never;
1314
+ path?: never;
1315
+ cookie?: never;
1316
+ };
1317
+ /**
1318
+ * Check if an IP is blocked
1319
+ * @description Check whether an IP address is blocked. Matches both exact entries and any CIDR range that contains the address.
1320
+ */
1321
+ get: operations["checkIpBlocked"];
1322
+ put?: never;
1323
+ post?: never;
1324
+ delete?: never;
1325
+ options?: never;
1326
+ head?: never;
1327
+ patch?: never;
1328
+ trace?: never;
1329
+ };
1330
+ "/blocklist/ips/{id}": {
1331
+ parameters: {
1332
+ query?: never;
1333
+ header?: never;
1334
+ path?: never;
1335
+ cookie?: never;
1336
+ };
1337
+ get?: never;
1338
+ put?: never;
1339
+ post?: never;
1340
+ /**
1341
+ * Unblock an IP
1342
+ * @description Remove an IP address or CIDR range from the blocklist.
1343
+ */
1344
+ delete: operations["unblockIp"];
1345
+ options?: never;
1346
+ head?: never;
1347
+ patch?: never;
1348
+ trace?: never;
1349
+ };
1222
1350
  "/email": {
1223
1351
  parameters: {
1224
1352
  query?: never;
@@ -4201,7 +4329,7 @@ export type webhooks = Record<string, never>;
4201
4329
  export interface components {
4202
4330
  schemas: {
4203
4331
  /** @enum {string} */
4204
- SessionChannel: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice";
4332
+ SessionChannel: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions";
4205
4333
  DefaultOfficeHoursInputDto: {
4206
4334
  /** @description IANA timezone for the default schedule (e.g. "America/New_York", "Europe/London", "Asia/Tokyo") */
4207
4335
  iana_timezone: string;
@@ -4606,6 +4734,19 @@ export interface components {
4606
4734
  /** @description Whether the agent is available for inbound phone calls */
4607
4735
  call_available?: boolean;
4608
4736
  };
4737
+ ApplyUserAvailabilityStatusDto: {
4738
+ /**
4739
+ * @description Hardcoded shortcut: 'online' = main availability on + available on every support team; 'offline' = main availability off + unavailable on every support team. Takes priority if status_id is also sent.
4740
+ * @enum {string}
4741
+ */
4742
+ special: "online" | "offline";
4743
+ } | {
4744
+ /**
4745
+ * Format: uuid
4746
+ * @description Id of a defined availability status (see listAvailabilityStatuses)
4747
+ */
4748
+ status_id: string;
4749
+ };
4609
4750
  SalesforceMiawWebhookBody: {
4610
4751
  /** @enum {string} */
4611
4752
  event: "message:new";
@@ -5623,6 +5764,12 @@ export interface components {
5623
5764
  /** @description Why these domains are being blocked */
5624
5765
  reason?: string;
5625
5766
  };
5767
+ BlockIpsInputDto: {
5768
+ /** @description IP(s) or CIDR range(s) to block — comma-separated for multiple (e.g. "203.0.113.7, 198.51.100.0/24") */
5769
+ ips: string;
5770
+ /** @description Why these addresses are being blocked */
5771
+ reason?: string;
5772
+ };
5626
5773
  CreateEmailTemplatePublicInput: components["schemas"]["CreateEmailTemplateBodyDto"];
5627
5774
  UpdateEmailTemplatePublicInput: components["schemas"]["CreateEmailTemplateBodyDto"];
5628
5775
  CreateMacroInput: components["schemas"]["CreateSavedReplyDto"];
@@ -5909,6 +6056,18 @@ export interface components {
5909
6056
  UpdateAgentWorkflowsResponseDto: {
5910
6057
  success: boolean;
5911
6058
  };
6059
+ AvailabilityStatusDto: {
6060
+ id: string;
6061
+ org_id: string;
6062
+ name: string;
6063
+ group_ids: string[];
6064
+ sort_order: number;
6065
+ /** Format: date-time */
6066
+ created_at: string;
6067
+ /** Format: date-time */
6068
+ updated_at: string;
6069
+ deleted_at: string | null;
6070
+ };
5912
6071
  GroupUsersDto: {
5913
6072
  id: number;
5914
6073
  name: string;
@@ -5932,6 +6091,69 @@ export interface components {
5932
6091
  updated_at: string | null;
5933
6092
  deleted_at: string | null;
5934
6093
  };
6094
+ ResolvedAvailabilityStatusDto: {
6095
+ /**
6096
+ * @description A defined availability status is applied
6097
+ * @constant
6098
+ */
6099
+ kind: "custom";
6100
+ /** @description Id of the applied availability status */
6101
+ status_id: string;
6102
+ /** @description Name of the applied availability status */
6103
+ name: string;
6104
+ } | {
6105
+ /**
6106
+ * @description Main availability on and available on every support team
6107
+ * @constant
6108
+ */
6109
+ kind: "online";
6110
+ } | {
6111
+ /**
6112
+ * @description Main availability off
6113
+ * @constant
6114
+ */
6115
+ kind: "offline";
6116
+ } | {
6117
+ /**
6118
+ * @description Main availability on but only available on some support teams
6119
+ * @constant
6120
+ */
6121
+ kind: "mixed";
6122
+ /** @description Support teams the user is currently available on */
6123
+ available_teams: {
6124
+ id: string;
6125
+ name: string;
6126
+ }[];
6127
+ };
6128
+ UserAvailabilityStatusDto: {
6129
+ /** @description The user's raw availability record */
6130
+ availability: {
6131
+ id: string;
6132
+ user_id: number;
6133
+ organization_id: string;
6134
+ is_available: boolean;
6135
+ custom_status: string | null;
6136
+ /** Format: date-time */
6137
+ last_status_change: string;
6138
+ current_chat_count: number;
6139
+ max_concurrent_chats: number;
6140
+ notes: string | null;
6141
+ /** Format: date-time */
6142
+ created_at: string;
6143
+ /** Format: date-time */
6144
+ updated_at: string;
6145
+ call_available: boolean;
6146
+ call_locked: boolean;
6147
+ availability_status_id: string | null;
6148
+ };
6149
+ resolved_status: components["schemas"]["ResolvedAvailabilityStatusDto"];
6150
+ /** @description The user's full per-support-team availability switch matrix */
6151
+ teams: {
6152
+ id: string;
6153
+ name: string;
6154
+ available: boolean;
6155
+ }[];
6156
+ };
5935
6157
  VersionHistoryItemDto: {
5936
6158
  /** Format: uuid */
5937
6159
  id: string;
@@ -6408,6 +6630,11 @@ export interface components {
6408
6630
  whatsapp_failed_at?: string | null;
6409
6631
  whatsapp_error_title?: string | null;
6410
6632
  whatsapp_error_details?: string | null;
6633
+ twitter_sent_at?: string | null;
6634
+ twitter_read_at?: string | null;
6635
+ twitter_failed_at?: string | null;
6636
+ twitter_error_title?: string | null;
6637
+ twitter_error_details?: string | null;
6411
6638
  session_closed_payload: unknown;
6412
6639
  agent_changed_payload?: components["schemas"]["AgentChangedPayload"] | null;
6413
6640
  comment_thread_id?: string | null;
@@ -8723,6 +8950,50 @@ export interface components {
8723
8950
  DomainBlockStatusOutput: {
8724
8951
  is_blocked: boolean;
8725
8952
  };
8953
+ ListBlockedIpsOutput: {
8954
+ data: {
8955
+ /** @description Block record ID */
8956
+ id: string;
8957
+ /** @description The blocked address — a single IP (203.0.113.7) or a CIDR range (203.0.113.0/24) */
8958
+ ip_address: string;
8959
+ /** @description Why the address was blocked */
8960
+ reason: string | null;
8961
+ /** Format: date-time */
8962
+ created_at: string;
8963
+ }[];
8964
+ total: number;
8965
+ page: number;
8966
+ total_pages: number;
8967
+ };
8968
+ BlockIpsOutput: {
8969
+ /** @description Addresses that were successfully blocked */
8970
+ blocked: {
8971
+ /** @description Block record ID */
8972
+ id: string;
8973
+ /** @description The blocked address — a single IP (203.0.113.7) or a CIDR range (203.0.113.0/24) */
8974
+ ip_address: string;
8975
+ /** @description Why the address was blocked */
8976
+ reason: string | null;
8977
+ /** Format: date-time */
8978
+ created_at: string;
8979
+ }[];
8980
+ /** @description Addresses that needed no action — already blocked, or not a valid IP/CIDR */
8981
+ skipped: string[];
8982
+ /** @description Addresses that could NOT be blocked — these are still unblocked */
8983
+ failed: {
8984
+ ip: string;
8985
+ error: string;
8986
+ }[];
8987
+ summary: {
8988
+ total: number;
8989
+ blocked: number;
8990
+ skipped: number;
8991
+ failed: number;
8992
+ };
8993
+ };
8994
+ IpBlockStatusOutput: {
8995
+ is_blocked: boolean;
8996
+ };
8726
8997
  GetCustomDomainsOutput: {
8727
8998
  domainName: string;
8728
8999
  domainNameVerificationStatus: string | null;
@@ -9238,6 +9509,135 @@ export interface operations {
9238
9509
  };
9239
9510
  };
9240
9511
  };
9512
+ listAvailabilityStatuses: {
9513
+ parameters: {
9514
+ query?: never;
9515
+ header?: never;
9516
+ path?: never;
9517
+ cookie?: never;
9518
+ };
9519
+ requestBody?: never;
9520
+ responses: {
9521
+ /** @description Default Response */
9522
+ 200: {
9523
+ headers: {
9524
+ [name: string]: unknown;
9525
+ };
9526
+ content: {
9527
+ "application/json": components["schemas"]["AvailabilityStatusDto"][];
9528
+ };
9529
+ };
9530
+ /** @description Internal Server Error */
9531
+ 500: {
9532
+ headers: {
9533
+ [name: string]: unknown;
9534
+ };
9535
+ content: {
9536
+ "application/json": components["schemas"]["ErrorDto"];
9537
+ };
9538
+ };
9539
+ };
9540
+ };
9541
+ getUsersAvailabilityStatuses: {
9542
+ parameters: {
9543
+ query: {
9544
+ /** @description Comma-separated organization user IDs, max 100 (e.g. "12,34,56") */
9545
+ user_ids: string;
9546
+ };
9547
+ header?: never;
9548
+ path?: never;
9549
+ cookie?: never;
9550
+ };
9551
+ requestBody?: never;
9552
+ responses: {
9553
+ /** @description Default Response */
9554
+ 200: {
9555
+ headers: {
9556
+ [name: string]: unknown;
9557
+ };
9558
+ content: {
9559
+ "application/json": components["schemas"]["UserAvailabilityStatusDto"][];
9560
+ };
9561
+ };
9562
+ /** @description Internal Server Error */
9563
+ 500: {
9564
+ headers: {
9565
+ [name: string]: unknown;
9566
+ };
9567
+ content: {
9568
+ "application/json": components["schemas"]["ErrorDto"];
9569
+ };
9570
+ };
9571
+ };
9572
+ };
9573
+ getUserAvailabilityStatus: {
9574
+ parameters: {
9575
+ query?: never;
9576
+ header?: never;
9577
+ path: {
9578
+ /** @description Organization user ID */
9579
+ user_id: number;
9580
+ };
9581
+ cookie?: never;
9582
+ };
9583
+ requestBody?: never;
9584
+ responses: {
9585
+ /** @description Default Response */
9586
+ 200: {
9587
+ headers: {
9588
+ [name: string]: unknown;
9589
+ };
9590
+ content: {
9591
+ "application/json": components["schemas"]["UserAvailabilityStatusDto"];
9592
+ };
9593
+ };
9594
+ /** @description Internal Server Error */
9595
+ 500: {
9596
+ headers: {
9597
+ [name: string]: unknown;
9598
+ };
9599
+ content: {
9600
+ "application/json": components["schemas"]["ErrorDto"];
9601
+ };
9602
+ };
9603
+ };
9604
+ };
9605
+ applyUserAvailabilityStatus: {
9606
+ parameters: {
9607
+ query?: never;
9608
+ header?: never;
9609
+ path: {
9610
+ /** @description Organization user ID */
9611
+ user_id: number;
9612
+ };
9613
+ cookie?: never;
9614
+ };
9615
+ requestBody: {
9616
+ content: {
9617
+ "application/json": components["schemas"]["ApplyUserAvailabilityStatusDto"];
9618
+ };
9619
+ };
9620
+ responses: {
9621
+ /** @description Default Response */
9622
+ 200: {
9623
+ headers: {
9624
+ [name: string]: unknown;
9625
+ };
9626
+ content: {
9627
+ "application/json": components["schemas"]["UserAvailabilityStatusDto"];
9628
+ };
9629
+ };
9630
+ /** @description Internal Server Error */
9631
+ 500: {
9632
+ headers: {
9633
+ [name: string]: unknown;
9634
+ };
9635
+ content: {
9636
+ "application/json": components["schemas"]["ErrorDto"];
9637
+ };
9638
+ };
9639
+ };
9640
+ };
9241
9641
  listChatSessions: {
9242
9642
  parameters: {
9243
9643
  query?: {
@@ -11388,6 +11788,135 @@ export interface operations {
11388
11788
  };
11389
11789
  };
11390
11790
  };
11791
+ listBlockedIps: {
11792
+ parameters: {
11793
+ query?: {
11794
+ /** @description Page number (default: 1) */
11795
+ page?: number;
11796
+ /** @description Results per page (default: 20, max: 200) */
11797
+ limit?: number;
11798
+ };
11799
+ header?: never;
11800
+ path?: never;
11801
+ cookie?: never;
11802
+ };
11803
+ requestBody?: never;
11804
+ responses: {
11805
+ /** @description Default Response */
11806
+ 200: {
11807
+ headers: {
11808
+ [name: string]: unknown;
11809
+ };
11810
+ content: {
11811
+ "application/json": components["schemas"]["ListBlockedIpsOutput"];
11812
+ };
11813
+ };
11814
+ /** @description Internal Server Error */
11815
+ 500: {
11816
+ headers: {
11817
+ [name: string]: unknown;
11818
+ };
11819
+ content: {
11820
+ "application/json": components["schemas"]["ErrorDto"];
11821
+ };
11822
+ };
11823
+ };
11824
+ };
11825
+ blockIps: {
11826
+ parameters: {
11827
+ query?: never;
11828
+ header?: never;
11829
+ path?: never;
11830
+ cookie?: never;
11831
+ };
11832
+ requestBody: {
11833
+ content: {
11834
+ "application/json": components["schemas"]["BlockIpsInputDto"];
11835
+ };
11836
+ };
11837
+ responses: {
11838
+ /** @description Default Response */
11839
+ 200: {
11840
+ headers: {
11841
+ [name: string]: unknown;
11842
+ };
11843
+ content: {
11844
+ "application/json": components["schemas"]["BlockIpsOutput"];
11845
+ };
11846
+ };
11847
+ /** @description Internal Server Error */
11848
+ 500: {
11849
+ headers: {
11850
+ [name: string]: unknown;
11851
+ };
11852
+ content: {
11853
+ "application/json": components["schemas"]["ErrorDto"];
11854
+ };
11855
+ };
11856
+ };
11857
+ };
11858
+ checkIpBlocked: {
11859
+ parameters: {
11860
+ query: {
11861
+ /** @description An IP address (e.g. "203.0.113.7" or "2001:db8::1") */
11862
+ value: string;
11863
+ };
11864
+ header?: never;
11865
+ path?: never;
11866
+ cookie?: never;
11867
+ };
11868
+ requestBody?: never;
11869
+ responses: {
11870
+ /** @description Default Response */
11871
+ 200: {
11872
+ headers: {
11873
+ [name: string]: unknown;
11874
+ };
11875
+ content: {
11876
+ "application/json": components["schemas"]["IpBlockStatusOutput"];
11877
+ };
11878
+ };
11879
+ /** @description Internal Server Error */
11880
+ 500: {
11881
+ headers: {
11882
+ [name: string]: unknown;
11883
+ };
11884
+ content: {
11885
+ "application/json": components["schemas"]["ErrorDto"];
11886
+ };
11887
+ };
11888
+ };
11889
+ };
11890
+ unblockIp: {
11891
+ parameters: {
11892
+ query?: never;
11893
+ header?: never;
11894
+ path: {
11895
+ /** @description The block record ID */
11896
+ id: string;
11897
+ };
11898
+ cookie?: never;
11899
+ };
11900
+ requestBody?: never;
11901
+ responses: {
11902
+ /** @description Default Response */
11903
+ 200: {
11904
+ headers: {
11905
+ [name: string]: unknown;
11906
+ };
11907
+ content?: never;
11908
+ };
11909
+ /** @description Internal Server Error */
11910
+ 500: {
11911
+ headers: {
11912
+ [name: string]: unknown;
11913
+ };
11914
+ content: {
11915
+ "application/json": components["schemas"]["ErrorDto"];
11916
+ };
11917
+ };
11918
+ };
11919
+ };
11391
11920
  sendEmail: {
11392
11921
  parameters: {
11393
11922
  query?: never;
@@ -16171,7 +16700,7 @@ export interface operations {
16171
16700
  timezone?: string;
16172
16701
  policy_id?: string;
16173
16702
  team_id?: string;
16174
- channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice";
16703
+ channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions";
16175
16704
  agent_id?: number;
16176
16705
  };
16177
16706
  header?: never;
@@ -16208,7 +16737,7 @@ export interface operations {
16208
16737
  timezone?: string;
16209
16738
  policy_id?: string;
16210
16739
  team_id?: string;
16211
- channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice";
16740
+ channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions";
16212
16741
  agent_id?: number;
16213
16742
  group_by: "policy" | "team" | "agent" | "channel";
16214
16743
  };
@@ -16246,7 +16775,7 @@ export interface operations {
16246
16775
  timezone?: string;
16247
16776
  policy_id?: string;
16248
16777
  team_id?: string;
16249
- channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice";
16778
+ channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions";
16250
16779
  agent_id?: number;
16251
16780
  granularity?: "day" | "week";
16252
16781
  };
@@ -16284,7 +16813,7 @@ export interface operations {
16284
16813
  timezone?: string;
16285
16814
  policy_id?: string;
16286
16815
  team_id?: string;
16287
- channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice";
16816
+ channel?: "web" | "email" | "phone_voice" | "slack" | "sms" | "whatsapp" | "instagram" | "messenger" | "api" | "web_voice" | "twitter" | "twitter_mentions";
16288
16817
  agent_id?: number;
16289
16818
  };
16290
16819
  header?: never;