@opencx/mcp 1.15.35 → 1.15.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/campaign-tools.spec.js +48 -0
  2. package/dist/campaign-tools.spec.js.map +1 -1
  3. package/dist/email-fleet.spec.d.ts +2 -0
  4. package/dist/email-fleet.spec.d.ts.map +1 -0
  5. package/dist/email-fleet.spec.js +67 -0
  6. package/dist/email-fleet.spec.js.map +1 -0
  7. package/dist/email-tools.spec.d.ts +2 -0
  8. package/dist/email-tools.spec.d.ts.map +1 -0
  9. package/dist/email-tools.spec.js +149 -0
  10. package/dist/email-tools.spec.js.map +1 -0
  11. package/dist/phone-tools.spec.js +45 -0
  12. package/dist/phone-tools.spec.js.map +1 -1
  13. package/dist/schema.d.ts +214 -0
  14. package/dist/schema.d.ts.map +1 -1
  15. package/dist/server.d.ts.map +1 -1
  16. package/dist/server.js +2 -0
  17. package/dist/server.js.map +1 -1
  18. package/dist/tools/campaign-channel.d.ts.map +1 -1
  19. package/dist/tools/campaign-channel.js +10 -6
  20. package/dist/tools/campaign-channel.js.map +1 -1
  21. package/dist/tools/campaign-personalization.d.ts.map +1 -1
  22. package/dist/tools/campaign-personalization.js +3 -2
  23. package/dist/tools/campaign-personalization.js.map +1 -1
  24. package/dist/tools/campaign-spine.d.ts.map +1 -1
  25. package/dist/tools/campaign-spine.js +5 -1
  26. package/dist/tools/campaign-spine.js.map +1 -1
  27. package/dist/tools/conversation-sankey.d.ts.map +1 -1
  28. package/dist/tools/conversation-sankey.js +5 -2
  29. package/dist/tools/conversation-sankey.js.map +1 -1
  30. package/dist/tools/csat.d.ts.map +1 -1
  31. package/dist/tools/csat.js +3 -3
  32. package/dist/tools/csat.js.map +1 -1
  33. package/dist/tools/email-fleet.d.ts +4 -0
  34. package/dist/tools/email-fleet.d.ts.map +1 -0
  35. package/dist/tools/email-fleet.js +19 -0
  36. package/dist/tools/email-fleet.js.map +1 -0
  37. package/dist/tools/email.d.ts.map +1 -1
  38. package/dist/tools/email.js +20 -6
  39. package/dist/tools/email.js.map +1 -1
  40. package/dist/tools/impact-report.d.ts.map +1 -1
  41. package/dist/tools/impact-report.js +1 -1
  42. package/dist/tools/impact-report.js.map +1 -1
  43. package/dist/tools/phone.d.ts.map +1 -1
  44. package/dist/tools/phone.js +15 -3
  45. package/dist/tools/phone.js.map +1 -1
  46. package/dist/tools/sessions.d.ts.map +1 -1
  47. package/dist/tools/sessions.js +32 -2
  48. package/dist/tools/sessions.js.map +1 -1
  49. package/dist/tools/structured-fields.d.ts.map +1 -1
  50. package/dist/tools/structured-fields.js +17 -2
  51. package/dist/tools/structured-fields.js.map +1 -1
  52. package/package.json +1 -1
package/dist/schema.d.ts CHANGED
@@ -599,6 +599,30 @@ export interface paths {
599
599
  patch?: never;
600
600
  trace?: never;
601
601
  };
602
+ "/chat/sessions/{session_id}/structured-field-values": {
603
+ parameters: {
604
+ query?: never;
605
+ header?: never;
606
+ path?: never;
607
+ cookie?: never;
608
+ };
609
+ /**
610
+ * Get session structured field values
611
+ * @description Returns the Structured Field values recorded on a session, plus `applicable_field_ids`: the fields that currently apply to it once every "show when" rule is resolved. A field missing from that list is hidden for this session: it holds no value and rejects writes until its parent field matches.
612
+ */
613
+ get: operations["getSessionStructuredFieldValues"];
614
+ /**
615
+ * Set session structured field values
616
+ * @description Upserts Structured Field values on a session; `null` clears a field. Every value is validated against its live field definition (an enum leaf choice, a user/team/tag of the organization, or a typed scalar), and a bad entry rejects the whole batch. A value on a field whose "show when" rule is unmet after the batch is rejected with 400; set the parent field in the same batch instead. Values whose field stops applying because a parent changed are cleared automatically. Returns the full current list with `applicable_field_ids`.
617
+ */
618
+ put: operations["setSessionStructuredFieldValues"];
619
+ post?: never;
620
+ delete?: never;
621
+ options?: never;
622
+ head?: never;
623
+ patch?: never;
624
+ trace?: never;
625
+ };
602
626
  "/chat/sessions/investigate-debug": {
603
627
  parameters: {
604
628
  query?: never;
@@ -3779,6 +3803,23 @@ export interface paths {
3779
3803
  patch?: never;
3780
3804
  trace?: never;
3781
3805
  };
3806
+ "/email-fleet/domains/dns": {
3807
+ parameters: {
3808
+ query?: never;
3809
+ header?: never;
3810
+ path?: never;
3811
+ cookie?: never;
3812
+ };
3813
+ /** Read sending domain DNS setup */
3814
+ get: operations["listEmailFleetDnsSetups"];
3815
+ put?: never;
3816
+ post?: never;
3817
+ delete?: never;
3818
+ options?: never;
3819
+ head?: never;
3820
+ patch?: never;
3821
+ trace?: never;
3822
+ };
3782
3823
  "/email-fleet/status": {
3783
3824
  parameters: {
3784
3825
  query?: never;
@@ -6244,15 +6285,22 @@ export interface components {
6244
6285
  PhoneHandoffReason: "ai_initiated" | "no_agent_assigned" | "agent_unavailable" | "caller_requested" | "timeout" | "unknown";
6245
6286
  /** @enum {string} */
6246
6287
  StructuredFieldTypeDto: "enum" | "text" | "number" | "boolean" | "date" | "user" | "team" | "tag";
6288
+ StructuredFieldShowWhenDto: {
6289
+ /** Format: uuid */
6290
+ field_id: string;
6291
+ values: string[];
6292
+ };
6247
6293
  CreateStructuredFieldDto: {
6248
6294
  key: string;
6249
6295
  name: string;
6250
6296
  description: string;
6251
6297
  type?: components["schemas"]["StructuredFieldTypeDto"];
6298
+ show_when?: components["schemas"]["StructuredFieldShowWhenDto"] | null;
6252
6299
  };
6253
6300
  UpdateStructuredFieldDto: {
6254
6301
  name?: string;
6255
6302
  description?: string;
6303
+ show_when?: components["schemas"]["StructuredFieldShowWhenDto"] | null;
6256
6304
  };
6257
6305
  CreateStructuredFieldVariantDto: {
6258
6306
  value: string;
@@ -6265,6 +6313,14 @@ export interface components {
6265
6313
  variant_description?: string;
6266
6314
  parent_id?: string | null;
6267
6315
  };
6316
+ SessionStructuredFieldValueInputDto: {
6317
+ /** Format: uuid */
6318
+ field_id: string;
6319
+ value: string | null;
6320
+ };
6321
+ SetSessionStructuredFieldValuesDto: {
6322
+ values: components["schemas"]["SessionStructuredFieldValueInputDto"][];
6323
+ };
6268
6324
  CompanyOwnerInput: {
6269
6325
  /** @description OpenCX user id of the owning teammate */
6270
6326
  id?: number;
@@ -6543,6 +6599,7 @@ export interface components {
6543
6599
  type: "whatsapp_template";
6544
6600
  template_name: string;
6545
6601
  template_language: string;
6602
+ /** @description Literal body values keyed by positional index or exact parameter name; cover every body parameter with no extras. */
6546
6603
  values: {
6547
6604
  [key: string]: string;
6548
6605
  };
@@ -6625,6 +6682,7 @@ export interface components {
6625
6682
  type: "whatsapp_template";
6626
6683
  template_name: string;
6627
6684
  template_language: string;
6685
+ /** @description Body bindings keyed by positional index ("1", "2") or exact parameter name ("first_name"). */
6628
6686
  variables: {
6629
6687
  [key: string]: {
6630
6688
  /** @description A recipient column ('display_name', 'phone', 'email') or the exact name of a key in the person's attached data (extra_data). Those three names always read the column — a key spelled the same is unreachable; any other string reads the attached data, matched verbatim as a top-level key. A missing or empty value falls to `fallback`, and with no fallback the person parks (needs_data). */
@@ -6781,6 +6839,7 @@ export interface components {
6781
6839
  type: "whatsapp_template";
6782
6840
  template_name: string;
6783
6841
  template_language: string;
6842
+ /** @description Body bindings keyed by positional index ("1", "2") or exact parameter name ("first_name"). */
6784
6843
  variables: {
6785
6844
  [key: string]: {
6786
6845
  /** @description A recipient column ('display_name', 'phone', 'email') or the exact name of a key in the person's attached data (extra_data). Those three names always read the column — a key spelled the same is unreachable; any other string reads the attached data, matched verbatim as a top-level key. A missing or empty value falls to `fallback`, and with no fallback the person parks (needs_data). */
@@ -6865,6 +6924,7 @@ export interface components {
6865
6924
  type: "whatsapp_template";
6866
6925
  template_name: string;
6867
6926
  template_language: string;
6927
+ /** @description Body bindings keyed by positional index ("1", "2") or exact parameter name ("first_name"). */
6868
6928
  variables: {
6869
6929
  [key: string]: {
6870
6930
  /** @description A recipient column ('display_name', 'phone', 'email') or the exact name of a key in the person's attached data (extra_data). Those three names always read the column — a key spelled the same is unreachable; any other string reads the attached data, matched verbatim as a top-level key. A missing or empty value falls to `fallback`, and with no fallback the person parks (needs_data). */
@@ -6939,6 +6999,7 @@ export interface components {
6939
6999
  type: "whatsapp_template";
6940
7000
  template_name: string;
6941
7001
  template_language: string;
7002
+ /** @description Body bindings keyed by positional index ("1", "2") or exact parameter name ("first_name"). */
6942
7003
  variables: {
6943
7004
  [key: string]: {
6944
7005
  /** @description A recipient column ('display_name', 'phone', 'email') or the exact name of a key in the person's attached data (extra_data). Those three names always read the column — a key spelled the same is unreachable; any other string reads the attached data, matched verbatim as a top-level key. A missing or empty value falls to `fallback`, and with no fallback the person parks (needs_data). */
@@ -9462,10 +9523,27 @@ export interface components {
9462
9523
  created_at: string;
9463
9524
  /** Format: date-time */
9464
9525
  updated_at: string;
9526
+ show_when_field_id: string | null;
9527
+ show_when_values: string[] | null;
9465
9528
  variants: components["schemas"]["StructuredFieldVariantTreeDto"][];
9466
9529
  system_options: components["schemas"]["StructuredFieldSystemOptionDto"][];
9467
9530
  };
9468
9531
  StructuredFieldListDto: components["schemas"]["StructuredFieldTreeDto"][];
9532
+ SessionStructuredFieldValueDto: {
9533
+ org_id: string;
9534
+ session_id: string;
9535
+ /** Format: uuid */
9536
+ field_id: string;
9537
+ value: string;
9538
+ /** Format: date-time */
9539
+ created_at: string;
9540
+ /** Format: date-time */
9541
+ updated_at: string;
9542
+ };
9543
+ SessionStructuredFieldValueListDto: {
9544
+ data: components["schemas"]["SessionStructuredFieldValueDto"][];
9545
+ applicable_field_ids: string[];
9546
+ };
9469
9547
  GenericResponseDto: {
9470
9548
  data?: {
9471
9549
  success: boolean;
@@ -10280,6 +10358,7 @@ export interface components {
10280
10358
  type: "whatsapp_template";
10281
10359
  template_name: string;
10282
10360
  template_language: string;
10361
+ /** @description Literal body values keyed by positional index or exact parameter name; cover every body parameter with no extras. */
10283
10362
  values: {
10284
10363
  [key: string]: string;
10285
10364
  };
@@ -10689,6 +10768,7 @@ export interface components {
10689
10768
  type: "whatsapp_template";
10690
10769
  template_name: string;
10691
10770
  template_language: string;
10771
+ /** @description Body bindings keyed by positional index ("1", "2") or exact parameter name ("first_name"). */
10692
10772
  variables: {
10693
10773
  [key: string]: {
10694
10774
  /** @description A recipient column ('display_name', 'phone', 'email') or the exact name of a key in the person's attached data (extra_data). Those three names always read the column — a key spelled the same is unreachable; any other string reads the attached data, matched verbatim as a top-level key. A missing or empty value falls to `fallback`, and with no fallback the person parks (needs_data). */
@@ -10815,6 +10895,7 @@ export interface components {
10815
10895
  type: "whatsapp_template";
10816
10896
  template_name: string;
10817
10897
  template_language: string;
10898
+ /** @description Body bindings keyed by positional index ("1", "2") or exact parameter name ("first_name"). */
10818
10899
  variables: {
10819
10900
  [key: string]: {
10820
10901
  /** @description A recipient column ('display_name', 'phone', 'email') or the exact name of a key in the person's attached data (extra_data). Those three names always read the column — a key spelled the same is unreachable; any other string reads the attached data, matched verbatim as a top-level key. A missing or empty value falls to `fallback`, and with no fallback the person parks (needs_data). */
@@ -11140,6 +11221,7 @@ export interface components {
11140
11221
  type: "whatsapp_template";
11141
11222
  template_name: string;
11142
11223
  template_language: string;
11224
+ /** @description Body bindings keyed by positional index ("1", "2") or exact parameter name ("first_name"). */
11143
11225
  variables: {
11144
11226
  [key: string]: {
11145
11227
  /** @description A recipient column ('display_name', 'phone', 'email') or the exact name of a key in the person's attached data (extra_data). Those three names always read the column — a key spelled the same is unreachable; any other string reads the attached data, matched verbatim as a top-level key. A missing or empty value falls to `fallback`, and with no fallback the person parks (needs_data). */
@@ -11330,6 +11412,28 @@ export interface components {
11330
11412
  noop: number;
11331
11413
  };
11332
11414
  };
11415
+ EmailFleetDnsSetupDto: {
11416
+ /** Format: uuid */
11417
+ domain_id: string;
11418
+ domain: string;
11419
+ zone: string;
11420
+ /** @enum {string} */
11421
+ status: "preparing" | "needs_dns" | "verified" | "check_failed";
11422
+ checked_at: string | null;
11423
+ records: {
11424
+ /** @enum {string} */
11425
+ type: "A" | "MX" | "TXT";
11426
+ host: string;
11427
+ value: string;
11428
+ ttl: number;
11429
+ purpose?: string;
11430
+ actual: string | null;
11431
+ verified: boolean | null;
11432
+ }[];
11433
+ };
11434
+ EmailFleetDnsSetupsDto: {
11435
+ domains: components["schemas"]["EmailFleetDnsSetupDto"][];
11436
+ };
11333
11437
  EmailFleetSuggestionDto: {
11334
11438
  domain: string;
11335
11439
  available: boolean;
@@ -13086,6 +13190,15 @@ export interface components {
13086
13190
  has_previous_page: boolean;
13087
13191
  };
13088
13192
  };
13193
+ CsatScoreAgent: {
13194
+ id: number;
13195
+ name: string | null;
13196
+ avatar_url: string | null;
13197
+ };
13198
+ CsatScoreTeam: {
13199
+ id: string;
13200
+ name: string | null;
13201
+ };
13089
13202
  CsatScorePublic: {
13090
13203
  id: string;
13091
13204
  organization_id: string;
@@ -13098,6 +13211,10 @@ export interface components {
13098
13211
  /** Format: date-time */
13099
13212
  updated_at: string;
13100
13213
  contact: components["schemas"]["Contact"] | null;
13214
+ /** @description The agent this score is attributed to: the session assignee at the moment the customer submitted it. Fixed at submit time, so reassigning the session afterwards never moves the rating. Null when the session was unassigned. */
13215
+ agent: components["schemas"]["CsatScoreAgent"] | null;
13216
+ /** @description The team this score is attributed to, captured at the moment the customer submitted it. Fixed at submit time, so moving the session between teams afterwards never moves the rating. Null when the session belonged to no team. */
13217
+ team: components["schemas"]["CsatScoreTeam"] | null;
13101
13218
  };
13102
13219
  CsatScorePublicResponseDto: components["schemas"]["CsatScorePublic"] | null;
13103
13220
  PaginatedCsatScoresPublicResponseDto: {
@@ -15628,6 +15745,74 @@ export interface operations {
15628
15745
  };
15629
15746
  };
15630
15747
  };
15748
+ getSessionStructuredFieldValues: {
15749
+ parameters: {
15750
+ query?: never;
15751
+ header?: never;
15752
+ path: {
15753
+ /** @description The unique identifier of the chat session */
15754
+ session_id: string;
15755
+ };
15756
+ cookie?: never;
15757
+ };
15758
+ requestBody?: never;
15759
+ responses: {
15760
+ /** @description Default Response */
15761
+ 200: {
15762
+ headers: {
15763
+ [name: string]: unknown;
15764
+ };
15765
+ content: {
15766
+ "application/json": components["schemas"]["SessionStructuredFieldValueListDto"];
15767
+ };
15768
+ };
15769
+ /** @description Internal Server Error */
15770
+ 500: {
15771
+ headers: {
15772
+ [name: string]: unknown;
15773
+ };
15774
+ content: {
15775
+ "application/json": components["schemas"]["ErrorDto"];
15776
+ };
15777
+ };
15778
+ };
15779
+ };
15780
+ setSessionStructuredFieldValues: {
15781
+ parameters: {
15782
+ query?: never;
15783
+ header?: never;
15784
+ path: {
15785
+ /** @description The unique identifier of the chat session */
15786
+ session_id: string;
15787
+ };
15788
+ cookie?: never;
15789
+ };
15790
+ requestBody: {
15791
+ content: {
15792
+ "application/json": components["schemas"]["SetSessionStructuredFieldValuesDto"];
15793
+ };
15794
+ };
15795
+ responses: {
15796
+ /** @description Default Response */
15797
+ 200: {
15798
+ headers: {
15799
+ [name: string]: unknown;
15800
+ };
15801
+ content: {
15802
+ "application/json": components["schemas"]["SessionStructuredFieldValueListDto"];
15803
+ };
15804
+ };
15805
+ /** @description Internal Server Error */
15806
+ 500: {
15807
+ headers: {
15808
+ [name: string]: unknown;
15809
+ };
15810
+ content: {
15811
+ "application/json": components["schemas"]["ErrorDto"];
15812
+ };
15813
+ };
15814
+ };
15815
+ };
15631
15816
  investigateSessionDebug: {
15632
15817
  parameters: {
15633
15818
  query?: never;
@@ -22676,6 +22861,35 @@ export interface operations {
22676
22861
  };
22677
22862
  };
22678
22863
  };
22864
+ listEmailFleetDnsSetups: {
22865
+ parameters: {
22866
+ query?: never;
22867
+ header?: never;
22868
+ path?: never;
22869
+ cookie?: never;
22870
+ };
22871
+ requestBody?: never;
22872
+ responses: {
22873
+ /** @description Default Response */
22874
+ 200: {
22875
+ headers: {
22876
+ [name: string]: unknown;
22877
+ };
22878
+ content: {
22879
+ "application/json": components["schemas"]["EmailFleetDnsSetupsDto"];
22880
+ };
22881
+ };
22882
+ /** @description Internal Server Error */
22883
+ 500: {
22884
+ headers: {
22885
+ [name: string]: unknown;
22886
+ };
22887
+ content: {
22888
+ "application/json": components["schemas"]["ErrorDto"];
22889
+ };
22890
+ };
22891
+ };
22892
+ };
22679
22893
  getEmailFleetStatus: {
22680
22894
  parameters: {
22681
22895
  query?: never;