@koda-sl/baker-cli 0.512.0 → 0.514.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 +3 -3
- package/dist/account-D6LEVVWT.js +82 -0
- package/dist/account-D6LEVVWT.js.map +1 -0
- package/dist/account-SGK3IJ6N.js +82 -0
- package/dist/account-SGK3IJ6N.js.map +1 -0
- package/dist/account-assets-J5Z4URLQ.js +290 -0
- package/dist/account-level-4SBYYHRS.js +611 -0
- package/dist/account-level-4SBYYHRS.js.map +1 -0
- package/dist/account-reads-2MSUVG46.js +219 -0
- package/dist/account-users-MHC7AD6K.js +64 -0
- package/dist/account-users-MHC7AD6K.js.map +1 -0
- package/dist/account-writes-QQQC54WC.js +68 -0
- package/dist/account-writes-QQQC54WC.js.map +1 -0
- package/dist/accounts-2O6I7YBN.js +80 -0
- package/dist/accounts-2O6I7YBN.js.map +1 -0
- package/dist/accounts-QNE5QWBG.js +701 -0
- package/dist/accounts-QNE5QWBG.js.map +1 -0
- package/dist/actions-D7OWCP36.js +55 -0
- package/dist/activecampaign-LBS4M4C4.js +938 -0
- package/dist/activecampaign-LBS4M4C4.js.map +1 -0
- package/dist/ad-group-writes-CJTTUUIT.js +172 -0
- package/dist/ad-group-writes-CJTTUUIT.js.map +1 -0
- package/dist/ad-groups-HLGSVH74.js +70 -0
- package/dist/ad-groups-HLGSVH74.js.map +1 -0
- package/dist/ad-writes-3UE3U7VE.js +176 -0
- package/dist/ad-writes-3UE3U7VE.js.map +1 -0
- package/dist/add-HFQB2NTU.js +107 -0
- package/dist/add-HFQB2NTU.js.map +1 -0
- package/dist/add-IUYE5H6A.js +305 -0
- package/dist/add-IUYE5H6A.js.map +1 -0
- package/dist/ads-HLUJB5SQ.js +48 -0
- package/dist/ads-MAOI7S6V.js +115 -0
- package/dist/ads-PYNDMHUD.js +79 -0
- package/dist/ads-PYNDMHUD.js.map +1 -0
- package/dist/adsets-QRKICEFD.js +182 -0
- package/dist/advertisers-XXM6POO5.js +123 -0
- package/dist/advertisers-XXM6POO5.js.map +1 -0
- package/dist/analytics-AULKYNNT.js +447 -0
- package/dist/analytics-AULKYNNT.js.map +1 -0
- package/dist/analytics-DNDTC643.js +2437 -0
- package/dist/analytics-DNDTC643.js.map +1 -0
- package/dist/asset-writes-JLVUAVUZ.js +50 -0
- package/dist/assign-2GQVQKKO.js +80 -0
- package/dist/assign-2GQVQKKO.js.map +1 -0
- package/dist/audience-size-C3YHQPZB.js +76 -0
- package/dist/audience-size-C3YHQPZB.js.map +1 -0
- package/dist/audience-writes-CDKQB3SM.js +327 -0
- package/dist/audience-writes-CDKQB3SM.js.map +1 -0
- package/dist/audiences-CDDI5HR5.js +86 -0
- package/dist/audiences-M3A3QK52.js +280 -0
- package/dist/audiences-M3A3QK52.js.map +1 -0
- package/dist/audit-FLPJ7GTE.js +154 -0
- package/dist/audit-FLPJ7GTE.js.map +1 -0
- package/dist/autocomplete-ZYMHHV7E.js +114 -0
- package/dist/autocomplete-ZYMHHV7E.js.map +1 -0
- package/dist/avatars-WZ2JDMHH.js +38 -0
- package/dist/bid-pricing-H3M63PTW.js +103 -0
- package/dist/bid-pricing-H3M63PTW.js.map +1 -0
- package/dist/brand-IZTTBZII.js +22 -0
- package/dist/brief-OPQ7ICOY.js +543 -0
- package/dist/brief-OPQ7ICOY.js.map +1 -0
- package/dist/campaign-groups-IQSDKOVI.js +99 -0
- package/dist/campaign-groups-IQSDKOVI.js.map +1 -0
- package/dist/campaign-writes-APAAV4ZU.js +168 -0
- package/dist/campaign-writes-APAAV4ZU.js.map +1 -0
- package/dist/campaign-writes-BN4PZP4Z.js +176 -0
- package/dist/campaign-writes-BN4PZP4Z.js.map +1 -0
- package/dist/campaigns-4Y3JQC2U.js +111 -0
- package/dist/campaigns-GA34MEN2.js +78 -0
- package/dist/campaigns-GA34MEN2.js.map +1 -0
- package/dist/campaigns-HES5MDUG.js +130 -0
- package/dist/campaigns-K2FVD3XW.js +113 -0
- package/dist/campaigns-K2FVD3XW.js.map +1 -0
- package/dist/canvas-IQ753Q2O.js +46 -0
- package/dist/capabilities-ZITW4RF7.js +147 -0
- package/dist/capabilities-ZITW4RF7.js.map +1 -0
- package/dist/catalogs-TGLSJEK5.js +781 -0
- package/dist/catalogs-TGLSJEK5.js.map +1 -0
- package/dist/catalogs-ZR7DECMG.js +130 -0
- package/dist/catalogs-ZR7DECMG.js.map +1 -0
- package/dist/changes-VWKTM27U.js +135 -0
- package/dist/chatgpt-OPOD2WHB.js +47 -0
- package/dist/chats-AL2SYBJO.js +279 -0
- package/dist/chats-AL2SYBJO.js.map +1 -0
- package/dist/check-U2YLRD6H.js +107 -0
- package/dist/check-U2YLRD6H.js.map +1 -0
- package/dist/chunk-2GYCWRF3.js +170 -0
- package/dist/chunk-2L7F7KR4.js +61 -0
- package/dist/chunk-44ZRCSR7.js +228 -0
- package/dist/chunk-46YLDIQG.js +4254 -0
- package/dist/chunk-4EDWXZ3I.js +363 -0
- package/dist/chunk-4FFBGR5L.js +66 -0
- package/dist/chunk-4UQRXKYJ.js +219 -0
- package/dist/chunk-4UZUUSVL.js +592 -0
- package/dist/chunk-4XHCEYHI.js +831 -0
- package/dist/chunk-4Z6PVR3M.js +479 -0
- package/dist/chunk-5Y5FZV2W.js +122 -0
- package/dist/chunk-6HJXLGDV.js +392 -0
- package/dist/chunk-6S5CWGDA.js +429 -0
- package/dist/chunk-6VYROVWO.js +494 -0
- package/dist/chunk-7BUIOP36.js +287 -0
- package/dist/chunk-AQRXXC6E.js +319 -0
- package/dist/chunk-ARBXT73X.js +387 -0
- package/dist/chunk-BEZHQIEI.js +97 -0
- package/dist/chunk-BFURWHVR.js +547 -0
- package/dist/chunk-BX6B25KK.js +358 -0
- package/dist/chunk-BX6B25KK.js.map +1 -0
- package/dist/chunk-DSCEXBDR.js +676 -0
- package/dist/chunk-FLWDFPXE.js +23 -0
- package/dist/chunk-FRNBRN2C.js +1646 -0
- package/dist/chunk-G4FG5EQO.js +110 -0
- package/dist/chunk-G4FG5EQO.js.map +1 -0
- package/dist/chunk-GE3VT3CA.js +51 -0
- package/dist/chunk-GW2WRZZA.js +24026 -0
- package/dist/chunk-GW2WRZZA.js.map +1 -0
- package/dist/chunk-HGBJQGO5.js +142 -0
- package/dist/chunk-I7AYMJZA.js +783 -0
- package/dist/chunk-IRM273C7.js +207 -0
- package/dist/chunk-IWKD56AY.js +156 -0
- package/dist/chunk-JLAQWMVF.js +3868 -0
- package/dist/chunk-JOE42ZW6.js +2984 -0
- package/dist/chunk-JOE42ZW6.js.map +1 -0
- package/dist/chunk-K6NULQN7.js +57 -0
- package/dist/chunk-L2BRAC2J.js +19 -0
- package/dist/chunk-LGMI4LSY.js +455 -0
- package/dist/chunk-NB2FU6EZ.js +179 -0
- package/dist/chunk-NKQWDEB7.js +115 -0
- package/dist/chunk-NKQWDEB7.js.map +1 -0
- package/dist/chunk-NWF2LRKO.js +188 -0
- package/dist/chunk-OG47L5GG.js +275 -0
- package/dist/chunk-OR6KVLI5.js +169 -0
- package/dist/chunk-PC3FJEZH.js +7211 -0
- package/dist/chunk-PC3FJEZH.js.map +1 -0
- package/dist/chunk-Q3GSVLE5.js +4274 -0
- package/dist/chunk-Q3GSVLE5.js.map +1 -0
- package/dist/chunk-QDQZ62FL.js +207 -0
- package/dist/chunk-QIOFOD4K.js +344 -0
- package/dist/chunk-R2SYF5FC.js +249 -0
- package/dist/chunk-RTH2I55B.js +942 -0
- package/dist/chunk-S6VFDNSQ.js +63 -0
- package/dist/chunk-SG2TDQEE.js +150 -0
- package/dist/chunk-SOPVIIUW.js +68 -0
- package/dist/chunk-SOPVIIUW.js.map +1 -0
- package/dist/chunk-T3P6O2VU.js +89 -0
- package/dist/chunk-TXDE2QJ3.js +604 -0
- package/dist/chunk-UDIEKCIR.js +203 -0
- package/dist/chunk-USCADMM3.js +163 -0
- package/dist/chunk-UUGISMNE.js +910 -0
- package/dist/chunk-VDPOCAQ2.js +197 -0
- package/dist/chunk-VEJ3QX6M.js +103 -0
- package/dist/chunk-VFJB7OG6.js +91 -0
- package/dist/chunk-VRIPVLE7.js +8954 -0
- package/dist/chunk-WFY7KSHB.js +274 -0
- package/dist/chunk-WLESMH4J.js +45 -0
- package/dist/chunk-XHQYFNNK.js +846 -0
- package/dist/chunk-XOQNM7I4.js +396 -0
- package/dist/chunk-XOQNM7I4.js.map +1 -0
- package/dist/chunk-YILZR3XI.js +224 -0
- package/dist/chunk-YJFLXOH4.js +191 -0
- package/dist/chunk-YWHZYR6S.js +297 -0
- package/dist/claim-GOLUTAJ3.js +200 -0
- package/dist/claim-GOLUTAJ3.js.map +1 -0
- package/dist/cli.js +30 -30
- package/dist/companies-4AJJGTMC.js +198 -0
- package/dist/companies-4AJJGTMC.js.map +1 -0
- package/dist/company-MOSPLRZJ.js +308 -0
- package/dist/company-MOSPLRZJ.js.map +1 -0
- package/dist/complete-777BDV45.js +84 -0
- package/dist/complete-777BDV45.js.map +1 -0
- package/dist/connect-3YY7MF3I.js +45 -0
- package/dist/conversation-KROMHDHK.js +96 -0
- package/dist/conversation-KROMHDHK.js.map +1 -0
- package/dist/conversion-report-JZHI2IHY.js +127 -0
- package/dist/conversion-report-JZHI2IHY.js.map +1 -0
- package/dist/conversion-upload-command-7RSZ5ZQU.js +439 -0
- package/dist/conversion-writes-SNCLQDXQ.js +122 -0
- package/dist/conversion-writes-SNCLQDXQ.js.map +1 -0
- package/dist/conversions-43EYP2W2.js +140 -0
- package/dist/conversions-43EYP2W2.js.map +1 -0
- package/dist/conversions-EUOWILCQ.js +78 -0
- package/dist/conversions-EUOWILCQ.js.map +1 -0
- package/dist/copy-writes-CIHIFLY6.js +170 -0
- package/dist/copy-writes-CIHIFLY6.js.map +1 -0
- package/dist/create-3WOZO2XT.js +239 -0
- package/dist/create-3WOZO2XT.js.map +1 -0
- package/dist/create-7IFYLX7P.js +210 -0
- package/dist/create-7IFYLX7P.js.map +1 -0
- package/dist/create-FOHIQC3E.js +62 -0
- package/dist/create-FOHIQC3E.js.map +1 -0
- package/dist/create-UWQSQTK6.js +135 -0
- package/dist/create-UWQSQTK6.js.map +1 -0
- package/dist/creatives-2DR3QHJW.js +58 -0
- package/dist/creatives-BB6S2OF6.js +89 -0
- package/dist/creatives-KUO67WYA.js +223 -0
- package/dist/creatives-KUO67WYA.js.map +1 -0
- package/dist/credentials-IP4L37XP.js +290 -0
- package/dist/credentials-IP4L37XP.js.map +1 -0
- package/dist/critique-LGDNMLBL.js +232 -0
- package/dist/critique-LGDNMLBL.js.map +1 -0
- package/dist/critique-LJMFAURK.js +1451 -0
- package/dist/critique-LJMFAURK.js.map +1 -0
- package/dist/crm-BNYW7PF7.js +323 -0
- package/dist/crm-BNYW7PF7.js.map +1 -0
- package/dist/crm-J53V2QTN.js +227 -0
- package/dist/crm-J53V2QTN.js.map +1 -0
- package/dist/currency-X7Y6TSLF.js +88 -0
- package/dist/custom-conversions-HAGG72LF.js +128 -0
- package/dist/customers-663K2OCP.js +59 -0
- package/dist/delete-5W3YVA4L.js +67 -0
- package/dist/delete-5W3YVA4L.js.map +1 -0
- package/dist/delete-6U7E6YUW.js +57 -0
- package/dist/delete-6U7E6YUW.js.map +1 -0
- package/dist/delete-G4NY6ZG6.js +69 -0
- package/dist/delete-G4NY6ZG6.js.map +1 -0
- package/dist/demographics-4Y5LTCU4.js +141 -0
- package/dist/demographics-4Y5LTCU4.js.map +1 -0
- package/dist/discard-RKCZNKMN.js +69 -0
- package/dist/discard-RKCZNKMN.js.map +1 -0
- package/dist/discover-6DORQWXY.js +172 -0
- package/dist/domain-PLA2O4FW.js +101 -0
- package/dist/domain-PLA2O4FW.js.map +1 -0
- package/dist/download-4EFLVSA4.js +172 -0
- package/dist/download-4EFLVSA4.js.map +1 -0
- package/dist/draft-4V7W5DV2.js +310 -0
- package/dist/draft-4V7W5DV2.js.map +1 -0
- package/dist/draft-HY3U2GHU.js +283 -0
- package/dist/draft-HY3U2GHU.js.map +1 -0
- package/dist/draft-JMNAGW7C.js +220 -0
- package/dist/draft-JMNAGW7C.js.map +1 -0
- package/dist/draft-R6EKORNS.js +308 -0
- package/dist/draft-TRPQCJ4B.js +335 -0
- package/dist/draft-TRPQCJ4B.js.map +1 -0
- package/dist/experiments-4V242DG2.js +236 -0
- package/dist/experiments-4V242DG2.js.map +1 -0
- package/dist/facets-WXJ2MCU6.js +117 -0
- package/dist/facets-WXJ2MCU6.js.map +1 -0
- package/dist/feedback-IRSRPXV6.js +111 -0
- package/dist/feedback-IRSRPXV6.js.map +1 -0
- package/dist/feedback-record-DT3R4NA3.js +265 -0
- package/dist/feedback-record-DT3R4NA3.js.map +1 -0
- package/dist/fetch-YLQP5VQL.js +179 -0
- package/dist/fetch-YLQP5VQL.js.map +1 -0
- package/dist/fit-BEFCY2B4.js +65 -0
- package/dist/flows-FDMF3F3P.js +250 -0
- package/dist/flows-FDMF3F3P.js.map +1 -0
- package/dist/fonts-C6XN5667.js +39 -0
- package/dist/forecast-BTPIXEQ5.js +169 -0
- package/dist/forecast-ZTXZD3HD.js +121 -0
- package/dist/forecast-ZTXZD3HD.js.map +1 -0
- package/dist/funnel-7KOEX7YM.js +397 -0
- package/dist/funnel-7KOEX7YM.js.map +1 -0
- package/dist/get-KBSKPTAV.js +59 -0
- package/dist/get-KBSKPTAV.js.map +1 -0
- package/dist/get-OSVQVMP6.js +82 -0
- package/dist/get-OSVQVMP6.js.map +1 -0
- package/dist/google-M6BJ22UL.js +3267 -0
- package/dist/google-ads-XCJVAXWF.js +198 -0
- package/dist/google-ads-XCJVAXWF.js.map +1 -0
- package/dist/history-3NTM5SFN.js +69 -0
- package/dist/history-3NTM5SFN.js.map +1 -0
- package/dist/history-4TN2A6BL.js +136 -0
- package/dist/history-4TN2A6BL.js.map +1 -0
- package/dist/history-5IWW2X33.js +102 -0
- package/dist/history-5IWW2X33.js.map +1 -0
- package/dist/hubspot-HMVSRJQZ.js +782 -0
- package/dist/hubspot-HMVSRJQZ.js.map +1 -0
- package/dist/ideas-M66FU45H.js +45 -0
- package/dist/images-MM5OPUKV.js +92 -0
- package/dist/ingest-GU3WEBN3.js +110 -0
- package/dist/ingest-GU3WEBN3.js.map +1 -0
- package/dist/ingest-KMLYCFF4.js +26 -0
- package/dist/insights-CQCWOCIT.js +132 -0
- package/dist/insights-CQCWOCIT.js.map +1 -0
- package/dist/insights-XZL2EM53.js +439 -0
- package/dist/insights-XZL2EM53.js.map +1 -0
- package/dist/inspect-4JO2J3D6.js +192 -0
- package/dist/inspect-4JO2J3D6.js.map +1 -0
- package/dist/instant-experiences-RM4MLJTL.js +260 -0
- package/dist/instant-experiences-RM4MLJTL.js.map +1 -0
- package/dist/intent-YCQCUCV3.js +95 -0
- package/dist/keyword-gap-PUSF7EKY.js +130 -0
- package/dist/keyword-metrics-JXBM22ZD.js +200 -0
- package/dist/keyword-metrics-JXBM22ZD.js.map +1 -0
- package/dist/keywords-for-site-OAYA7KP7.js +131 -0
- package/dist/keywords-for-site-OAYA7KP7.js.map +1 -0
- package/dist/landing-OZU5RRFV.js +28 -0
- package/dist/languages-SLFV73GE.js +40 -0
- package/dist/leads-Q7APIJRQ.js +115 -0
- package/dist/leads-Q7APIJRQ.js.map +1 -0
- package/dist/leads-ULYHTG22.js +540 -0
- package/dist/leads-ULYHTG22.js.map +1 -0
- package/dist/learn-NBBJRMVZ.js +207 -0
- package/dist/learn-NBBJRMVZ.js.map +1 -0
- package/dist/line-item-writes-X3L5NQEH.js +211 -0
- package/dist/line-item-writes-X3L5NQEH.js.map +1 -0
- package/dist/line-items-NJMEPEF5.js +107 -0
- package/dist/link-WZSNUQQ2.js +67 -0
- package/dist/link-WZSNUQQ2.js.map +1 -0
- package/dist/linkedin-55PAID62.js +1316 -0
- package/dist/linkedin-55PAID62.js.map +1 -0
- package/dist/linkedin-person-MVRI7LLC.js +139 -0
- package/dist/linkedin-person-MVRI7LLC.js.map +1 -0
- package/dist/list-6S54IAUX.js +67 -0
- package/dist/list-6S54IAUX.js.map +1 -0
- package/dist/list-QRJ4E3SC.js +154 -0
- package/dist/list-QRJ4E3SC.js.map +1 -0
- package/dist/list-RZUDFLJN.js +306 -0
- package/dist/list-RZUDFLJN.js.map +1 -0
- package/dist/locations-T2OMP6QN.js +40 -0
- package/dist/locations-W3VOYBWL.js +69 -0
- package/dist/locations-W3VOYBWL.js.map +1 -0
- package/dist/log-53SAPZZ3.js +95 -0
- package/dist/log-53SAPZZ3.js.map +1 -0
- package/dist/lookup-S5VG7AWH.js +23 -0
- package/dist/make-ZF3YIMKW.js +1370 -0
- package/dist/make-ZF3YIMKW.js.map +1 -0
- package/dist/map-J37QFJSV.js +436 -0
- package/dist/map-J37QFJSV.js.map +1 -0
- package/dist/mcp-YRIFPYNU.js +717 -0
- package/dist/mcp-YRIFPYNU.js.map +1 -0
- package/dist/media-P4T4ZBNS.js +18 -0
- package/dist/media-sources-EQI3U4TC.js +35 -0
- package/dist/members-GYVMSCKL.js +47 -0
- package/dist/members-GYVMSCKL.js.map +1 -0
- package/dist/meta-IPLWNYC7.js +122 -0
- package/dist/metrics-4YVJHYRI.js +152 -0
- package/dist/normalize-MFN3WCH5.js +144 -0
- package/dist/normalize-MFN3WCH5.js.map +1 -0
- package/dist/options-DLHDHO7H.js +125 -0
- package/dist/options-DLHDHO7H.js.map +1 -0
- package/dist/organization-C2VOA2SD.js +949 -0
- package/dist/organization-C2VOA2SD.js.map +1 -0
- package/dist/page-photos-OQ5QATQH.js +118 -0
- package/dist/page-photos-OQ5QATQH.js.map +1 -0
- package/dist/performance-NIF3CESZ.js +27 -0
- package/dist/performance-T6TBVHVU.js +5541 -0
- package/dist/performance-T6TBVHVU.js.map +1 -0
- package/dist/pixels-LQAJOZIM.js +62 -0
- package/dist/pixels-LQAJOZIM.js.map +1 -0
- package/dist/plan-7UF76Q6U.js +208 -0
- package/dist/plan-7UF76Q6U.js.map +1 -0
- package/dist/preview-LRJOQ7LM.js +218 -0
- package/dist/preview-LRJOQ7LM.js.map +1 -0
- package/dist/promoted-tweet-writes-Y6BBOWDL.js +183 -0
- package/dist/promoted-tweet-writes-Y6BBOWDL.js.map +1 -0
- package/dist/promoted-tweets-RJT53DRM.js +119 -0
- package/dist/publish-IOTMJCCY.js +344 -0
- package/dist/publish-IOTMJCCY.js.map +1 -0
- package/dist/query-XZMDGRO5.js +62 -0
- package/dist/questionnaire-DWEH5II4.js +94 -0
- package/dist/questionnaire-DWEH5II4.js.map +1 -0
- package/dist/reddit-JIHMAKAQ.js +29 -0
- package/dist/refresh-OQZ263CS.js +97 -0
- package/dist/refresh-OQZ263CS.js.map +1 -0
- package/dist/release-4CHFURO3.js +63 -0
- package/dist/release-4CHFURO3.js.map +1 -0
- package/dist/relevant-pages-FS7GBVXK.js +99 -0
- package/dist/remove-IJQPHPDI.js +53 -0
- package/dist/remove-IJQPHPDI.js.map +1 -0
- package/dist/reopen-YTLPVKUR.js +66 -0
- package/dist/reopen-YTLPVKUR.js.map +1 -0
- package/dist/rerun-C7NB7B35.js +95 -0
- package/dist/rerun-C7NB7B35.js.map +1 -0
- package/dist/research-PNBACCCP.js +72 -0
- package/dist/research-TLHNPK3O.js +265 -0
- package/dist/research-TLHNPK3O.js.map +1 -0
- package/dist/reset-JVLW7HA2.js +57 -0
- package/dist/reset-JVLW7HA2.js.map +1 -0
- package/dist/reset-Y6FXLAQE.js +57 -0
- package/dist/reset-Y6FXLAQE.js.map +1 -0
- package/dist/resolve-YLRESES5.js +124 -0
- package/dist/resolve-YLRESES5.js.map +1 -0
- package/dist/retry-3V3IGDRR.js +65 -0
- package/dist/retry-3V3IGDRR.js.map +1 -0
- package/dist/retry-AEKQLQMP.js +63 -0
- package/dist/retry-AEKQLQMP.js.map +1 -0
- package/dist/revenue-E4GQIOUY.js +91 -0
- package/dist/revenue-E4GQIOUY.js.map +1 -0
- package/dist/rule-writes-UAVWT4XS.js +525 -0
- package/dist/rule-writes-UAVWT4XS.js.map +1 -0
- package/dist/rules-34BQAWU3.js +99 -0
- package/dist/rules-34BQAWU3.js.map +1 -0
- package/dist/rules-ZVS2MWED.js +217 -0
- package/dist/rules-add-CM5XUYNS.js +465 -0
- package/dist/rules-add-CM5XUYNS.js.map +1 -0
- package/dist/run-MD64RDHZ.js +69 -0
- package/dist/run-MD64RDHZ.js.map +1 -0
- package/dist/run-QCNRR3CA.js +70 -0
- package/dist/scaffold-ad-NADPY3CB.js +1516 -0
- package/dist/scaffold-ad-NADPY3CB.js.map +1 -0
- package/dist/scaffold-static-ad-5YEYYVYH.js +1015 -0
- package/dist/scaffold-static-ad-5YEYYVYH.js.map +1 -0
- package/dist/scaffold-video-W7DF2CBJ.js +888 -0
- package/dist/scaffold-video-W7DF2CBJ.js.map +1 -0
- package/dist/schedule-CTRRF6TS.js +64 -0
- package/dist/schedule-CTRRF6TS.js.map +1 -0
- package/dist/scheduled-agents-OXYAVSIE.js +55 -0
- package/dist/schema-BEUYOGSW.js +135 -0
- package/dist/schema-BEUYOGSW.js.map +1 -0
- package/dist/search-GFJKWPKN.js +177 -0
- package/dist/search-GFJKWPKN.js.map +1 -0
- package/dist/select-S72CCL57.js +106 -0
- package/dist/select-S72CCL57.js.map +1 -0
- package/dist/sends-LAY5C74B.js +349 -0
- package/dist/sends-LAY5C74B.js.map +1 -0
- package/dist/set-prompt-YYFDRXRI.js +198 -0
- package/dist/set-prompt-YYFDRXRI.js.map +1 -0
- package/dist/setup-links-D4JJLESN.js +144 -0
- package/dist/setup-links-D4JJLESN.js.map +1 -0
- package/dist/shopify-T4UWFIQC.js +3958 -0
- package/dist/shopify-T4UWFIQC.js.map +1 -0
- package/dist/site-BBZAUZA3.js +180 -0
- package/dist/site-BBZAUZA3.js.map +1 -0
- package/dist/sources-BUPV7H7F.js +457 -0
- package/dist/sources-BUPV7H7F.js.map +1 -0
- package/dist/sources-FLUGHSVP.js +30 -0
- package/dist/stale-HP54JS5X.js +76 -0
- package/dist/stale-HP54JS5X.js.map +1 -0
- package/dist/status-CLSWQFCQ.js +65 -0
- package/dist/status-CLSWQFCQ.js.map +1 -0
- package/dist/studies-EPO2AM4M.js +250 -0
- package/dist/study-writes-7FP443QQ.js +470 -0
- package/dist/study-writes-7FP443QQ.js.map +1 -0
- package/dist/sync-4YTVVEVC.js +57 -0
- package/dist/sync-4YTVVEVC.js.map +1 -0
- package/dist/sync-definition-OGQ5XTQE.js +69 -0
- package/dist/tags-CZTRQNXV.js +26 -0
- package/dist/tags-FDQXWTCQ.js +23 -0
- package/dist/tags-FDQXWTCQ.js.map +1 -0
- package/dist/tags-R67DKRZ6.js +23 -0
- package/dist/tags-R67DKRZ6.js.map +1 -0
- package/dist/tags-SA2LU6AW.js +227 -0
- package/dist/tags-SA2LU6AW.js.map +1 -0
- package/dist/tags-ZOXX6VRE.js +23 -0
- package/dist/tags-ZOXX6VRE.js.map +1 -0
- package/dist/targeting-NKZFEZD7.js +762 -0
- package/dist/targeting-NKZFEZD7.js.map +1 -0
- package/dist/targeting-criteria-AQYXVSGN.js +113 -0
- package/dist/targets-UUVCEG3F.js +106 -0
- package/dist/targets-UUVCEG3F.js.map +1 -0
- package/dist/testimonials-G3OCNPBY.js +32 -0
- package/dist/themes-FEVYZZCW.js +95 -0
- package/dist/top-companies-BQGWKYUK.js +111 -0
- package/dist/top-companies-BQGWKYUK.js.map +1 -0
- package/dist/transcript-U46AEOEI.js +165 -0
- package/dist/transcript-U46AEOEI.js.map +1 -0
- package/dist/translate-AS7JVKYM.js +609 -0
- package/dist/translate-AS7JVKYM.js.map +1 -0
- package/dist/triggers-ECRBPYYF.js +144 -0
- package/dist/triggers-ECRBPYYF.js.map +1 -0
- package/dist/unlink-VDNCSRJV.js +70 -0
- package/dist/unlink-VDNCSRJV.js.map +1 -0
- package/dist/unstage-ATDXUYP2.js +88 -0
- package/dist/unstage-ATDXUYP2.js.map +1 -0
- package/dist/unstage-ZA3WQBEA.js +96 -0
- package/dist/unstage-ZA3WQBEA.js.map +1 -0
- package/dist/update-FJ6TBV3E.js +101 -0
- package/dist/update-FJ6TBV3E.js.map +1 -0
- package/dist/update-HDBJCSTI.js +66 -0
- package/dist/update-HDBJCSTI.js.map +1 -0
- package/dist/update-U43DJRGV.js +155 -0
- package/dist/update-U43DJRGV.js.map +1 -0
- package/dist/update-Z7TIUBMJ.js +192 -0
- package/dist/update-Z7TIUBMJ.js.map +1 -0
- package/dist/upload-LXCFSRIU.js +129 -0
- package/dist/upload-LXCFSRIU.js.map +1 -0
- package/dist/url-options-Z4BQBEMI.js +131 -0
- package/dist/url-options-Z4BQBEMI.js.map +1 -0
- package/dist/url-params-J7RKP5RB.js +101 -0
- package/dist/url-params-J7RKP5RB.js.map +1 -0
- package/dist/validate-VR3HEOMJ.js +122 -0
- package/dist/validate-VR3HEOMJ.js.map +1 -0
- package/dist/videos-36AXDUGZ.js +41 -0
- package/dist/viewer-check-6HL4OUQY.js +83 -0
- package/dist/web-7BRJRQX7.js +143 -0
- package/dist/web-7BRJRQX7.js.map +1 -0
- package/dist/winning-ads-GMM5W2O4.js +86 -0
- package/dist/write-commands-IM5DPG3R.js +1502 -0
- package/dist/write-commands-IM5DPG3R.js.map +1 -0
- package/dist/write-commands-OGVDWWBV.js +1172 -0
- package/dist/write-commands-OGVDWWBV.js.map +1 -0
- package/dist/x-HGFAL3NY.js +47 -0
- package/package.json +1 -1
- package/dist/account-C635ATVM.js +0 -80
- package/dist/account-C635ATVM.js.map +0 -1
- package/dist/account-WLQBAQMD.js +0 -80
- package/dist/account-WLQBAQMD.js.map +0 -1
- package/dist/account-assets-O7IA37RE.js +0 -290
- package/dist/account-level-EU7BWCO7.js +0 -609
- package/dist/account-level-EU7BWCO7.js.map +0 -1
- package/dist/account-reads-SNOWDHHF.js +0 -219
- package/dist/account-users-XYYENK6X.js +0 -62
- package/dist/account-users-XYYENK6X.js.map +0 -1
- package/dist/account-writes-TU3WJRSI.js +0 -66
- package/dist/account-writes-TU3WJRSI.js.map +0 -1
- package/dist/accounts-A2FBLZ5H.js +0 -78
- package/dist/accounts-A2FBLZ5H.js.map +0 -1
- package/dist/accounts-V2IZZ5KU.js +0 -699
- package/dist/accounts-V2IZZ5KU.js.map +0 -1
- package/dist/actions-Y4SULW2E.js +0 -55
- package/dist/activecampaign-63XG6CLL.js +0 -936
- package/dist/activecampaign-63XG6CLL.js.map +0 -1
- package/dist/ad-group-writes-HLBWN4E4.js +0 -170
- package/dist/ad-group-writes-HLBWN4E4.js.map +0 -1
- package/dist/ad-groups-33NZD6J3.js +0 -68
- package/dist/ad-groups-33NZD6J3.js.map +0 -1
- package/dist/ad-writes-7ZDNDZ2E.js +0 -174
- package/dist/ad-writes-7ZDNDZ2E.js.map +0 -1
- package/dist/add-FOLFVGQO.js +0 -303
- package/dist/add-FOLFVGQO.js.map +0 -1
- package/dist/add-RYB4JSYC.js +0 -105
- package/dist/add-RYB4JSYC.js.map +0 -1
- package/dist/ads-2TVWICGM.js +0 -48
- package/dist/ads-KBE5JXCH.js +0 -115
- package/dist/ads-X3AM6M7L.js +0 -77
- package/dist/ads-X3AM6M7L.js.map +0 -1
- package/dist/adsets-YWBJFPAZ.js +0 -182
- package/dist/advertisers-IGUMSK5Q.js +0 -121
- package/dist/advertisers-IGUMSK5Q.js.map +0 -1
- package/dist/analytics-3DKM7J43.js +0 -445
- package/dist/analytics-3DKM7J43.js.map +0 -1
- package/dist/analytics-R3QDSX2K.js +0 -2435
- package/dist/analytics-R3QDSX2K.js.map +0 -1
- package/dist/asset-writes-72DEVXGO.js +0 -48
- package/dist/assign-EKCGLNZB.js +0 -78
- package/dist/assign-EKCGLNZB.js.map +0 -1
- package/dist/audience-size-IKXK32HU.js +0 -74
- package/dist/audience-size-IKXK32HU.js.map +0 -1
- package/dist/audience-writes-KCHLNFSI.js +0 -325
- package/dist/audience-writes-KCHLNFSI.js.map +0 -1
- package/dist/audiences-QAH42HIM.js +0 -86
- package/dist/audiences-WCDWN64L.js +0 -268
- package/dist/audiences-WCDWN64L.js.map +0 -1
- package/dist/audit-CY76S4V7.js +0 -152
- package/dist/audit-CY76S4V7.js.map +0 -1
- package/dist/autocomplete-G2S5HNUS.js +0 -112
- package/dist/autocomplete-G2S5HNUS.js.map +0 -1
- package/dist/avatars-P4UPNZM4.js +0 -38
- package/dist/bid-pricing-AJT4QU2C.js +0 -101
- package/dist/bid-pricing-AJT4QU2C.js.map +0 -1
- package/dist/brand-HALQWZWB.js +0 -22
- package/dist/brief-NW7TGG2Q.js +0 -541
- package/dist/brief-NW7TGG2Q.js.map +0 -1
- package/dist/campaign-groups-I43KMAJP.js +0 -97
- package/dist/campaign-groups-I43KMAJP.js.map +0 -1
- package/dist/campaign-writes-DLLPFAGG.js +0 -166
- package/dist/campaign-writes-DLLPFAGG.js.map +0 -1
- package/dist/campaign-writes-XO74BALZ.js +0 -174
- package/dist/campaign-writes-XO74BALZ.js.map +0 -1
- package/dist/campaigns-LS65QM6W.js +0 -76
- package/dist/campaigns-LS65QM6W.js.map +0 -1
- package/dist/campaigns-UIYSYCF3.js +0 -111
- package/dist/campaigns-UIYSYCF3.js.map +0 -1
- package/dist/campaigns-XZOQ2VTK.js +0 -130
- package/dist/campaigns-YMM5TQVO.js +0 -111
- package/dist/canvas-IJS7H3VE.js +0 -46
- package/dist/capabilities-XMQPM3UL.js +0 -145
- package/dist/capabilities-XMQPM3UL.js.map +0 -1
- package/dist/catalogs-JLCSFZYC.js +0 -779
- package/dist/catalogs-JLCSFZYC.js.map +0 -1
- package/dist/catalogs-T23RKYFC.js +0 -128
- package/dist/catalogs-T23RKYFC.js.map +0 -1
- package/dist/changes-36C754R4.js +0 -135
- package/dist/chatgpt-3WFOPURY.js +0 -47
- package/dist/chats-ZI6EYDAF.js +0 -277
- package/dist/chats-ZI6EYDAF.js.map +0 -1
- package/dist/check-CHJ2OLAU.js +0 -105
- package/dist/check-CHJ2OLAU.js.map +0 -1
- package/dist/chunk-2TOIY2WN.js +0 -4254
- package/dist/chunk-4GAEB6NK.js +0 -228
- package/dist/chunk-5RVQK3SP.js +0 -494
- package/dist/chunk-5SRUAGTG.js +0 -547
- package/dist/chunk-5XTGG4PV.js +0 -274
- package/dist/chunk-6Z7Y4KQB.js +0 -275
- package/dist/chunk-7J3NZBPV.js +0 -2982
- package/dist/chunk-7J3NZBPV.js.map +0 -1
- package/dist/chunk-AIRD6T4W.js +0 -169
- package/dist/chunk-AQOFQNKQ.js +0 -57
- package/dist/chunk-ARUXGKZO.js +0 -91
- package/dist/chunk-AYPBARKP.js +0 -156
- package/dist/chunk-BRLZX3VP.js +0 -207
- package/dist/chunk-BTJSGJNQ.js +0 -604
- package/dist/chunk-C7QQQVBS.js +0 -51
- package/dist/chunk-CCEDZTP7.js +0 -391
- package/dist/chunk-CCEDZTP7.js.map +0 -1
- package/dist/chunk-D3KLDIPQ.js +0 -45
- package/dist/chunk-DUR7PEJI.js +0 -170
- package/dist/chunk-EDLZGTGN.js +0 -216
- package/dist/chunk-EDLZGTGN.js.map +0 -1
- package/dist/chunk-FFFJBNHA.js +0 -63
- package/dist/chunk-FPWQA7TK.js +0 -344
- package/dist/chunk-G5Y7OIPL.js +0 -392
- package/dist/chunk-GACSA5A6.js +0 -1646
- package/dist/chunk-GMHCHHAA.js +0 -19
- package/dist/chunk-H4NNQGG6.js +0 -66
- package/dist/chunk-HSQRITKG.js +0 -203
- package/dist/chunk-I47BEKYK.js +0 -831
- package/dist/chunk-JND6XSGZ.js +0 -7192
- package/dist/chunk-JND6XSGZ.js.map +0 -1
- package/dist/chunk-KBRJSPIM.js +0 -676
- package/dist/chunk-KQTNUDKD.js +0 -97
- package/dist/chunk-M7HD42M6.js +0 -24017
- package/dist/chunk-M7HD42M6.js.map +0 -1
- package/dist/chunk-MBSFEVOG.js +0 -163
- package/dist/chunk-MGYC2IRC.js +0 -783
- package/dist/chunk-MUXKYSTI.js +0 -297
- package/dist/chunk-MZCTX37B.js +0 -3868
- package/dist/chunk-N7M2TWR5.js +0 -592
- package/dist/chunk-NDFS3APP.js +0 -319
- package/dist/chunk-OBJCNGZL.js +0 -207
- package/dist/chunk-OJGYYH6K.js +0 -179
- package/dist/chunk-P6BKKUSX.js +0 -142
- package/dist/chunk-PLAOK4AK.js +0 -103
- package/dist/chunk-PLBITHV6.js +0 -846
- package/dist/chunk-PNKIOTCK.js +0 -349
- package/dist/chunk-PNKIOTCK.js.map +0 -1
- package/dist/chunk-QBRPM3DQ.js +0 -61
- package/dist/chunk-QMDMTZAW.js +0 -224
- package/dist/chunk-QW6HL7D6.js +0 -429
- package/dist/chunk-R53XMPDO.js +0 -363
- package/dist/chunk-RFIUOQLN.js +0 -89
- package/dist/chunk-RVEY7BTT.js +0 -8954
- package/dist/chunk-SCL7PM6P.js +0 -479
- package/dist/chunk-SM7G7RUA.js +0 -910
- package/dist/chunk-SVBJ56T7.js +0 -455
- package/dist/chunk-TVAIOC77.js +0 -287
- package/dist/chunk-TVTSA4EN.js +0 -188
- package/dist/chunk-VIPKDXGU.js +0 -4229
- package/dist/chunk-VIPKDXGU.js.map +0 -1
- package/dist/chunk-W574NV67.js +0 -191
- package/dist/chunk-XGPU2VDU.js +0 -219
- package/dist/chunk-XQXZJ5IR.js +0 -249
- package/dist/chunk-YMF2RG4Z.js +0 -942
- package/dist/chunk-Z2DRGXBB.js +0 -197
- package/dist/chunk-Z7YMSHRZ.js +0 -23
- package/dist/chunk-ZEC46NWW.js +0 -122
- package/dist/chunk-ZFC562TP.js +0 -387
- package/dist/chunk-ZNRGH4NS.js +0 -150
- package/dist/claim-OUYHVGB4.js +0 -198
- package/dist/claim-OUYHVGB4.js.map +0 -1
- package/dist/companies-XDNSG7ME.js +0 -196
- package/dist/companies-XDNSG7ME.js.map +0 -1
- package/dist/company-4FAYYPEJ.js +0 -306
- package/dist/company-4FAYYPEJ.js.map +0 -1
- package/dist/complete-M2PAUMDP.js +0 -82
- package/dist/complete-M2PAUMDP.js.map +0 -1
- package/dist/connect-PP6Z3F7Y.js +0 -43
- package/dist/conversation-B5NPTLFQ.js +0 -94
- package/dist/conversation-B5NPTLFQ.js.map +0 -1
- package/dist/conversion-report-DKXFHLLX.js +0 -125
- package/dist/conversion-report-DKXFHLLX.js.map +0 -1
- package/dist/conversion-upload-command-KTYAY7IG.js +0 -439
- package/dist/conversion-writes-7ODJDAUP.js +0 -120
- package/dist/conversion-writes-7ODJDAUP.js.map +0 -1
- package/dist/conversions-BKVGNNC6.js +0 -76
- package/dist/conversions-BKVGNNC6.js.map +0 -1
- package/dist/conversions-QRJL6JIO.js +0 -138
- package/dist/conversions-QRJL6JIO.js.map +0 -1
- package/dist/copy-writes-P4WK6OPM.js +0 -168
- package/dist/copy-writes-P4WK6OPM.js.map +0 -1
- package/dist/create-4DWCJ2UA.js +0 -208
- package/dist/create-4DWCJ2UA.js.map +0 -1
- package/dist/create-OYV33CQ6.js +0 -60
- package/dist/create-OYV33CQ6.js.map +0 -1
- package/dist/create-U6JVIYFY.js +0 -237
- package/dist/create-U6JVIYFY.js.map +0 -1
- package/dist/create-V4FNRO63.js +0 -133
- package/dist/create-V4FNRO63.js.map +0 -1
- package/dist/creatives-64FKWEGL.js +0 -221
- package/dist/creatives-64FKWEGL.js.map +0 -1
- package/dist/creatives-JPKA2RHU.js +0 -89
- package/dist/creatives-UJDPD4CI.js +0 -58
- package/dist/credentials-EIPEZ2C2.js +0 -288
- package/dist/credentials-EIPEZ2C2.js.map +0 -1
- package/dist/critique-BADMZAZP.js +0 -230
- package/dist/critique-BADMZAZP.js.map +0 -1
- package/dist/critique-M3DEVEDA.js +0 -1449
- package/dist/critique-M3DEVEDA.js.map +0 -1
- package/dist/crm-GIYSLLY7.js +0 -321
- package/dist/crm-GIYSLLY7.js.map +0 -1
- package/dist/crm-HXKSJRY3.js +0 -225
- package/dist/crm-HXKSJRY3.js.map +0 -1
- package/dist/currency-R4ORE2U3.js +0 -88
- package/dist/custom-conversions-5HJBB5XL.js +0 -128
- package/dist/customers-7J3QGSOJ.js +0 -57
- package/dist/delete-EDWJQMMV.js +0 -65
- package/dist/delete-EDWJQMMV.js.map +0 -1
- package/dist/delete-O24CVQMJ.js +0 -67
- package/dist/delete-O24CVQMJ.js.map +0 -1
- package/dist/delete-QN2OYUCS.js +0 -55
- package/dist/delete-QN2OYUCS.js.map +0 -1
- package/dist/demographics-MPYYF2OI.js +0 -139
- package/dist/demographics-MPYYF2OI.js.map +0 -1
- package/dist/discard-FJCFB6SA.js +0 -67
- package/dist/discard-FJCFB6SA.js.map +0 -1
- package/dist/discover-GSJRZUOC.js +0 -172
- package/dist/domain-UILPSEA5.js +0 -99
- package/dist/domain-UILPSEA5.js.map +0 -1
- package/dist/download-ZMAI7QSG.js +0 -170
- package/dist/download-ZMAI7QSG.js.map +0 -1
- package/dist/draft-5OQT3APG.js +0 -308
- package/dist/draft-5OQT3APG.js.map +0 -1
- package/dist/draft-LPVK6YHI.js +0 -281
- package/dist/draft-LPVK6YHI.js.map +0 -1
- package/dist/draft-MSESA5UE.js +0 -333
- package/dist/draft-MSESA5UE.js.map +0 -1
- package/dist/draft-WYDMLNYA.js +0 -308
- package/dist/draft-XOOSEVY5.js +0 -218
- package/dist/draft-XOOSEVY5.js.map +0 -1
- package/dist/experiments-PVOQUL47.js +0 -234
- package/dist/experiments-PVOQUL47.js.map +0 -1
- package/dist/facets-5RW4Z3D3.js +0 -115
- package/dist/facets-5RW4Z3D3.js.map +0 -1
- package/dist/feedback-GC56R2EJ.js +0 -109
- package/dist/feedback-GC56R2EJ.js.map +0 -1
- package/dist/feedback-record-JX7ZU6J7.js +0 -263
- package/dist/feedback-record-JX7ZU6J7.js.map +0 -1
- package/dist/fetch-WUTXAPBL.js +0 -177
- package/dist/fetch-WUTXAPBL.js.map +0 -1
- package/dist/fit-N7WDGWYZ.js +0 -63
- package/dist/flows-ULZACISF.js +0 -248
- package/dist/flows-ULZACISF.js.map +0 -1
- package/dist/fonts-TTUAP7HS.js +0 -37
- package/dist/forecast-4AG5F7YC.js +0 -169
- package/dist/forecast-RQJJRN5D.js +0 -119
- package/dist/forecast-RQJJRN5D.js.map +0 -1
- package/dist/funnel-QPWJIXWK.js +0 -395
- package/dist/funnel-QPWJIXWK.js.map +0 -1
- package/dist/get-35D7YHWJ.js +0 -57
- package/dist/get-35D7YHWJ.js.map +0 -1
- package/dist/get-GIETDPF4.js +0 -80
- package/dist/get-GIETDPF4.js.map +0 -1
- package/dist/google-NAA4BASO.js +0 -3267
- package/dist/google-ads-2IZFZO4C.js +0 -196
- package/dist/google-ads-2IZFZO4C.js.map +0 -1
- package/dist/history-5MRLNTCI.js +0 -67
- package/dist/history-5MRLNTCI.js.map +0 -1
- package/dist/history-RPLWWPLQ.js +0 -134
- package/dist/history-RPLWWPLQ.js.map +0 -1
- package/dist/history-TQYLUYVU.js +0 -100
- package/dist/history-TQYLUYVU.js.map +0 -1
- package/dist/hubspot-EPK43X4C.js +0 -780
- package/dist/hubspot-EPK43X4C.js.map +0 -1
- package/dist/ideas-SUXKKZC7.js +0 -43
- package/dist/images-VKVZ3DWG.js +0 -92
- package/dist/ingest-BBBFT6FZ.js +0 -24
- package/dist/ingest-EM2UY42Z.js +0 -108
- package/dist/ingest-EM2UY42Z.js.map +0 -1
- package/dist/insights-M3CYB22P.js +0 -437
- package/dist/insights-M3CYB22P.js.map +0 -1
- package/dist/insights-XCT3ONC7.js +0 -130
- package/dist/insights-XCT3ONC7.js.map +0 -1
- package/dist/inspect-ZPOVOENK.js +0 -190
- package/dist/inspect-ZPOVOENK.js.map +0 -1
- package/dist/instant-experiences-HT3HB4QZ.js +0 -258
- package/dist/instant-experiences-HT3HB4QZ.js.map +0 -1
- package/dist/intent-NSHW7EJT.js +0 -95
- package/dist/keyword-gap-ITTWKBWZ.js +0 -130
- package/dist/keyword-metrics-7DPR264W.js +0 -198
- package/dist/keyword-metrics-7DPR264W.js.map +0 -1
- package/dist/keywords-for-site-IXL22UKQ.js +0 -129
- package/dist/keywords-for-site-IXL22UKQ.js.map +0 -1
- package/dist/landing-KZ4OSHHR.js +0 -28
- package/dist/languages-MEFQQBJ2.js +0 -40
- package/dist/leads-DNQTRYIR.js +0 -113
- package/dist/leads-DNQTRYIR.js.map +0 -1
- package/dist/leads-SZOGCQFK.js +0 -538
- package/dist/leads-SZOGCQFK.js.map +0 -1
- package/dist/learn-Q7WZG7FA.js +0 -205
- package/dist/learn-Q7WZG7FA.js.map +0 -1
- package/dist/line-item-writes-3K7FT5GO.js +0 -209
- package/dist/line-item-writes-3K7FT5GO.js.map +0 -1
- package/dist/line-items-G5YJG25N.js +0 -107
- package/dist/link-2QVSIZJT.js +0 -65
- package/dist/link-2QVSIZJT.js.map +0 -1
- package/dist/linkedin-VAFPZNWZ.js +0 -1314
- package/dist/linkedin-VAFPZNWZ.js.map +0 -1
- package/dist/linkedin-person-EHTYVNZY.js +0 -137
- package/dist/linkedin-person-EHTYVNZY.js.map +0 -1
- package/dist/list-5TS2VPQZ.js +0 -152
- package/dist/list-5TS2VPQZ.js.map +0 -1
- package/dist/list-PSSQXQRJ.js +0 -65
- package/dist/list-PSSQXQRJ.js.map +0 -1
- package/dist/list-UMVIFQ3X.js +0 -304
- package/dist/list-UMVIFQ3X.js.map +0 -1
- package/dist/locations-RLWAS6AC.js +0 -40
- package/dist/locations-UKBOT6SB.js +0 -67
- package/dist/locations-UKBOT6SB.js.map +0 -1
- package/dist/log-ZZK3QMZB.js +0 -93
- package/dist/log-ZZK3QMZB.js.map +0 -1
- package/dist/lookup-ZJIP2M4X.js +0 -22
- package/dist/make-DB2BDVB3.js +0 -1368
- package/dist/make-DB2BDVB3.js.map +0 -1
- package/dist/map-UJ23GKRH.js +0 -434
- package/dist/map-UJ23GKRH.js.map +0 -1
- package/dist/mcp-SS2ALFRJ.js +0 -715
- package/dist/mcp-SS2ALFRJ.js.map +0 -1
- package/dist/media-ZWN7E777.js +0 -18
- package/dist/media-sources-GKSEDSE3.js +0 -35
- package/dist/members-KD2XRYPZ.js +0 -45
- package/dist/members-KD2XRYPZ.js.map +0 -1
- package/dist/meta-EHKXH257.js +0 -122
- package/dist/metrics-K6FDCMK7.js +0 -152
- package/dist/normalize-ZNTXNX6D.js +0 -142
- package/dist/normalize-ZNTXNX6D.js.map +0 -1
- package/dist/options-TBIFJF3E.js +0 -123
- package/dist/options-TBIFJF3E.js.map +0 -1
- package/dist/organization-26J2ZIKM.js +0 -947
- package/dist/organization-26J2ZIKM.js.map +0 -1
- package/dist/page-photos-HWKQOSCU.js +0 -116
- package/dist/page-photos-HWKQOSCU.js.map +0 -1
- package/dist/performance-6TPJGM6A.js +0 -25
- package/dist/performance-O5BXZGS6.js +0 -5539
- package/dist/performance-O5BXZGS6.js.map +0 -1
- package/dist/pixels-Z7ZGXAGB.js +0 -60
- package/dist/pixels-Z7ZGXAGB.js.map +0 -1
- package/dist/plan-TVQSEKYL.js +0 -207
- package/dist/plan-TVQSEKYL.js.map +0 -1
- package/dist/preview-CWRGDFCP.js +0 -216
- package/dist/preview-CWRGDFCP.js.map +0 -1
- package/dist/promoted-tweet-writes-SZN74JHY.js +0 -181
- package/dist/promoted-tweet-writes-SZN74JHY.js.map +0 -1
- package/dist/promoted-tweets-7P4TSQU7.js +0 -119
- package/dist/publish-3DUERLGT.js +0 -342
- package/dist/publish-3DUERLGT.js.map +0 -1
- package/dist/query-QM7MBQD7.js +0 -62
- package/dist/questionnaire-LEZJLMAV.js +0 -93
- package/dist/questionnaire-LEZJLMAV.js.map +0 -1
- package/dist/reddit-SN5CESF4.js +0 -27
- package/dist/refresh-2ICQBTK4.js +0 -95
- package/dist/refresh-2ICQBTK4.js.map +0 -1
- package/dist/release-JSZ4JXYJ.js +0 -61
- package/dist/release-JSZ4JXYJ.js.map +0 -1
- package/dist/relevant-pages-VOICMQ7U.js +0 -99
- package/dist/remove-TFUAVRFM.js +0 -51
- package/dist/remove-TFUAVRFM.js.map +0 -1
- package/dist/reopen-5T2PE7MU.js +0 -64
- package/dist/reopen-5T2PE7MU.js.map +0 -1
- package/dist/rerun-EZJ4MLYG.js +0 -93
- package/dist/rerun-EZJ4MLYG.js.map +0 -1
- package/dist/research-BKYSU2C6.js +0 -263
- package/dist/research-BKYSU2C6.js.map +0 -1
- package/dist/research-QU63CJB5.js +0 -72
- package/dist/reset-DKTKZF7G.js +0 -55
- package/dist/reset-DKTKZF7G.js.map +0 -1
- package/dist/reset-SXABIVP6.js +0 -55
- package/dist/reset-SXABIVP6.js.map +0 -1
- package/dist/resolve-L47U2T77.js +0 -122
- package/dist/resolve-L47U2T77.js.map +0 -1
- package/dist/retry-JEWPK2B5.js +0 -63
- package/dist/retry-JEWPK2B5.js.map +0 -1
- package/dist/retry-SXFVLT3W.js +0 -61
- package/dist/retry-SXFVLT3W.js.map +0 -1
- package/dist/revenue-2MAYTXRM.js +0 -89
- package/dist/revenue-2MAYTXRM.js.map +0 -1
- package/dist/rule-writes-S3RN47OG.js +0 -523
- package/dist/rule-writes-S3RN47OG.js.map +0 -1
- package/dist/rules-CHWTFASP.js +0 -97
- package/dist/rules-CHWTFASP.js.map +0 -1
- package/dist/rules-KTJ2ZZ62.js +0 -217
- package/dist/rules-add-3M5TALWN.js +0 -463
- package/dist/rules-add-3M5TALWN.js.map +0 -1
- package/dist/run-2DLA6YO4.js +0 -68
- package/dist/run-JCGH2NHD.js +0 -67
- package/dist/run-JCGH2NHD.js.map +0 -1
- package/dist/scaffold-ad-VEW7JDY7.js +0 -1514
- package/dist/scaffold-ad-VEW7JDY7.js.map +0 -1
- package/dist/scaffold-static-ad-DYRL7DOS.js +0 -1013
- package/dist/scaffold-static-ad-DYRL7DOS.js.map +0 -1
- package/dist/scaffold-video-YRAVVKUH.js +0 -886
- package/dist/scaffold-video-YRAVVKUH.js.map +0 -1
- package/dist/schedule-WYIC6VNW.js +0 -62
- package/dist/schedule-WYIC6VNW.js.map +0 -1
- package/dist/scheduled-agents-FRBF4EOK.js +0 -55
- package/dist/schema-TC2O3FYY.js +0 -133
- package/dist/schema-TC2O3FYY.js.map +0 -1
- package/dist/search-VDW242BN.js +0 -175
- package/dist/search-VDW242BN.js.map +0 -1
- package/dist/select-O5HSSC36.js +0 -104
- package/dist/select-O5HSSC36.js.map +0 -1
- package/dist/sends-6FI7WELX.js +0 -348
- package/dist/sends-6FI7WELX.js.map +0 -1
- package/dist/set-prompt-TI7N64PJ.js +0 -196
- package/dist/set-prompt-TI7N64PJ.js.map +0 -1
- package/dist/setup-links-BM2FTXUZ.js +0 -142
- package/dist/setup-links-BM2FTXUZ.js.map +0 -1
- package/dist/shopify-FIHG5PYP.js +0 -3956
- package/dist/shopify-FIHG5PYP.js.map +0 -1
- package/dist/site-S3IGBMVC.js +0 -178
- package/dist/site-S3IGBMVC.js.map +0 -1
- package/dist/sources-77WLFY4Y.js +0 -30
- package/dist/sources-A4B3R5JC.js +0 -455
- package/dist/sources-A4B3R5JC.js.map +0 -1
- package/dist/stale-YIRCXDOK.js +0 -74
- package/dist/stale-YIRCXDOK.js.map +0 -1
- package/dist/status-6YNR647D.js +0 -63
- package/dist/status-6YNR647D.js.map +0 -1
- package/dist/studies-ZOEUY6YP.js +0 -250
- package/dist/study-writes-DTGMCNFP.js +0 -468
- package/dist/study-writes-DTGMCNFP.js.map +0 -1
- package/dist/sync-FFVWHGLE.js +0 -55
- package/dist/sync-FFVWHGLE.js.map +0 -1
- package/dist/sync-definition-K4XOAG2B.js +0 -67
- package/dist/tags-5KIOGEKN.js +0 -21
- package/dist/tags-5KIOGEKN.js.map +0 -1
- package/dist/tags-BKAN5EAJ.js +0 -21
- package/dist/tags-BKAN5EAJ.js.map +0 -1
- package/dist/tags-ETOOYQ57.js +0 -26
- package/dist/tags-RPNK7TMO.js +0 -225
- package/dist/tags-RPNK7TMO.js.map +0 -1
- package/dist/tags-UM4QO46J.js +0 -21
- package/dist/tags-UM4QO46J.js.map +0 -1
- package/dist/targeting-VBQY3HUN.js +0 -760
- package/dist/targeting-VBQY3HUN.js.map +0 -1
- package/dist/targeting-criteria-L4DYIJZI.js +0 -113
- package/dist/targets-S6N7327Q.js +0 -104
- package/dist/targets-S6N7327Q.js.map +0 -1
- package/dist/testimonials-65N7IYN7.js +0 -32
- package/dist/themes-B4LCQUXB.js +0 -95
- package/dist/top-companies-SJKND75M.js +0 -109
- package/dist/top-companies-SJKND75M.js.map +0 -1
- package/dist/transcript-5I7I6DWL.js +0 -163
- package/dist/transcript-5I7I6DWL.js.map +0 -1
- package/dist/translate-SH6IG5Y7.js +0 -607
- package/dist/translate-SH6IG5Y7.js.map +0 -1
- package/dist/triggers-YRY3HTYU.js +0 -142
- package/dist/triggers-YRY3HTYU.js.map +0 -1
- package/dist/unlink-4B4YTQE4.js +0 -68
- package/dist/unlink-4B4YTQE4.js.map +0 -1
- package/dist/unstage-H5NTDJ6A.js +0 -86
- package/dist/unstage-H5NTDJ6A.js.map +0 -1
- package/dist/unstage-MDSSPUKV.js +0 -95
- package/dist/unstage-MDSSPUKV.js.map +0 -1
- package/dist/update-DI52JJGB.js +0 -99
- package/dist/update-DI52JJGB.js.map +0 -1
- package/dist/update-DMPDLMMV.js +0 -64
- package/dist/update-DMPDLMMV.js.map +0 -1
- package/dist/update-TUS4PJIG.js +0 -190
- package/dist/update-TUS4PJIG.js.map +0 -1
- package/dist/update-Z66LMXNS.js +0 -153
- package/dist/update-Z66LMXNS.js.map +0 -1
- package/dist/upload-7KQYZ7T7.js +0 -127
- package/dist/upload-7KQYZ7T7.js.map +0 -1
- package/dist/url-options-IHL4OU4C.js +0 -130
- package/dist/url-options-IHL4OU4C.js.map +0 -1
- package/dist/url-params-SDA2MWB5.js +0 -99
- package/dist/url-params-SDA2MWB5.js.map +0 -1
- package/dist/validate-ZABZNCSB.js +0 -120
- package/dist/validate-ZABZNCSB.js.map +0 -1
- package/dist/videos-BKVCCKIH.js +0 -41
- package/dist/viewer-check-B5O7ZY3Q.js +0 -81
- package/dist/web-KN3BTVG4.js +0 -141
- package/dist/web-KN3BTVG4.js.map +0 -1
- package/dist/winning-ads-JIDPISKM.js +0 -86
- package/dist/write-commands-K6M3RTVK.js +0 -1170
- package/dist/write-commands-K6M3RTVK.js.map +0 -1
- package/dist/write-commands-RVHLLLDR.js +0 -1498
- package/dist/write-commands-RVHLLLDR.js.map +0 -1
- package/dist/x-NLGWZCGX.js +0 -47
- /package/dist/{account-assets-O7IA37RE.js.map → account-assets-J5Z4URLQ.js.map} +0 -0
- /package/dist/{account-reads-SNOWDHHF.js.map → account-reads-2MSUVG46.js.map} +0 -0
- /package/dist/{actions-Y4SULW2E.js.map → actions-D7OWCP36.js.map} +0 -0
- /package/dist/{ads-2TVWICGM.js.map → ads-HLUJB5SQ.js.map} +0 -0
- /package/dist/{ads-KBE5JXCH.js.map → ads-MAOI7S6V.js.map} +0 -0
- /package/dist/{adsets-YWBJFPAZ.js.map → adsets-QRKICEFD.js.map} +0 -0
- /package/dist/{asset-writes-72DEVXGO.js.map → asset-writes-JLVUAVUZ.js.map} +0 -0
- /package/dist/{audiences-QAH42HIM.js.map → audiences-CDDI5HR5.js.map} +0 -0
- /package/dist/{avatars-P4UPNZM4.js.map → avatars-WZ2JDMHH.js.map} +0 -0
- /package/dist/{brand-HALQWZWB.js.map → brand-IZTTBZII.js.map} +0 -0
- /package/dist/{campaigns-YMM5TQVO.js.map → campaigns-4Y3JQC2U.js.map} +0 -0
- /package/dist/{campaigns-XZOQ2VTK.js.map → campaigns-HES5MDUG.js.map} +0 -0
- /package/dist/{canvas-IJS7H3VE.js.map → canvas-IQ753Q2O.js.map} +0 -0
- /package/dist/{changes-36C754R4.js.map → changes-VWKTM27U.js.map} +0 -0
- /package/dist/{chatgpt-3WFOPURY.js.map → chatgpt-OPOD2WHB.js.map} +0 -0
- /package/dist/{chunk-DUR7PEJI.js.map → chunk-2GYCWRF3.js.map} +0 -0
- /package/dist/{chunk-QBRPM3DQ.js.map → chunk-2L7F7KR4.js.map} +0 -0
- /package/dist/{chunk-4GAEB6NK.js.map → chunk-44ZRCSR7.js.map} +0 -0
- /package/dist/{chunk-2TOIY2WN.js.map → chunk-46YLDIQG.js.map} +0 -0
- /package/dist/{chunk-R53XMPDO.js.map → chunk-4EDWXZ3I.js.map} +0 -0
- /package/dist/{chunk-H4NNQGG6.js.map → chunk-4FFBGR5L.js.map} +0 -0
- /package/dist/{chunk-XGPU2VDU.js.map → chunk-4UQRXKYJ.js.map} +0 -0
- /package/dist/{chunk-N7M2TWR5.js.map → chunk-4UZUUSVL.js.map} +0 -0
- /package/dist/{chunk-I47BEKYK.js.map → chunk-4XHCEYHI.js.map} +0 -0
- /package/dist/{chunk-SCL7PM6P.js.map → chunk-4Z6PVR3M.js.map} +0 -0
- /package/dist/{chunk-ZEC46NWW.js.map → chunk-5Y5FZV2W.js.map} +0 -0
- /package/dist/{chunk-G5Y7OIPL.js.map → chunk-6HJXLGDV.js.map} +0 -0
- /package/dist/{chunk-QW6HL7D6.js.map → chunk-6S5CWGDA.js.map} +0 -0
- /package/dist/{chunk-5RVQK3SP.js.map → chunk-6VYROVWO.js.map} +0 -0
- /package/dist/{chunk-TVAIOC77.js.map → chunk-7BUIOP36.js.map} +0 -0
- /package/dist/{chunk-NDFS3APP.js.map → chunk-AQRXXC6E.js.map} +0 -0
- /package/dist/{chunk-ZFC562TP.js.map → chunk-ARBXT73X.js.map} +0 -0
- /package/dist/{chunk-KQTNUDKD.js.map → chunk-BEZHQIEI.js.map} +0 -0
- /package/dist/{chunk-5SRUAGTG.js.map → chunk-BFURWHVR.js.map} +0 -0
- /package/dist/{chunk-KBRJSPIM.js.map → chunk-DSCEXBDR.js.map} +0 -0
- /package/dist/{chunk-Z7YMSHRZ.js.map → chunk-FLWDFPXE.js.map} +0 -0
- /package/dist/{chunk-GACSA5A6.js.map → chunk-FRNBRN2C.js.map} +0 -0
- /package/dist/{chunk-C7QQQVBS.js.map → chunk-GE3VT3CA.js.map} +0 -0
- /package/dist/{chunk-P6BKKUSX.js.map → chunk-HGBJQGO5.js.map} +0 -0
- /package/dist/{chunk-MGYC2IRC.js.map → chunk-I7AYMJZA.js.map} +0 -0
- /package/dist/{chunk-BRLZX3VP.js.map → chunk-IRM273C7.js.map} +0 -0
- /package/dist/{chunk-AYPBARKP.js.map → chunk-IWKD56AY.js.map} +0 -0
- /package/dist/{chunk-MZCTX37B.js.map → chunk-JLAQWMVF.js.map} +0 -0
- /package/dist/{chunk-AQOFQNKQ.js.map → chunk-K6NULQN7.js.map} +0 -0
- /package/dist/{chunk-GMHCHHAA.js.map → chunk-L2BRAC2J.js.map} +0 -0
- /package/dist/{chunk-SVBJ56T7.js.map → chunk-LGMI4LSY.js.map} +0 -0
- /package/dist/{chunk-OJGYYH6K.js.map → chunk-NB2FU6EZ.js.map} +0 -0
- /package/dist/{chunk-TVTSA4EN.js.map → chunk-NWF2LRKO.js.map} +0 -0
- /package/dist/{chunk-6Z7Y4KQB.js.map → chunk-OG47L5GG.js.map} +0 -0
- /package/dist/{chunk-AIRD6T4W.js.map → chunk-OR6KVLI5.js.map} +0 -0
- /package/dist/{chunk-OBJCNGZL.js.map → chunk-QDQZ62FL.js.map} +0 -0
- /package/dist/{chunk-FPWQA7TK.js.map → chunk-QIOFOD4K.js.map} +0 -0
- /package/dist/{chunk-XQXZJ5IR.js.map → chunk-R2SYF5FC.js.map} +0 -0
- /package/dist/{chunk-YMF2RG4Z.js.map → chunk-RTH2I55B.js.map} +0 -0
- /package/dist/{chunk-FFFJBNHA.js.map → chunk-S6VFDNSQ.js.map} +0 -0
- /package/dist/{chunk-ZNRGH4NS.js.map → chunk-SG2TDQEE.js.map} +0 -0
- /package/dist/{chunk-RFIUOQLN.js.map → chunk-T3P6O2VU.js.map} +0 -0
- /package/dist/{chunk-BTJSGJNQ.js.map → chunk-TXDE2QJ3.js.map} +0 -0
- /package/dist/{chunk-HSQRITKG.js.map → chunk-UDIEKCIR.js.map} +0 -0
- /package/dist/{chunk-MBSFEVOG.js.map → chunk-USCADMM3.js.map} +0 -0
- /package/dist/{chunk-SM7G7RUA.js.map → chunk-UUGISMNE.js.map} +0 -0
- /package/dist/{chunk-Z2DRGXBB.js.map → chunk-VDPOCAQ2.js.map} +0 -0
- /package/dist/{chunk-PLAOK4AK.js.map → chunk-VEJ3QX6M.js.map} +0 -0
- /package/dist/{chunk-ARUXGKZO.js.map → chunk-VFJB7OG6.js.map} +0 -0
- /package/dist/{chunk-RVEY7BTT.js.map → chunk-VRIPVLE7.js.map} +0 -0
- /package/dist/{chunk-5XTGG4PV.js.map → chunk-WFY7KSHB.js.map} +0 -0
- /package/dist/{chunk-D3KLDIPQ.js.map → chunk-WLESMH4J.js.map} +0 -0
- /package/dist/{chunk-PLBITHV6.js.map → chunk-XHQYFNNK.js.map} +0 -0
- /package/dist/{chunk-QMDMTZAW.js.map → chunk-YILZR3XI.js.map} +0 -0
- /package/dist/{chunk-W574NV67.js.map → chunk-YJFLXOH4.js.map} +0 -0
- /package/dist/{chunk-MUXKYSTI.js.map → chunk-YWHZYR6S.js.map} +0 -0
- /package/dist/{connect-PP6Z3F7Y.js.map → connect-3YY7MF3I.js.map} +0 -0
- /package/dist/{conversion-upload-command-KTYAY7IG.js.map → conversion-upload-command-7RSZ5ZQU.js.map} +0 -0
- /package/dist/{creatives-UJDPD4CI.js.map → creatives-2DR3QHJW.js.map} +0 -0
- /package/dist/{creatives-JPKA2RHU.js.map → creatives-BB6S2OF6.js.map} +0 -0
- /package/dist/{currency-R4ORE2U3.js.map → currency-X7Y6TSLF.js.map} +0 -0
- /package/dist/{custom-conversions-5HJBB5XL.js.map → custom-conversions-HAGG72LF.js.map} +0 -0
- /package/dist/{customers-7J3QGSOJ.js.map → customers-663K2OCP.js.map} +0 -0
- /package/dist/{discover-GSJRZUOC.js.map → discover-6DORQWXY.js.map} +0 -0
- /package/dist/{draft-WYDMLNYA.js.map → draft-R6EKORNS.js.map} +0 -0
- /package/dist/{fit-N7WDGWYZ.js.map → fit-BEFCY2B4.js.map} +0 -0
- /package/dist/{fonts-TTUAP7HS.js.map → fonts-C6XN5667.js.map} +0 -0
- /package/dist/{forecast-4AG5F7YC.js.map → forecast-BTPIXEQ5.js.map} +0 -0
- /package/dist/{google-NAA4BASO.js.map → google-M6BJ22UL.js.map} +0 -0
- /package/dist/{ideas-SUXKKZC7.js.map → ideas-M66FU45H.js.map} +0 -0
- /package/dist/{images-VKVZ3DWG.js.map → images-MM5OPUKV.js.map} +0 -0
- /package/dist/{ingest-BBBFT6FZ.js.map → ingest-KMLYCFF4.js.map} +0 -0
- /package/dist/{intent-NSHW7EJT.js.map → intent-YCQCUCV3.js.map} +0 -0
- /package/dist/{keyword-gap-ITTWKBWZ.js.map → keyword-gap-PUSF7EKY.js.map} +0 -0
- /package/dist/{landing-KZ4OSHHR.js.map → landing-OZU5RRFV.js.map} +0 -0
- /package/dist/{languages-MEFQQBJ2.js.map → languages-SLFV73GE.js.map} +0 -0
- /package/dist/{line-items-G5YJG25N.js.map → line-items-NJMEPEF5.js.map} +0 -0
- /package/dist/{locations-RLWAS6AC.js.map → locations-T2OMP6QN.js.map} +0 -0
- /package/dist/{lookup-ZJIP2M4X.js.map → lookup-S5VG7AWH.js.map} +0 -0
- /package/dist/{media-ZWN7E777.js.map → media-P4T4ZBNS.js.map} +0 -0
- /package/dist/{media-sources-GKSEDSE3.js.map → media-sources-EQI3U4TC.js.map} +0 -0
- /package/dist/{meta-EHKXH257.js.map → meta-IPLWNYC7.js.map} +0 -0
- /package/dist/{metrics-K6FDCMK7.js.map → metrics-4YVJHYRI.js.map} +0 -0
- /package/dist/{performance-6TPJGM6A.js.map → performance-NIF3CESZ.js.map} +0 -0
- /package/dist/{promoted-tweets-7P4TSQU7.js.map → promoted-tweets-RJT53DRM.js.map} +0 -0
- /package/dist/{query-QM7MBQD7.js.map → query-XZMDGRO5.js.map} +0 -0
- /package/dist/{reddit-SN5CESF4.js.map → reddit-JIHMAKAQ.js.map} +0 -0
- /package/dist/{relevant-pages-VOICMQ7U.js.map → relevant-pages-FS7GBVXK.js.map} +0 -0
- /package/dist/{research-QU63CJB5.js.map → research-PNBACCCP.js.map} +0 -0
- /package/dist/{rules-KTJ2ZZ62.js.map → rules-ZVS2MWED.js.map} +0 -0
- /package/dist/{run-2DLA6YO4.js.map → run-QCNRR3CA.js.map} +0 -0
- /package/dist/{scheduled-agents-FRBF4EOK.js.map → scheduled-agents-OXYAVSIE.js.map} +0 -0
- /package/dist/{sources-77WLFY4Y.js.map → sources-FLUGHSVP.js.map} +0 -0
- /package/dist/{studies-ZOEUY6YP.js.map → studies-EPO2AM4M.js.map} +0 -0
- /package/dist/{sync-definition-K4XOAG2B.js.map → sync-definition-OGQ5XTQE.js.map} +0 -0
- /package/dist/{tags-ETOOYQ57.js.map → tags-CZTRQNXV.js.map} +0 -0
- /package/dist/{targeting-criteria-L4DYIJZI.js.map → targeting-criteria-AQYXVSGN.js.map} +0 -0
- /package/dist/{testimonials-65N7IYN7.js.map → testimonials-G3OCNPBY.js.map} +0 -0
- /package/dist/{themes-B4LCQUXB.js.map → themes-FEVYZZCW.js.map} +0 -0
- /package/dist/{videos-BKVCCKIH.js.map → videos-36AXDUGZ.js.map} +0 -0
- /package/dist/{viewer-check-B5O7ZY3Q.js.map → viewer-check-6HL4OUQY.js.map} +0 -0
- /package/dist/{winning-ads-JIDPISKM.js.map → winning-ads-GMM5W2O4.js.map} +0 -0
- /package/dist/{x-NLGWZCGX.js.map → x-HGFAL3NY.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/activecampaign/index.ts","../src/commands/activecampaign/drafts.ts","../src/commands/activecampaign/refusal.ts","../../api/src/activecampaign-reads.ts","../src/commands/activecampaign/reads.ts","../../api/src/activecampaign-writes.ts","../src/commands/activecampaign/stage.ts","../src/commands/activecampaign/unstage.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { draftsCommand } from \"./drafts.ts\";\nimport { READ_COMMANDS } from \"./reads.ts\";\nimport { stageCommandGroup } from \"./stage.ts\";\nimport { unstageCommand } from \"./unstage.ts\";\n\nexport const activecampaignCommand = defineCommand({\n meta: {\n name: \"activecampaign\",\n description: `Read the connected ActiveCampaign account — its tracking set-up, lists, automations, pipelines,\ntags, custom fields, users, email campaign reports, contacts and deals. These reads are live and change nothing.\n\nExamples:\n baker activecampaign account # contacts, site tracking + tracking account id, domains\n baker activecampaign campaigns --since 2026-09-01 # email reports: sends, opens, clicks, unsubscribes, bounces, rates\n baker activecampaign automations --active-only # what runs after a lead arrives, and how many went through\n baker activecampaign contacts --email a@b.com # did this lead arrive?\n baker activecampaign contacts --tag webinar --limit 1 # how many carry a tag (total)\n baker activecampaign deals --status won # won deals and their value per currency\n baker activecampaign pipelines | lists | tags | fields | users\n\nChanges are staged on this chat and made in ActiveCampaign only when the user publishes it:\n baker activecampaign stage field --utm # UTM_SOURCE … UTM_TERM, for Forms to map onto\n baker activecampaign stage field --title \"Plan\" --type dropdown --options \"Basic,Pro\"\n baker activecampaign stage list --name \"Webinar sign-ups\"\n baker activecampaign stage tag --name \"hot-lead\"\n baker activecampaign stage pipeline --title \"Inbound\" --stages \"New lead,Qualified,Won\"\n baker activecampaign drafts # what is staged, and after Publish what happened\n baker activecampaign unstage <ref|name|perstag> # drop one; unstage --all drops every staged change\n\nEvery command takes --account <id> when the company has more than one ActiveCampaign connection, and --full\nfor the untouched ActiveCampaign payload. NO_ACTIVECAMPAIGN_CONNECTION / ACTIVECAMPAIGN_RECONNECT_REQUIRED\ncarry a request_connection fix — only the user can clear them.\nFull guide: __tooling__/docs/tools/baker/activecampaign.md`,\n },\n subCommands: {\n ...READ_COMMANDS,\n stage: stageCommandGroup,\n unstage: unstageCommand,\n drafts: draftsCommand,\n },\n});\n","import type { ActiveCampaignDraftListResponse } from \"@baker/api/activecampaign-writes\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { resolveChatId } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { CHAT_READ_ARG } from \"../chat-arg.ts\";\nimport { failActiveCampaign } from \"./refusal.ts\";\n\nconst DESCRIPTION =\n \"The ActiveCampaign changes staged on this chat — fields, lists, tags, pipelines — and, once published, what happened to each (created, reused because it already existed, or failed and why). Take --chat <id> to read an earlier chat's.\";\n\nregisterSchema({\n command: \"activecampaign.drafts\",\n description: DESCRIPTION,\n args: { chat: { type: \"string\", description: CHAT_READ_ARG.description, required: false } },\n});\n\n/** What the publish did with one op, in a word or two. */\nfunction outcomeOf(op: ActiveCampaignDraftListResponse[\"ops\"][number]): string | undefined {\n if (!op.result) return undefined;\n if (op.result.status === \"applied\") return op.result.reused ? \"already there, reused\" : \"created\";\n return op.result.status === \"failed\" ? `failed: ${op.result.error ?? \"no reason given\"}` : \"not sent\";\n}\n\nexport const draftsCommand = defineCommand({\n meta: { name: \"drafts\", description: DESCRIPTION },\n args: { chat: CHAT_READ_ARG },\n run: async ({ args }) => {\n const chatId = resolveChatId(args.chat);\n try {\n const data = await apiPost<ActiveCampaignDraftListResponse>(\"/api/activecampaign/draft\", { chatId });\n const ops = data.ops.map((op) => {\n const outcome = outcomeOf(op);\n return { ref: op.ref, kind: op.kind, summary: op.summary, ...(outcome ? { outcome } : {}) };\n });\n const hints =\n data.status === \"active\" && data.count > 0\n ? [\"Staged only — these are created in ActiveCampaign when the user publishes this chat.\"]\n : [];\n writeJson({\n ok: true,\n data: {\n status: data.status,\n count: data.count,\n ops,\n ...(data.publishError ? { publishError: data.publishError } : {}),\n },\n ...(hints.length > 0 ? { hints } : {}),\n });\n } catch (err) {\n failActiveCampaign(err);\n }\n },\n});\n","import { ApiError } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { failApi } from \"../actions/shared.ts\";\n\nexport interface ActiveCampaignRefusal {\n code: \"NO_ACTIVECAMPAIGN_CONNECTION\" | \"ACTIVECAMPAIGN_RECONNECT_REQUIRED\";\n fix: { action: \"request_connection\"; explanation: string };\n}\n\nconst CONTINUE =\n \"Keep going with the wider task: say which part you could not read, skip it, and finish everything else.\";\n\n/**\n * The two refusals only the user can clear — nothing connected, or a saved key\n * ActiveCampaign no longer accepts — as the in-chat connect card, where they\n * paste the API URL and key; a connection removed since counts as none.\n * Matched on the backend's own sentences\n * (`flows/destinations/utils.ts` `chooseAccount`, `oauth/activecampaign/*`).\n */\nexport function activeCampaignRefusal(code: string, message: string): ActiveCampaignRefusal | null {\n if (\n code === \"NOT_FOUND\" &&\n (message.includes(\"No ActiveCampaign account is connected\") ||\n message.includes(\"ActiveCampaign connection no longer exists\"))\n ) {\n return {\n code: \"NO_ACTIVECAMPAIGN_CONNECTION\",\n fix: {\n action: \"request_connection\",\n explanation:\n 'AGENT INSTRUCTION: ActiveCampaign is not connected, and only the user can connect it. Call the `request_connection` tool with { platform: \"activecampaign\", reason } — reason in their words — and they paste the API URL and key inside the chat; then run this command again. ' +\n CONTINUE,\n },\n };\n }\n if (code === \"CONFLICT\" && message.includes(\"connect ActiveCampaign again\")) {\n return {\n code: \"ACTIVECAMPAIGN_RECONNECT_REQUIRED\",\n fix: {\n action: \"request_connection\",\n explanation:\n 'AGENT INSTRUCTION: ActiveCampaign is connected, but its saved key no longer works — do not retry. Call the `request_connection` tool with { platform: \"activecampaign\", reason } so the user pastes a current key, then run this command again. ' +\n CONTINUE,\n },\n };\n }\n return null;\n}\n\nexport function failActiveCampaign(err: unknown): never {\n const refusal = err instanceof ApiError ? activeCampaignRefusal(err.code, err.message) : null;\n if (err instanceof ApiError && refusal !== null) {\n writeJson({ ok: false, error: { code: refusal.code, message: err.message, fix: refusal.fix } });\n process.exit(1);\n }\n failApi(err);\n}\n","/**\n * `baker activecampaign` reads: the contract the CLI and the backend share.\n *\n * Every read is `POST /api/activecampaign/reads/<read>` with a body naming the\n * connection (`account`, optional when the company has one) and the read's own\n * filters, answered `{ ok: true, data }`. Rows are compact; `full: true` adds\n * each row's untouched ActiveCampaign payload as `raw`.\n */\nimport { z } from \"zod\";\n\nconst raw = z.record(z.string(), z.unknown()).optional();\nconst limit = z.number().int().min(1).max(100).optional();\n\nconst baseRequest = z.object({\n /** Connection id; optional when the company has exactly one ActiveCampaign account. */\n account: z.string().optional(),\n full: z.boolean().optional(),\n});\n\nfunction envelope<T extends z.ZodRawShape>(shape: T) {\n return z.object({ ok: z.literal(true), data: z.object({ account: z.string(), ...shape }) });\n}\n\n// ── account ─────────────────────────────────────────────────────────────────\n\nexport const activeCampaignAccountRequestSchema = baseRequest;\nexport type ActiveCampaignAccountRequest = z.infer<typeof activeCampaignAccountRequestSchema>;\n\nexport const activeCampaignAccountSummarySchema = z.object({\n label: z.string(),\n apiUrl: z.string(),\n contactCount: z.number().nullable(),\n siteTracking: z.object({\n enabled: z.boolean().nullable(),\n /** The id `vgo('setAccount', …)` takes — what the ActiveCampaign tag on a landing needs. */\n trackingAccountId: z.string().nullable(),\n /** Domains ActiveCampaign accepts visits from; empty means it records visits from none. */\n domains: z.array(z.string()),\n }),\n eventTracking: z.object({ enabled: z.boolean().nullable() }),\n});\nexport type ActiveCampaignAccountSummary = z.infer<typeof activeCampaignAccountSummarySchema>;\n\nexport const activeCampaignAccountResponseSchema = envelope({ summary: activeCampaignAccountSummarySchema });\nexport type ActiveCampaignAccountResponse = z.infer<typeof activeCampaignAccountResponseSchema>;\n\n// ── lists ───────────────────────────────────────────────────────────────────\n\nexport const activeCampaignListsRequestSchema = baseRequest;\nexport type ActiveCampaignListsRequest = z.infer<typeof activeCampaignListsRequestSchema>;\n\nexport const activeCampaignListRowSchema = z.object({\n id: z.string(),\n name: z.string(),\n activeContacts: z.number().nullable(),\n createdAt: z.string().nullable(),\n raw,\n});\nexport type ActiveCampaignListRow = z.infer<typeof activeCampaignListRowSchema>;\n\nexport const activeCampaignListsResponseSchema = envelope({ lists: z.array(activeCampaignListRowSchema) });\nexport type ActiveCampaignListsResponse = z.infer<typeof activeCampaignListsResponseSchema>;\n\n// ── automations ─────────────────────────────────────────────────────────────\n\nexport const activeCampaignAutomationsRequestSchema = baseRequest.extend({ activeOnly: z.boolean().optional() });\nexport type ActiveCampaignAutomationsRequest = z.infer<typeof activeCampaignAutomationsRequestSchema>;\n\nexport const ACTIVECAMPAIGN_AUTOMATION_STATUSES = [\"active\", \"inactive\", \"unknown\"] as const;\n\nexport const activeCampaignAutomationRowSchema = z.object({\n id: z.string(),\n name: z.string(),\n status: z.enum(ACTIVECAMPAIGN_AUTOMATION_STATUSES),\n /** Contacts that have ever entered / finished it. */\n entered: z.number().nullable(),\n exited: z.number().nullable(),\n /** What starts it (`subscribe`, `tagadd`, …), as ActiveCampaign names its triggers. */\n triggers: z.array(z.string()),\n createdAt: z.string().nullable(),\n modifiedAt: z.string().nullable(),\n raw,\n});\nexport type ActiveCampaignAutomationRow = z.infer<typeof activeCampaignAutomationRowSchema>;\n\nexport const activeCampaignAutomationsResponseSchema = envelope({\n automations: z.array(activeCampaignAutomationRowSchema),\n});\nexport type ActiveCampaignAutomationsResponse = z.infer<typeof activeCampaignAutomationsResponseSchema>;\n\n// ── pipelines ───────────────────────────────────────────────────────────────\n\nexport const activeCampaignPipelinesRequestSchema = baseRequest;\nexport type ActiveCampaignPipelinesRequest = z.infer<typeof activeCampaignPipelinesRequestSchema>;\n\nexport const activeCampaignStageSchema = z.object({ id: z.string(), title: z.string(), order: z.number().nullable() });\nexport type ActiveCampaignStage = z.infer<typeof activeCampaignStageSchema>;\n\nexport const activeCampaignPipelineRowSchema = z.object({\n id: z.string(),\n title: z.string(),\n currency: z.string().nullable(),\n /** In board order: the first is where a new deal lands. */\n stages: z.array(activeCampaignStageSchema),\n raw,\n});\nexport type ActiveCampaignPipelineRow = z.infer<typeof activeCampaignPipelineRowSchema>;\n\nexport const activeCampaignPipelinesResponseSchema = envelope({\n pipelines: z.array(activeCampaignPipelineRowSchema),\n});\nexport type ActiveCampaignPipelinesResponse = z.infer<typeof activeCampaignPipelinesResponseSchema>;\n\n// ── tags ────────────────────────────────────────────────────────────────────\n\nexport const activeCampaignTagsRequestSchema = baseRequest.extend({ search: z.string().optional() });\nexport type ActiveCampaignTagsRequest = z.infer<typeof activeCampaignTagsRequestSchema>;\n\nexport const activeCampaignTagRowSchema = z.object({\n id: z.string(),\n name: z.string(),\n /** `contact` or `template`; only contact tags can be put on a lead. */\n type: z.string().nullable(),\n contactCount: z.number().nullable(),\n raw,\n});\nexport type ActiveCampaignTagRow = z.infer<typeof activeCampaignTagRowSchema>;\n\nexport const activeCampaignTagsResponseSchema = envelope({ tags: z.array(activeCampaignTagRowSchema) });\nexport type ActiveCampaignTagsResponse = z.infer<typeof activeCampaignTagsResponseSchema>;\n\n// ── fields ──────────────────────────────────────────────────────────────────\n\nexport const activeCampaignCustomFieldsRequestSchema = baseRequest;\nexport type ActiveCampaignCustomFieldsRequest = z.infer<typeof activeCampaignCustomFieldsRequestSchema>;\n\nexport const activeCampaignCustomFieldRowSchema = z.object({\n id: z.string(),\n title: z.string(),\n /** ActiveCampaign's type: `text`, `textarea`, `date`, `dropdown`, `multiselect`, `radio`, `checkbox`, … */\n type: z.string().nullable(),\n perstag: z.string().nullable(),\n required: z.boolean(),\n /** For a choice field, what may be stored (`value`) and what people see (`label`). */\n options: z.array(z.object({ value: z.string(), label: z.string() })),\n /** True when the field shows on every list (ActiveCampaign's relid 0). */\n allLists: z.boolean(),\n listIds: z.array(z.string()),\n raw,\n});\nexport type ActiveCampaignCustomFieldRow = z.infer<typeof activeCampaignCustomFieldRowSchema>;\n\nexport const activeCampaignCustomFieldsResponseSchema = envelope({\n fields: z.array(activeCampaignCustomFieldRowSchema),\n});\nexport type ActiveCampaignCustomFieldsResponse = z.infer<typeof activeCampaignCustomFieldsResponseSchema>;\n\n// ── users ───────────────────────────────────────────────────────────────────\n\nexport const activeCampaignUsersRequestSchema = baseRequest;\nexport type ActiveCampaignUsersRequest = z.infer<typeof activeCampaignUsersRequestSchema>;\n\nexport const activeCampaignUserRowSchema = z.object({\n id: z.string(),\n username: z.string().nullable(),\n name: z.string().nullable(),\n email: z.string().nullable(),\n raw,\n});\nexport type ActiveCampaignUserRow = z.infer<typeof activeCampaignUserRowSchema>;\n\nexport const activeCampaignUsersResponseSchema = envelope({ users: z.array(activeCampaignUserRowSchema) });\nexport type ActiveCampaignUsersResponse = z.infer<typeof activeCampaignUsersResponseSchema>;\n\n// ── campaigns ───────────────────────────────────────────────────────────────\n\n/** ActiveCampaign's campaign `status` codes 0–5, in its own order. */\nexport const ACTIVECAMPAIGN_CAMPAIGN_STATUSES = [\n \"draft\",\n \"scheduled\",\n \"sending\",\n \"paused\",\n \"stopped\",\n \"completed\",\n] as const;\nexport type ActiveCampaignCampaignStatus = (typeof ACTIVECAMPAIGN_CAMPAIGN_STATUSES)[number];\n\nconst isoDay = z.string().regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"Use a date like 2026-01-31\");\n\nexport const activeCampaignCampaignsRequestSchema = baseRequest.extend({\n status: z.enum(ACTIVECAMPAIGN_CAMPAIGN_STATUSES).optional(),\n /** Only campaigns first sent on or after this day. */\n since: isoDay.optional(),\n limit,\n});\nexport type ActiveCampaignCampaignsRequest = z.infer<typeof activeCampaignCampaignsRequestSchema>;\n\n/** Shares of `sends` (and click-to-open of unique opens), 0–1; null when nothing was sent. */\nexport const activeCampaignCampaignRatesSchema = z.object({\n open: z.number().nullable(),\n click: z.number().nullable(),\n clickToOpen: z.number().nullable(),\n unsubscribe: z.number().nullable(),\n bounce: z.number().nullable(),\n});\n\nexport const activeCampaignCampaignRowSchema = z.object({\n id: z.string(),\n name: z.string(),\n /** `single`, `recurring`, `split`, `responder`, `reminder`, `special`, `activerss`, `text`, … */\n type: z.string().nullable(),\n status: z.enum([...ACTIVECAMPAIGN_CAMPAIGN_STATUSES, \"unknown\"]),\n /** When it (first) went out, and when its last send ran — ActiveCampaign's `sdate` / `ldate`. */\n sentAt: z.string().nullable(),\n lastSentAt: z.string().nullable(),\n /** Set when an automation sends it. */\n automationId: z.string().nullable(),\n sends: z.number(),\n opens: z.number(),\n uniqueOpens: z.number(),\n clicks: z.number(),\n uniqueClicks: z.number(),\n unsubscribes: z.number(),\n hardBounces: z.number(),\n softBounces: z.number(),\n rates: activeCampaignCampaignRatesSchema,\n raw,\n});\nexport type ActiveCampaignCampaignRow = z.infer<typeof activeCampaignCampaignRowSchema>;\n\nexport const activeCampaignCampaignsResponseSchema = envelope({\n campaigns: z.array(activeCampaignCampaignRowSchema),\n /** True when more campaigns matched than `limit` returned. */\n truncated: z.boolean(),\n});\nexport type ActiveCampaignCampaignsResponse = z.infer<typeof activeCampaignCampaignsResponseSchema>;\n\n// ── contacts ────────────────────────────────────────────────────────────────\n\nexport const activeCampaignContactsRequestSchema = baseRequest.extend({\n /** The contact's ActiveCampaign id — what an ActiveCampaign event's `contact.id` carries. */\n id: z.string().optional(),\n email: z.string().optional(),\n /** A tag's id or exact name. */\n tag: z.string().optional(),\n /** A list's id or exact name. */\n list: z.string().optional(),\n /** ActiveCampaign's own search over name, email, phone and organisation. */\n search: z.string().optional(),\n limit,\n});\nexport type ActiveCampaignContactsRequest = z.infer<typeof activeCampaignContactsRequestSchema>;\n\nexport const activeCampaignContactRowSchema = z.object({\n id: z.string(),\n email: z.string().nullable(),\n firstName: z.string().nullable(),\n lastName: z.string().nullable(),\n createdAt: z.string().nullable(),\n updatedAt: z.string().nullable(),\n /** The contact's tags by name; only on a lookup by `id` or `email`. */\n tags: z.array(z.string()).optional(),\n /** What the contact did and what ActiveCampaign did with them; only on a lookup by `id` or `email`. */\n activity: z\n .object({\n /** Custom events (`event.name` on a Form, or any event tracking), newest first. */\n events: z.array(z.object({ name: z.string(), data: z.string().nullable(), at: z.string().nullable() })),\n /** Site-tracking page visits, newest first. */\n pageVisits: z.array(z.object({ url: z.string(), at: z.string().nullable() })),\n /** Campaign emails: each one sent, opened, and each tracked link clicked (with its address), newest first. */\n emails: z.array(\n z.object({\n campaignId: z.string(),\n event: z.enum([\"sent\", \"opened\", \"clicked\"]),\n url: z.string().nullable(),\n at: z.string().nullable(),\n }),\n ),\n automations: z.array(\n z.object({\n id: z.string(),\n name: z.string().nullable(),\n status: z.enum([\"running\", \"completed\", \"unknown\"]),\n startedAt: z.string().nullable(),\n endedAt: z.string().nullable(),\n }),\n ),\n lists: z.array(\n z.object({\n id: z.string(),\n name: z.string().nullable(),\n status: z.enum([\"subscribed\", \"unsubscribed\", \"unconfirmed\", \"bounced\", \"unknown\"]),\n since: z.string().nullable(),\n }),\n ),\n })\n .optional(),\n raw,\n});\nexport type ActiveCampaignContactActivity = NonNullable<z.infer<typeof activeCampaignContactRowSchema>[\"activity\"]>;\nexport type ActiveCampaignContactRow = z.infer<typeof activeCampaignContactRowSchema>;\n\nexport const activeCampaignContactsResponseSchema = envelope({\n /** Every contact the filters match, of which `contacts` is the newest `limit`. */\n total: z.number().nullable(),\n contacts: z.array(activeCampaignContactRowSchema),\n});\nexport type ActiveCampaignContactsResponse = z.infer<typeof activeCampaignContactsResponseSchema>;\n\n// ── deals ───────────────────────────────────────────────────────────────────\n\n/** ActiveCampaign's deal `status` codes 0–2. */\nexport const ACTIVECAMPAIGN_DEAL_STATUSES = [\"open\", \"won\", \"lost\"] as const;\nexport type ActiveCampaignDealStatus = (typeof ACTIVECAMPAIGN_DEAL_STATUSES)[number];\n\nexport const activeCampaignDealsRequestSchema = baseRequest.extend({\n /** A pipeline's id or exact title. */\n pipeline: z.string().optional(),\n /** A stage's id or exact title (within `pipeline` when both are given). */\n stage: z.string().optional(),\n status: z.enum(ACTIVECAMPAIGN_DEAL_STATUSES).optional(),\n /** A user's id, username or email. */\n owner: z.string().optional(),\n limit,\n});\nexport type ActiveCampaignDealsRequest = z.infer<typeof activeCampaignDealsRequestSchema>;\n\nconst named = z.object({ id: z.string(), title: z.string() }).nullable();\n\nexport const activeCampaignDealRowSchema = z.object({\n id: z.string(),\n title: z.string(),\n /** In the currency's major units (ActiveCampaign stores cents). */\n value: z.number().nullable(),\n currency: z.string().nullable(),\n status: z.enum([...ACTIVECAMPAIGN_DEAL_STATUSES, \"unknown\"]),\n pipeline: named,\n stage: named,\n ownerId: z.string().nullable(),\n contactId: z.string().nullable(),\n createdAt: z.string().nullable(),\n modifiedAt: z.string().nullable(),\n raw,\n});\nexport type ActiveCampaignDealRow = z.infer<typeof activeCampaignDealRowSchema>;\n\nexport const activeCampaignDealTotalSchema = z.object({\n currency: z.string(),\n count: z.number(),\n /** Major units, every matching deal — not only the rows returned. */\n value: z.number(),\n});\n\nexport const activeCampaignDealsResponseSchema = envelope({\n total: z.number().nullable(),\n totals: z.array(activeCampaignDealTotalSchema),\n deals: z.array(activeCampaignDealRowSchema),\n});\nexport type ActiveCampaignDealsResponse = z.infer<typeof activeCampaignDealsResponseSchema>;\n\n/** Every read, by the last segment of its route. */\nexport const ACTIVECAMPAIGN_READS = [\n \"account\",\n \"lists\",\n \"automations\",\n \"pipelines\",\n \"tags\",\n \"fields\",\n \"users\",\n \"campaigns\",\n \"contacts\",\n \"deals\",\n] as const;\nexport type ActiveCampaignRead = (typeof ACTIVECAMPAIGN_READS)[number];\n\nexport function activeCampaignReadPath(read: ActiveCampaignRead): string {\n return `/api/activecampaign/reads/${read}`;\n}\n","import {\n ACTIVECAMPAIGN_CAMPAIGN_STATUSES,\n ACTIVECAMPAIGN_DEAL_STATUSES,\n type ActiveCampaignAccountResponse,\n type ActiveCampaignAutomationsResponse,\n type ActiveCampaignCampaignsResponse,\n type ActiveCampaignContactsResponse,\n type ActiveCampaignCustomFieldsResponse,\n type ActiveCampaignDealsResponse,\n type ActiveCampaignListsResponse,\n type ActiveCampaignPipelinesResponse,\n type ActiveCampaignRead,\n type ActiveCampaignTagsResponse,\n type ActiveCampaignUsersResponse,\n activeCampaignReadPath,\n} from \"@baker/api/activecampaign-reads\";\nimport { type ArgsDef, defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failActiveCampaign } from \"./refusal.ts\";\n\ntype ArgValues = Record<string, unknown>;\n\ninterface SchemaArg {\n type: \"string\" | \"boolean\";\n description: string;\n required: false;\n default?: unknown;\n enum?: string[];\n}\n\nconst COMMON_ARGS: Record<string, SchemaArg> = {\n account: {\n type: \"string\",\n description: \"Which connection to read when the company has more than one (the id the error lists)\",\n required: false,\n },\n full: {\n type: \"boolean\",\n description: \"Add each row's untouched ActiveCampaign payload as `raw`\",\n required: false,\n default: false,\n },\n};\n\nconst LIMIT_ARG: SchemaArg = { type: \"string\", description: \"How many rows, 1-100 (default 20)\", required: false };\n\n/** `--limit` as the number the route takes; anything else is refused before a request is made. */\nexport function parseLimit(value: unknown): number | undefined {\n if (value === undefined || value === \"\") return undefined;\n const limit = Number(value);\n if (!Number.isInteger(limit) || limit < 1 || limit > 100) {\n throw new ApiError(\"VALIDATION_ERROR\", \"--limit must be a whole number from 1 to 100\");\n }\n return limit;\n}\n\nfunction optionalString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() !== \"\" ? value.trim() : undefined;\n}\n\ninterface ReadSpec<Res extends { ok: true; data: object }> {\n read: ActiveCampaignRead;\n description: string;\n args?: Record<string, SchemaArg>;\n body?: (args: ArgValues) => Record<string, unknown>;\n rows: (data: Res[\"data\"]) => readonly unknown[];\n hints?: (data: Res[\"data\"], args: ArgValues) => string[];\n}\n\nfunction readCommand<Res extends { ok: true; data: object }>(spec: ReadSpec<Res>) {\n const args = { ...(spec.args ?? {}), ...COMMON_ARGS };\n registerSchema({ command: `activecampaign.${spec.read}`, description: spec.description, args });\n return defineCommand({\n meta: { name: spec.read, description: spec.description },\n args: args as ArgsDef,\n run: async ({ args: values }) => {\n try {\n const body = {\n ...(spec.body ? spec.body(values) : {}),\n ...(optionalString(values.account) ? { account: optionalString(values.account) } : {}),\n ...(values.full === true ? { full: true } : {}),\n };\n const response = await apiPost<Res>(activeCampaignReadPath(spec.read), body);\n const hints = spec.hints ? spec.hints(response.data, values) : [];\n writeJson({\n ok: true,\n data: response.data,\n meta: { count: spec.rows(response.data).length },\n ...(hints.length > 0 ? { hints } : {}),\n });\n } catch (err) {\n failActiveCampaign(err);\n }\n },\n });\n}\n\nexport const accountCommand = readCommand<ActiveCampaignAccountResponse>({\n read: \"account\",\n description:\n \"Start here for ActiveCampaign: the connected account at a glance — its label, how many contacts it holds, whether site tracking is on (and its tracking account id, the one id the ActiveCampaign tag on a landing needs), which domains it accepts visits from, and whether event tracking is on. Example: baker activecampaign account\",\n rows: (data) => [data.summary],\n hints: ({ summary }) => {\n const hints: string[] = [];\n if (summary.siteTracking.enabled === false) {\n hints.push(\n \"Site tracking is off in ActiveCampaign, so it records no page visits for these contacts even with the tag on a page.\",\n );\n }\n if (summary.siteTracking.enabled && summary.siteTracking.domains.length === 0) {\n hints.push(\"Site tracking is on but no domain is allowed, so ActiveCampaign ignores visits from every site.\");\n }\n return hints;\n },\n});\n\nexport const listsCommand = readCommand<ActiveCampaignListsResponse>({\n read: \"lists\",\n description:\n \"Every list on the connected ActiveCampaign account with its id and how many active contacts it holds. Use the id or the name with `baker activecampaign contacts --list`. Example: baker activecampaign lists\",\n rows: (data) => data.lists,\n});\n\nexport const automationsCommand = readCommand<ActiveCampaignAutomationsResponse>({\n read: \"automations\",\n description:\n \"Every automation on the connected ActiveCampaign account: on or off, how many contacts entered and finished it, and what starts it (subscribe, tag added, …). Read it when auditing what happens to a lead after it arrives — an automation that is off looks connected and does nothing. Example: baker activecampaign automations --active-only\",\n args: {\n \"active-only\": { type: \"boolean\", description: \"Only automations that are on\", required: false, default: false },\n },\n body: (args) => (args[\"active-only\"] === true ? { activeOnly: true } : {}),\n rows: (data) => data.automations,\n hints: (data) =>\n data.automations.length === 0\n ? [\"This account has no automations, so nothing runs after a lead arrives unless someone acts on it by hand.\"]\n : [],\n});\n\nexport const pipelinesCommand = readCommand<ActiveCampaignPipelinesResponse>({\n read: \"pipelines\",\n description:\n \"Deal pipelines on the connected ActiveCampaign account with their stages in board order — the first stage is where a new deal lands. Ids and titles feed `baker activecampaign deals --pipeline/--stage`. Example: baker activecampaign pipelines\",\n rows: (data) => data.pipelines,\n hints: (data) =>\n data.pipelines.length === 0 ? [\"This account has no deal pipelines, so there are no deals to read.\"] : [],\n});\n\nexport const tagsCommand = readCommand<ActiveCampaignTagsResponse>({\n read: \"tags\",\n description:\n \"Tags on the connected ActiveCampaign account with how many contacts carry each. Use a name with `baker activecampaign contacts --tag`. Example: baker activecampaign tags --search withbaker-\",\n args: { search: { type: \"string\", description: \"Only tags whose name contains this text\", required: false } },\n body: (args) => (optionalString(args.search) ? { search: optionalString(args.search) } : {}),\n rows: (data) => data.tags,\n});\n\nexport const fieldsCommand = readCommand<ActiveCampaignCustomFieldsResponse>({\n read: \"fields\",\n description:\n \"The account's own custom contact fields: id, title, type, personalization tag, whether it is required, the choices a dropdown/radio/checkbox accepts (store the `value`), and which lists it shows on. Map a Form answer onto one with `baker flows map` (`custom.<id>` or the tag). Example: baker activecampaign fields\",\n rows: (data) => data.fields,\n});\n\nexport const usersCommand = readCommand<ActiveCampaignUsersResponse>({\n read: \"users\",\n description:\n \"The people with a login on the connected ActiveCampaign account — who can own a deal. Example: baker activecampaign users\",\n rows: (data) => data.users,\n});\n\nexport const campaignsCommand = readCommand<ActiveCampaignCampaignsResponse>({\n read: \"campaigns\",\n description:\n \"Email campaign reports from the connected ActiveCampaign account, most recently sent first: status, send date, sends, opens and unique opens, clicks and unique clicks, unsubscribes, hard and soft bounces, and the rates (open, click and unsubscribe rates are shares of sends; click-to-open is unique clicks over unique opens; 0-1, null before anything is sent). Start here for 'how are my emails doing'. Example: baker activecampaign campaigns --since 2026-09-01 --status completed\",\n args: {\n status: {\n type: \"string\",\n description: `Only campaigns in this state: ${ACTIVECAMPAIGN_CAMPAIGN_STATUSES.join(\"|\")}`,\n required: false,\n enum: [...ACTIVECAMPAIGN_CAMPAIGN_STATUSES],\n },\n since: { type: \"string\", description: \"Only campaigns sent on or after this day (YYYY-MM-DD)\", required: false },\n limit: LIMIT_ARG,\n },\n body: (args) => ({\n ...(optionalString(args.status) ? { status: optionalString(args.status) } : {}),\n ...(optionalString(args.since) ? { since: optionalString(args.since) } : {}),\n ...(parseLimit(args.limit) ? { limit: parseLimit(args.limit) } : {}),\n }),\n rows: (data) => data.campaigns,\n hints: (data) => {\n const hints: string[] = [];\n if (data.truncated) hints.push(\"More campaigns matched than were returned; raise --limit or narrow with --since.\");\n if (data.campaigns.length === 0) hints.push(\"No campaign matched — this account may not have sent any yet.\");\n if (data.campaigns.some((campaign) => campaign.automationId !== null)) {\n hints.push(\"Rows with an automationId are emails an automation sends; their counts grow as contacts enter it.\");\n }\n return hints;\n },\n});\n\nexport const contactsCommand = readCommand<ActiveCampaignContactsResponse>({\n read: \"contacts\",\n description:\n \"Contacts on the connected ActiveCampaign account, newest first: one by --email (was this lead received?) or by --id (the `contact.id` an ActiveCampaign event carries — a scheduled agent's payload never holds the email), each with its `tags` by name and its `activity` (events, page visits, campaign emails sent/opened/clicked, automation runs, list subscriptions — did the Form's event land? did it enter the automation?); everyone with a --tag or on a --list (id or exact name), or a --search; with no filter, the most recent. `total` counts every match, so `--limit 1` answers 'how many'. Rows are personal data: quote counts in a report, never names or emails. Example: baker activecampaign contacts --tag withbaker-/pricing --limit 5\",\n args: {\n id: { type: \"string\", description: \"The contact's ActiveCampaign id, e.g. an event's contact.id\", required: false },\n email: { type: \"string\", description: \"The contact's exact email\", required: false },\n tag: { type: \"string\", description: \"A tag id or exact name\", required: false },\n list: { type: \"string\", description: \"A list id or exact name\", required: false },\n search: { type: \"string\", description: \"Free text over name, email, phone and organisation\", required: false },\n limit: LIMIT_ARG,\n },\n body: (args) => ({\n ...Object.fromEntries(\n ([\"id\", \"email\", \"tag\", \"list\", \"search\"] as const).flatMap((key) =>\n optionalString(args[key]) ? [[key, optionalString(args[key])]] : [],\n ),\n ),\n ...(parseLimit(args.limit) ? { limit: parseLimit(args.limit) } : {}),\n }),\n rows: (data) => data.contacts,\n hints: (data, args) =>\n optionalString(args.email) && data.contacts.length === 0\n ? [\"No contact has that email: the lead never reached ActiveCampaign. That is a finding, not an error.\"]\n : optionalString(args.id) && data.contacts.length === 0\n ? [\"No contact has that id: it was deleted or merged in ActiveCampaign since the event.\"]\n : [],\n});\n\nexport const dealsCommand = readCommand<ActiveCampaignDealsResponse>({\n read: \"deals\",\n description:\n \"Deals on the connected ActiveCampaign account, newest first, narrowed by --pipeline / --stage (id or exact title, from `baker activecampaign pipelines`), --status open|won|lost and --owner (user id, username or email). Values are in the currency's major units; `totals` sums every matching deal per currency, not only the rows returned. Example: baker activecampaign deals --status won\",\n args: {\n pipeline: { type: \"string\", description: \"A pipeline id or exact title\", required: false },\n stage: { type: \"string\", description: \"A stage id or exact title\", required: false },\n status: {\n type: \"string\",\n description: `Only deals that are ${ACTIVECAMPAIGN_DEAL_STATUSES.join(\"|\")}`,\n required: false,\n enum: [...ACTIVECAMPAIGN_DEAL_STATUSES],\n },\n owner: { type: \"string\", description: \"A user id, username or email\", required: false },\n limit: LIMIT_ARG,\n },\n body: (args) => ({\n ...Object.fromEntries(\n ([\"pipeline\", \"stage\", \"status\", \"owner\"] as const).flatMap((key) =>\n optionalString(args[key]) ? [[key, optionalString(args[key])]] : [],\n ),\n ),\n ...(parseLimit(args.limit) ? { limit: parseLimit(args.limit) } : {}),\n }),\n rows: (data) => data.deals,\n});\n\n/** Every read, by its subcommand name. */\nexport const READ_COMMANDS = {\n account: accountCommand,\n lists: listsCommand,\n automations: automationsCommand,\n pipelines: pipelinesCommand,\n tags: tagsCommand,\n fields: fieldsCommand,\n users: usersCommand,\n campaigns: campaignsCommand,\n contacts: contactsCommand,\n deals: dealsCommand,\n};\n","/**\n * Agent-made ActiveCampaign changes: the contract the CLI and the backend share.\n *\n * `baker activecampaign stage <field|list|tag|pipeline>` never changes the\n * account. It stages one of these ops onto the Session's draft, and the draft\n * applies when the Session completes at Publish. Every op is a create that\n * finds first — a field by its personalization tag, a list, tag or pipeline by\n * its name — so applying it twice, or on an account that already has it, makes\n * nothing twice.\n */\nimport { z } from \"zod\";\n\nexport const ACTIVECAMPAIGN_WRITE_KINDS = [\"field\", \"list\", \"tag\", \"pipeline\"] as const;\nexport type ActiveCampaignWriteKind = (typeof ACTIVECAMPAIGN_WRITE_KINDS)[number];\n\n/** The custom-field types ActiveCampaign's API creates (`POST /fields`). */\nexport const ACTIVECAMPAIGN_STAGEABLE_FIELD_TYPES = [\n \"text\",\n \"textarea\",\n \"date\",\n \"datetime\",\n \"dropdown\",\n \"listbox\",\n \"radio\",\n \"checkbox\",\n \"hidden\",\n] as const;\nexport type ActiveCampaignStageableFieldType = (typeof ACTIVECAMPAIGN_STAGEABLE_FIELD_TYPES)[number];\n\n/** Types whose values are picked from options, which then have to be given. */\nconst OPTION_FIELD_TYPES: ReadonlySet<ActiveCampaignStageableFieldType> = new Set([\n \"dropdown\",\n \"listbox\",\n \"radio\",\n \"checkbox\",\n]);\n\nexport function activeCampaignFieldTakesOptions(type: ActiveCampaignStageableFieldType): boolean {\n return OPTION_FIELD_TYPES.has(type);\n}\n\n/**\n * The personalization tag ActiveCampaign gives a field created without one:\n * upper-cased, whitespace to `_`, anything else that is not a letter, digit or\n * `_` dropped (\"baker-e2e-D no perstag\" → `BAKERE2ED_NO_PERSTAG`, observed on a\n * real account). Deriving it the same way is what lets a re-run find the field.\n */\nexport function activeCampaignPerstag(title: string): string {\n return title\n .trim()\n .toUpperCase()\n .replace(/\\s+/g, \"_\")\n .replace(/[^A-Z0-9_]/g, \"\");\n}\n\nconst name = z.string().trim().min(1).max(255);\nconst description = z.string().trim().max(1000).optional();\n\nconst PERSTAG = /^[A-Z0-9_]+$/;\n\nexport const activeCampaignFieldOpSchema = z\n .object({\n kind: z.literal(\"field\"),\n title: name,\n type: z.enum(ACTIVECAMPAIGN_STAGEABLE_FIELD_TYPES).default(\"text\"),\n /** `UTM_SOURCE` — what Forms map onto (`custom.UTM_SOURCE`). Derived from the title when absent. */\n perstag: z\n .string()\n .trim()\n .transform((value) => value.replace(/^%|%$/g, \"\").toUpperCase())\n .pipe(z.string().min(1).max(100).regex(PERSTAG, \"perstag may only use letters, digits and _ (like UTM_SOURCE)\"))\n .optional(),\n options: z.array(name).max(200).optional(),\n description,\n })\n .superRefine((op, ctx) => {\n const takesOptions = activeCampaignFieldTakesOptions(op.type);\n if (takesOptions && (op.options ?? []).length === 0) {\n ctx.addIssue({ code: \"custom\", path: [\"options\"], message: `a ${op.type} field needs at least one option` });\n }\n if (!takesOptions && op.options !== undefined) {\n ctx.addIssue({ code: \"custom\", path: [\"options\"], message: `a ${op.type} field takes no options` });\n }\n if (op.perstag === undefined && activeCampaignPerstag(op.title) === \"\") {\n ctx.addIssue({\n code: \"custom\",\n path: [\"perstag\"],\n message: \"pass --perstag: the title has no letters or digits\",\n });\n }\n const values = (op.options ?? []).map((option) => option.toLowerCase());\n if (new Set(values).size !== values.length) {\n ctx.addIssue({ code: \"custom\", path: [\"options\"], message: \"options must not repeat\" });\n }\n });\n\nexport const activeCampaignListOpSchema = z.object({ kind: z.literal(\"list\"), name, description });\n\nexport const activeCampaignTagOpSchema = z.object({ kind: z.literal(\"tag\"), name, description });\n\nexport const activeCampaignPipelineOpSchema = z\n .object({\n kind: z.literal(\"pipeline\"),\n title: name,\n currency: z\n .string()\n .trim()\n .toLowerCase()\n .regex(/^[a-z]{3}$/, \"currency is a three-letter code like usd\")\n .default(\"usd\"),\n /** In order. A new pipeline gets exactly these; an existing one gains the ones it lacks. */\n stages: z.array(name).max(30).optional(),\n })\n .superRefine((op, ctx) => {\n const titles = (op.stages ?? []).map((stage) => stage.toLowerCase());\n if (new Set(titles).size !== titles.length) {\n ctx.addIssue({ code: \"custom\", path: [\"stages\"], message: \"stages must not repeat\" });\n }\n });\n\nexport const activeCampaignWriteOpSchema = z.discriminatedUnion(\"kind\", [\n activeCampaignFieldOpSchema,\n activeCampaignListOpSchema,\n activeCampaignTagOpSchema,\n activeCampaignPipelineOpSchema,\n]);\nexport type ActiveCampaignWriteOp = z.infer<typeof activeCampaignWriteOpSchema>;\nexport type ActiveCampaignFieldOp = Extract<ActiveCampaignWriteOp, { kind: \"field\" }>;\nexport type ActiveCampaignPipelineOp = Extract<ActiveCampaignWriteOp, { kind: \"pipeline\" }>;\n\n/** The name an op's thing is known by in ActiveCampaign. */\nexport function activeCampaignWriteName(op: ActiveCampaignWriteOp): string {\n return op.kind === \"field\" || op.kind === \"pipeline\" ? op.title : op.name;\n}\n\n/** A field's personalization tag: the given one, or the one its title derives. */\nexport function activeCampaignFieldPerstag(op: ActiveCampaignFieldOp): string {\n return op.perstag ?? activeCampaignPerstag(op.title);\n}\n\n/**\n * What makes two ops the same thing: a field is its personalization tag, the\n * rest their name (ActiveCampaign compares names without case). Staging the\n * same thing twice replaces the earlier op rather than creating it twice.\n */\nexport function activeCampaignWriteIdentity(op: ActiveCampaignWriteOp): string {\n if (op.kind === \"field\") {\n return `field:${activeCampaignFieldPerstag(op)}`;\n }\n return `${op.kind}:${activeCampaignWriteName(op).toLowerCase()}`;\n}\n\n/** One line a person reads in the review and the agent reads back. */\nexport function summarizeActiveCampaignWrite(op: ActiveCampaignWriteOp): string {\n switch (op.kind) {\n case \"field\": {\n const options = op.options && op.options.length > 0 ? `: ${op.options.join(\", \")}` : \"\";\n return `Add the contact field \"${op.title}\" (%${activeCampaignFieldPerstag(op)}%, ${op.type}${options})`;\n }\n case \"list\":\n return `Add the list \"${op.name}\"`;\n case \"tag\":\n return `Add the tag \"${op.name}\"`;\n default: {\n const stages = op.stages && op.stages.length > 0 ? ` with stages ${op.stages.join(\" → \")}` : \"\";\n return `Add the deal pipeline \"${op.title}\"${stages}`;\n }\n }\n}\n\n// --- Wire ------------------------------------------------------------------\n\nexport const activeCampaignDraftOpResultSchema = z.object({\n status: z.enum([\"applied\", \"failed\", \"skipped\"]),\n /** The id ActiveCampaign gave, or the one it already had. */\n id: z.string().optional(),\n /** True when the account already had it and nothing new was made. */\n reused: z.boolean().optional(),\n note: z.string().optional(),\n error: z.string().optional(),\n executedAt: z.number().optional(),\n});\nexport type ActiveCampaignDraftOpResult = z.infer<typeof activeCampaignDraftOpResultSchema>;\n\nexport const activeCampaignDraftStageRequestSchema = z.object({\n chatId: z.string().min(1),\n /** Connection id; optional when the company has exactly one ActiveCampaign account. */\n account: z.string().optional(),\n op: activeCampaignWriteOpSchema,\n});\nexport type ActiveCampaignDraftStageRequest = z.infer<typeof activeCampaignDraftStageRequestSchema>;\n\nexport const activeCampaignDraftStageResponseSchema = z.object({\n ref: z.string(),\n kind: z.enum(ACTIVECAMPAIGN_WRITE_KINDS),\n summary: z.string(),\n account: z.string(),\n /** True when this replaced an earlier staged op for the same thing. */\n replaced: z.boolean(),\n /** The account already has it: publishing reuses it (a field gains missing options). */\n alreadyInAccount: z.boolean(),\n /** A Form maps a staged field as `custom.<perstag>`. */\n mapAs: z.string().optional(),\n hints: z.array(z.string()).optional(),\n});\nexport type ActiveCampaignDraftStageResponse = z.infer<typeof activeCampaignDraftStageResponseSchema>;\n\nexport const activeCampaignDraftListRequestSchema = z.object({ chatId: z.string().min(1) });\nexport type ActiveCampaignDraftListRequest = z.infer<typeof activeCampaignDraftListRequestSchema>;\n\nexport const activeCampaignDraftOpViewSchema = z.object({\n ref: z.string(),\n kind: z.enum(ACTIVECAMPAIGN_WRITE_KINDS),\n name: z.string(),\n summary: z.string(),\n account: z.string(),\n stagedAt: z.number(),\n result: activeCampaignDraftOpResultSchema.optional(),\n});\n\nexport const activeCampaignDraftListResponseSchema = z.object({\n status: z.enum([\"none\", \"active\", \"publishing\", \"applied\", \"discarded\"]),\n count: z.number(),\n ops: z.array(activeCampaignDraftOpViewSchema),\n publishError: z.string().optional(),\n});\nexport type ActiveCampaignDraftListResponse = z.infer<typeof activeCampaignDraftListResponseSchema>;\n\nexport const activeCampaignDraftRemoveRequestSchema = z.object({\n chatId: z.string().min(1),\n /** A staged ref (`ac_field_1`) or the thing's name / perstag. */\n ref: z.string().min(1),\n});\nexport type ActiveCampaignDraftRemoveRequest = z.infer<typeof activeCampaignDraftRemoveRequestSchema>;\n\nexport const activeCampaignDraftRemoveResponseSchema = z.object({ removed: z.array(z.string()) });\nexport type ActiveCampaignDraftRemoveResponse = z.infer<typeof activeCampaignDraftRemoveResponseSchema>;\n\nexport const activeCampaignDraftClearRequestSchema = z.object({ chatId: z.string().min(1) });\nexport type ActiveCampaignDraftClearRequest = z.infer<typeof activeCampaignDraftClearRequestSchema>;\n\nexport const activeCampaignDraftClearResponseSchema = z.object({ cleared: z.number() });\nexport type ActiveCampaignDraftClearResponse = z.infer<typeof activeCampaignDraftClearResponseSchema>;\n","import {\n ACTIVECAMPAIGN_STAGEABLE_FIELD_TYPES,\n type ActiveCampaignDraftStageResponse,\n type ActiveCampaignWriteKind,\n} from \"@baker/api/activecampaign-writes\";\nimport { type ArgsDef, defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { requireChatId } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failActiveCampaign } from \"./refusal.ts\";\n\n/**\n * `baker activecampaign stage <field|list|tag|pipeline>`: stage a change to the\n * connected ActiveCampaign account onto this chat. Nothing changes in\n * ActiveCampaign until the chat is published.\n */\n\ntype ArgValues = Record<string, unknown>;\ntype StagedOpInput = Record<string, unknown> & { kind: ActiveCampaignWriteKind };\n\n/** The five campaign parameters a Form usually carries into a lead (`--utm`). */\nconst UTM_FIELDS = [\n [\"UTM_SOURCE\", \"UTM source\"],\n [\"UTM_MEDIUM\", \"UTM medium\"],\n [\"UTM_CAMPAIGN\", \"UTM campaign\"],\n [\"UTM_CONTENT\", \"UTM content\"],\n [\"UTM_TERM\", \"UTM term\"],\n] as const;\n\nfunction text(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() !== \"\" ? value.trim() : undefined;\n}\n\n/** `\"a, b ,c\"` → `[\"a\", \"b\", \"c\"]`. A comma list, because citty keeps only a repeated flag's last value. */\nfunction commaList(value: unknown): string[] | undefined {\n const raw = text(value);\n return raw === undefined\n ? undefined\n : raw\n .split(\",\")\n .map((part) => part.trim())\n .filter((part) => part !== \"\");\n}\n\nfunction defined(entries: Record<string, unknown>): Record<string, unknown> {\n return Object.fromEntries(Object.entries(entries).filter(([, value]) => value !== undefined));\n}\n\n/** The op(s) one `stage` call sends — several only for `field --utm`. The backend validates them. */\nexport function stageOpsFromArgs(kind: ActiveCampaignWriteKind, args: ArgValues): StagedOpInput[] {\n switch (kind) {\n case \"field\":\n if (args.utm === true) {\n return UTM_FIELDS.map(([perstag, title]) => ({ kind, title, type: \"text\", perstag }));\n }\n return [\n {\n kind,\n ...defined({\n title: text(args.title),\n type: text(args.type),\n perstag: text(args.perstag),\n options: commaList(args.options),\n description: text(args.description),\n }),\n },\n ];\n case \"list\":\n case \"tag\":\n return [{ kind, ...defined({ name: text(args.name), description: text(args.description) }) }];\n default:\n return [\n {\n kind,\n ...defined({ title: text(args.title), currency: text(args.currency), stages: commaList(args.stages) }),\n },\n ];\n }\n}\n\nconst STAGED_HINT =\n \"Staged only — nothing has changed in ActiveCampaign yet. It is created when the user publishes this chat (an existing one with the same name is reused, never duplicated). Say it is ready and gets created on Publish — not that it exists already.\";\n\nasync function stage(kind: ActiveCampaignWriteKind, args: ArgValues): Promise<void> {\n const chatId = requireChatId();\n const account = text(args.account);\n try {\n const staged: ActiveCampaignDraftStageResponse[] = [];\n for (const op of stageOpsFromArgs(kind, args)) {\n staged.push(\n await apiPost<ActiveCampaignDraftStageResponse>(\"/api/activecampaign/draft/stage\", {\n chatId,\n ...(account ? { account } : {}),\n op,\n }),\n );\n }\n const hints = [...new Set(staged.flatMap((entry) => entry.hints ?? []))];\n const mapAs = staged.flatMap((entry) => (entry.mapAs ? [entry.mapAs] : []));\n if (mapAs.length > 0) {\n hints.push(\n `Map a Form answer onto it with \\`baker flows map\\` as ${mapAs.map((key) => `\\`${key}\\``).join(\", \")} — the field is found by its perstag when a lead arrives, so the mapping works before and after Publish creates it.`,\n );\n }\n if (staged.some((entry) => entry.alreadyInAccount)) {\n hints.push(\"The account already has at least one of these: Publish reuses it rather than creating a copy.\");\n }\n const data = staged.map(({ hints: _hints, ...entry }) => entry);\n writeJson({ ok: true, data: data.length === 1 ? data[0] : data, hints: [STAGED_HINT, ...hints] });\n } catch (err) {\n failActiveCampaign(err);\n }\n}\n\nconst ACCOUNT_ARG = {\n type: \"string\",\n description: \"Which ActiveCampaign connection, when the company has more than one (the id the error lists)\",\n required: false,\n} as const;\n\nconst FIELD_ARGS = {\n title: { type: \"string\", description: 'Field name as people see it, e.g. \"UTM source\"', required: false },\n type: {\n type: \"string\",\n description: `${ACTIVECAMPAIGN_STAGEABLE_FIELD_TYPES.join(\"|\")} (default text)`,\n required: false,\n },\n perstag: {\n type: \"string\",\n description:\n \"Personalization tag, e.g. UTM_SOURCE — what Forms map onto (custom.UTM_SOURCE). Default: from the title\",\n required: false,\n },\n options: {\n type: \"string\",\n description: 'Comma-separated choices for dropdown|listbox|radio|checkbox, e.g. \"Basic,Pro\"',\n required: false,\n },\n description: { type: \"string\", description: \"Help text shown with the field\", required: false },\n utm: {\n type: \"boolean\",\n description: \"Stage the five UTM text fields at once: UTM_SOURCE, UTM_MEDIUM, UTM_CAMPAIGN, UTM_CONTENT, UTM_TERM\",\n required: false,\n },\n account: ACCOUNT_ARG,\n} as const satisfies ArgsDef;\n\nconst NAMED_ARGS = {\n name: { type: \"string\", description: \"Its name in ActiveCampaign\", required: false },\n description: { type: \"string\", description: \"Optional description\", required: false },\n account: ACCOUNT_ARG,\n} as const satisfies ArgsDef;\n\nconst PIPELINE_ARGS = {\n title: { type: \"string\", description: 'Pipeline name, e.g. \"Inbound leads\"', required: false },\n stages: {\n type: \"string\",\n description:\n 'Comma-separated stages in order, e.g. \"New lead,Qualified,Proposal,Won\". A new pipeline gets exactly these; an existing one only gains the missing ones',\n required: false,\n },\n currency: { type: \"string\", description: \"Deal currency, three letters (default usd)\", required: false },\n account: ACCOUNT_ARG,\n} as const satisfies ArgsDef;\n\nconst DESCRIPTIONS: Record<ActiveCampaignWriteKind, string> = {\n field:\n 'Stage a custom contact field (applied at Publish, on every list). Start here for UTMs: `stage field --utm`, then map `custom.UTM_SOURCE=tracking:utm_source` etc. with `baker flows map`. One field: `stage field --title \"Plan\" --type dropdown --options \"Basic,Pro\"`.',\n list: 'Stage a contact list, e.g. `stage list --name \"Webinar sign-ups\"` (applied at Publish; an existing list of that name is reused).',\n tag: 'Stage a contact tag, e.g. `stage tag --name \"hot-lead\"` (applied at Publish; reused when it exists). A Form can also create tags on its own when it tags a lead.',\n pipeline:\n 'Stage a deal pipeline with its stages, e.g. `stage pipeline --title \"Inbound\" --stages \"New lead,Qualified,Won\"` (applied at Publish; an existing pipeline only gains missing stages).',\n};\n\nfunction schemaArgs(args: ArgsDef): Record<string, { type: string; description: string; required: boolean }> {\n return Object.fromEntries(\n Object.entries(args).map(([name, arg]) => [\n name,\n { type: arg.type ?? \"string\", description: arg.description ?? \"\", required: arg.required === true },\n ]),\n );\n}\n\nfunction stageCommand(kind: ActiveCampaignWriteKind, args: ArgsDef) {\n registerSchema({ command: `activecampaign.stage.${kind}`, description: DESCRIPTIONS[kind], args: schemaArgs(args) });\n return defineCommand({\n meta: { name: kind, description: DESCRIPTIONS[kind] },\n args,\n run: async ({ args: values }) => {\n await stage(kind, values as ArgValues);\n },\n });\n}\n\nexport const stageCommandGroup = defineCommand({\n meta: {\n name: \"stage\",\n description:\n \"Stage an ActiveCampaign change on this chat — a custom field, list, tag or deal pipeline. Nothing changes in ActiveCampaign until the chat is published; restaging the same name replaces the staged one. Review with `baker activecampaign drafts`, drop with `baker activecampaign unstage`.\",\n },\n subCommands: {\n field: stageCommand(\"field\", FIELD_ARGS),\n list: stageCommand(\"list\", NAMED_ARGS),\n tag: stageCommand(\"tag\", NAMED_ARGS),\n pipeline: stageCommand(\"pipeline\", PIPELINE_ARGS),\n },\n});\n","import type {\n ActiveCampaignDraftClearResponse,\n ActiveCampaignDraftRemoveResponse,\n} from \"@baker/api/activecampaign-writes\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { requireChatId } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failActiveCampaign } from \"./refusal.ts\";\n\nconst DESCRIPTION =\n 'Drop a staged ActiveCampaign change from this chat before it is published: `unstage ac_field_1`, `unstage UTM_SOURCE` (a field\\'s perstag) or `unstage \"Webinar sign-ups\"` (a name). `--all` drops every staged ActiveCampaign change. Nothing in ActiveCampaign is touched.';\n\nregisterSchema({\n command: \"activecampaign.unstage\",\n description: DESCRIPTION,\n args: {\n ref: { type: \"positional\", description: \"Staged ref, name, or a field's perstag\", required: false },\n all: { type: \"boolean\", description: \"Drop every staged ActiveCampaign change on this chat\", required: false },\n },\n});\n\nexport const unstageCommand = defineCommand({\n meta: { name: \"unstage\", description: DESCRIPTION },\n args: {\n ref: { type: \"positional\", description: \"Staged ref, name, or a field's perstag\", required: false },\n all: { type: \"boolean\", description: \"Drop every staged ActiveCampaign change on this chat\", required: false },\n },\n run: async ({ args }) => {\n const chatId = requireChatId();\n try {\n if (args.all === true) {\n const data = await apiPost<ActiveCampaignDraftClearResponse>(\"/api/activecampaign/draft/clear\", { chatId });\n writeJson({ ok: true, data });\n return;\n }\n const ref = typeof args.ref === \"string\" ? args.ref.trim() : \"\";\n if (!ref) {\n writeJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: \"pass the staged ref, name or perstag to drop, or --all\" },\n });\n process.exit(1);\n }\n const data = await apiPost<ActiveCampaignDraftRemoveResponse>(\"/api/activecampaign/draft/remove\", {\n chatId,\n ref,\n });\n writeJson({\n ok: true,\n data,\n ...(data.removed.length === 0\n ? { hints: [`Nothing staged matches \"${ref}\". Run \\`baker activecampaign drafts\\` to see the refs.`] }\n : {}),\n });\n } catch (err) {\n failActiveCampaign(err);\n }\n },\n});\n"],"mappings":"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","names":["defineCommand","defineCommand","limit","defineCommand","z","stage","z","defineCommand","raw","name","defineCommand","defineCommand","DESCRIPTION","defineCommand","data","defineCommand"]}
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
clearableArg,
|
|
3
|
-
compact,
|
|
4
|
-
failWriteValidation,
|
|
5
|
-
lowerArg,
|
|
6
|
-
microsFromArg,
|
|
7
|
-
productFiltersArg,
|
|
8
|
-
requireTarget,
|
|
9
|
-
schemaArgs,
|
|
10
|
-
stageChatgptOp,
|
|
11
|
-
statusCommand
|
|
12
|
-
} from "./chunk-5XTGG4PV.js";
|
|
13
|
-
import {
|
|
14
|
-
CHATGPT_ADS_REFERENCE
|
|
15
|
-
} from "./chunk-M7HD42M6.js";
|
|
16
|
-
import "./chunk-ZRP7Y2DM.js";
|
|
17
|
-
import "./chunk-X7VQFLHI.js";
|
|
18
|
-
import "./chunk-LU4HI4KI.js";
|
|
19
|
-
import "./chunk-LGK7UWBN.js";
|
|
20
|
-
import {
|
|
21
|
-
registerSchema
|
|
22
|
-
} from "./chunk-Q7US4OOA.js";
|
|
23
|
-
import "./chunk-YQSBHWOI.js";
|
|
24
|
-
|
|
25
|
-
// src/commands/ads/chatgpt/ad-group-writes.ts
|
|
26
|
-
import { defineCommand } from "citty";
|
|
27
|
-
var REFERENCE = CHATGPT_ADS_REFERENCE.adGroups;
|
|
28
|
-
var SHARED_ARGS = {
|
|
29
|
-
name: { type: "string", description: "Ad group name (3+ characters)" },
|
|
30
|
-
description: { type: "string", description: "Internal description" },
|
|
31
|
-
"context-hints": {
|
|
32
|
-
type: "string",
|
|
33
|
-
description: "When the ad would be useful, short phrases separated by commas \u2014 or by | when a phrase has a comma. ChatGPT's counterpart to keywords, written in the language of the campaign's countries, as people ask ChatGPT. On update it replaces the whole list; none clears it"
|
|
34
|
-
},
|
|
35
|
-
"bid-strategy": {
|
|
36
|
-
type: "string",
|
|
37
|
-
description: "fixed_bid (default, needs --max-bid) | maximize_clicks | maximize_conversions"
|
|
38
|
-
},
|
|
39
|
-
"max-bid": { type: "string", description: "Bid in account currency, e.g. 2.50 \u2014 fixed_bid only" },
|
|
40
|
-
"tracking-template": {
|
|
41
|
-
type: "string",
|
|
42
|
-
description: "Query string added to this ad group's landing pages, e.g. ad_group_id={ad_group_id} \u2014 none clears"
|
|
43
|
-
},
|
|
44
|
-
"audience-bids": {
|
|
45
|
-
type: "string",
|
|
46
|
-
description: "Raise or lower the fixed bid for people in an audience: audience=multiplier pairs, 0.1 to 10, e.g. caud_123=1.5,caud_456=0.8. Audiences of ~25,000 people only; not in the EEA or Switzerland. On update it replaces them; none clears"
|
|
47
|
-
},
|
|
48
|
-
"product-filters": {
|
|
49
|
-
type: "string",
|
|
50
|
-
description: "Catalog campaigns only: which products it shows \u2014 e.g. brand in Acme; price lte 5000 (preview with `catalogs products`). On update it replaces the set; none shows the whole catalog"
|
|
51
|
-
},
|
|
52
|
-
status: { type: "string", description: "paused (default) | active" }
|
|
53
|
-
};
|
|
54
|
-
var CREATE_ARGS = {
|
|
55
|
-
...SHARED_ARGS,
|
|
56
|
-
"campaign-id": { type: "string", description: "cmpn_\u2026 or a staged chatgpt_temp_ ref", required: true },
|
|
57
|
-
name: { type: "string", description: "Ad group name (3+ characters)", required: true }
|
|
58
|
-
};
|
|
59
|
-
var UPDATE_ARGS = {
|
|
60
|
-
id: { type: "positional", description: "Ad group id (adgrp_\u2026) or a staged chatgpt_temp_ ref", required: true },
|
|
61
|
-
...SHARED_ARGS
|
|
62
|
-
};
|
|
63
|
-
function contextHintsArg(value) {
|
|
64
|
-
if (typeof value !== "string" || value.trim() === "") {
|
|
65
|
-
return void 0;
|
|
66
|
-
}
|
|
67
|
-
if (value.trim().toLowerCase() === "none") {
|
|
68
|
-
return [];
|
|
69
|
-
}
|
|
70
|
-
const separator = value.includes("|") ? "|" : ",";
|
|
71
|
-
return value.split(separator).map((hint) => hint.trim()).filter(Boolean);
|
|
72
|
-
}
|
|
73
|
-
function audienceBidsArg(value) {
|
|
74
|
-
if (typeof value !== "string" || value.trim() === "") {
|
|
75
|
-
return void 0;
|
|
76
|
-
}
|
|
77
|
-
if (value.trim().toLowerCase() === "none") {
|
|
78
|
-
return [];
|
|
79
|
-
}
|
|
80
|
-
return value.split(",").map((pair) => pair.trim()).filter(Boolean).map((pair) => {
|
|
81
|
-
const [audienceId = "", multiplier = ""] = pair.split("=").map((part) => part.trim());
|
|
82
|
-
const times = Number(multiplier.replace(",", "."));
|
|
83
|
-
if (!audienceId || !Number.isFinite(times)) {
|
|
84
|
-
failWriteValidation(`"${pair}" is not an audience bid \u2014 write audience=multiplier, e.g. caud_123=1.5`);
|
|
85
|
-
}
|
|
86
|
-
return { audienceId, multiplierMicros: Math.round(times * 1e6) };
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
function productSetArg(value) {
|
|
90
|
-
const filters = productFiltersArg(value);
|
|
91
|
-
return filters === void 0 ? void 0 : { filters };
|
|
92
|
-
}
|
|
93
|
-
function sharedPayload(args) {
|
|
94
|
-
return {
|
|
95
|
-
name: args.name,
|
|
96
|
-
description: args.description,
|
|
97
|
-
contextHints: contextHintsArg(args["context-hints"]),
|
|
98
|
-
bidStrategy: lowerArg(args["bid-strategy"]),
|
|
99
|
-
maxBidMicros: microsFromArg(args["max-bid"], "--max-bid"),
|
|
100
|
-
trackingTemplate: clearableArg(args["tracking-template"]),
|
|
101
|
-
productSet: productSetArg(args["product-filters"]),
|
|
102
|
-
audienceBidMultipliers: audienceBidsArg(args["audience-bids"]),
|
|
103
|
-
status: lowerArg(args.status)
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
function adGroupCreateOp(args) {
|
|
107
|
-
return { kind: "adGroup.create", payload: compact({ ...sharedPayload(args), campaignId: args["campaign-id"] }) };
|
|
108
|
-
}
|
|
109
|
-
registerSchema({
|
|
110
|
-
command: "ads.chatgpt.ad-groups.create",
|
|
111
|
-
description: "Stage a new ad group under a live campaign (cmpn_\u2026) or one staged in this chat (its chatgpt_temp_ ref). Context hints decide where the ad shows; a fixed bid needs --max-bid.",
|
|
112
|
-
args: schemaArgs(CREATE_ARGS)
|
|
113
|
-
});
|
|
114
|
-
var adGroupsCreateCommand = defineCommand({
|
|
115
|
-
meta: {
|
|
116
|
-
name: "create",
|
|
117
|
-
description: `Stage a new ad group (applies when the chat is published).
|
|
118
|
-
|
|
119
|
-
Examples:
|
|
120
|
-
baker ads chatgpt ad-groups create --campaign-id cmpn_123 --name "Rooftop owners" --context-hints "solar panels for my house,cut my electricity bill" --max-bid 2.50
|
|
121
|
-
baker ads chatgpt ad-groups create --campaign-id chatgpt_temp_ab12 --name "Auto" --bid-strategy maximize_clicks`
|
|
122
|
-
},
|
|
123
|
-
args: CREATE_ARGS,
|
|
124
|
-
run: async ({ args }) => {
|
|
125
|
-
await stageChatgptOp(adGroupCreateOp(args), REFERENCE, (staged) => [
|
|
126
|
-
adGroupNextHint(staged.ref, args["product-filters"] !== void 0)
|
|
127
|
-
]);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
registerSchema({
|
|
131
|
-
command: "ads.chatgpt.ad-groups.update",
|
|
132
|
-
description: "Stage a change to an ad group \u2014 name, context hints, bid or status. --context-hints replaces the whole list: read the ad group first and pass every hint to keep.",
|
|
133
|
-
args: schemaArgs(UPDATE_ARGS)
|
|
134
|
-
});
|
|
135
|
-
var adGroupsUpdateCommand = defineCommand({
|
|
136
|
-
meta: {
|
|
137
|
-
name: "update",
|
|
138
|
-
description: `Stage a change to an ad group. --context-hints replaces the whole list.
|
|
139
|
-
|
|
140
|
-
Examples:
|
|
141
|
-
baker ads chatgpt ad-groups update adgrp_123 --max-bid 3
|
|
142
|
-
baker ads chatgpt ad-groups update adgrp_123 --context-hints "solar panels,home battery,cut my electricity bill"`
|
|
143
|
-
},
|
|
144
|
-
args: UPDATE_ARGS,
|
|
145
|
-
run: async ({ args }) => {
|
|
146
|
-
await stageChatgptOp(
|
|
147
|
-
{ kind: "adGroup.update", target: requireTarget(args, "id"), payload: compact(sharedPayload(args)) },
|
|
148
|
-
REFERENCE
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
var adGroupsPauseCommand = statusCommand("adGroup", "pause", REFERENCE);
|
|
153
|
-
var adGroupsResumeCommand = statusCommand("adGroup", "resume", REFERENCE);
|
|
154
|
-
var adGroupsArchiveCommand = statusCommand("adGroup", "archive", REFERENCE);
|
|
155
|
-
function adGroupNextHint(ref, productFilters) {
|
|
156
|
-
const productAd = `baker ads chatgpt ads create-product --ad-group-id ${ref} --name "\u2026"`;
|
|
157
|
-
return productFilters ? `Next, give it its product ad: ${productAd}` : `Next, give it a card: baker ads chatgpt ads create --ad-group-id ${ref} --name "\u2026" --title "\u2026" --body "\u2026" --target-url https://\u2026 --image-url https://\u2026 \u2014 under a catalog campaign, its product ad instead: ${productAd}`;
|
|
158
|
-
}
|
|
159
|
-
export {
|
|
160
|
-
adGroupCreateOp,
|
|
161
|
-
adGroupNextHint,
|
|
162
|
-
adGroupsArchiveCommand,
|
|
163
|
-
adGroupsCreateCommand,
|
|
164
|
-
adGroupsPauseCommand,
|
|
165
|
-
adGroupsResumeCommand,
|
|
166
|
-
adGroupsUpdateCommand,
|
|
167
|
-
audienceBidsArg,
|
|
168
|
-
contextHintsArg
|
|
169
|
-
};
|
|
170
|
-
//# sourceMappingURL=ad-group-writes-HLBWN4E4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/ads/chatgpt/ad-group-writes.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { CHATGPT_ADS_REFERENCE } from \"./shared.ts\";\nimport {\n clearableArg,\n compact,\n failWriteValidation,\n lowerArg,\n microsFromArg,\n productFiltersArg,\n requireTarget,\n schemaArgs,\n stageChatgptOp,\n statusCommand,\n} from \"./write-shared.ts\";\n\n/**\n * Staged ad group writes. The billing event follows the campaign's objective and\n * is filled in by the backend; an update's bidding is completed from the live\n * ad group, so passing only --max-bid keeps the strategy.\n */\n\nconst REFERENCE = CHATGPT_ADS_REFERENCE.adGroups;\n\nconst SHARED_ARGS = {\n name: { type: \"string\", description: \"Ad group name (3+ characters)\" },\n description: { type: \"string\", description: \"Internal description\" },\n \"context-hints\": {\n type: \"string\",\n description:\n \"When the ad would be useful, short phrases separated by commas — or by | when a phrase has a comma. ChatGPT's counterpart to keywords, written in the language of the campaign's countries, as people ask ChatGPT. On update it replaces the whole list; none clears it\",\n },\n \"bid-strategy\": {\n type: \"string\",\n description: \"fixed_bid (default, needs --max-bid) | maximize_clicks | maximize_conversions\",\n },\n \"max-bid\": { type: \"string\", description: \"Bid in account currency, e.g. 2.50 — fixed_bid only\" },\n \"tracking-template\": {\n type: \"string\",\n description: \"Query string added to this ad group's landing pages, e.g. ad_group_id={ad_group_id} — none clears\",\n },\n \"audience-bids\": {\n type: \"string\",\n description:\n \"Raise or lower the fixed bid for people in an audience: audience=multiplier pairs, 0.1 to 10, e.g. caud_123=1.5,caud_456=0.8. Audiences of ~25,000 people only; not in the EEA or Switzerland. On update it replaces them; none clears\",\n },\n \"product-filters\": {\n type: \"string\",\n description:\n \"Catalog campaigns only: which products it shows — e.g. brand in Acme; price lte 5000 (preview with `catalogs products`). On update it replaces the set; none shows the whole catalog\",\n },\n status: { type: \"string\", description: \"paused (default) | active\" },\n} as const;\n\nconst CREATE_ARGS = {\n ...SHARED_ARGS,\n \"campaign-id\": { type: \"string\", description: \"cmpn_… or a staged chatgpt_temp_ ref\", required: true },\n name: { type: \"string\", description: \"Ad group name (3+ characters)\", required: true },\n} as const;\n\nconst UPDATE_ARGS = {\n id: { type: \"positional\", description: \"Ad group id (adgrp_…) or a staged chatgpt_temp_ ref\", required: true },\n ...SHARED_ARGS,\n} as const;\n\ntype Args = Record<string, unknown>;\n\n/**\n * Hints are plain phrases, which carry commas — so `|` splits them when it is\n * there, commas otherwise. `none` clears the list, which ChatGPT Ads takes as\n * an empty one.\n */\nexport function contextHintsArg(value: unknown): string[] | undefined {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n return undefined;\n }\n if (value.trim().toLowerCase() === \"none\") {\n return [];\n }\n const separator = value.includes(\"|\") ? \"|\" : \",\";\n return value\n .split(separator)\n .map((hint) => hint.trim())\n .filter(Boolean);\n}\n\n/** `caud_1=1.5,caud_2=0.8` as micros; `none` clears the adjustments. */\nexport function audienceBidsArg(value: unknown): Array<{ audienceId: string; multiplierMicros: number }> | undefined {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n return undefined;\n }\n if (value.trim().toLowerCase() === \"none\") {\n return [];\n }\n return value\n .split(\",\")\n .map((pair) => pair.trim())\n .filter(Boolean)\n .map((pair) => {\n const [audienceId = \"\", multiplier = \"\"] = pair.split(\"=\").map((part) => part.trim());\n const times = Number(multiplier.replace(\",\", \".\"));\n if (!audienceId || !Number.isFinite(times)) {\n failWriteValidation(`\"${pair}\" is not an audience bid — write audience=multiplier, e.g. caud_123=1.5`);\n }\n return { audienceId, multiplierMicros: Math.round(times * 1_000_000) };\n });\n}\n\nfunction productSetArg(value: unknown) {\n const filters = productFiltersArg(value);\n return filters === undefined ? undefined : { filters };\n}\n\nfunction sharedPayload(args: Args): Record<string, unknown> {\n return {\n name: args.name,\n description: args.description,\n contextHints: contextHintsArg(args[\"context-hints\"]),\n bidStrategy: lowerArg(args[\"bid-strategy\"]),\n maxBidMicros: microsFromArg(args[\"max-bid\"], \"--max-bid\"),\n trackingTemplate: clearableArg(args[\"tracking-template\"]),\n productSet: productSetArg(args[\"product-filters\"]),\n audienceBidMultipliers: audienceBidsArg(args[\"audience-bids\"]),\n status: lowerArg(args.status),\n };\n}\n\nexport function adGroupCreateOp(args: Args): Record<string, unknown> {\n return { kind: \"adGroup.create\", payload: compact({ ...sharedPayload(args), campaignId: args[\"campaign-id\"] }) };\n}\n\nregisterSchema({\n command: \"ads.chatgpt.ad-groups.create\",\n description:\n \"Stage a new ad group under a live campaign (cmpn_…) or one staged in this chat (its chatgpt_temp_ ref). Context hints decide where the ad shows; a fixed bid needs --max-bid.\",\n args: schemaArgs(CREATE_ARGS),\n});\n\nexport const adGroupsCreateCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Stage a new ad group (applies when the chat is published).\n\nExamples:\n baker ads chatgpt ad-groups create --campaign-id cmpn_123 --name \"Rooftop owners\" --context-hints \"solar panels for my house,cut my electricity bill\" --max-bid 2.50\n baker ads chatgpt ad-groups create --campaign-id chatgpt_temp_ab12 --name \"Auto\" --bid-strategy maximize_clicks`,\n },\n args: CREATE_ARGS,\n run: async ({ args }) => {\n await stageChatgptOp(adGroupCreateOp(args), REFERENCE, (staged) => [\n adGroupNextHint(staged.ref, args[\"product-filters\"] !== undefined),\n ]);\n },\n});\n\nregisterSchema({\n command: \"ads.chatgpt.ad-groups.update\",\n description:\n \"Stage a change to an ad group — name, context hints, bid or status. --context-hints replaces the whole list: read the ad group first and pass every hint to keep.\",\n args: schemaArgs(UPDATE_ARGS),\n});\n\nexport const adGroupsUpdateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Stage a change to an ad group. --context-hints replaces the whole list.\n\nExamples:\n baker ads chatgpt ad-groups update adgrp_123 --max-bid 3\n baker ads chatgpt ad-groups update adgrp_123 --context-hints \"solar panels,home battery,cut my electricity bill\"`,\n },\n args: UPDATE_ARGS,\n run: async ({ args }) => {\n await stageChatgptOp(\n { kind: \"adGroup.update\", target: requireTarget(args, \"id\"), payload: compact(sharedPayload(args)) },\n REFERENCE,\n );\n },\n});\n\nexport const adGroupsPauseCommand = statusCommand(\"adGroup\", \"pause\", REFERENCE);\nexport const adGroupsResumeCommand = statusCommand(\"adGroup\", \"resume\", REFERENCE);\nexport const adGroupsArchiveCommand = statusCommand(\"adGroup\", \"archive\", REFERENCE);\n\n/** What an ad group needs next: a card, or — under a catalog campaign — its one product ad. */\nexport function adGroupNextHint(ref: string, productFilters: boolean): string {\n const productAd = `baker ads chatgpt ads create-product --ad-group-id ${ref} --name \"…\"`;\n return productFilters\n ? `Next, give it its product ad: ${productAd}`\n : `Next, give it a card: baker ads chatgpt ads create --ad-group-id ${ref} --name \"…\" --title \"…\" --body \"…\" --target-url https://… --image-url https://… — under a catalog campaign, its product ad instead: ${productAd}`;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CHATGPT_ADS_REFERENCE,
|
|
3
|
-
runChatgptListRead
|
|
4
|
-
} from "./chunk-M7HD42M6.js";
|
|
5
|
-
import "./chunk-ZRP7Y2DM.js";
|
|
6
|
-
import "./chunk-X7VQFLHI.js";
|
|
7
|
-
import "./chunk-LU4HI4KI.js";
|
|
8
|
-
import "./chunk-LGK7UWBN.js";
|
|
9
|
-
import {
|
|
10
|
-
registerSchema
|
|
11
|
-
} from "./chunk-Q7US4OOA.js";
|
|
12
|
-
import "./chunk-YQSBHWOI.js";
|
|
13
|
-
|
|
14
|
-
// src/commands/ads/chatgpt/ad-groups.ts
|
|
15
|
-
import { defineCommand } from "citty";
|
|
16
|
-
var args = {
|
|
17
|
-
"campaign-id": { type: "string", description: "Only this campaign's ad groups (cmpn_\u2026)", required: false },
|
|
18
|
-
full: { type: "boolean", description: "Return ChatGPT Ads' own ad group objects", required: false }
|
|
19
|
-
};
|
|
20
|
-
registerSchema({
|
|
21
|
-
command: "ads.chatgpt.ad-groups",
|
|
22
|
-
description: "Ad groups in the connected ChatGPT Ads account, or in one campaign: bid strategy, billing event, max bid (currency units), context hints (when the ad should show \u2014 ChatGPT's counterpart to keywords) and serving issues.",
|
|
23
|
-
args
|
|
24
|
-
});
|
|
25
|
-
var adGroupsListCommand = defineCommand({
|
|
26
|
-
meta: {
|
|
27
|
-
name: "list",
|
|
28
|
-
description: "ChatGPT Ads ad groups. Example: baker ads chatgpt ad-groups --campaign-id cmpn_123"
|
|
29
|
-
},
|
|
30
|
-
args,
|
|
31
|
-
run: async ({ args: input }) => {
|
|
32
|
-
const params = {};
|
|
33
|
-
if (input["campaign-id"]) {
|
|
34
|
-
params["campaign-id"] = input["campaign-id"];
|
|
35
|
-
}
|
|
36
|
-
if (input.full) {
|
|
37
|
-
params.full = "true";
|
|
38
|
-
}
|
|
39
|
-
await runChatgptListRead(CHATGPT_ADS_REFERENCE.adGroups, "/api/ads/chatgpt/ad-groups", params);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
var adGroupsCommand = defineCommand({
|
|
43
|
-
meta: {
|
|
44
|
-
name: "ad-groups",
|
|
45
|
-
description: `ChatGPT Ads ad groups: how each one bids and the context hints that decide where it shows \u2014 or stage a change that applies when the chat is published.
|
|
46
|
-
|
|
47
|
-
Examples:
|
|
48
|
-
baker ads chatgpt ad-groups --campaign-id cmpn_123
|
|
49
|
-
baker ads chatgpt ad-groups create --campaign-id cmpn_123 --name "Rooftop owners" --context-hints "solar panels for my house" --max-bid 2.50
|
|
50
|
-
baker ads chatgpt ad-groups update adgrp_123 --max-bid 3
|
|
51
|
-
baker ads chatgpt ad-groups pause adgrp_123`
|
|
52
|
-
},
|
|
53
|
-
subCommands: {
|
|
54
|
-
list: adGroupsListCommand,
|
|
55
|
-
create: () => import("./ad-group-writes-HLBWN4E4.js").then((m) => m.adGroupsCreateCommand),
|
|
56
|
-
update: () => import("./ad-group-writes-HLBWN4E4.js").then((m) => m.adGroupsUpdateCommand),
|
|
57
|
-
pause: () => import("./ad-group-writes-HLBWN4E4.js").then((m) => m.adGroupsPauseCommand),
|
|
58
|
-
resume: () => import("./ad-group-writes-HLBWN4E4.js").then((m) => m.adGroupsResumeCommand),
|
|
59
|
-
archive: () => import("./ad-group-writes-HLBWN4E4.js").then((m) => m.adGroupsArchiveCommand)
|
|
60
|
-
},
|
|
61
|
-
// A parent must never declare `run`: citty falls through to it after the matched subcommand.
|
|
62
|
-
args,
|
|
63
|
-
default: "list"
|
|
64
|
-
});
|
|
65
|
-
export {
|
|
66
|
-
adGroupsCommand
|
|
67
|
-
};
|
|
68
|
-
//# sourceMappingURL=ad-groups-33NZD6J3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/ads/chatgpt/ad-groups.ts"],"sourcesContent":["import type { ChatgptAdsAdGroup } from \"@baker/api/ads-chatgpt\";\nimport { defineCommand } from \"citty\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { CHATGPT_ADS_REFERENCE, runChatgptListRead } from \"./shared.ts\";\n\nconst args = {\n \"campaign-id\": { type: \"string\", description: \"Only this campaign's ad groups (cmpn_…)\", required: false },\n full: { type: \"boolean\", description: \"Return ChatGPT Ads' own ad group objects\", required: false },\n} as const;\n\nregisterSchema({\n command: \"ads.chatgpt.ad-groups\",\n description:\n \"Ad groups in the connected ChatGPT Ads account, or in one campaign: bid strategy, billing event, max bid (currency units), context hints (when the ad should show — ChatGPT's counterpart to keywords) and serving issues.\",\n args,\n});\n\nconst adGroupsListCommand = defineCommand({\n meta: {\n name: \"list\",\n description: \"ChatGPT Ads ad groups. Example: baker ads chatgpt ad-groups --campaign-id cmpn_123\",\n },\n args,\n run: async ({ args: input }) => {\n const params: Record<string, string> = {};\n if (input[\"campaign-id\"]) {\n params[\"campaign-id\"] = input[\"campaign-id\"];\n }\n if (input.full) {\n params.full = \"true\";\n }\n await runChatgptListRead<ChatgptAdsAdGroup[]>(CHATGPT_ADS_REFERENCE.adGroups, \"/api/ads/chatgpt/ad-groups\", params);\n },\n});\n\nexport const adGroupsCommand = defineCommand({\n meta: {\n name: \"ad-groups\",\n description: `ChatGPT Ads ad groups: how each one bids and the context hints that decide where it shows — or stage a change that applies when the chat is published.\n\nExamples:\n baker ads chatgpt ad-groups --campaign-id cmpn_123\n baker ads chatgpt ad-groups create --campaign-id cmpn_123 --name \"Rooftop owners\" --context-hints \"solar panels for my house\" --max-bid 2.50\n baker ads chatgpt ad-groups update adgrp_123 --max-bid 3\n baker ads chatgpt ad-groups pause adgrp_123`,\n },\n subCommands: {\n list: adGroupsListCommand,\n create: () => import(\"./ad-group-writes.ts\").then((m) => m.adGroupsCreateCommand),\n update: () => import(\"./ad-group-writes.ts\").then((m) => m.adGroupsUpdateCommand),\n pause: () => import(\"./ad-group-writes.ts\").then((m) => m.adGroupsPauseCommand),\n resume: () => import(\"./ad-group-writes.ts\").then((m) => m.adGroupsResumeCommand),\n archive: () => import(\"./ad-group-writes.ts\").then((m) => m.adGroupsArchiveCommand),\n },\n // A parent must never declare `run`: citty falls through to it after the matched subcommand.\n args,\n default: \"list\",\n});\n"],"mappings":";;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAI9B,IAAM,OAAO;AAAA,EACX,eAAe,EAAE,MAAM,UAAU,aAAa,gDAA2C,UAAU,MAAM;AAAA,EACzG,MAAM,EAAE,MAAM,WAAW,aAAa,4CAA4C,UAAU,MAAM;AACpG;AAEA,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF;AACF,CAAC;AAED,IAAM,sBAAsB,cAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA;AAAA,EACA,KAAK,OAAO,EAAE,MAAM,MAAM,MAAM;AAC9B,UAAM,SAAiC,CAAC;AACxC,QAAI,MAAM,aAAa,GAAG;AACxB,aAAO,aAAa,IAAI,MAAM,aAAa;AAAA,IAC7C;AACA,QAAI,MAAM,MAAM;AACd,aAAO,OAAO;AAAA,IAChB;AACA,UAAM,mBAAwC,sBAAsB,UAAU,8BAA8B,MAAM;AAAA,EACpH;AACF,CAAC;AAEM,IAAM,kBAAkB,cAAc;AAAA,EAC3C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOf;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,QAAQ,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB;AAAA,IAChF,QAAQ,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB;AAAA,IAChF,OAAO,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,oBAAoB;AAAA,IAC9E,QAAQ,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB;AAAA,IAChF,SAAS,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,sBAAsB;AAAA,EACpF;AAAA;AAAA,EAEA;AAAA,EACA,SAAS;AACX,CAAC;","names":[]}
|