@apex-inc/mcp-server 0.51.0 → 0.52.1

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/tools.d.ts CHANGED
@@ -565,6 +565,56 @@ export declare const toolDefinitions: {
565
565
  risk: number;
566
566
  }>;
567
567
  name: import("zod").ZodOptional<import("zod").ZodString>;
568
+ rules: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
569
+ id: import("zod").ZodOptional<import("zod").ZodString>;
570
+ name: import("zod").ZodString;
571
+ dimension: import("zod").ZodEnum<["intent", "icp_fit", "account", "engagement", "risk"]>;
572
+ condition: import("zod").ZodObject<{
573
+ type: import("zod").ZodEnum<["event_type", "form_field", "utm_match", "url_match", "custom"]>;
574
+ field: import("zod").ZodOptional<import("zod").ZodString>;
575
+ operator: import("zod").ZodEnum<["equals", "contains", "gt", "lt", "gte", "lte", "regex", "exists"]>;
576
+ value: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber]>>;
577
+ }, "strip", import("zod").ZodTypeAny, {
578
+ type: "custom" | "event_type" | "form_field" | "utm_match" | "url_match";
579
+ operator: "equals" | "exists" | "contains" | "gt" | "lt" | "gte" | "lte" | "regex";
580
+ value?: string | number | undefined;
581
+ field?: string | undefined;
582
+ }, {
583
+ type: "custom" | "event_type" | "form_field" | "utm_match" | "url_match";
584
+ operator: "equals" | "exists" | "contains" | "gt" | "lt" | "gte" | "lte" | "regex";
585
+ value?: string | number | undefined;
586
+ field?: string | undefined;
587
+ }>;
588
+ points: import("zod").ZodNumber;
589
+ max_points: import("zod").ZodOptional<import("zod").ZodNumber>;
590
+ description: import("zod").ZodOptional<import("zod").ZodString>;
591
+ }, "strip", import("zod").ZodTypeAny, {
592
+ name: string;
593
+ dimension: "intent" | "icp_fit" | "account" | "engagement" | "risk";
594
+ condition: {
595
+ type: "custom" | "event_type" | "form_field" | "utm_match" | "url_match";
596
+ operator: "equals" | "exists" | "contains" | "gt" | "lt" | "gte" | "lte" | "regex";
597
+ value?: string | number | undefined;
598
+ field?: string | undefined;
599
+ };
600
+ points: number;
601
+ id?: string | undefined;
602
+ max_points?: number | undefined;
603
+ description?: string | undefined;
604
+ }, {
605
+ name: string;
606
+ dimension: "intent" | "icp_fit" | "account" | "engagement" | "risk";
607
+ condition: {
608
+ type: "custom" | "event_type" | "form_field" | "utm_match" | "url_match";
609
+ operator: "equals" | "exists" | "contains" | "gt" | "lt" | "gte" | "lte" | "regex";
610
+ value?: string | number | undefined;
611
+ field?: string | undefined;
612
+ };
613
+ points: number;
614
+ id?: string | undefined;
615
+ max_points?: number | undefined;
616
+ description?: string | undefined;
617
+ }>, "many">>;
568
618
  }, "strip", import("zod").ZodTypeAny, {
569
619
  weights: {
570
620
  intent: number;
@@ -574,6 +624,20 @@ export declare const toolDefinitions: {
574
624
  risk: number;
575
625
  };
576
626
  name?: string | undefined;
627
+ rules?: {
628
+ name: string;
629
+ dimension: "intent" | "icp_fit" | "account" | "engagement" | "risk";
630
+ condition: {
631
+ type: "custom" | "event_type" | "form_field" | "utm_match" | "url_match";
632
+ operator: "equals" | "exists" | "contains" | "gt" | "lt" | "gte" | "lte" | "regex";
633
+ value?: string | number | undefined;
634
+ field?: string | undefined;
635
+ };
636
+ points: number;
637
+ id?: string | undefined;
638
+ max_points?: number | undefined;
639
+ description?: string | undefined;
640
+ }[] | undefined;
577
641
  }, {
578
642
  weights: {
579
643
  intent: number;
@@ -583,8 +647,22 @@ export declare const toolDefinitions: {
583
647
  risk: number;
584
648
  };
585
649
  name?: string | undefined;
650
+ rules?: {
651
+ name: string;
652
+ dimension: "intent" | "icp_fit" | "account" | "engagement" | "risk";
653
+ condition: {
654
+ type: "custom" | "event_type" | "form_field" | "utm_match" | "url_match";
655
+ operator: "equals" | "exists" | "contains" | "gt" | "lt" | "gte" | "lte" | "regex";
656
+ value?: string | number | undefined;
657
+ field?: string | undefined;
658
+ };
659
+ points: number;
660
+ id?: string | undefined;
661
+ max_points?: number | undefined;
662
+ description?: string | undefined;
663
+ }[] | undefined;
586
664
  }>;
587
- handler: ({ weights, name, }: {
665
+ handler: ({ weights, name, rules, }: {
588
666
  weights: {
589
667
  intent: number;
590
668
  icp_fit: number;
@@ -593,6 +671,7 @@ export declare const toolDefinitions: {
593
671
  risk: number;
594
672
  };
595
673
  name?: string;
674
+ rules?: Array<Record<string, unknown>>;
596
675
  }) => Promise<{
597
676
  content: {
598
677
  type: "text";
@@ -650,17 +729,17 @@ export declare const toolDefinitions: {
650
729
  to_stage: string;
651
730
  }>, "many">;
652
731
  }, "strip", import("zod").ZodTypeAny, {
653
- overridden: boolean;
654
732
  rules: {
655
733
  event_name: string;
656
734
  to_stage: string;
657
735
  }[];
658
- }, {
659
736
  overridden: boolean;
737
+ }, {
660
738
  rules: {
661
739
  event_name: string;
662
740
  to_stage: string;
663
741
  }[];
742
+ overridden: boolean;
664
743
  }>>;
665
744
  }, "strip", import("zod").ZodTypeAny, {
666
745
  profile?: "ecommerce" | "marketplace" | "agency" | "custom" | "saas" | "mobile-app" | undefined;
@@ -668,11 +747,11 @@ export declare const toolDefinitions: {
668
747
  activationEvents?: string[] | undefined;
669
748
  churnWindowDays?: number | undefined;
670
749
  lifecycleEventMap?: {
671
- overridden: boolean;
672
750
  rules: {
673
751
  event_name: string;
674
752
  to_stage: string;
675
753
  }[];
754
+ overridden: boolean;
676
755
  } | undefined;
677
756
  }, {
678
757
  profile?: "ecommerce" | "marketplace" | "agency" | "custom" | "saas" | "mobile-app" | undefined;
@@ -680,11 +759,11 @@ export declare const toolDefinitions: {
680
759
  activationEvents?: string[] | undefined;
681
760
  churnWindowDays?: number | undefined;
682
761
  lifecycleEventMap?: {
683
- overridden: boolean;
684
762
  rules: {
685
763
  event_name: string;
686
764
  to_stage: string;
687
765
  }[];
766
+ overridden: boolean;
688
767
  } | undefined;
689
768
  }>;
690
769
  handler: (args: {
@@ -1756,6 +1835,129 @@ export declare const toolDefinitions: {
1756
1835
  } & {
1757
1836
  group: ToolGroup;
1758
1837
  };
1838
+ list_apex_campaigns: {
1839
+ description: string;
1840
+ schema: import("zod").ZodObject<{}, "strip", import("zod").ZodTypeAny, {}, {}>;
1841
+ handler: () => Promise<{
1842
+ isError?: boolean | undefined;
1843
+ content: {
1844
+ type: "text";
1845
+ text: string;
1846
+ }[];
1847
+ }>;
1848
+ } & {
1849
+ group: ToolGroup;
1850
+ };
1851
+ create_apex_campaign: {
1852
+ description: string;
1853
+ schema: import("zod").ZodObject<{
1854
+ name: import("zod").ZodString;
1855
+ description: import("zod").ZodOptional<import("zod").ZodString>;
1856
+ startDate: import("zod").ZodOptional<import("zod").ZodString>;
1857
+ endDate: import("zod").ZodOptional<import("zod").ZodString>;
1858
+ members: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
1859
+ platform: import("zod").ZodEnum<["meta-ads", "google-ads", "linkedin-ads", "tiktok-ads", "microsoft-ads", "reddit-ads", "snapchat-ads"]>;
1860
+ platform_campaign_id: import("zod").ZodString;
1861
+ is_primary: import("zod").ZodOptional<import("zod").ZodBoolean>;
1862
+ }, "strip", import("zod").ZodTypeAny, {
1863
+ platform: "meta-ads" | "google-ads" | "linkedin-ads" | "tiktok-ads" | "reddit-ads" | "snapchat-ads" | "microsoft-ads";
1864
+ platform_campaign_id: string;
1865
+ is_primary?: boolean | undefined;
1866
+ }, {
1867
+ platform: "meta-ads" | "google-ads" | "linkedin-ads" | "tiktok-ads" | "reddit-ads" | "snapchat-ads" | "microsoft-ads";
1868
+ platform_campaign_id: string;
1869
+ is_primary?: boolean | undefined;
1870
+ }>, "many">>;
1871
+ }, "strip", import("zod").ZodTypeAny, {
1872
+ name: string;
1873
+ description?: string | undefined;
1874
+ members?: {
1875
+ platform: "meta-ads" | "google-ads" | "linkedin-ads" | "tiktok-ads" | "reddit-ads" | "snapchat-ads" | "microsoft-ads";
1876
+ platform_campaign_id: string;
1877
+ is_primary?: boolean | undefined;
1878
+ }[] | undefined;
1879
+ startDate?: string | undefined;
1880
+ endDate?: string | undefined;
1881
+ }, {
1882
+ name: string;
1883
+ description?: string | undefined;
1884
+ members?: {
1885
+ platform: "meta-ads" | "google-ads" | "linkedin-ads" | "tiktok-ads" | "reddit-ads" | "snapchat-ads" | "microsoft-ads";
1886
+ platform_campaign_id: string;
1887
+ is_primary?: boolean | undefined;
1888
+ }[] | undefined;
1889
+ startDate?: string | undefined;
1890
+ endDate?: string | undefined;
1891
+ }>;
1892
+ handler: (args: {
1893
+ name: string;
1894
+ description?: string;
1895
+ startDate?: string;
1896
+ endDate?: string;
1897
+ members?: {
1898
+ platform: "meta-ads" | "google-ads" | "linkedin-ads" | "tiktok-ads" | "reddit-ads" | "snapchat-ads" | "microsoft-ads";
1899
+ platform_campaign_id: string;
1900
+ is_primary?: boolean | undefined;
1901
+ }[];
1902
+ }) => Promise<{
1903
+ isError?: boolean | undefined;
1904
+ content: {
1905
+ type: "text";
1906
+ text: string;
1907
+ }[];
1908
+ }>;
1909
+ } & {
1910
+ group: ToolGroup;
1911
+ };
1912
+ add_apex_campaign_member: {
1913
+ description: string;
1914
+ schema: import("zod").ZodObject<{
1915
+ campaignId: import("zod").ZodString;
1916
+ members: import("zod").ZodArray<import("zod").ZodObject<{
1917
+ platform: import("zod").ZodEnum<["meta-ads", "google-ads", "linkedin-ads", "tiktok-ads", "microsoft-ads", "reddit-ads", "snapchat-ads"]>;
1918
+ platform_campaign_id: import("zod").ZodString;
1919
+ is_primary: import("zod").ZodOptional<import("zod").ZodBoolean>;
1920
+ }, "strip", import("zod").ZodTypeAny, {
1921
+ platform: "meta-ads" | "google-ads" | "linkedin-ads" | "tiktok-ads" | "reddit-ads" | "snapchat-ads" | "microsoft-ads";
1922
+ platform_campaign_id: string;
1923
+ is_primary?: boolean | undefined;
1924
+ }, {
1925
+ platform: "meta-ads" | "google-ads" | "linkedin-ads" | "tiktok-ads" | "reddit-ads" | "snapchat-ads" | "microsoft-ads";
1926
+ platform_campaign_id: string;
1927
+ is_primary?: boolean | undefined;
1928
+ }>, "many">;
1929
+ }, "strip", import("zod").ZodTypeAny, {
1930
+ members: {
1931
+ platform: "meta-ads" | "google-ads" | "linkedin-ads" | "tiktok-ads" | "reddit-ads" | "snapchat-ads" | "microsoft-ads";
1932
+ platform_campaign_id: string;
1933
+ is_primary?: boolean | undefined;
1934
+ }[];
1935
+ campaignId: string;
1936
+ }, {
1937
+ members: {
1938
+ platform: "meta-ads" | "google-ads" | "linkedin-ads" | "tiktok-ads" | "reddit-ads" | "snapchat-ads" | "microsoft-ads";
1939
+ platform_campaign_id: string;
1940
+ is_primary?: boolean | undefined;
1941
+ }[];
1942
+ campaignId: string;
1943
+ }>;
1944
+ handler: (args: {
1945
+ campaignId: string;
1946
+ members: {
1947
+ platform: "meta-ads" | "google-ads" | "linkedin-ads" | "tiktok-ads" | "reddit-ads" | "snapchat-ads" | "microsoft-ads";
1948
+ platform_campaign_id: string;
1949
+ is_primary?: boolean | undefined;
1950
+ }[];
1951
+ }) => Promise<{
1952
+ isError?: boolean | undefined;
1953
+ content: {
1954
+ type: "text";
1955
+ text: string;
1956
+ }[];
1957
+ }>;
1958
+ } & {
1959
+ group: ToolGroup;
1960
+ };
1759
1961
  list_audiences: {
1760
1962
  description: string;
1761
1963
  schema: import("zod").ZodObject<{}, "strip", import("zod").ZodTypeAny, {}, {}>;
@@ -4862,67 +5064,77 @@ export declare const toolDefinitions: {
4862
5064
  description: string;
4863
5065
  schema: import("zod").ZodObject<{
4864
5066
  journeyId: import("zod").ZodString;
5067
+ afterStepId: import("zod").ZodOptional<import("zod").ZodString>;
4865
5068
  condition: import("zod").ZodObject<{
4866
- kind: import("zod").ZodEnum<["attribute", "event_fired", "event_not_fired"]>;
5069
+ kind: import("zod").ZodEnum<["attribute", "event_fired", "event_not_fired", "letter_opened", "letter_clicked"]>;
4867
5070
  field_path: import("zod").ZodOptional<import("zod").ZodString>;
4868
5071
  operator: import("zod").ZodOptional<import("zod").ZodEnum<["equals", "not_equals", "greater_than", "less_than", "in", "exists", "not_exists"]>>;
4869
5072
  value: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber, import("zod").ZodBoolean, import("zod").ZodArray<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber, import("zod").ZodBoolean]>, "many">]>>;
4870
5073
  event_name: import("zod").ZodOptional<import("zod").ZodString>;
4871
5074
  window_days: import("zod").ZodOptional<import("zod").ZodNumber>;
5075
+ wait_days: import("zod").ZodOptional<import("zod").ZodNumber>;
4872
5076
  }, "strip", import("zod").ZodTypeAny, {
4873
- kind: "event_not_fired" | "attribute" | "event_fired";
5077
+ kind: "event_not_fired" | "attribute" | "event_fired" | "letter_opened" | "letter_clicked";
4874
5078
  value?: string | number | boolean | (string | number | boolean)[] | undefined;
5079
+ operator?: "equals" | "not_equals" | "exists" | "greater_than" | "less_than" | "in" | "not_exists" | undefined;
4875
5080
  event_name?: string | undefined;
4876
5081
  field_path?: string | undefined;
4877
- operator?: "equals" | "not_equals" | "exists" | "greater_than" | "less_than" | "in" | "not_exists" | undefined;
4878
5082
  window_days?: number | undefined;
5083
+ wait_days?: number | undefined;
4879
5084
  }, {
4880
- kind: "event_not_fired" | "attribute" | "event_fired";
5085
+ kind: "event_not_fired" | "attribute" | "event_fired" | "letter_opened" | "letter_clicked";
4881
5086
  value?: string | number | boolean | (string | number | boolean)[] | undefined;
5087
+ operator?: "equals" | "not_equals" | "exists" | "greater_than" | "less_than" | "in" | "not_exists" | undefined;
4882
5088
  event_name?: string | undefined;
4883
5089
  field_path?: string | undefined;
4884
- operator?: "equals" | "not_equals" | "exists" | "greater_than" | "less_than" | "in" | "not_exists" | undefined;
4885
5090
  window_days?: number | undefined;
5091
+ wait_days?: number | undefined;
4886
5092
  }>;
4887
5093
  whenTrueCommId: import("zod").ZodString;
4888
5094
  whenFalseCommId: import("zod").ZodOptional<import("zod").ZodString>;
4889
5095
  channels: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<["email", "in_app_push", "mobile_push", "web_push"]>, "many">>;
4890
5096
  }, "strip", import("zod").ZodTypeAny, {
4891
- journeyId: string;
4892
5097
  condition: {
4893
- kind: "event_not_fired" | "attribute" | "event_fired";
5098
+ kind: "event_not_fired" | "attribute" | "event_fired" | "letter_opened" | "letter_clicked";
4894
5099
  value?: string | number | boolean | (string | number | boolean)[] | undefined;
5100
+ operator?: "equals" | "not_equals" | "exists" | "greater_than" | "less_than" | "in" | "not_exists" | undefined;
4895
5101
  event_name?: string | undefined;
4896
5102
  field_path?: string | undefined;
4897
- operator?: "equals" | "not_equals" | "exists" | "greater_than" | "less_than" | "in" | "not_exists" | undefined;
4898
5103
  window_days?: number | undefined;
5104
+ wait_days?: number | undefined;
4899
5105
  };
5106
+ journeyId: string;
4900
5107
  whenTrueCommId: string;
4901
5108
  channels?: ("email" | "mobile_push" | "web_push" | "in_app_push")[] | undefined;
5109
+ afterStepId?: string | undefined;
4902
5110
  whenFalseCommId?: string | undefined;
4903
5111
  }, {
4904
- journeyId: string;
4905
5112
  condition: {
4906
- kind: "event_not_fired" | "attribute" | "event_fired";
5113
+ kind: "event_not_fired" | "attribute" | "event_fired" | "letter_opened" | "letter_clicked";
4907
5114
  value?: string | number | boolean | (string | number | boolean)[] | undefined;
5115
+ operator?: "equals" | "not_equals" | "exists" | "greater_than" | "less_than" | "in" | "not_exists" | undefined;
4908
5116
  event_name?: string | undefined;
4909
5117
  field_path?: string | undefined;
4910
- operator?: "equals" | "not_equals" | "exists" | "greater_than" | "less_than" | "in" | "not_exists" | undefined;
4911
5118
  window_days?: number | undefined;
5119
+ wait_days?: number | undefined;
4912
5120
  };
5121
+ journeyId: string;
4913
5122
  whenTrueCommId: string;
4914
5123
  channels?: ("email" | "mobile_push" | "web_push" | "in_app_push")[] | undefined;
5124
+ afterStepId?: string | undefined;
4915
5125
  whenFalseCommId?: string | undefined;
4916
5126
  }>;
4917
5127
  handler: (args: {
4918
5128
  journeyId: string;
5129
+ afterStepId?: string;
4919
5130
  condition: {
4920
- kind: "attribute" | "event_fired" | "event_not_fired";
5131
+ kind: "attribute" | "event_fired" | "event_not_fired" | "letter_opened" | "letter_clicked";
4921
5132
  field_path?: string;
4922
5133
  operator?: string;
4923
5134
  value?: string | number | boolean | Array<string | number | boolean>;
4924
5135
  event_name?: string;
4925
5136
  window_days?: number;
5137
+ wait_days?: number;
4926
5138
  };
4927
5139
  whenTrueCommId: string;
4928
5140
  whenFalseCommId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/dist/tools.js CHANGED
@@ -8,6 +8,7 @@ import { measurementTools } from "./tools/measurement.js";
8
8
  import { accountTools } from "./tools/accounts.js";
9
9
  import { contextTools } from "./tools/context.js";
10
10
  import { adPlatformTools } from "./tools/ad-platforms.js";
11
+ import { apexCampaignTools } from "./tools/apex-campaigns.js";
11
12
  function stampGroups(tools) {
12
13
  for (const [name, def] of Object.entries(tools)) {
13
14
  const group = toolGroup(name);
@@ -25,6 +26,7 @@ export const toolDefinitions = stampGroups({
25
26
  ...partnerTools,
26
27
  ...measurementTools,
27
28
  ...adPlatformTools,
29
+ ...apexCampaignTools,
28
30
  ...accountTools,
29
31
  ...contextTools,
30
32
  ...setupCatchupTools,
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAQ1D,SAAS,WAAW,CAAoC,KAAQ;IAC9D,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,kCAAkC,CAAC,CAAC;QACtE,CAAC;QACA,GAAsC,CAAC,KAAK,GAAG,KAAK,CAAC;IACxD,CAAC;IACD,OAAO,KAAwD,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;IACzC,GAAG,eAAe;IAClB,GAAG,WAAW;IACd,GAAG,aAAa;IAChB,GAAG,YAAY;IACf,GAAG,gBAAgB;IACnB,GAAG,eAAe;IAClB,GAAG,YAAY;IACf,GAAG,YAAY;IACf,GAAG,iBAAiB;CACrB,CAAC,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQ9D,SAAS,WAAW,CAAoC,KAAQ;IAC9D,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,kCAAkC,CAAC,CAAC;QACtE,CAAC;QACA,GAAsC,CAAC,KAAK,GAAG,KAAK,CAAC;IACxD,CAAC;IACD,OAAO,KAAwD,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;IACzC,GAAG,eAAe;IAClB,GAAG,WAAW;IACd,GAAG,aAAa;IAChB,GAAG,YAAY;IACf,GAAG,gBAAgB;IACnB,GAAG,eAAe;IAClB,GAAG,iBAAiB;IACpB,GAAG,YAAY;IACf,GAAG,YAAY;IACf,GAAG,iBAAiB;CACrB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apex-inc/mcp-server",
3
- "version": "0.51.0",
3
+ "version": "0.52.1",
4
4
  "description": "MCP server for Apex. Your coding agent talks to the same Apex the dashboard uses.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -60,7 +60,9 @@ the server prompts a fresh device approval rather than failing silently.
60
60
 
61
61
  Use Apex MCP tools for the full loop: `plan_experiment`, `start_reasoning`, `log_prediction`, `create_experiment`, `activate_experiment`, `get_results`, `promote_winner`, `archive_experiment`, `list_experiments`, `record_outcome`, `suggest_experiment`, `predict_impact`, `evaluate_feature`, `switch_workspace`, `attach_experiment_asset`, `verify_experiment_wiring`.
62
62
 
63
- `create_experiment` accepts `primaryMetricEvent` (validated against the workspace event spec), and inline `beliefStatement` / `hypothesisStatement` so the belief→hypothesis→experiment chain is created and linked in one call. It stamps `createdFrom: "cursor"` so the dashboard shows a "Created from Cursor" badge.
63
+ `create_experiment` accepts `primaryMetricEvent`: a standard Apex event, or any event this workspace receives or defined with `define_event` (a merchant's own `demo_booked` works the same as `checkout_completed`). An event the workspace has never seen is refused with the closest names it does know. `update_experiment` and the API run the same check, and `GET /api/experiments/goal-check?event=` (SDK `experiments.checkGoalEvent`) asks it without creating anything.
64
+
65
+ It also accepts inline `beliefStatement` / `hypothesisStatement` so the belief→hypothesis→experiment chain is created and linked in one call. It stamps `createdFrom: "cursor"` so the dashboard shows a "Created from Cursor" badge.
64
66
 
65
67
  Interactive flows: MCP prompts `new-experiment` and `experiment-review` orchestrate multi-step setup and review.
66
68
 
@@ -202,7 +204,7 @@ Ad holdout, the short version:
202
204
 
203
205
  ## App goals on a web experiment (cross-platform)
204
206
 
205
- A website test can optimize an app outcome: `create_experiment({ ..., primary_metric_event: "app_install" })` (or `in_app_purchase`). Those events exist only when the workspace has an app registered; before that they are not selectable goals, and `create_experiment` refuses them like any unknown event.
207
+ A website test can optimize an app outcome: `create_experiment({ ..., primary_metric_event: "app_install" })` (or `in_app_purchase`). The dashboard's goal pickers only offer them once the workspace has an app registered. `create_experiment` accepts them either way, because they are standard Apex events, so check the workspace has an app first: without one, nothing can ever count toward that goal.
206
208
 
207
209
  What changes when the goal lives in the app:
208
210
 
@@ -62,6 +62,23 @@ Apex has two distinct scores. Don't conflate them.
62
62
  | **Lead Score** | Individual contact quality (ICP fit, intent, engagement) | Computed by `scorer.ts` per contact |
63
63
  | **Growth Intelligence Score** | Organizational learning maturity (validated beliefs, completed experiments, prediction accuracy, revenue attribution) | `GET /api/intelligence` |
64
64
 
65
+ ### Scoring rules (what this workspace says makes a good lead)
66
+
67
+ The person score splits 100 points across five dimensions (intent, icp_fit, account, engagement, risk). Built-in signals fill each dimension; the workspace's own **rules** add to it. Set both with `set_scoring_weights({ weights, rules })`; it saves a new model, makes it active and re-scores everyone. Omitting `rules` keeps the active ones; `rules: []` removes them. `get_scoring_model` shows what is active.
68
+
69
+ A rule is one thing a person did or said, worth points in one dimension:
70
+
71
+ ```
72
+ { name: "Spends $20k+ a month on ads", dimension: "icp_fit",
73
+ condition: { type: "form_field", field: "ad_budget", operator: "equals", value: "20k_plus" },
74
+ points: 15 }
75
+ ```
76
+
77
+ - `form_field` reads a form answer or an identify trait by key. `utm_match` reads `utm_source` / `utm_medium` / `utm_campaign`. `url_match` reads the page they landed on. `event_type` matches an event they sent (`value` is the event name).
78
+ - Points add to the dimension; negative points subtract (use `risk` for warning signs). A dimension never goes past its weight or below zero.
79
+ - Answers and traits re-check whenever an identify brings new ones. An event rule re-scores the person the moment that event arrives and stays counted after.
80
+ - Name rules in the owner's words. The person's score explanation shows each matched rule by name.
81
+
65
82
  There is no product-wide "Engagement Score." A 0–100 version existed and was
66
83
  retired, because one number blended setup depth with usage depth and could not
67
84
  say which was missing. Adoption is reported as discrete milestones reached
@@ -38,6 +38,7 @@ When a user was anonymous and then becomes known (signup, login, checkout email)
38
38
 
39
39
  - Call **`identify`** with a stable `userId` and pass **`traits.email`** when applicable.
40
40
  - **Server-side** `identify` (webhooks, API routes): pass **`traits.visitorId`** = value of the browser **`apex_vid`** cookie so the stitch links to the real marketing session. Without it, Apex may create a synthetic visitor disconnected from prior events.
41
+ - **Declined cookies, then sent a form or signed up**: the snippet, and under `requireConsent` the SDK's `trackForm` and `identify` with an email (plus `identify` in the React Native and Capacitor apps), still make them a person with the answers they gave. No browsing is joined, no ad click id is kept, and advertising is recorded as denied, so no ad platform hears about them. Do not build a workaround to "recover" those visits. See `/docs/concepts/consent`.
41
42
  - **Sign-out**: call **`reset()`** from `@apex-inc/sdk` (or `window.apex.reset()` on snippet-only sites) in every logout handler. It starts the browser as a fresh anonymous visitor, so a shared computer does not credit the next person's visits to the last one. Without it, Apex still never merges two signed-in people; anonymous visits go to whoever signed in on that browser most recently.
42
43
 
43
44
  ## B2B accounts + groups (model the company, not just the seat)
@@ -343,6 +343,16 @@ If get_setup_state shows first-run incomplete, name the merchant before inventin
343
343
 
344
344
  After ads are connected, make a paid Apex Link before inventing UTMs. Do not stamp conversion ack. `create_apex_link` writes the paid medium by default; pass `placement: "social-post"` (or `social-bio`, `other`) for a free post so it never lands in paid reporting. `other` needs `source` naming the site, show, or community (e.g. `indie-hackers`) so signups credit it by name. A link shows its landing page's card when pasted into Slack, iMessage, LinkedIn, or X; pass `preview_title`, `preview_description`, or `preview_image_url` only when that link should look different. `set_ad_measurement_events` chooses which sales to forward and returns a URL if the legal sentence is still open. `set_conversion_source_of_truth` records whether another tool already sends the sale; Apex holds everything for Meta and Google until it is answered. The rail finishes when those things exist — there is no mark-complete tool.
345
345
 
346
+ ## Recipe: one launch across several ad platforms (Apex Campaigns)
347
+
348
+ When the same launch runs on Meta, Google, LinkedIn and TikTok, each platform has its own campaign with its own id. An **Apex Campaign** puts them under one name so spend, clicks and results read side by side under Attribution → Campaigns.
349
+
350
+ 1. `create_apex_link` for each ad version and platform, all with the same `campaign_name`.
351
+ 2. `create_apex_campaign({ name })` with that same name. Pass `members: [{ platform, platform_campaign_id }]` if the ads already exist.
352
+ 3. Once the ads are live and synced, `list_apex_campaigns` shows `unlinked_platform_campaigns`; link them with `add_apex_campaign_member({ campaign_id, members })`.
353
+
354
+ Each platform keeps its own attribution, so the columns are not added into one cost per result unless the owner turns that on in the dashboard. Do not make a second Apex Campaign with the same name; `create_apex_campaign` refuses it.
355
+
346
356
  ## Recipe: Apex Links for app installs (Mobile Measurement)
347
357
 
348
358
  An Apex Link is a short URL that routes to the App Store / Play Store when the app is not installed and carries the click through to the first open (deferred deep link). Apex credits the install to the link's campaign and sends it back to the ad network the click came from.
@@ -26,6 +26,7 @@ The single hardest thing about journeys is **knowing when to stop**. The vast ma
26
26
  | `list_journey_exits` | Read only the exit rules for one journey. Use when the user asks "what triggers an exit for this?" |
27
27
  | `add_journey_exit` | Add an exit rule to a journey draft. Use when the user (or you proactively) decides a journey needs a new exit trigger. |
28
28
  | `remove_journey_exit` | Remove an exit rule from a journey draft. |
29
+ | `add_journey_branch` | Split the flow on one condition and send a different letter to each side. The condition is an attribute, an event (fired / not fired in a window), or how they responded to the letter the journey just sent (`letter_opened` / `letter_clicked`, waiting `wait_days`, default 3). |
29
30
  | `audit_journey_exits` | Sweep across all published marketing journeys and find ones missing purchase exits. Run this proactively when a user mentions journeys, cart recovery, or marketing programs. |
30
31
  | `get_contact_cart` | Inspect a contact's current cart state to debug cart-recovery journeys or branch.condition evaluations. |
31
32
 
@@ -61,6 +62,22 @@ When teaching users, this is the mental model:
61
62
 
62
63
  > "A journey starts because something happened. An exit fires when the reason for the journey no longer exists."
63
64
 
65
+ ### Branching on how they responded to a letter
66
+
67
+ "If they clicked the welcome letter, send the next step; if not, send a reminder" is one call:
68
+
69
+ ```
70
+ add_journey_branch({ journey_id, after_step_id: "<the welcome send>",
71
+ condition: { kind: "letter_clicked", wait_days: 2 },
72
+ when_true_comm_id: "<next step letter>", when_false_comm_id: "<reminder>" })
73
+ ```
74
+
75
+ - It goes right after the send it is about. Without `after_step_id` it goes after the step that leads into the exit, which has to be that send.
76
+ - The journey waits up to `wait_days` for the click, then takes the other side. Both sides then continue where the flow went before.
77
+ - Prefer `letter_clicked`. Mail apps preload images, so opens overcount and someone who never read it can take the "opened" side.
78
+ - Push reports opens and dismissals, not clicks, so `letter_clicked` after a push is refused.
79
+ - A branch on whether they did something on the site (booked, paid) is `event_fired` / `event_not_fired`, not a letter branch. If doing it should end the journey, that's an exit rule instead.
80
+
64
81
  ### Send-time gate is authoritative
65
82
 
66
83
  Even if the stream-based exit matcher misses an event (race conditions are rare but possible), every `send_*` step re-checks exit rules immediately before firing. This is the guarantee Apex makes to its users: **if an exit event has fired by the moment we send, we will not send**.