@koda-sl/baker-cli 0.568.0 → 0.569.0-dev.1b455b3fe
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-JREYXYNE.js +82 -0
- package/dist/account-OUKPRB7C.js +139 -0
- package/dist/account-WN5MJ5QN.js +82 -0
- package/dist/account-assets-IWJWYNQ3.js +290 -0
- package/dist/account-level-SHZBOMVV.js +612 -0
- package/dist/account-level-SHZBOMVV.js.map +1 -0
- package/dist/account-reads-GF3T25HX.js +220 -0
- package/dist/account-reads-GF3T25HX.js.map +1 -0
- package/dist/account-users-7NKBUVYA.js +65 -0
- package/dist/account-users-7NKBUVYA.js.map +1 -0
- package/dist/account-writes-IUIXIVRC.js +68 -0
- package/dist/accounts-4YRDRLHX.js +80 -0
- package/dist/accounts-HEGADQ6E.js +119 -0
- package/dist/accounts-OSVXKNSI.js +76 -0
- package/dist/accounts-SJOO4MQX.js +115 -0
- package/dist/accounts-V7EOUTNL.js +713 -0
- package/dist/actions-5LYJ3U6G.js +55 -0
- package/dist/active-entities-4KQQSMRZ.js +103 -0
- package/dist/activecampaign-CZHLHGT4.js +938 -0
- package/dist/activities-FRA33VZZ.js +75 -0
- package/dist/ad-group-writes-YQXBUA3Q.js +172 -0
- package/dist/ad-groups-NJR4ILEN.js +70 -0
- package/dist/ad-writes-TZV64CC2.js +176 -0
- package/dist/add-MZUSKY2L.js +305 -0
- package/dist/add-NAUSQKRS.js +107 -0
- package/dist/ads-A2FXTQES.js +120 -0
- package/dist/ads-PYTK3LJE.js +48 -0
- package/dist/ads-Q7DD5VXU.js +79 -0
- package/dist/adsets-ZHEVFOK4.js +182 -0
- package/dist/advertisers-HSTND4HE.js +123 -0
- package/dist/analytics-63Q3FJN4.js +447 -0
- package/dist/analytics-GLJODEIM.js +2437 -0
- package/dist/animate-EI6AYBDI.js +480 -0
- package/dist/asset-writes-MS45UKJ3.js +51 -0
- package/dist/assign-7HT3XSSN.js +80 -0
- package/dist/audience-size-DG7544D2.js +76 -0
- package/dist/audience-writes-IL64HQBS.js +328 -0
- package/dist/audience-writes-IL64HQBS.js.map +1 -0
- package/dist/audiences-2IVVS3SJ.js +280 -0
- package/dist/audiences-RN745R53.js +85 -0
- package/dist/audiences-Z2TQT35L.js +106 -0
- package/dist/audit-BIHMDO5K.js +88 -0
- package/dist/audit-ZYST7KCO.js +154 -0
- package/dist/autocomplete-5BKEMOQ3.js +114 -0
- package/dist/avatars-FQOCDWLW.js +38 -0
- package/dist/bid-pricing-JEW7T2VR.js +103 -0
- package/dist/brand-FR6BKWXN.js +22 -0
- package/dist/brief-32IXDJ4J.js +543 -0
- package/dist/businesses-HECSW3EL.js +54 -0
- package/dist/campaign-groups-LYPVIZT5.js +99 -0
- package/dist/campaign-writes-D5MM5LUH.js +168 -0
- package/dist/campaign-writes-S7A6W5V3.js +176 -0
- package/dist/campaigns-CMDF3P7Y.js +111 -0
- package/dist/campaigns-LIICP5JU.js +113 -0
- package/dist/campaigns-N72TOUQX.js +130 -0
- package/dist/campaigns-ZWJKBF3L.js +78 -0
- package/dist/canvas-3SNC3UUV.js +46 -0
- package/dist/capabilities-GL7P3SWY.js +147 -0
- package/dist/cards-RYQN5JLR.js +85 -0
- package/dist/catalog-PWAWDK42.js +66 -0
- package/dist/catalogs-2R5RV4L7.js +783 -0
- package/dist/catalogs-2R5RV4L7.js.map +1 -0
- package/dist/catalogs-SLPYHA7D.js +130 -0
- package/dist/changes-WOD4EOSN.js +167 -0
- package/dist/chatgpt-3GX4I6NH.js +47 -0
- package/dist/chats-K2WUFVCG.js +584 -0
- package/dist/check-ZSQ4EIFB.js +154 -0
- package/dist/check-ZSQ4EIFB.js.map +1 -0
- package/dist/chunk-34ARMQNL.js +197 -0
- package/dist/chunk-34MZGC2Y.js +207 -0
- package/dist/chunk-3JOGDGGP.js +24026 -0
- package/dist/chunk-3JOGDGGP.js.map +1 -0
- package/dist/chunk-46DHUWMV.js +642 -0
- package/dist/chunk-46DHUWMV.js.map +1 -0
- package/dist/chunk-4KBTW5NE.js +494 -0
- package/dist/chunk-4PAGS7QH.js +76 -0
- package/dist/chunk-53KV66ZZ.js +163 -0
- package/dist/chunk-55AX6DOP.js +86 -0
- package/dist/chunk-55AX6DOP.js.map +1 -0
- package/dist/chunk-5C4RRCKM.js +69 -0
- package/dist/chunk-5I6XOSNI.js +709 -0
- package/dist/chunk-5OE4Z7TP.js +287 -0
- package/dist/chunk-6OIKNJ7G.js +26 -0
- package/dist/chunk-6S4B67KP.js +962 -0
- package/dist/chunk-77LXZAX2.js +930 -0
- package/dist/chunk-7TVVYP7K.js +217 -0
- package/dist/chunk-7URHRPC7.js +3510 -0
- package/dist/chunk-7YMQEAGA.js +399 -0
- package/dist/chunk-A4O3JL6D.js +26 -0
- package/dist/chunk-ANRTDNPQ.js +115 -0
- package/dist/chunk-AQNTVM6S.js +1518 -0
- package/dist/chunk-BPDIY5CF.js +274 -0
- package/dist/chunk-CKHF7UXS.js +831 -0
- package/dist/chunk-CUTTTFAU.js +783 -0
- package/dist/chunk-D32EWSMB.js +150 -0
- package/dist/chunk-D55MN5IH.js +547 -0
- package/dist/chunk-DRQI2CJJ.js +138 -0
- package/dist/chunk-ESSA3AWR.js +133 -0
- package/dist/chunk-ESSA3AWR.js.map +1 -0
- package/dist/chunk-ETI6DGR2.js +312 -0
- package/dist/chunk-F3CZFUXZ.js +3187 -0
- package/dist/chunk-F3CZFUXZ.js.map +1 -0
- package/dist/chunk-FFTD7XDA.js +91 -0
- package/dist/chunk-FTKUHGTC.js +224 -0
- package/dist/chunk-GFYGVIT3.js +392 -0
- package/dist/chunk-GGXPO4NQ.js +225 -0
- package/dist/chunk-H56UJRLV.js +170 -0
- package/dist/chunk-HDMD6LXS.js +142 -0
- package/dist/chunk-HFZZKYUX.js +1320 -0
- package/dist/chunk-IAYJKH4R.js +5471 -0
- package/dist/chunk-IEPCI2EB.js +479 -0
- package/dist/chunk-IKADYUXK.js +344 -0
- package/dist/chunk-IMS53EQU.js +4277 -0
- package/dist/chunk-IMS53EQU.js.map +1 -0
- package/dist/chunk-IUX2LBW4.js +86 -0
- package/dist/chunk-IUX2LBW4.js.map +1 -0
- package/dist/chunk-J32CYEIH.js +74 -0
- package/dist/chunk-J5I3GYSJ.js +156 -0
- package/dist/chunk-JCVXKHVB.js +285 -0
- package/dist/chunk-JESSFI7R.js +468 -0
- package/dist/chunk-K4QPBXV7.js +61 -0
- package/dist/chunk-KJ3J2DYM.js +1919 -0
- package/dist/chunk-L43B2YGZ.js +2209 -0
- package/dist/chunk-L7UD57TV.js +219 -0
- package/dist/chunk-LJYXGUQ3.js +430 -0
- package/dist/chunk-LNYM4PQS.js +203 -0
- package/dist/chunk-LZR7LSYO.js +180 -0
- package/dist/chunk-LZR7LSYO.js.map +1 -0
- package/dist/chunk-MIXUMGJE.js +66 -0
- package/dist/chunk-MK4HCMEA.js +325 -0
- package/dist/chunk-MK4HCMEA.js.map +1 -0
- package/dist/chunk-MTFAG6E3.js +853 -0
- package/dist/chunk-MTFAG6E3.js.map +1 -0
- package/dist/chunk-MWJ6BCZJ.js +455 -0
- package/dist/chunk-MX5NQAK6.js +54 -0
- package/dist/chunk-MX5NQAK6.js.map +1 -0
- package/dist/chunk-O7WRA3JU.js +1902 -0
- package/dist/chunk-OADMSHME.js +334 -0
- package/dist/chunk-OLPABGH3.js +152 -0
- package/dist/chunk-ONGZKI5J.js +57 -0
- package/dist/chunk-OSZOUSK5.js +23 -0
- package/dist/chunk-PK7YNQ2T.js +454 -0
- package/dist/chunk-PN3CHL5W.js +98 -0
- package/dist/chunk-QMQSI4WA.js +89 -0
- package/dist/chunk-QUSDGZFS.js +188 -0
- package/dist/chunk-QXRSFH6M.js +604 -0
- package/dist/chunk-QZ4YHQLW.js +63 -0
- package/dist/chunk-RF3TP643.js +288 -0
- package/dist/chunk-RIRSFFWA.js +191 -0
- package/dist/chunk-ROHICQPK.js +8954 -0
- package/dist/chunk-RP3PC54R.js +169 -0
- package/dist/chunk-SIKCVWM3.js +76 -0
- package/dist/chunk-SOM4OTR5.js +167 -0
- package/dist/chunk-SYDPUGF5.js +126 -0
- package/dist/chunk-SYDPUGF5.js.map +1 -0
- package/dist/chunk-SZZ7BBED.js +148 -0
- package/dist/chunk-TAGJYHVI.js +191 -0
- package/dist/chunk-TB5JZTLN.js +19 -0
- package/dist/chunk-TQJLEVLA.js +131 -0
- package/dist/chunk-TW57RTKN.js +5368 -0
- package/dist/chunk-TXJOYQE2.js +1065 -0
- package/dist/chunk-TXJOYQE2.js.map +1 -0
- package/dist/chunk-UGIF56NZ.js +1254 -0
- package/dist/chunk-UGIF56NZ.js.map +1 -0
- package/dist/chunk-V3ANSXCB.js +51 -0
- package/dist/chunk-WSG4K2TR.js +103 -0
- package/dist/chunk-WXSRSMY3.js +64 -0
- package/dist/chunk-WZXMZFVB.js +238 -0
- package/dist/chunk-X3L5HYQM.js +91 -0
- package/dist/chunk-Y2TOB4N5.js +46 -0
- package/dist/chunk-YOHGEF2N.js +7899 -0
- package/dist/chunk-Z2LPYAN4.js +297 -0
- package/dist/chunk-ZICB4OI5.js +106 -0
- package/dist/chunk-ZOCAGPS5.js +225 -0
- package/dist/chunk-ZZWZUTEP.js +685 -0
- package/dist/claim-QHYA5UTF.js +200 -0
- package/dist/cli.js +36 -36
- package/dist/companies-BNMAOQUQ.js +198 -0
- package/dist/company-YANP3G62.js +308 -0
- package/dist/complete-ICZCBO6M.js +84 -0
- package/dist/config-GIETKZGS.js +88 -0
- package/dist/connect-ZXGEFS53.js +45 -0
- package/dist/conversation-YIWZIUIK.js +96 -0
- package/dist/conversion-report-E35RCZU7.js +127 -0
- package/dist/conversion-upload-command-QN33HEVV.js +440 -0
- package/dist/conversion-upload-command-QN33HEVV.js.map +1 -0
- package/dist/conversion-writes-MUD7WJDH.js +122 -0
- package/dist/conversions-B7HR6JMC.js +140 -0
- package/dist/conversions-WU7DNFF7.js +78 -0
- package/dist/copy-writes-R7VYSZXC.js +171 -0
- package/dist/copy-writes-R7VYSZXC.js.map +1 -0
- package/dist/create-EL47XN73.js +135 -0
- package/dist/create-GU5MUZ7U.js +62 -0
- package/dist/create-IKQ7A47F.js +239 -0
- package/dist/create-TKQDLX7M.js +218 -0
- package/dist/creatives-PW6HB4JB.js +58 -0
- package/dist/creatives-S4EGN44U.js +118 -0
- package/dist/creatives-VBD4T6C7.js +229 -0
- package/dist/credentials-57U2UQ7G.js +290 -0
- package/dist/critique-JTHSIXUF.js +233 -0
- package/dist/critique-JTHSIXUF.js.map +1 -0
- package/dist/critique-KAOJTSPQ.js +420 -0
- package/dist/critique-KAOJTSPQ.js.map +1 -0
- package/dist/crm-JCYLJQ7K.js +323 -0
- package/dist/crm-LQTYPDMZ.js +229 -0
- package/dist/currency-5NYTOLEL.js +88 -0
- package/dist/custom-conversions-NT7ONTEX.js +128 -0
- package/dist/customers-LP6I7POL.js +65 -0
- package/dist/delete-PZ6GP7J6.js +57 -0
- package/dist/delete-WW4JYQMX.js +69 -0
- package/dist/delete-XZNY426Q.js +67 -0
- package/dist/demographics-HZY2JEYQ.js +141 -0
- package/dist/discard-NRTGRVXR.js +69 -0
- package/dist/discover-5ZFAAPNG.js +172 -0
- package/dist/domain-YGKFTN6D.js +101 -0
- package/dist/download-XERSDEN3.js +172 -0
- package/dist/draft-2EVXU5XB.js +134 -0
- package/dist/draft-CQWYTMSS.js +138 -0
- package/dist/draft-EL74RDAG.js +374 -0
- package/dist/draft-EWB4A3FG.js +579 -0
- package/dist/draft-EWB4A3FG.js.map +1 -0
- package/dist/draft-GFZ3KMRX.js +315 -0
- package/dist/draft-JYZA3BFD.js +260 -0
- package/dist/draft-RBLMOZIL.js +333 -0
- package/dist/draft-RBLMOZIL.js.map +1 -0
- package/dist/draft-UNPTTHP4.js +220 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiment-YAX26BOO.js +1397 -0
- package/dist/experiments-ERXZYY5E.js +237 -0
- package/dist/experiments-ERXZYY5E.js.map +1 -0
- package/dist/extract-QMY6WPTV.js +143 -0
- package/dist/facets-QHM2IQ3E.js +117 -0
- package/dist/feedback-NLPTKWOH.js +114 -0
- package/dist/feedback-X5FNVHKU.js +116 -0
- package/dist/feedback-X5FNVHKU.js.map +1 -0
- package/dist/feedback-record-7QCQTF26.js +270 -0
- package/dist/feedback-record-7QCQTF26.js.map +1 -0
- package/dist/fetch-72ZILZHO.js +204 -0
- package/dist/fit-AURKFPAY.js +65 -0
- package/dist/flows-CZPXHOZW.js +340 -0
- package/dist/fonts-NA26RQ4C.js +40 -0
- package/dist/forecast-ARIHRQAX.js +121 -0
- package/dist/forecast-BU22ZMOW.js +170 -0
- package/dist/forecast-BU22ZMOW.js.map +1 -0
- package/dist/funding-QDKFNQI2.js +85 -0
- package/dist/funnel-4VQB3T3M.js +397 -0
- package/dist/ga4-N6EBLN2W.js +55 -0
- package/dist/generate-IJLMJC4S.js +263 -0
- package/dist/get-LOEUOTG3.js +82 -0
- package/dist/get-W3VJIQBN.js +62 -0
- package/dist/google-5RKO3DND.js +3301 -0
- package/dist/google-5RKO3DND.js.map +1 -0
- package/dist/google-7VEPEBFV.js +163 -0
- package/dist/google-ads-YBOJ3XXK.js +198 -0
- package/dist/gsc-FILOUFCG.js +30 -0
- package/dist/history-6LLGAK7B.js +69 -0
- package/dist/history-H2SHADAM.js +153 -0
- package/dist/history-LJG64M6P.js +102 -0
- package/dist/hubspot-6JDARLIU.js +814 -0
- package/dist/ideas-MTWJDRRK.js +45 -0
- package/dist/images-RIFC6D3H.js +92 -0
- package/dist/ingest-K45T4OLM.js +131 -0
- package/dist/ingest-MSS52UO5.js +28 -0
- package/dist/insights-AVNMRFQ4.js +658 -0
- package/dist/insights-TBIT6DTF.js +132 -0
- package/dist/inspect-EBGYJOZ3.js +192 -0
- package/dist/instant-experiences-EEMQJ7H5.js +265 -0
- package/dist/instant-experiences-EEMQJ7H5.js.map +1 -0
- package/dist/intent-URHTU4AK.js +95 -0
- package/dist/job-OJB6KIDV.js +202 -0
- package/dist/job-create-C6FGCDW4.js +109 -0
- package/dist/job-status-4RJHESID.js +74 -0
- package/dist/keyword-gap-WXM6SN6A.js +130 -0
- package/dist/keyword-metrics-57MUTYMH.js +200 -0
- package/dist/keywords-for-site-ABZS7O5B.js +131 -0
- package/dist/landing-AXCYLUQZ.js +28 -0
- package/dist/languages-6XTVTFZC.js +40 -0
- package/dist/leads-C5BUBBLZ.js +115 -0
- package/dist/leads-IXF647ZC.js +542 -0
- package/dist/leads-IXF647ZC.js.map +1 -0
- package/dist/learn-M64GVGPX.js +207 -0
- package/dist/line-item-writes-HYLWBQTM.js +211 -0
- package/dist/line-items-Y4THDHSE.js +107 -0
- package/dist/link-BU7YCL2M.js +67 -0
- package/dist/linkedin-2SUTGGII.js +1345 -0
- package/dist/linkedin-2SUTGGII.js.map +1 -0
- package/dist/linkedin-person-FEIY7FYQ.js +139 -0
- package/dist/list-BKIL7O4G.js +306 -0
- package/dist/list-H3C345WG.js +154 -0
- package/dist/list-UGTDZ7YI.js +67 -0
- package/dist/locations-F4365X4S.js +40 -0
- package/dist/locations-HOI7AUZ2.js +69 -0
- package/dist/log-54SJV6MW.js +95 -0
- package/dist/lookup-QNLX2535.js +23 -0
- package/dist/make-AQ43J5LH.js +1368 -0
- package/dist/make-AQ43J5LH.js.map +1 -0
- package/dist/map-BPPGQGDV.js +445 -0
- package/dist/mcp-EXOMBMYL.js +729 -0
- package/dist/media-MITWBYVZ.js +18 -0
- package/dist/media-WGIEUEZW.js +89 -0
- package/dist/media-sources-XEC72K7X.js +35 -0
- package/dist/members-VDON57BE.js +47 -0
- package/dist/meta-NUBBKE2V.js +124 -0
- package/dist/metrics-V6FAZO5A.js +152 -0
- package/dist/models-TSMFIOZU.js +155 -0
- package/dist/normalize-632DD2HJ.js +144 -0
- package/dist/options-TZYZQZ3M.js +125 -0
- package/dist/organization-FYRXSGB4.js +949 -0
- package/dist/output-HZW7LNUL.js +24 -0
- package/dist/page-photos-4DNBQZUL.js +119 -0
- package/dist/page-photos-4DNBQZUL.js.map +1 -0
- package/dist/pages-UH6XEZBO.js +67 -0
- package/dist/performance-JKXHQIAV.js +27 -0
- package/dist/performance-OF3N43OP.js +5565 -0
- package/dist/pixels-KXA6R3G3.js +62 -0
- package/dist/pixels-PYNK73UG.js +109 -0
- package/dist/plan-4OYUV2EF.js +208 -0
- package/dist/preview-7E4E3QPT.js +245 -0
- package/dist/preview-FPBM75L2.js +101 -0
- package/dist/promoted-tweet-writes-IJRBFK7W.js +183 -0
- package/dist/promoted-tweets-7PYH3RPV.js +119 -0
- package/dist/properties-RDOGNY2O.js +101 -0
- package/dist/publish-MNSDFPEQ.js +350 -0
- package/dist/query-GMGWJW3X.js +62 -0
- package/dist/query-K7R5GQ4E.js +236 -0
- package/dist/query-PO3RT7BR.js +231 -0
- package/dist/questionnaire-4OH6K2BF.js +94 -0
- package/dist/read-MU5XGWMK.js +141 -0
- package/dist/reddit-JFFMZLJS.js +29 -0
- package/dist/refresh-EJ7WKW3H.js +97 -0
- package/dist/release-AFRLCZWB.js +63 -0
- package/dist/relevant-pages-4YGN3I2U.js +99 -0
- package/dist/remove-QD4PITBL.js +53 -0
- package/dist/reopen-JSC6AVJC.js +66 -0
- package/dist/rerun-QIAUVJX6.js +98 -0
- package/dist/rerun-QIAUVJX6.js.map +1 -0
- package/dist/research-MMFUFZGS.js +265 -0
- package/dist/research-SRISCVBM.js +75 -0
- package/dist/reset-752CNET3.js +57 -0
- package/dist/reset-R3TQAHRU.js +57 -0
- package/dist/resolve-EWHSJNBX.js +124 -0
- package/dist/retry-DVHDVHVP.js +65 -0
- package/dist/retry-PVULTONO.js +63 -0
- package/dist/revenue-B4N6QJM3.js +92 -0
- package/dist/revenue-B4N6QJM3.js.map +1 -0
- package/dist/rule-writes-YXK7HNLR.js +531 -0
- package/dist/rule-writes-YXK7HNLR.js.map +1 -0
- package/dist/rules-4YTY57FM.js +217 -0
- package/dist/rules-LRFDZFF6.js +108 -0
- package/dist/rules-LRFDZFF6.js.map +1 -0
- package/dist/rules-add-XVOGYHQO.js +497 -0
- package/dist/rules-add-XVOGYHQO.js.map +1 -0
- package/dist/run-PCZRYL42.js +69 -0
- package/dist/run-PRSAUWAJ.js +73 -0
- package/dist/scaffold-ad-A6SROV4X.js +1514 -0
- package/dist/scaffold-ad-A6SROV4X.js.map +1 -0
- package/dist/scaffold-static-ad-CRN5XZIZ.js +1013 -0
- package/dist/scaffold-static-ad-CRN5XZIZ.js.map +1 -0
- package/dist/scaffold-video-3F5JVFFR.js +886 -0
- package/dist/scaffold-video-3F5JVFFR.js.map +1 -0
- package/dist/schedule-6YTZBCZA.js +64 -0
- package/dist/scheduled-agents-XCPU57LU.js +55 -0
- package/dist/schema-4PS5BDG3.js +135 -0
- package/dist/search-IMZD5RGD.js +177 -0
- package/dist/select-GSO4BEIL.js +111 -0
- package/dist/select-GSO4BEIL.js.map +1 -0
- package/dist/sends-I2B6F5NW.js +349 -0
- package/dist/set-prompt-D32XJNWM.js +200 -0
- package/dist/set-prompt-D32XJNWM.js.map +1 -0
- package/dist/setup-links-PTL6RF2J.js +144 -0
- package/dist/shared-Z7INVKCZ.js +32 -0
- package/dist/shopify-SDZZ5HTA.js +4009 -0
- package/dist/site-NGQ7K6UD.js +180 -0
- package/dist/sitemaps-EOMSRKOD.js +77 -0
- package/dist/sites-6M73AONG.js +97 -0
- package/dist/sources-NKFSCI6M.js +30 -0
- package/dist/sources-O4CQ5KSX.js +457 -0
- package/dist/stale-CEZJ53RO.js +91 -0
- package/dist/stale-CEZJ53RO.js.map +1 -0
- package/dist/stats-MFEH2TSW.js +34 -0
- package/dist/status-DLYRPGFS.js +65 -0
- package/dist/stock-RDCDVBHX.js +212 -0
- package/dist/studies-SSA3SR2L.js +250 -0
- package/dist/studio-MBHPDGMN.js +49 -0
- package/dist/study-writes-EDV6OH7I.js +472 -0
- package/dist/study-writes-EDV6OH7I.js.map +1 -0
- package/dist/sync-BEW3TZP7.js +57 -0
- package/dist/sync-SI25TKY5.js +279 -0
- package/dist/sync-definition-RECCA3QH.js +71 -0
- package/dist/tag-manager-JFC6YYVP.js +43 -0
- package/dist/tags-IJIGZYR3.js +23 -0
- package/dist/tags-K4HIKHNU.js +26 -0
- package/dist/tags-OTA55BQ6.js +23 -0
- package/dist/tags-QF2V4B3M.js +23 -0
- package/dist/tags-SK7WXMBS.js +227 -0
- package/dist/targeting-NPNBPEHW.js +763 -0
- package/dist/targeting-NPNBPEHW.js.map +1 -0
- package/dist/targeting-constants-RF2732EW.js +118 -0
- package/dist/targeting-criteria-7BUUYDYC.js +113 -0
- package/dist/targets-7V3NCQSD.js +106 -0
- package/dist/terms-XFL6QO7A.js +102 -0
- package/dist/testimonials-XYD5DLBJ.js +32 -0
- package/dist/themes-HYDGH4GM.js +96 -0
- package/dist/themes-HYDGH4GM.js.map +1 -0
- package/dist/top-companies-LI26TONY.js +111 -0
- package/dist/transcript-FTHDWMGU.js +165 -0
- package/dist/translate-YATYKOEX.js +604 -0
- package/dist/translate-YATYKOEX.js.map +1 -0
- package/dist/triggers-3LHJVK5P.js +144 -0
- package/dist/tweets-6PQHJXJC.js +123 -0
- package/dist/unlink-BMOUBGWO.js +70 -0
- package/dist/unstage-O23ILHCY.js +96 -0
- package/dist/unstage-YEW5KXJL.js +88 -0
- package/dist/update-2IWZA5UU.js +101 -0
- package/dist/update-G7YZICSU.js +155 -0
- package/dist/update-T5INCQJZ.js +192 -0
- package/dist/update-UTQVTG45.js +66 -0
- package/dist/upload-UXYJDA2U.js +137 -0
- package/dist/url-options-Y7I5EL55.js +131 -0
- package/dist/url-params-PE4XAQNH.js +101 -0
- package/dist/validate-MMHBTNWU.js +126 -0
- package/dist/validate-MMHBTNWU.js.map +1 -0
- package/dist/videos-AHOLXU42.js +146 -0
- package/dist/videos-EVPJHY3B.js +41 -0
- package/dist/viewer-check-NA4TMNY4.js +83 -0
- package/dist/web-7EODEH25.js +173 -0
- package/dist/winning-ads-5UKX6QV7.js +86 -0
- package/dist/write-commands-HFP5KLYZ.js +1525 -0
- package/dist/write-commands-HFP5KLYZ.js.map +1 -0
- package/dist/write-commands-KVOMOYME.js +1170 -0
- package/dist/write-commands-KVOMOYME.js.map +1 -0
- package/dist/write-commands-LHEJESKL.js +206 -0
- package/dist/write-commands-SD6DXVNK.js +721 -0
- package/dist/x-R72UTFQT.js +47 -0
- package/package.json +1 -1
- package/dist/account-D2AGXMM3.js +0 -82
- package/dist/account-OCFXNHG7.js +0 -139
- package/dist/account-U6DFMD2V.js +0 -82
- package/dist/account-assets-W7K2PUYB.js +0 -290
- package/dist/account-level-Z2JEIJ3X.js +0 -611
- package/dist/account-level-Z2JEIJ3X.js.map +0 -1
- package/dist/account-reads-WPKD2LPB.js +0 -219
- package/dist/account-reads-WPKD2LPB.js.map +0 -1
- package/dist/account-users-BK45DBUH.js +0 -64
- package/dist/account-users-BK45DBUH.js.map +0 -1
- package/dist/account-writes-QSJ74QFR.js +0 -68
- package/dist/accounts-3DS67RX7.js +0 -119
- package/dist/accounts-55PDBEDN.js +0 -76
- package/dist/accounts-AK4QIG24.js +0 -115
- package/dist/accounts-FALANOYX.js +0 -80
- package/dist/accounts-VSJVFIPH.js +0 -713
- package/dist/actions-JIXQEVIN.js +0 -55
- package/dist/active-entities-HR7NJJLU.js +0 -103
- package/dist/activecampaign-4ST7BMHO.js +0 -938
- package/dist/activities-DEWHKBID.js +0 -75
- package/dist/ad-group-writes-QBHOPTT5.js +0 -172
- package/dist/ad-groups-JZDUFT6J.js +0 -70
- package/dist/ad-writes-QYJO4IB3.js +0 -176
- package/dist/add-NZ6SEWUR.js +0 -107
- package/dist/add-ZH5HJBUN.js +0 -305
- package/dist/ads-JYSYXF3U.js +0 -48
- package/dist/ads-QKVNPHBH.js +0 -120
- package/dist/ads-UMSWEI5X.js +0 -79
- package/dist/adsets-FEVYHKAQ.js +0 -182
- package/dist/advertisers-T37UHN3C.js +0 -123
- package/dist/analytics-7QSUKFXF.js +0 -2437
- package/dist/analytics-DR4DPUP4.js +0 -447
- package/dist/animate-WS63CZ3Y.js +0 -480
- package/dist/asset-writes-7RFZZYU7.js +0 -50
- package/dist/assign-3CVJL35R.js +0 -80
- package/dist/audience-size-6CZ2AZCK.js +0 -76
- package/dist/audience-writes-RUGU6KEC.js +0 -327
- package/dist/audience-writes-RUGU6KEC.js.map +0 -1
- package/dist/audiences-6GVUZUCN.js +0 -106
- package/dist/audiences-7OS2ZJYO.js +0 -85
- package/dist/audiences-RSAUXKHR.js +0 -280
- package/dist/audit-4L7IKIRY.js +0 -88
- package/dist/audit-Q66O3Z46.js +0 -154
- package/dist/autocomplete-T642QXBX.js +0 -114
- package/dist/avatars-33UGHCQA.js +0 -38
- package/dist/bid-pricing-LUWEWGCJ.js +0 -103
- package/dist/brand-36YIAVGK.js +0 -22
- package/dist/brief-A5XFT6VH.js +0 -543
- package/dist/businesses-42NZP6FP.js +0 -54
- package/dist/campaign-groups-SZSO5B6C.js +0 -99
- package/dist/campaign-writes-AN4IHY5G.js +0 -168
- package/dist/campaign-writes-GKNH2EHV.js +0 -176
- package/dist/campaigns-7RV65SXR.js +0 -78
- package/dist/campaigns-RDHQNOTI.js +0 -111
- package/dist/campaigns-TO74Z7UH.js +0 -130
- package/dist/campaigns-VLVV2PPO.js +0 -113
- package/dist/canvas-D7L7R4D2.js +0 -46
- package/dist/capabilities-YC36LOZU.js +0 -147
- package/dist/cards-CAOGPPG4.js +0 -85
- package/dist/catalog-URTZYAPU.js +0 -66
- package/dist/catalogs-5LWEXG5X.js +0 -130
- package/dist/catalogs-7IEXGLSR.js +0 -782
- package/dist/catalogs-7IEXGLSR.js.map +0 -1
- package/dist/changes-WWZYTLC6.js +0 -167
- package/dist/chatgpt-ZI4GWP6S.js +0 -47
- package/dist/chats-M3RP62YO.js +0 -584
- package/dist/check-FQYDJ5RS.js +0 -107
- package/dist/check-FQYDJ5RS.js.map +0 -1
- package/dist/chunk-22RM3UOO.js +0 -63
- package/dist/chunk-2DAWUWA4.js +0 -115
- package/dist/chunk-2JBPS2CV.js +0 -89
- package/dist/chunk-2LBQNTTH.js +0 -76
- package/dist/chunk-2N2R5YSN.js +0 -156
- package/dist/chunk-2Q7K4F4H.js +0 -7899
- package/dist/chunk-2TS2ITSG.js +0 -392
- package/dist/chunk-3E74OM2E.js +0 -288
- package/dist/chunk-4NZ47VXO.js +0 -137
- package/dist/chunk-4NZ47VXO.js.map +0 -1
- package/dist/chunk-5H6N36LS.js +0 -217
- package/dist/chunk-6E4KJMXO.js +0 -51
- package/dist/chunk-6IR7IQPV.js +0 -69
- package/dist/chunk-6QINKM6T.js +0 -46
- package/dist/chunk-7CORYCEZ.js +0 -142
- package/dist/chunk-AC7WLPXF.js +0 -8954
- package/dist/chunk-AIK2HPDZ.js +0 -312
- package/dist/chunk-BMMXYR7A.js +0 -238
- package/dist/chunk-C3EX5OKN.js +0 -188
- package/dist/chunk-CDTAKCJR.js +0 -178
- package/dist/chunk-CDTAKCJR.js.map +0 -1
- package/dist/chunk-CI3QSB6G.js +0 -207
- package/dist/chunk-CORECUKT.js +0 -685
- package/dist/chunk-DLM5OSHM.js +0 -843
- package/dist/chunk-DLM5OSHM.js.map +0 -1
- package/dist/chunk-DWPOAU4Z.js +0 -5471
- package/dist/chunk-E3PYHCQL.js +0 -344
- package/dist/chunk-EIDHLGQM.js +0 -249
- package/dist/chunk-EIDHLGQM.js.map +0 -1
- package/dist/chunk-EJBLF2LI.js +0 -167
- package/dist/chunk-FGAXZ7ET.js +0 -23
- package/dist/chunk-FGTOOTYC.js +0 -91
- package/dist/chunk-FWHEAR7F.js +0 -138
- package/dist/chunk-GDRJS2QJ.js +0 -197
- package/dist/chunk-GUYFVYLY.js +0 -170
- package/dist/chunk-GWLP45WQ.js +0 -1518
- package/dist/chunk-H3HA22Z3.js +0 -1919
- package/dist/chunk-H3RCEM6L.js +0 -61
- package/dist/chunk-HBRXFQQV.js +0 -3510
- package/dist/chunk-HH5WM5VA.js +0 -430
- package/dist/chunk-IGCS3X4F.js +0 -150
- package/dist/chunk-IID2MAYZ.js +0 -91
- package/dist/chunk-ILGRC7LJ.js +0 -287
- package/dist/chunk-JAC6JVCI.js +0 -26
- package/dist/chunk-JCDCIQMA.js +0 -479
- package/dist/chunk-JHS5PE5Y.js +0 -1246
- package/dist/chunk-JHS5PE5Y.js.map +0 -1
- package/dist/chunk-JIE45TKJ.js +0 -962
- package/dist/chunk-JSOOLOHP.js +0 -468
- package/dist/chunk-JTIWQLY5.js +0 -98
- package/dist/chunk-JWV7LUFM.js +0 -547
- package/dist/chunk-KDAINT54.js +0 -131
- package/dist/chunk-KH7AOX2R.js +0 -930
- package/dist/chunk-KJTMY7K6.js +0 -224
- package/dist/chunk-KZQQ6OLC.js +0 -169
- package/dist/chunk-L5GFFF5G.js +0 -604
- package/dist/chunk-LQACNCAV.js +0 -334
- package/dist/chunk-MCJ5I5LR.js +0 -3187
- package/dist/chunk-MCJ5I5LR.js.map +0 -1
- package/dist/chunk-MKG57P2E.js +0 -783
- package/dist/chunk-MOKZ5XZO.js +0 -455
- package/dist/chunk-MXVP7Z54.js +0 -163
- package/dist/chunk-MZPS46OR.js +0 -76
- package/dist/chunk-N2TXADL7.js +0 -1320
- package/dist/chunk-NTFNLVZG.js +0 -26
- package/dist/chunk-O3O7PXMK.js +0 -103
- package/dist/chunk-OASXBRXQ.js +0 -24026
- package/dist/chunk-OASXBRXQ.js.map +0 -1
- package/dist/chunk-ORQ3WBM6.js +0 -225
- package/dist/chunk-OSQTSS27.js +0 -74
- package/dist/chunk-OTRKBCUB.js +0 -219
- package/dist/chunk-Q5DFEVLE.js +0 -148
- package/dist/chunk-QVQKCVP7.js +0 -85
- package/dist/chunk-QVQKCVP7.js.map +0 -1
- package/dist/chunk-R4RWQ6YX.js +0 -152
- package/dist/chunk-RBCO3C3Q.js +0 -324
- package/dist/chunk-RBCO3C3Q.js.map +0 -1
- package/dist/chunk-SIUYWLXB.js +0 -494
- package/dist/chunk-TPGFX47R.js +0 -709
- package/dist/chunk-TYFXPC5D.js +0 -1902
- package/dist/chunk-TZTHGLWN.js +0 -66
- package/dist/chunk-UJTIMPEE.js +0 -203
- package/dist/chunk-UKZKLXTE.js +0 -638
- package/dist/chunk-UKZKLXTE.js.map +0 -1
- package/dist/chunk-ULIQNJ5J.js +0 -274
- package/dist/chunk-UQZZM6UM.js +0 -831
- package/dist/chunk-UUXGSDUC.js +0 -297
- package/dist/chunk-UYZ4FUC7.js +0 -225
- package/dist/chunk-UZHDNE6M.js +0 -2209
- package/dist/chunk-VJ4IOJQZ.js +0 -19
- package/dist/chunk-WBWEKZQ2.js +0 -191
- package/dist/chunk-X25XRSDP.js +0 -57
- package/dist/chunk-X3GWGFZP.js +0 -5368
- package/dist/chunk-X3YYZLBH.js +0 -285
- package/dist/chunk-XHWHBGKX.js +0 -4277
- package/dist/chunk-XHWHBGKX.js.map +0 -1
- package/dist/chunk-XRUB4KRV.js +0 -191
- package/dist/chunk-XZAVBONI.js +0 -64
- package/dist/chunk-YD6OZSSY.js +0 -106
- package/dist/chunk-YVFHDZ3K.js +0 -399
- package/dist/chunk-ZQ7JDYJB.js +0 -454
- package/dist/claim-CG3J32WS.js +0 -200
- package/dist/companies-X6O55ACG.js +0 -198
- package/dist/company-4CD2OJLB.js +0 -308
- package/dist/complete-JSP6VQYI.js +0 -84
- package/dist/config-NDL2YP37.js +0 -88
- package/dist/connect-O5NRDY4Y.js +0 -45
- package/dist/conversation-J22BH6O5.js +0 -96
- package/dist/conversion-report-76S5JOVT.js +0 -127
- package/dist/conversion-upload-command-5OILW65U.js +0 -439
- package/dist/conversion-upload-command-5OILW65U.js.map +0 -1
- package/dist/conversion-writes-6HX665JT.js +0 -122
- package/dist/conversions-I2ZOQHKJ.js +0 -140
- package/dist/conversions-QZJRF4WN.js +0 -78
- package/dist/copy-writes-X2LM5I4Z.js +0 -170
- package/dist/copy-writes-X2LM5I4Z.js.map +0 -1
- package/dist/create-DQ5X5AJT.js +0 -62
- package/dist/create-FNPFVKLT.js +0 -239
- package/dist/create-GXOFZCR5.js +0 -135
- package/dist/create-VAZ65QNJ.js +0 -218
- package/dist/creatives-4G2V4J6N.js +0 -229
- package/dist/creatives-QWNQDPNE.js +0 -58
- package/dist/creatives-SFPNXJ6Z.js +0 -118
- package/dist/credentials-VCERJE24.js +0 -290
- package/dist/critique-62QFBC33.js +0 -1451
- package/dist/critique-62QFBC33.js.map +0 -1
- package/dist/critique-MSL6EU5V.js +0 -232
- package/dist/critique-MSL6EU5V.js.map +0 -1
- package/dist/crm-HODCOAAI.js +0 -229
- package/dist/crm-J3SCOR4L.js +0 -323
- package/dist/currency-BZUNQ4XJ.js +0 -88
- package/dist/custom-conversions-UHRBVUD2.js +0 -128
- package/dist/customers-EYVTYCGY.js +0 -65
- package/dist/delete-7A6T6XBD.js +0 -69
- package/dist/delete-I3W3M6T7.js +0 -67
- package/dist/delete-RZCW3Y6L.js +0 -57
- package/dist/demographics-OFBRSF7A.js +0 -141
- package/dist/discard-I773LYVR.js +0 -69
- package/dist/discover-PDSEJR2P.js +0 -172
- package/dist/domain-7YO5HYHU.js +0 -101
- package/dist/download-IYK3UVBF.js +0 -172
- package/dist/draft-2Z7EGKBO.js +0 -220
- package/dist/draft-44KTLX4P.js +0 -134
- package/dist/draft-6MWXURYC.js +0 -374
- package/dist/draft-CKFSZDVI.js +0 -260
- package/dist/draft-PCXWAA2Y.js +0 -578
- package/dist/draft-PCXWAA2Y.js.map +0 -1
- package/dist/draft-QN5XXOS6.js +0 -332
- package/dist/draft-QN5XXOS6.js.map +0 -1
- package/dist/draft-RSKZSUOS.js +0 -138
- package/dist/draft-WOE7KQ7T.js +0 -315
- package/dist/experiment-AZUKJ7ZO.js +0 -1397
- package/dist/experiments-2DX4K3AQ.js +0 -236
- package/dist/experiments-2DX4K3AQ.js.map +0 -1
- package/dist/extract-ZIW5JFTY.js +0 -143
- package/dist/facets-OLRASLT7.js +0 -117
- package/dist/feedback-2YJ24NV7.js +0 -115
- package/dist/feedback-2YJ24NV7.js.map +0 -1
- package/dist/feedback-X3GLQ2QF.js +0 -114
- package/dist/feedback-record-A5JLS3QY.js +0 -269
- package/dist/feedback-record-A5JLS3QY.js.map +0 -1
- package/dist/fetch-6XMRKLYH.js +0 -204
- package/dist/fit-BRJSLR7P.js +0 -65
- package/dist/flows-LXJHL3KW.js +0 -340
- package/dist/fonts-UUSCLUHW.js +0 -39
- package/dist/forecast-3KMAJJWJ.js +0 -169
- package/dist/forecast-3KMAJJWJ.js.map +0 -1
- package/dist/forecast-7DZGLC7Y.js +0 -121
- package/dist/funding-BSAHWU35.js +0 -85
- package/dist/funnel-2ALYZ3GP.js +0 -397
- package/dist/ga4-YVKA3V4V.js +0 -55
- package/dist/generate-VGGXTZBP.js +0 -263
- package/dist/get-KVZSVN7U.js +0 -62
- package/dist/get-OZ7THI2W.js +0 -82
- package/dist/google-5U5KXEX7.js +0 -163
- package/dist/google-RTDPHVLU.js +0 -3300
- package/dist/google-RTDPHVLU.js.map +0 -1
- package/dist/google-ads-YZTK3YTW.js +0 -198
- package/dist/gsc-OJDMSP6H.js +0 -30
- package/dist/history-LXRFZNW7.js +0 -69
- package/dist/history-RYTNMGU5.js +0 -153
- package/dist/history-XDYDNQWK.js +0 -102
- package/dist/hubspot-MRUCRJLL.js +0 -814
- package/dist/ideas-TT24LJR5.js +0 -45
- package/dist/images-PLYPUXM2.js +0 -92
- package/dist/ingest-CSPC3RUK.js +0 -131
- package/dist/ingest-MSPQX3Z6.js +0 -28
- package/dist/insights-H6M6VI43.js +0 -132
- package/dist/insights-LZJZGNJZ.js +0 -658
- package/dist/inspect-VD6CB2NA.js +0 -192
- package/dist/instant-experiences-J4GSS3Y6.js +0 -264
- package/dist/instant-experiences-J4GSS3Y6.js.map +0 -1
- package/dist/intent-HXRSLFIO.js +0 -95
- package/dist/job-UFGGBDG7.js +0 -202
- package/dist/job-create-XM4NH322.js +0 -109
- package/dist/job-status-47L5Z57J.js +0 -74
- package/dist/keyword-gap-WUHMSTNR.js +0 -130
- package/dist/keyword-metrics-NJV3WR75.js +0 -200
- package/dist/keywords-for-site-B7MUDHFH.js +0 -131
- package/dist/landing-RKOEVY7L.js +0 -28
- package/dist/languages-SVTYYYOC.js +0 -40
- package/dist/leads-HFB5UXZJ.js +0 -115
- package/dist/leads-SEEJ3KRR.js +0 -541
- package/dist/leads-SEEJ3KRR.js.map +0 -1
- package/dist/learn-XNN3DGDF.js +0 -207
- package/dist/line-item-writes-VEJ5Y6X4.js +0 -211
- package/dist/line-items-U6L2TMPG.js +0 -107
- package/dist/link-ENZQAISO.js +0 -67
- package/dist/linkedin-SY2WZWKP.js +0 -1344
- package/dist/linkedin-SY2WZWKP.js.map +0 -1
- package/dist/linkedin-person-3RCX4MI3.js +0 -139
- package/dist/list-AF522LRC.js +0 -67
- package/dist/list-GPTYUCSX.js +0 -154
- package/dist/list-VYTHVUDP.js +0 -306
- package/dist/locations-5SLLGWZO.js +0 -69
- package/dist/locations-7EBZ6KRH.js +0 -40
- package/dist/log-NJR3FJWN.js +0 -95
- package/dist/lookup-OU6CLATK.js +0 -23
- package/dist/make-4XUB6RSF.js +0 -1367
- package/dist/make-4XUB6RSF.js.map +0 -1
- package/dist/map-LIYQCWXU.js +0 -445
- package/dist/mcp-QDOAKB3A.js +0 -729
- package/dist/media-DGV2AMZI.js +0 -89
- package/dist/media-YKCCMLXL.js +0 -18
- package/dist/media-sources-LFSDIPUB.js +0 -35
- package/dist/members-KGKQQFMN.js +0 -47
- package/dist/meta-5TRG7RTQ.js +0 -124
- package/dist/metrics-WRERNMRK.js +0 -152
- package/dist/models-SITHUNAA.js +0 -155
- package/dist/normalize-DQPKM3MG.js +0 -144
- package/dist/options-XIH7YPEG.js +0 -125
- package/dist/organization-BUSXIGA4.js +0 -949
- package/dist/output-7X5WPPCA.js +0 -24
- package/dist/page-photos-VYJU4RNQ.js +0 -118
- package/dist/page-photos-VYJU4RNQ.js.map +0 -1
- package/dist/pages-6YMPZDEY.js +0 -67
- package/dist/performance-PU4NHFUE.js +0 -27
- package/dist/performance-Y2DTYSFV.js +0 -5565
- package/dist/pixels-DZDVNIVL.js +0 -109
- package/dist/pixels-WTTLC4O5.js +0 -62
- package/dist/plan-JAWESWJN.js +0 -208
- package/dist/preview-3UOBVP6M.js +0 -101
- package/dist/preview-JZXGR4KN.js +0 -245
- package/dist/promoted-tweet-writes-6Y4MDPBH.js +0 -183
- package/dist/promoted-tweets-JAR2W6KC.js +0 -119
- package/dist/properties-Z5S3LRJ5.js +0 -101
- package/dist/publish-MDVPC77V.js +0 -350
- package/dist/query-3QFT42PG.js +0 -62
- package/dist/query-KKXCMH3Q.js +0 -236
- package/dist/query-QXKGVHZL.js +0 -231
- package/dist/questionnaire-U7UYICEA.js +0 -94
- package/dist/read-ENUS7P3L.js +0 -141
- package/dist/reddit-ZPKVVZGP.js +0 -29
- package/dist/refresh-V34YWN3W.js +0 -97
- package/dist/release-WRNUOSHB.js +0 -63
- package/dist/relevant-pages-OFKZYWR3.js +0 -99
- package/dist/remove-HKWV7P27.js +0 -53
- package/dist/reopen-VHHYVAKC.js +0 -66
- package/dist/rerun-THE43RCG.js +0 -97
- package/dist/rerun-THE43RCG.js.map +0 -1
- package/dist/research-773Y7GT4.js +0 -75
- package/dist/research-G5A2WXVK.js +0 -265
- package/dist/reset-GFJ3AKF5.js +0 -57
- package/dist/reset-MVTWA3HT.js +0 -57
- package/dist/resolve-JRSSTIAF.js +0 -124
- package/dist/retry-AGHA6IVT.js +0 -65
- package/dist/retry-LDJ6FZCZ.js +0 -63
- package/dist/revenue-Q2JK5VY6.js +0 -91
- package/dist/revenue-Q2JK5VY6.js.map +0 -1
- package/dist/rule-writes-WT6DQZZE.js +0 -530
- package/dist/rule-writes-WT6DQZZE.js.map +0 -1
- package/dist/rules-4A25K2P7.js +0 -99
- package/dist/rules-4A25K2P7.js.map +0 -1
- package/dist/rules-Y75KR2PC.js +0 -217
- package/dist/rules-add-GT7NCUB3.js +0 -465
- package/dist/rules-add-GT7NCUB3.js.map +0 -1
- package/dist/run-NFLKYVIC.js +0 -72
- package/dist/run-ZLHQNLCF.js +0 -69
- package/dist/scaffold-ad-AJN67FWG.js +0 -1513
- package/dist/scaffold-ad-AJN67FWG.js.map +0 -1
- package/dist/scaffold-static-ad-L6KXZ3TN.js +0 -1012
- package/dist/scaffold-static-ad-L6KXZ3TN.js.map +0 -1
- package/dist/scaffold-video-XQBZZ5TZ.js +0 -885
- package/dist/scaffold-video-XQBZZ5TZ.js.map +0 -1
- package/dist/schedule-45CJDHIX.js +0 -64
- package/dist/scheduled-agents-72MWHK63.js +0 -55
- package/dist/schema-VX66FH4O.js +0 -135
- package/dist/search-Y6TS5UZS.js +0 -177
- package/dist/select-MZ2U7U5U.js +0 -110
- package/dist/select-MZ2U7U5U.js.map +0 -1
- package/dist/sends-4ZO6BNZ4.js +0 -349
- package/dist/set-prompt-YH6PXNXB.js +0 -199
- package/dist/set-prompt-YH6PXNXB.js.map +0 -1
- package/dist/setup-links-Y4YYDQBK.js +0 -144
- package/dist/shared-UPMEBTVP.js +0 -32
- package/dist/shopify-HGFUHYT7.js +0 -4009
- package/dist/site-WZ654OP3.js +0 -180
- package/dist/sitemaps-P3K5Z4TW.js +0 -77
- package/dist/sites-TURWC53D.js +0 -97
- package/dist/sources-7ZFY3VEZ.js +0 -457
- package/dist/sources-FCBFLR2J.js +0 -30
- package/dist/stale-VSSDVB4H.js +0 -90
- package/dist/stale-VSSDVB4H.js.map +0 -1
- package/dist/stats-XNKAJD2Z.js +0 -34
- package/dist/status-L7LYUD3F.js +0 -65
- package/dist/stock-73PLAUYU.js +0 -212
- package/dist/studies-5G67ODR2.js +0 -250
- package/dist/studio-D2OMFCZZ.js +0 -49
- package/dist/study-writes-34BJFZAZ.js +0 -471
- package/dist/study-writes-34BJFZAZ.js.map +0 -1
- package/dist/sync-QVEUQKU5.js +0 -279
- package/dist/sync-XBC3PSSV.js +0 -57
- package/dist/sync-definition-IM2NY5QC.js +0 -70
- package/dist/tag-manager-3GIW6BPB.js +0 -43
- package/dist/tags-2KNOJ7A6.js +0 -26
- package/dist/tags-COALQ2CT.js +0 -23
- package/dist/tags-HCJTTLSR.js +0 -227
- package/dist/tags-MVC56SHA.js +0 -23
- package/dist/tags-UNUZVGUA.js +0 -23
- package/dist/targeting-TVZPIUUI.js +0 -762
- package/dist/targeting-TVZPIUUI.js.map +0 -1
- package/dist/targeting-constants-RJS2STR5.js +0 -118
- package/dist/targeting-criteria-SMBIEM7U.js +0 -113
- package/dist/targets-BNH37YAQ.js +0 -106
- package/dist/terms-AATAGKPT.js +0 -102
- package/dist/testimonials-IIAT5IDM.js +0 -32
- package/dist/themes-5HKRO5RR.js +0 -95
- package/dist/themes-5HKRO5RR.js.map +0 -1
- package/dist/top-companies-PY2NL2GS.js +0 -111
- package/dist/transcript-7WFXVRVW.js +0 -165
- package/dist/translate-IPTYPZF6.js +0 -603
- package/dist/translate-IPTYPZF6.js.map +0 -1
- package/dist/triggers-RBD2XGNG.js +0 -144
- package/dist/tweets-MLDLLLDB.js +0 -123
- package/dist/unlink-5IMEUVIS.js +0 -70
- package/dist/unstage-65DUBYNZ.js +0 -96
- package/dist/unstage-DSOVSWEK.js +0 -88
- package/dist/update-7JVV5ZL3.js +0 -66
- package/dist/update-FIU2ECYQ.js +0 -192
- package/dist/update-HSS6CVUK.js +0 -101
- package/dist/update-XWL3Q5QY.js +0 -155
- package/dist/upload-B5SM33MK.js +0 -137
- package/dist/url-options-4J3FRXHO.js +0 -131
- package/dist/url-params-TGCGWKAJ.js +0 -101
- package/dist/validate-4NXKYAL2.js +0 -125
- package/dist/validate-4NXKYAL2.js.map +0 -1
- package/dist/videos-FMV4AVB2.js +0 -41
- package/dist/videos-NITQKILV.js +0 -146
- package/dist/viewer-check-2W6BTVQV.js +0 -83
- package/dist/web-K2EMYVCD.js +0 -173
- package/dist/winning-ads-Q3RXH7EC.js +0 -86
- package/dist/write-commands-OBQPQUIE.js +0 -721
- package/dist/write-commands-SIOVTRHH.js +0 -1169
- package/dist/write-commands-SIOVTRHH.js.map +0 -1
- package/dist/write-commands-VQPEHKH7.js +0 -1524
- package/dist/write-commands-VQPEHKH7.js.map +0 -1
- package/dist/write-commands-XLZCRVTU.js +0 -206
- package/dist/x-PW43O6JS.js +0 -47
- /package/dist/{account-U6DFMD2V.js.map → account-JREYXYNE.js.map} +0 -0
- /package/dist/{account-OCFXNHG7.js.map → account-OUKPRB7C.js.map} +0 -0
- /package/dist/{account-D2AGXMM3.js.map → account-WN5MJ5QN.js.map} +0 -0
- /package/dist/{account-assets-W7K2PUYB.js.map → account-assets-IWJWYNQ3.js.map} +0 -0
- /package/dist/{account-writes-QSJ74QFR.js.map → account-writes-IUIXIVRC.js.map} +0 -0
- /package/dist/{accounts-FALANOYX.js.map → accounts-4YRDRLHX.js.map} +0 -0
- /package/dist/{accounts-3DS67RX7.js.map → accounts-HEGADQ6E.js.map} +0 -0
- /package/dist/{accounts-55PDBEDN.js.map → accounts-OSVXKNSI.js.map} +0 -0
- /package/dist/{accounts-AK4QIG24.js.map → accounts-SJOO4MQX.js.map} +0 -0
- /package/dist/{accounts-VSJVFIPH.js.map → accounts-V7EOUTNL.js.map} +0 -0
- /package/dist/{actions-JIXQEVIN.js.map → actions-5LYJ3U6G.js.map} +0 -0
- /package/dist/{active-entities-HR7NJJLU.js.map → active-entities-4KQQSMRZ.js.map} +0 -0
- /package/dist/{activecampaign-4ST7BMHO.js.map → activecampaign-CZHLHGT4.js.map} +0 -0
- /package/dist/{activities-DEWHKBID.js.map → activities-FRA33VZZ.js.map} +0 -0
- /package/dist/{ad-group-writes-QBHOPTT5.js.map → ad-group-writes-YQXBUA3Q.js.map} +0 -0
- /package/dist/{ad-groups-JZDUFT6J.js.map → ad-groups-NJR4ILEN.js.map} +0 -0
- /package/dist/{ad-writes-QYJO4IB3.js.map → ad-writes-TZV64CC2.js.map} +0 -0
- /package/dist/{add-ZH5HJBUN.js.map → add-MZUSKY2L.js.map} +0 -0
- /package/dist/{add-NZ6SEWUR.js.map → add-NAUSQKRS.js.map} +0 -0
- /package/dist/{ads-QKVNPHBH.js.map → ads-A2FXTQES.js.map} +0 -0
- /package/dist/{ads-JYSYXF3U.js.map → ads-PYTK3LJE.js.map} +0 -0
- /package/dist/{ads-UMSWEI5X.js.map → ads-Q7DD5VXU.js.map} +0 -0
- /package/dist/{adsets-FEVYHKAQ.js.map → adsets-ZHEVFOK4.js.map} +0 -0
- /package/dist/{advertisers-T37UHN3C.js.map → advertisers-HSTND4HE.js.map} +0 -0
- /package/dist/{analytics-DR4DPUP4.js.map → analytics-63Q3FJN4.js.map} +0 -0
- /package/dist/{analytics-7QSUKFXF.js.map → analytics-GLJODEIM.js.map} +0 -0
- /package/dist/{animate-WS63CZ3Y.js.map → animate-EI6AYBDI.js.map} +0 -0
- /package/dist/{asset-writes-7RFZZYU7.js.map → asset-writes-MS45UKJ3.js.map} +0 -0
- /package/dist/{assign-3CVJL35R.js.map → assign-7HT3XSSN.js.map} +0 -0
- /package/dist/{audience-size-6CZ2AZCK.js.map → audience-size-DG7544D2.js.map} +0 -0
- /package/dist/{audiences-RSAUXKHR.js.map → audiences-2IVVS3SJ.js.map} +0 -0
- /package/dist/{audiences-7OS2ZJYO.js.map → audiences-RN745R53.js.map} +0 -0
- /package/dist/{audiences-6GVUZUCN.js.map → audiences-Z2TQT35L.js.map} +0 -0
- /package/dist/{audit-4L7IKIRY.js.map → audit-BIHMDO5K.js.map} +0 -0
- /package/dist/{audit-Q66O3Z46.js.map → audit-ZYST7KCO.js.map} +0 -0
- /package/dist/{autocomplete-T642QXBX.js.map → autocomplete-5BKEMOQ3.js.map} +0 -0
- /package/dist/{avatars-33UGHCQA.js.map → avatars-FQOCDWLW.js.map} +0 -0
- /package/dist/{bid-pricing-LUWEWGCJ.js.map → bid-pricing-JEW7T2VR.js.map} +0 -0
- /package/dist/{brand-36YIAVGK.js.map → brand-FR6BKWXN.js.map} +0 -0
- /package/dist/{brief-A5XFT6VH.js.map → brief-32IXDJ4J.js.map} +0 -0
- /package/dist/{businesses-42NZP6FP.js.map → businesses-HECSW3EL.js.map} +0 -0
- /package/dist/{campaign-groups-SZSO5B6C.js.map → campaign-groups-LYPVIZT5.js.map} +0 -0
- /package/dist/{campaign-writes-AN4IHY5G.js.map → campaign-writes-D5MM5LUH.js.map} +0 -0
- /package/dist/{campaign-writes-GKNH2EHV.js.map → campaign-writes-S7A6W5V3.js.map} +0 -0
- /package/dist/{campaigns-RDHQNOTI.js.map → campaigns-CMDF3P7Y.js.map} +0 -0
- /package/dist/{campaigns-VLVV2PPO.js.map → campaigns-LIICP5JU.js.map} +0 -0
- /package/dist/{campaigns-TO74Z7UH.js.map → campaigns-N72TOUQX.js.map} +0 -0
- /package/dist/{campaigns-7RV65SXR.js.map → campaigns-ZWJKBF3L.js.map} +0 -0
- /package/dist/{canvas-D7L7R4D2.js.map → canvas-3SNC3UUV.js.map} +0 -0
- /package/dist/{capabilities-YC36LOZU.js.map → capabilities-GL7P3SWY.js.map} +0 -0
- /package/dist/{cards-CAOGPPG4.js.map → cards-RYQN5JLR.js.map} +0 -0
- /package/dist/{catalog-URTZYAPU.js.map → catalog-PWAWDK42.js.map} +0 -0
- /package/dist/{catalogs-5LWEXG5X.js.map → catalogs-SLPYHA7D.js.map} +0 -0
- /package/dist/{changes-WWZYTLC6.js.map → changes-WOD4EOSN.js.map} +0 -0
- /package/dist/{chatgpt-ZI4GWP6S.js.map → chatgpt-3GX4I6NH.js.map} +0 -0
- /package/dist/{chats-M3RP62YO.js.map → chats-K2WUFVCG.js.map} +0 -0
- /package/dist/{chunk-GDRJS2QJ.js.map → chunk-34ARMQNL.js.map} +0 -0
- /package/dist/{chunk-CI3QSB6G.js.map → chunk-34MZGC2Y.js.map} +0 -0
- /package/dist/{chunk-SIUYWLXB.js.map → chunk-4KBTW5NE.js.map} +0 -0
- /package/dist/{chunk-2LBQNTTH.js.map → chunk-4PAGS7QH.js.map} +0 -0
- /package/dist/{chunk-MXVP7Z54.js.map → chunk-53KV66ZZ.js.map} +0 -0
- /package/dist/{chunk-6IR7IQPV.js.map → chunk-5C4RRCKM.js.map} +0 -0
- /package/dist/{chunk-TPGFX47R.js.map → chunk-5I6XOSNI.js.map} +0 -0
- /package/dist/{chunk-ILGRC7LJ.js.map → chunk-5OE4Z7TP.js.map} +0 -0
- /package/dist/{chunk-JAC6JVCI.js.map → chunk-6OIKNJ7G.js.map} +0 -0
- /package/dist/{chunk-JIE45TKJ.js.map → chunk-6S4B67KP.js.map} +0 -0
- /package/dist/{chunk-KH7AOX2R.js.map → chunk-77LXZAX2.js.map} +0 -0
- /package/dist/{chunk-5H6N36LS.js.map → chunk-7TVVYP7K.js.map} +0 -0
- /package/dist/{chunk-HBRXFQQV.js.map → chunk-7URHRPC7.js.map} +0 -0
- /package/dist/{chunk-YVFHDZ3K.js.map → chunk-7YMQEAGA.js.map} +0 -0
- /package/dist/{chunk-NTFNLVZG.js.map → chunk-A4O3JL6D.js.map} +0 -0
- /package/dist/{chunk-2DAWUWA4.js.map → chunk-ANRTDNPQ.js.map} +0 -0
- /package/dist/{chunk-GWLP45WQ.js.map → chunk-AQNTVM6S.js.map} +0 -0
- /package/dist/{chunk-ULIQNJ5J.js.map → chunk-BPDIY5CF.js.map} +0 -0
- /package/dist/{chunk-UQZZM6UM.js.map → chunk-CKHF7UXS.js.map} +0 -0
- /package/dist/{chunk-MKG57P2E.js.map → chunk-CUTTTFAU.js.map} +0 -0
- /package/dist/{chunk-IGCS3X4F.js.map → chunk-D32EWSMB.js.map} +0 -0
- /package/dist/{chunk-JWV7LUFM.js.map → chunk-D55MN5IH.js.map} +0 -0
- /package/dist/{chunk-FWHEAR7F.js.map → chunk-DRQI2CJJ.js.map} +0 -0
- /package/dist/{chunk-AIK2HPDZ.js.map → chunk-ETI6DGR2.js.map} +0 -0
- /package/dist/{chunk-FGTOOTYC.js.map → chunk-FFTD7XDA.js.map} +0 -0
- /package/dist/{chunk-KJTMY7K6.js.map → chunk-FTKUHGTC.js.map} +0 -0
- /package/dist/{chunk-2TS2ITSG.js.map → chunk-GFYGVIT3.js.map} +0 -0
- /package/dist/{chunk-ORQ3WBM6.js.map → chunk-GGXPO4NQ.js.map} +0 -0
- /package/dist/{chunk-GUYFVYLY.js.map → chunk-H56UJRLV.js.map} +0 -0
- /package/dist/{chunk-7CORYCEZ.js.map → chunk-HDMD6LXS.js.map} +0 -0
- /package/dist/{chunk-N2TXADL7.js.map → chunk-HFZZKYUX.js.map} +0 -0
- /package/dist/{chunk-DWPOAU4Z.js.map → chunk-IAYJKH4R.js.map} +0 -0
- /package/dist/{chunk-JCDCIQMA.js.map → chunk-IEPCI2EB.js.map} +0 -0
- /package/dist/{chunk-E3PYHCQL.js.map → chunk-IKADYUXK.js.map} +0 -0
- /package/dist/{chunk-OSQTSS27.js.map → chunk-J32CYEIH.js.map} +0 -0
- /package/dist/{chunk-2N2R5YSN.js.map → chunk-J5I3GYSJ.js.map} +0 -0
- /package/dist/{chunk-X3YYZLBH.js.map → chunk-JCVXKHVB.js.map} +0 -0
- /package/dist/{chunk-JSOOLOHP.js.map → chunk-JESSFI7R.js.map} +0 -0
- /package/dist/{chunk-H3RCEM6L.js.map → chunk-K4QPBXV7.js.map} +0 -0
- /package/dist/{chunk-H3HA22Z3.js.map → chunk-KJ3J2DYM.js.map} +0 -0
- /package/dist/{chunk-UZHDNE6M.js.map → chunk-L43B2YGZ.js.map} +0 -0
- /package/dist/{chunk-OTRKBCUB.js.map → chunk-L7UD57TV.js.map} +0 -0
- /package/dist/{chunk-HH5WM5VA.js.map → chunk-LJYXGUQ3.js.map} +0 -0
- /package/dist/{chunk-UJTIMPEE.js.map → chunk-LNYM4PQS.js.map} +0 -0
- /package/dist/{chunk-TZTHGLWN.js.map → chunk-MIXUMGJE.js.map} +0 -0
- /package/dist/{chunk-MOKZ5XZO.js.map → chunk-MWJ6BCZJ.js.map} +0 -0
- /package/dist/{chunk-TYFXPC5D.js.map → chunk-O7WRA3JU.js.map} +0 -0
- /package/dist/{chunk-LQACNCAV.js.map → chunk-OADMSHME.js.map} +0 -0
- /package/dist/{chunk-R4RWQ6YX.js.map → chunk-OLPABGH3.js.map} +0 -0
- /package/dist/{chunk-X25XRSDP.js.map → chunk-ONGZKI5J.js.map} +0 -0
- /package/dist/{chunk-FGAXZ7ET.js.map → chunk-OSZOUSK5.js.map} +0 -0
- /package/dist/{chunk-ZQ7JDYJB.js.map → chunk-PK7YNQ2T.js.map} +0 -0
- /package/dist/{chunk-JTIWQLY5.js.map → chunk-PN3CHL5W.js.map} +0 -0
- /package/dist/{chunk-2JBPS2CV.js.map → chunk-QMQSI4WA.js.map} +0 -0
- /package/dist/{chunk-C3EX5OKN.js.map → chunk-QUSDGZFS.js.map} +0 -0
- /package/dist/{chunk-L5GFFF5G.js.map → chunk-QXRSFH6M.js.map} +0 -0
- /package/dist/{chunk-22RM3UOO.js.map → chunk-QZ4YHQLW.js.map} +0 -0
- /package/dist/{chunk-3E74OM2E.js.map → chunk-RF3TP643.js.map} +0 -0
- /package/dist/{chunk-WBWEKZQ2.js.map → chunk-RIRSFFWA.js.map} +0 -0
- /package/dist/{chunk-AC7WLPXF.js.map → chunk-ROHICQPK.js.map} +0 -0
- /package/dist/{chunk-KZQQ6OLC.js.map → chunk-RP3PC54R.js.map} +0 -0
- /package/dist/{chunk-MZPS46OR.js.map → chunk-SIKCVWM3.js.map} +0 -0
- /package/dist/{chunk-EJBLF2LI.js.map → chunk-SOM4OTR5.js.map} +0 -0
- /package/dist/{chunk-Q5DFEVLE.js.map → chunk-SZZ7BBED.js.map} +0 -0
- /package/dist/{chunk-XRUB4KRV.js.map → chunk-TAGJYHVI.js.map} +0 -0
- /package/dist/{chunk-VJ4IOJQZ.js.map → chunk-TB5JZTLN.js.map} +0 -0
- /package/dist/{chunk-KDAINT54.js.map → chunk-TQJLEVLA.js.map} +0 -0
- /package/dist/{chunk-X3GWGFZP.js.map → chunk-TW57RTKN.js.map} +0 -0
- /package/dist/{chunk-6E4KJMXO.js.map → chunk-V3ANSXCB.js.map} +0 -0
- /package/dist/{chunk-O3O7PXMK.js.map → chunk-WSG4K2TR.js.map} +0 -0
- /package/dist/{chunk-XZAVBONI.js.map → chunk-WXSRSMY3.js.map} +0 -0
- /package/dist/{chunk-BMMXYR7A.js.map → chunk-WZXMZFVB.js.map} +0 -0
- /package/dist/{chunk-IID2MAYZ.js.map → chunk-X3L5HYQM.js.map} +0 -0
- /package/dist/{chunk-6QINKM6T.js.map → chunk-Y2TOB4N5.js.map} +0 -0
- /package/dist/{chunk-2Q7K4F4H.js.map → chunk-YOHGEF2N.js.map} +0 -0
- /package/dist/{chunk-UUXGSDUC.js.map → chunk-Z2LPYAN4.js.map} +0 -0
- /package/dist/{chunk-YD6OZSSY.js.map → chunk-ZICB4OI5.js.map} +0 -0
- /package/dist/{chunk-UYZ4FUC7.js.map → chunk-ZOCAGPS5.js.map} +0 -0
- /package/dist/{chunk-CORECUKT.js.map → chunk-ZZWZUTEP.js.map} +0 -0
- /package/dist/{claim-CG3J32WS.js.map → claim-QHYA5UTF.js.map} +0 -0
- /package/dist/{companies-X6O55ACG.js.map → companies-BNMAOQUQ.js.map} +0 -0
- /package/dist/{company-4CD2OJLB.js.map → company-YANP3G62.js.map} +0 -0
- /package/dist/{complete-JSP6VQYI.js.map → complete-ICZCBO6M.js.map} +0 -0
- /package/dist/{config-NDL2YP37.js.map → config-GIETKZGS.js.map} +0 -0
- /package/dist/{connect-O5NRDY4Y.js.map → connect-ZXGEFS53.js.map} +0 -0
- /package/dist/{conversation-J22BH6O5.js.map → conversation-YIWZIUIK.js.map} +0 -0
- /package/dist/{conversion-report-76S5JOVT.js.map → conversion-report-E35RCZU7.js.map} +0 -0
- /package/dist/{conversion-writes-6HX665JT.js.map → conversion-writes-MUD7WJDH.js.map} +0 -0
- /package/dist/{conversions-I2ZOQHKJ.js.map → conversions-B7HR6JMC.js.map} +0 -0
- /package/dist/{conversions-QZJRF4WN.js.map → conversions-WU7DNFF7.js.map} +0 -0
- /package/dist/{create-GXOFZCR5.js.map → create-EL47XN73.js.map} +0 -0
- /package/dist/{create-DQ5X5AJT.js.map → create-GU5MUZ7U.js.map} +0 -0
- /package/dist/{create-FNPFVKLT.js.map → create-IKQ7A47F.js.map} +0 -0
- /package/dist/{create-VAZ65QNJ.js.map → create-TKQDLX7M.js.map} +0 -0
- /package/dist/{creatives-QWNQDPNE.js.map → creatives-PW6HB4JB.js.map} +0 -0
- /package/dist/{creatives-SFPNXJ6Z.js.map → creatives-S4EGN44U.js.map} +0 -0
- /package/dist/{creatives-4G2V4J6N.js.map → creatives-VBD4T6C7.js.map} +0 -0
- /package/dist/{credentials-VCERJE24.js.map → credentials-57U2UQ7G.js.map} +0 -0
- /package/dist/{crm-J3SCOR4L.js.map → crm-JCYLJQ7K.js.map} +0 -0
- /package/dist/{crm-HODCOAAI.js.map → crm-LQTYPDMZ.js.map} +0 -0
- /package/dist/{currency-BZUNQ4XJ.js.map → currency-5NYTOLEL.js.map} +0 -0
- /package/dist/{custom-conversions-UHRBVUD2.js.map → custom-conversions-NT7ONTEX.js.map} +0 -0
- /package/dist/{customers-EYVTYCGY.js.map → customers-LP6I7POL.js.map} +0 -0
- /package/dist/{delete-RZCW3Y6L.js.map → delete-PZ6GP7J6.js.map} +0 -0
- /package/dist/{delete-7A6T6XBD.js.map → delete-WW4JYQMX.js.map} +0 -0
- /package/dist/{delete-I3W3M6T7.js.map → delete-XZNY426Q.js.map} +0 -0
- /package/dist/{demographics-OFBRSF7A.js.map → demographics-HZY2JEYQ.js.map} +0 -0
- /package/dist/{discard-I773LYVR.js.map → discard-NRTGRVXR.js.map} +0 -0
- /package/dist/{discover-PDSEJR2P.js.map → discover-5ZFAAPNG.js.map} +0 -0
- /package/dist/{domain-7YO5HYHU.js.map → domain-YGKFTN6D.js.map} +0 -0
- /package/dist/{download-IYK3UVBF.js.map → download-XERSDEN3.js.map} +0 -0
- /package/dist/{draft-44KTLX4P.js.map → draft-2EVXU5XB.js.map} +0 -0
- /package/dist/{draft-RSKZSUOS.js.map → draft-CQWYTMSS.js.map} +0 -0
- /package/dist/{draft-6MWXURYC.js.map → draft-EL74RDAG.js.map} +0 -0
- /package/dist/{draft-WOE7KQ7T.js.map → draft-GFZ3KMRX.js.map} +0 -0
- /package/dist/{draft-CKFSZDVI.js.map → draft-JYZA3BFD.js.map} +0 -0
- /package/dist/{draft-2Z7EGKBO.js.map → draft-UNPTTHP4.js.map} +0 -0
- /package/dist/{experiment-AZUKJ7ZO.js.map → experiment-YAX26BOO.js.map} +0 -0
- /package/dist/{extract-ZIW5JFTY.js.map → extract-QMY6WPTV.js.map} +0 -0
- /package/dist/{facets-OLRASLT7.js.map → facets-QHM2IQ3E.js.map} +0 -0
- /package/dist/{feedback-X3GLQ2QF.js.map → feedback-NLPTKWOH.js.map} +0 -0
- /package/dist/{fetch-6XMRKLYH.js.map → fetch-72ZILZHO.js.map} +0 -0
- /package/dist/{fit-BRJSLR7P.js.map → fit-AURKFPAY.js.map} +0 -0
- /package/dist/{flows-LXJHL3KW.js.map → flows-CZPXHOZW.js.map} +0 -0
- /package/dist/{fonts-UUSCLUHW.js.map → fonts-NA26RQ4C.js.map} +0 -0
- /package/dist/{forecast-7DZGLC7Y.js.map → forecast-ARIHRQAX.js.map} +0 -0
- /package/dist/{funding-BSAHWU35.js.map → funding-QDKFNQI2.js.map} +0 -0
- /package/dist/{funnel-2ALYZ3GP.js.map → funnel-4VQB3T3M.js.map} +0 -0
- /package/dist/{ga4-YVKA3V4V.js.map → ga4-N6EBLN2W.js.map} +0 -0
- /package/dist/{generate-VGGXTZBP.js.map → generate-IJLMJC4S.js.map} +0 -0
- /package/dist/{get-OZ7THI2W.js.map → get-LOEUOTG3.js.map} +0 -0
- /package/dist/{get-KVZSVN7U.js.map → get-W3VJIQBN.js.map} +0 -0
- /package/dist/{google-5U5KXEX7.js.map → google-7VEPEBFV.js.map} +0 -0
- /package/dist/{google-ads-YZTK3YTW.js.map → google-ads-YBOJ3XXK.js.map} +0 -0
- /package/dist/{gsc-OJDMSP6H.js.map → gsc-FILOUFCG.js.map} +0 -0
- /package/dist/{history-LXRFZNW7.js.map → history-6LLGAK7B.js.map} +0 -0
- /package/dist/{history-RYTNMGU5.js.map → history-H2SHADAM.js.map} +0 -0
- /package/dist/{history-XDYDNQWK.js.map → history-LJG64M6P.js.map} +0 -0
- /package/dist/{hubspot-MRUCRJLL.js.map → hubspot-6JDARLIU.js.map} +0 -0
- /package/dist/{ideas-TT24LJR5.js.map → ideas-MTWJDRRK.js.map} +0 -0
- /package/dist/{images-PLYPUXM2.js.map → images-RIFC6D3H.js.map} +0 -0
- /package/dist/{ingest-CSPC3RUK.js.map → ingest-K45T4OLM.js.map} +0 -0
- /package/dist/{ingest-MSPQX3Z6.js.map → ingest-MSS52UO5.js.map} +0 -0
- /package/dist/{insights-LZJZGNJZ.js.map → insights-AVNMRFQ4.js.map} +0 -0
- /package/dist/{insights-H6M6VI43.js.map → insights-TBIT6DTF.js.map} +0 -0
- /package/dist/{inspect-VD6CB2NA.js.map → inspect-EBGYJOZ3.js.map} +0 -0
- /package/dist/{intent-HXRSLFIO.js.map → intent-URHTU4AK.js.map} +0 -0
- /package/dist/{job-UFGGBDG7.js.map → job-OJB6KIDV.js.map} +0 -0
- /package/dist/{job-create-XM4NH322.js.map → job-create-C6FGCDW4.js.map} +0 -0
- /package/dist/{job-status-47L5Z57J.js.map → job-status-4RJHESID.js.map} +0 -0
- /package/dist/{keyword-gap-WUHMSTNR.js.map → keyword-gap-WXM6SN6A.js.map} +0 -0
- /package/dist/{keyword-metrics-NJV3WR75.js.map → keyword-metrics-57MUTYMH.js.map} +0 -0
- /package/dist/{keywords-for-site-B7MUDHFH.js.map → keywords-for-site-ABZS7O5B.js.map} +0 -0
- /package/dist/{landing-RKOEVY7L.js.map → landing-AXCYLUQZ.js.map} +0 -0
- /package/dist/{languages-SVTYYYOC.js.map → languages-6XTVTFZC.js.map} +0 -0
- /package/dist/{leads-HFB5UXZJ.js.map → leads-C5BUBBLZ.js.map} +0 -0
- /package/dist/{learn-XNN3DGDF.js.map → learn-M64GVGPX.js.map} +0 -0
- /package/dist/{line-item-writes-VEJ5Y6X4.js.map → line-item-writes-HYLWBQTM.js.map} +0 -0
- /package/dist/{line-items-U6L2TMPG.js.map → line-items-Y4THDHSE.js.map} +0 -0
- /package/dist/{link-ENZQAISO.js.map → link-BU7YCL2M.js.map} +0 -0
- /package/dist/{linkedin-person-3RCX4MI3.js.map → linkedin-person-FEIY7FYQ.js.map} +0 -0
- /package/dist/{list-VYTHVUDP.js.map → list-BKIL7O4G.js.map} +0 -0
- /package/dist/{list-GPTYUCSX.js.map → list-H3C345WG.js.map} +0 -0
- /package/dist/{list-AF522LRC.js.map → list-UGTDZ7YI.js.map} +0 -0
- /package/dist/{locations-7EBZ6KRH.js.map → locations-F4365X4S.js.map} +0 -0
- /package/dist/{locations-5SLLGWZO.js.map → locations-HOI7AUZ2.js.map} +0 -0
- /package/dist/{log-NJR3FJWN.js.map → log-54SJV6MW.js.map} +0 -0
- /package/dist/{lookup-OU6CLATK.js.map → lookup-QNLX2535.js.map} +0 -0
- /package/dist/{map-LIYQCWXU.js.map → map-BPPGQGDV.js.map} +0 -0
- /package/dist/{mcp-QDOAKB3A.js.map → mcp-EXOMBMYL.js.map} +0 -0
- /package/dist/{media-YKCCMLXL.js.map → media-MITWBYVZ.js.map} +0 -0
- /package/dist/{media-DGV2AMZI.js.map → media-WGIEUEZW.js.map} +0 -0
- /package/dist/{media-sources-LFSDIPUB.js.map → media-sources-XEC72K7X.js.map} +0 -0
- /package/dist/{members-KGKQQFMN.js.map → members-VDON57BE.js.map} +0 -0
- /package/dist/{meta-5TRG7RTQ.js.map → meta-NUBBKE2V.js.map} +0 -0
- /package/dist/{metrics-WRERNMRK.js.map → metrics-V6FAZO5A.js.map} +0 -0
- /package/dist/{models-SITHUNAA.js.map → models-TSMFIOZU.js.map} +0 -0
- /package/dist/{normalize-DQPKM3MG.js.map → normalize-632DD2HJ.js.map} +0 -0
- /package/dist/{options-XIH7YPEG.js.map → options-TZYZQZ3M.js.map} +0 -0
- /package/dist/{organization-BUSXIGA4.js.map → organization-FYRXSGB4.js.map} +0 -0
- /package/dist/{output-7X5WPPCA.js.map → output-HZW7LNUL.js.map} +0 -0
- /package/dist/{pages-6YMPZDEY.js.map → pages-UH6XEZBO.js.map} +0 -0
- /package/dist/{performance-PU4NHFUE.js.map → performance-JKXHQIAV.js.map} +0 -0
- /package/dist/{performance-Y2DTYSFV.js.map → performance-OF3N43OP.js.map} +0 -0
- /package/dist/{pixels-WTTLC4O5.js.map → pixels-KXA6R3G3.js.map} +0 -0
- /package/dist/{pixels-DZDVNIVL.js.map → pixels-PYNK73UG.js.map} +0 -0
- /package/dist/{plan-JAWESWJN.js.map → plan-4OYUV2EF.js.map} +0 -0
- /package/dist/{preview-JZXGR4KN.js.map → preview-7E4E3QPT.js.map} +0 -0
- /package/dist/{preview-3UOBVP6M.js.map → preview-FPBM75L2.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-6Y4MDPBH.js.map → promoted-tweet-writes-IJRBFK7W.js.map} +0 -0
- /package/dist/{promoted-tweets-JAR2W6KC.js.map → promoted-tweets-7PYH3RPV.js.map} +0 -0
- /package/dist/{properties-Z5S3LRJ5.js.map → properties-RDOGNY2O.js.map} +0 -0
- /package/dist/{publish-MDVPC77V.js.map → publish-MNSDFPEQ.js.map} +0 -0
- /package/dist/{query-3QFT42PG.js.map → query-GMGWJW3X.js.map} +0 -0
- /package/dist/{query-KKXCMH3Q.js.map → query-K7R5GQ4E.js.map} +0 -0
- /package/dist/{query-QXKGVHZL.js.map → query-PO3RT7BR.js.map} +0 -0
- /package/dist/{questionnaire-U7UYICEA.js.map → questionnaire-4OH6K2BF.js.map} +0 -0
- /package/dist/{read-ENUS7P3L.js.map → read-MU5XGWMK.js.map} +0 -0
- /package/dist/{reddit-ZPKVVZGP.js.map → reddit-JFFMZLJS.js.map} +0 -0
- /package/dist/{refresh-V34YWN3W.js.map → refresh-EJ7WKW3H.js.map} +0 -0
- /package/dist/{release-WRNUOSHB.js.map → release-AFRLCZWB.js.map} +0 -0
- /package/dist/{relevant-pages-OFKZYWR3.js.map → relevant-pages-4YGN3I2U.js.map} +0 -0
- /package/dist/{remove-HKWV7P27.js.map → remove-QD4PITBL.js.map} +0 -0
- /package/dist/{reopen-VHHYVAKC.js.map → reopen-JSC6AVJC.js.map} +0 -0
- /package/dist/{research-G5A2WXVK.js.map → research-MMFUFZGS.js.map} +0 -0
- /package/dist/{research-773Y7GT4.js.map → research-SRISCVBM.js.map} +0 -0
- /package/dist/{reset-GFJ3AKF5.js.map → reset-752CNET3.js.map} +0 -0
- /package/dist/{reset-MVTWA3HT.js.map → reset-R3TQAHRU.js.map} +0 -0
- /package/dist/{resolve-JRSSTIAF.js.map → resolve-EWHSJNBX.js.map} +0 -0
- /package/dist/{retry-AGHA6IVT.js.map → retry-DVHDVHVP.js.map} +0 -0
- /package/dist/{retry-LDJ6FZCZ.js.map → retry-PVULTONO.js.map} +0 -0
- /package/dist/{rules-Y75KR2PC.js.map → rules-4YTY57FM.js.map} +0 -0
- /package/dist/{run-ZLHQNLCF.js.map → run-PCZRYL42.js.map} +0 -0
- /package/dist/{run-NFLKYVIC.js.map → run-PRSAUWAJ.js.map} +0 -0
- /package/dist/{schedule-45CJDHIX.js.map → schedule-6YTZBCZA.js.map} +0 -0
- /package/dist/{scheduled-agents-72MWHK63.js.map → scheduled-agents-XCPU57LU.js.map} +0 -0
- /package/dist/{schema-VX66FH4O.js.map → schema-4PS5BDG3.js.map} +0 -0
- /package/dist/{search-Y6TS5UZS.js.map → search-IMZD5RGD.js.map} +0 -0
- /package/dist/{sends-4ZO6BNZ4.js.map → sends-I2B6F5NW.js.map} +0 -0
- /package/dist/{setup-links-Y4YYDQBK.js.map → setup-links-PTL6RF2J.js.map} +0 -0
- /package/dist/{shared-UPMEBTVP.js.map → shared-Z7INVKCZ.js.map} +0 -0
- /package/dist/{shopify-HGFUHYT7.js.map → shopify-SDZZ5HTA.js.map} +0 -0
- /package/dist/{site-WZ654OP3.js.map → site-NGQ7K6UD.js.map} +0 -0
- /package/dist/{sitemaps-P3K5Z4TW.js.map → sitemaps-EOMSRKOD.js.map} +0 -0
- /package/dist/{sites-TURWC53D.js.map → sites-6M73AONG.js.map} +0 -0
- /package/dist/{sources-FCBFLR2J.js.map → sources-NKFSCI6M.js.map} +0 -0
- /package/dist/{sources-7ZFY3VEZ.js.map → sources-O4CQ5KSX.js.map} +0 -0
- /package/dist/{stats-XNKAJD2Z.js.map → stats-MFEH2TSW.js.map} +0 -0
- /package/dist/{status-L7LYUD3F.js.map → status-DLYRPGFS.js.map} +0 -0
- /package/dist/{stock-73PLAUYU.js.map → stock-RDCDVBHX.js.map} +0 -0
- /package/dist/{studies-5G67ODR2.js.map → studies-SSA3SR2L.js.map} +0 -0
- /package/dist/{studio-D2OMFCZZ.js.map → studio-MBHPDGMN.js.map} +0 -0
- /package/dist/{sync-XBC3PSSV.js.map → sync-BEW3TZP7.js.map} +0 -0
- /package/dist/{sync-QVEUQKU5.js.map → sync-SI25TKY5.js.map} +0 -0
- /package/dist/{sync-definition-IM2NY5QC.js.map → sync-definition-RECCA3QH.js.map} +0 -0
- /package/dist/{tag-manager-3GIW6BPB.js.map → tag-manager-JFC6YYVP.js.map} +0 -0
- /package/dist/{tags-UNUZVGUA.js.map → tags-IJIGZYR3.js.map} +0 -0
- /package/dist/{tags-2KNOJ7A6.js.map → tags-K4HIKHNU.js.map} +0 -0
- /package/dist/{tags-COALQ2CT.js.map → tags-OTA55BQ6.js.map} +0 -0
- /package/dist/{tags-MVC56SHA.js.map → tags-QF2V4B3M.js.map} +0 -0
- /package/dist/{tags-HCJTTLSR.js.map → tags-SK7WXMBS.js.map} +0 -0
- /package/dist/{targeting-constants-RJS2STR5.js.map → targeting-constants-RF2732EW.js.map} +0 -0
- /package/dist/{targeting-criteria-SMBIEM7U.js.map → targeting-criteria-7BUUYDYC.js.map} +0 -0
- /package/dist/{targets-BNH37YAQ.js.map → targets-7V3NCQSD.js.map} +0 -0
- /package/dist/{terms-AATAGKPT.js.map → terms-XFL6QO7A.js.map} +0 -0
- /package/dist/{testimonials-IIAT5IDM.js.map → testimonials-XYD5DLBJ.js.map} +0 -0
- /package/dist/{top-companies-PY2NL2GS.js.map → top-companies-LI26TONY.js.map} +0 -0
- /package/dist/{transcript-7WFXVRVW.js.map → transcript-FTHDWMGU.js.map} +0 -0
- /package/dist/{triggers-RBD2XGNG.js.map → triggers-3LHJVK5P.js.map} +0 -0
- /package/dist/{tweets-MLDLLLDB.js.map → tweets-6PQHJXJC.js.map} +0 -0
- /package/dist/{unlink-5IMEUVIS.js.map → unlink-BMOUBGWO.js.map} +0 -0
- /package/dist/{unstage-65DUBYNZ.js.map → unstage-O23ILHCY.js.map} +0 -0
- /package/dist/{unstage-DSOVSWEK.js.map → unstage-YEW5KXJL.js.map} +0 -0
- /package/dist/{update-HSS6CVUK.js.map → update-2IWZA5UU.js.map} +0 -0
- /package/dist/{update-XWL3Q5QY.js.map → update-G7YZICSU.js.map} +0 -0
- /package/dist/{update-FIU2ECYQ.js.map → update-T5INCQJZ.js.map} +0 -0
- /package/dist/{update-7JVV5ZL3.js.map → update-UTQVTG45.js.map} +0 -0
- /package/dist/{upload-B5SM33MK.js.map → upload-UXYJDA2U.js.map} +0 -0
- /package/dist/{url-options-4J3FRXHO.js.map → url-options-Y7I5EL55.js.map} +0 -0
- /package/dist/{url-params-TGCGWKAJ.js.map → url-params-PE4XAQNH.js.map} +0 -0
- /package/dist/{videos-NITQKILV.js.map → videos-AHOLXU42.js.map} +0 -0
- /package/dist/{videos-FMV4AVB2.js.map → videos-EVPJHY3B.js.map} +0 -0
- /package/dist/{viewer-check-2W6BTVQV.js.map → viewer-check-NA4TMNY4.js.map} +0 -0
- /package/dist/{web-K2EMYVCD.js.map → web-7EODEH25.js.map} +0 -0
- /package/dist/{winning-ads-Q3RXH7EC.js.map → winning-ads-5UKX6QV7.js.map} +0 -0
- /package/dist/{write-commands-XLZCRVTU.js.map → write-commands-LHEJESKL.js.map} +0 -0
- /package/dist/{write-commands-OBQPQUIE.js.map → write-commands-SD6DXVNK.js.map} +0 -0
- /package/dist/{x-PW43O6JS.js.map → x-R72UTFQT.js.map} +0 -0
package/dist/chunk-QVQKCVP7.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
// src/commands/creatives/rules-view.ts
|
|
2
|
-
import { readdir, readFile } from "fs/promises";
|
|
3
|
-
import path from "path";
|
|
4
|
-
var RULE_CHARS = 200;
|
|
5
|
-
var QUOTE_CHARS = 160;
|
|
6
|
-
var RETIRE_AFTER = 3;
|
|
7
|
-
var MANY_RULES = 40;
|
|
8
|
-
var cut = (text, max) => text.length > max ? `${text.slice(0, max - 1)}\u2026` : text;
|
|
9
|
-
function fromOf(rule) {
|
|
10
|
-
if (rule.origin === "declared") return "BRAND.md";
|
|
11
|
-
const when = rule.source.date ? ` ${rule.source.date}` : "";
|
|
12
|
-
const where = rule.source.slug ? ` on ${rule.source.slug}` : "";
|
|
13
|
-
return `taught${when}${where}`;
|
|
14
|
-
}
|
|
15
|
-
function checkView(check) {
|
|
16
|
-
return {
|
|
17
|
-
...check?.forbid ? { bans: check.forbid } : {},
|
|
18
|
-
...check?.allow ? { except: check.allow } : {},
|
|
19
|
-
...check?.require ? { requires: check.require } : {},
|
|
20
|
-
...check?.people ? { people: check.people } : {}
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
function rulesView(rules, opts = {}) {
|
|
24
|
-
const max = opts.full ? Number.POSITIVE_INFINITY : RULE_CHARS;
|
|
25
|
-
const quoteMax = opts.full ? Number.POSITIVE_INFINITY : QUOTE_CHARS;
|
|
26
|
-
return rules.map((r) => ({
|
|
27
|
-
id: r.id,
|
|
28
|
-
strength: r.strength,
|
|
29
|
-
applies: r.applies,
|
|
30
|
-
rule: cut(r.text, max),
|
|
31
|
-
...r.source.quote ? { their_words: cut(r.source.quote, quoteMax) } : {},
|
|
32
|
-
from: fromOf(r),
|
|
33
|
-
...checkView(r.check),
|
|
34
|
-
...Object.keys(r.scope).length > 0 ? { scope: r.scope } : {},
|
|
35
|
-
...r.status === "retired" ? { status: "retired" } : {},
|
|
36
|
-
...r.retiredBy ? { retired_by: r.retiredBy } : {}
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
39
|
-
function waiverCounts(specs) {
|
|
40
|
-
const counts = /* @__PURE__ */ new Map();
|
|
41
|
-
for (const spec of specs) {
|
|
42
|
-
const waive = spec?.waive;
|
|
43
|
-
if (!Array.isArray(waive)) continue;
|
|
44
|
-
for (const entry of waive) {
|
|
45
|
-
const id = entry?.rule;
|
|
46
|
-
if (typeof id === "string" && id) counts.set(id, (counts.get(id) ?? 0) + 1);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return counts;
|
|
50
|
-
}
|
|
51
|
-
async function readCreativeSpecs(root) {
|
|
52
|
-
const dir = path.join(root, "src", "creatives");
|
|
53
|
-
const entries = await readdir(dir, { withFileTypes: true }).catch(() => []);
|
|
54
|
-
const specs = await Promise.all(
|
|
55
|
-
entries.filter((e) => e.isDirectory() && !e.name.startsWith("_")).map(
|
|
56
|
-
(e) => readFile(path.join(dir, e.name, "prompt.json"), "utf8").then((raw) => JSON.parse(raw)).catch(() => null)
|
|
57
|
-
)
|
|
58
|
-
);
|
|
59
|
-
return specs.filter((s) => s !== null);
|
|
60
|
-
}
|
|
61
|
-
function rulesHints(active, waived) {
|
|
62
|
-
const hints = [];
|
|
63
|
-
for (const rule of active) {
|
|
64
|
-
const times = waived.get(rule.id) ?? 0;
|
|
65
|
-
if (times >= RETIRE_AFTER) {
|
|
66
|
-
hints.push(
|
|
67
|
-
`${rule.id} was waived by ${times} ads: ask the person whether it still holds, and \`baker creatives rules retire ${rule.id}\` if not.`
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
if (active.length > MANY_RULES) {
|
|
72
|
-
hints.push(
|
|
73
|
-
`${active.length} active rules: every prompt carries them all. Ask the person whether some can be retired or merged.`
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
return hints;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export {
|
|
80
|
-
rulesView,
|
|
81
|
-
waiverCounts,
|
|
82
|
-
readCreativeSpecs,
|
|
83
|
-
rulesHints
|
|
84
|
-
};
|
|
85
|
-
//# sourceMappingURL=chunk-QVQKCVP7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/creatives/rules-view.ts"],"sourcesContent":["/**\n * The company's creative rules as the agent reads them, in `baker creatives brief` and\n * `baker creatives rules list`: each one's id, strength and words, the person's own words when\n * they taught it, and where it came from; and which ones ads keep waiving. Pure, but for the read\n * of the ads' waivers.\n */\nimport { readdir, readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport type { CreativeRule } from \"../../engine/creative-rules/schema.ts\";\n\n/** A rule cut to this in the compact view: the whole is behind `--full`. */\nconst RULE_CHARS = 200;\nconst QUOTE_CHARS = 160;\n/** Waived this often, a rule may no longer hold. */\nconst RETIRE_AFTER = 3;\n/** Past this many active rules, every prompt carries a long list: worth a look. */\nconst MANY_RULES = 40;\n\nconst cut = (text: string, max: number) => (text.length > max ? `${text.slice(0, max - 1)}…` : text);\n\n/** Where a rule came from, in a few words. */\nfunction fromOf(rule: CreativeRule): string {\n if (rule.origin === \"declared\") return \"BRAND.md\";\n const when = rule.source.date ? ` ${rule.source.date}` : \"\";\n const where = rule.source.slug ? ` on ${rule.source.slug}` : \"\";\n return `taught${when}${where}`;\n}\n\nexport type RuleView = {\n id: string;\n strength: CreativeRule[\"strength\"];\n applies: CreativeRule[\"applies\"];\n rule: string;\n their_words?: string;\n from: string;\n /** The words it bans in an ad's words, and the phrases that may still hold them. */\n bans?: string[];\n except?: string[];\n /** Words every ad must say. */\n requires?: string[];\n /** Only real people may appear. */\n people?: \"real\";\n scope?: CreativeRule[\"scope\"];\n status?: \"retired\";\n retired_by?: string;\n};\n\n/** What code checks of a rule, as the agent reads it. Pure. */\nfunction checkView(check: CreativeRule[\"check\"]): Pick<RuleView, \"bans\" | \"except\" | \"requires\" | \"people\"> {\n return {\n ...(check?.forbid ? { bans: check.forbid } : {}),\n ...(check?.allow ? { except: check.allow } : {}),\n ...(check?.require ? { requires: check.require } : {}),\n ...(check?.people ? { people: check.people } : {}),\n };\n}\n\n/** Each rule as the agent reads it. Pure. */\nexport function rulesView(rules: readonly CreativeRule[], opts: { full?: boolean } = {}): RuleView[] {\n const max = opts.full ? Number.POSITIVE_INFINITY : RULE_CHARS;\n const quoteMax = opts.full ? Number.POSITIVE_INFINITY : QUOTE_CHARS;\n return rules.map((r) => ({\n id: r.id,\n strength: r.strength,\n applies: r.applies,\n rule: cut(r.text, max),\n ...(r.source.quote ? { their_words: cut(r.source.quote, quoteMax) } : {}),\n from: fromOf(r),\n ...checkView(r.check),\n ...(Object.keys(r.scope).length > 0 ? { scope: r.scope } : {}),\n ...(r.status === \"retired\" ? { status: \"retired\" as const } : {}),\n ...(r.retiredBy ? { retired_by: r.retiredBy } : {}),\n }));\n}\n\n/** How many ads waive each rule (`waive: [{rule, why}]` in their prompt.json). Pure. */\nexport function waiverCounts(specs: readonly unknown[]): Map<string, number> {\n const counts = new Map<string, number>();\n for (const spec of specs) {\n const waive = (spec as { waive?: unknown } | null)?.waive;\n if (!Array.isArray(waive)) continue;\n for (const entry of waive) {\n const id = (entry as { rule?: unknown } | null)?.rule;\n if (typeof id === \"string\" && id) counts.set(id, (counts.get(id) ?? 0) + 1);\n }\n }\n return counts;\n}\n\n/** Every creative's prompt.json, parsed; one that cannot be read is left out. */\nexport async function readCreativeSpecs(root: string): Promise<unknown[]> {\n const dir = path.join(root, \"src\", \"creatives\");\n const entries = await readdir(dir, { withFileTypes: true }).catch(() => []);\n const specs = await Promise.all(\n entries\n .filter((e) => e.isDirectory() && !e.name.startsWith(\"_\"))\n .map((e) =>\n readFile(path.join(dir, e.name, \"prompt.json\"), \"utf8\")\n .then((raw): unknown => JSON.parse(raw))\n .catch(() => null),\n ),\n );\n return specs.filter((s) => s !== null);\n}\n\n/** What the rules say to do next: retire one ads keep waiving, look at a list grown long. Pure. */\nexport function rulesHints(active: readonly CreativeRule[], waived: ReadonlyMap<string, number>): string[] {\n const hints: string[] = [];\n for (const rule of active) {\n const times = waived.get(rule.id) ?? 0;\n if (times >= RETIRE_AFTER) {\n hints.push(\n `${rule.id} was waived by ${times} ads: ask the person whether it still holds, and \\`baker creatives rules retire ${rule.id}\\` if not.`,\n );\n }\n }\n if (active.length > MANY_RULES) {\n hints.push(\n `${active.length} active rules: every prompt carries them all. Ask the person whether some can be retired or merged.`,\n );\n }\n return hints;\n}\n"],"mappings":"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","names":[]}
|
package/dist/chunk-R4RWQ6YX.js
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
hintLines,
|
|
3
|
-
splitHints
|
|
4
|
-
} from "./chunk-D5FY4FAK.js";
|
|
5
|
-
import {
|
|
6
|
-
isNotConnectedError,
|
|
7
|
-
writeJsonEnvelope
|
|
8
|
-
} from "./chunk-RBCO3C3Q.js";
|
|
9
|
-
import {
|
|
10
|
-
ApiError,
|
|
11
|
-
apiPost
|
|
12
|
-
} from "./chunk-QEREDRZO.js";
|
|
13
|
-
import {
|
|
14
|
-
requireChatId,
|
|
15
|
-
resolveChatId
|
|
16
|
-
} from "./chunk-45D6WRCJ.js";
|
|
17
|
-
|
|
18
|
-
// src/commands/tag-manager/shared.ts
|
|
19
|
-
import { readFileSync } from "fs";
|
|
20
|
-
function failValidation(message) {
|
|
21
|
-
writeJsonEnvelope({ ok: false, error: { code: "VALIDATION_ERROR", message } });
|
|
22
|
-
process.exit(1);
|
|
23
|
-
}
|
|
24
|
-
function requireTarget(args, entity) {
|
|
25
|
-
const positional = Array.isArray(args._) ? args._[0] : void 0;
|
|
26
|
-
const target = args.id ?? args.target ?? positional;
|
|
27
|
-
if (typeof target !== "string" || target.length === 0) {
|
|
28
|
-
failValidation(`pass the ${entity} id or path as the positional argument`);
|
|
29
|
-
}
|
|
30
|
-
return target;
|
|
31
|
-
}
|
|
32
|
-
function loadJsonArg(args, flag = "json") {
|
|
33
|
-
const inline = args[flag];
|
|
34
|
-
const file = args.file;
|
|
35
|
-
const raw = typeof file === "string" && file.length > 0 ? readFileSync(file, "utf8") : typeof inline === "string" && inline.length > 0 ? inline : void 0;
|
|
36
|
-
if (raw === void 0) {
|
|
37
|
-
failValidation(`pass --${flag} with inline JSON or --file with a path to a JSON file`);
|
|
38
|
-
}
|
|
39
|
-
try {
|
|
40
|
-
const parsed = JSON.parse(raw);
|
|
41
|
-
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
42
|
-
failValidation(`--${flag} must be a JSON object`);
|
|
43
|
-
}
|
|
44
|
-
return parsed;
|
|
45
|
-
} catch {
|
|
46
|
-
return failValidation(`--${flag} is not valid JSON`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
var RETRYABLE_CODES = /* @__PURE__ */ new Set(["RATE_LIMITED", "UNAVAILABLE", "INTERNAL_ERROR", "NETWORK_ERROR", "TIMEOUT"]);
|
|
50
|
-
function handleError(err) {
|
|
51
|
-
if (err instanceof ApiError) {
|
|
52
|
-
writeJsonEnvelope({
|
|
53
|
-
ok: false,
|
|
54
|
-
error: {
|
|
55
|
-
code: err.code,
|
|
56
|
-
message: err.message,
|
|
57
|
-
...err.code === "UNAUTHORIZED" || err.code === "FORBIDDEN" && isNotConnectedError(err.code, err.message) ? {
|
|
58
|
-
fix: {
|
|
59
|
-
action: "request_connection",
|
|
60
|
-
explanation: 'Tag Manager is not connected for this company yet, or no container has been picked. Don\'t send the user to Settings \u2014 call the `request_connection` tool with { platform: "google-tag-manager", reason } and they connect and pick their containers (they can pick more than one) from inside the chat. `request_tag_input` is not the route: that form manages the container snippet on the site, not what runs inside the container, and it cannot pick a container. If the `request_connection` call fails, say so plainly and give the exact route: dashboard \u2192 Brain \u2192 Integrations \u2192 Platforms \u2192 Google Tag Manager, where they also pick the container. Then carry on with the rest of the task.'
|
|
61
|
-
}
|
|
62
|
-
} : {},
|
|
63
|
-
retryable: RETRYABLE_CODES.has(err.code)
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
process.exit(1);
|
|
67
|
-
}
|
|
68
|
-
writeJsonEnvelope({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error", retryable: true } });
|
|
69
|
-
process.exit(1);
|
|
70
|
-
}
|
|
71
|
-
var TAG_MANAGER_TIMEOUT_MS = 18e4;
|
|
72
|
-
var STAGE_HINTS = [
|
|
73
|
-
"Staged only \u2014 nothing has changed in Tag Manager yet. These apply when the chat completes, in dependency order, and close as a Tag Manager version that is then published, so they do go live on the user's site. Say the changes are ready and go live when they publish \u2014 not that they are live already."
|
|
74
|
-
];
|
|
75
|
-
async function stageOp(op) {
|
|
76
|
-
const chatId = requireChatId();
|
|
77
|
-
try {
|
|
78
|
-
const { data, hints } = splitHints(
|
|
79
|
-
await apiPost(
|
|
80
|
-
"/api/tag-manager/draft/stage",
|
|
81
|
-
{ chatId, op },
|
|
82
|
-
{ timeoutMs: TAG_MANAGER_TIMEOUT_MS }
|
|
83
|
-
)
|
|
84
|
-
);
|
|
85
|
-
writeJsonEnvelope({ ok: true, data, hints: [...hints, ...STAGE_HINTS] });
|
|
86
|
-
} catch (err) {
|
|
87
|
-
handleError(err);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
async function draftAction(path, body, chat) {
|
|
91
|
-
const chatId = resolveChatId(chat);
|
|
92
|
-
try {
|
|
93
|
-
const { data, hints } = splitHints(
|
|
94
|
-
await apiPost(path, { chatId, ...body }, { timeoutMs: TAG_MANAGER_TIMEOUT_MS })
|
|
95
|
-
);
|
|
96
|
-
writeJsonEnvelope({ ok: true, data, ...hints.length > 0 ? { hints } : {} });
|
|
97
|
-
return data;
|
|
98
|
-
} catch (err) {
|
|
99
|
-
handleError(err);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
function renderDraft(response) {
|
|
103
|
-
if (response.count === 0) {
|
|
104
|
-
return "No Tag Manager changes staged on this chat.";
|
|
105
|
-
}
|
|
106
|
-
const lines = [
|
|
107
|
-
response.status === "discarded" ? `${response.count} Tag Manager change(s) discarded with their chat \u2014 none will apply` : `${response.count} staged Tag Manager change(s)`,
|
|
108
|
-
...response.ops.flatMap((op) => {
|
|
109
|
-
const status = op.result ? ` [${op.result.status}]` : "";
|
|
110
|
-
return [` ${op.ref} ${op.summary}${status}`, ...(op.warnings ?? []).map((warning) => ` \u26A0 ${warning}`)];
|
|
111
|
-
})
|
|
112
|
-
];
|
|
113
|
-
if (response.versionId) {
|
|
114
|
-
lines.push(
|
|
115
|
-
"",
|
|
116
|
-
response.published ? `Applied and published as Tag Manager version ${response.versionId}. These changes are live on the site.` : `Applied into Tag Manager version ${response.versionId}. It is NOT published \u2014 publish it in Tag Manager to go live.`
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
if (response.compilerError) {
|
|
120
|
-
lines.push("", `Tag Manager reported a problem building the version: ${response.compilerError}`);
|
|
121
|
-
}
|
|
122
|
-
return lines.join("\n");
|
|
123
|
-
}
|
|
124
|
-
async function draftList(json, chat, full = false) {
|
|
125
|
-
const chatId = resolveChatId(chat);
|
|
126
|
-
try {
|
|
127
|
-
const response = await apiPost("/api/tag-manager/draft", {
|
|
128
|
-
chatId,
|
|
129
|
-
...full ? { full: true } : {}
|
|
130
|
-
});
|
|
131
|
-
const { data, hints } = splitHints(response);
|
|
132
|
-
if (json || full) {
|
|
133
|
-
writeJsonEnvelope({ ok: true, data, ...hints.length > 0 ? { hints } : {} });
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
process.stdout.write(`${renderDraft(data)}${hintLines(response)}
|
|
137
|
-
`);
|
|
138
|
-
} catch (err) {
|
|
139
|
-
handleError(err);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export {
|
|
144
|
-
requireTarget,
|
|
145
|
-
loadJsonArg,
|
|
146
|
-
handleError,
|
|
147
|
-
TAG_MANAGER_TIMEOUT_MS,
|
|
148
|
-
stageOp,
|
|
149
|
-
draftAction,
|
|
150
|
-
draftList
|
|
151
|
-
};
|
|
152
|
-
//# sourceMappingURL=chunk-R4RWQ6YX.js.map
|
package/dist/chunk-RBCO3C3Q.js
DELETED
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ApiError,
|
|
3
|
-
apiGet
|
|
4
|
-
} from "./chunk-QEREDRZO.js";
|
|
5
|
-
import {
|
|
6
|
-
getEnv,
|
|
7
|
-
optionalTargetCompany
|
|
8
|
-
} from "./chunk-45D6WRCJ.js";
|
|
9
|
-
|
|
10
|
-
// src/error-handler.ts
|
|
11
|
-
var REQUEST_CONNECTION_PLATFORM = {
|
|
12
|
-
google_ads: "google-ads",
|
|
13
|
-
ga4: "google-analytics",
|
|
14
|
-
gsc: "google-search-console",
|
|
15
|
-
linkedin_ads: "linkedin",
|
|
16
|
-
meta_ads: "meta",
|
|
17
|
-
x_ads: "x-ads"
|
|
18
|
-
};
|
|
19
|
-
var PLATFORM_NAME = {
|
|
20
|
-
google_ads: "Google Ads",
|
|
21
|
-
ga4: "Google Analytics 4",
|
|
22
|
-
gsc: "Google Search Console",
|
|
23
|
-
x_ads: "X Ads",
|
|
24
|
-
meta_ads: "Meta Ads",
|
|
25
|
-
linkedin_ads: "LinkedIn Ads"
|
|
26
|
-
};
|
|
27
|
-
function connectionFixExplanation(platform, originalMessage) {
|
|
28
|
-
const name = PLATFORM_NAME[platform];
|
|
29
|
-
const slug = REQUEST_CONNECTION_PLATFORM[platform];
|
|
30
|
-
if (optionalTargetCompany()) {
|
|
31
|
-
return `${name} is not connected for that company. It can only be connected in that company's own workspace, never with \`request_connection\` from here. Show that company as not connected for ${name} and carry on with the others.`;
|
|
32
|
-
}
|
|
33
|
-
if (originalMessage !== void 0 && SIGN_IN_ENDED.test(originalMessage)) {
|
|
34
|
-
return `${name} is connected, but its sign-in no longer works (it expired, or was revoked on the platform) \u2014 this is not a Baker error, and retrying later cannot fix it: only the user signing in again can. Call the \`request_connection\` tool now with { platform: "${slug}", reason } \u2014 the card offers Reconnect. If that call fails, give the exact route: dashboard \u2192 Brain \u2192 Integrations \u2192 Platforms \u2192 ${name} \u2192 Reconnect. Then carry on with the rest of the task and say what stays unavailable until it is reconnected.`;
|
|
35
|
-
}
|
|
36
|
-
return `${name} is not connected for this company (or no account has been picked). Don't send the user to Settings or end the turn here \u2014 call the \`request_connection\` tool with { platform: "${slug}", reason } and they connect and pick their accounts from inside the chat. If the \`request_connection\` call fails, say so plainly and give the exact route: dashboard \u2192 Brain \u2192 Integrations \u2192 Platforms \u2192 ${name}. Then carry on with the rest of the task and say what stays unavailable until it is connected.`;
|
|
37
|
-
}
|
|
38
|
-
var SIGN_IN_ENDED = /connection expired|must reconnect/i;
|
|
39
|
-
function handleConnectionError(platform, originalMessage) {
|
|
40
|
-
const platformName = PLATFORM_NAME[platform];
|
|
41
|
-
const alternative = {
|
|
42
|
-
google_ads: "keywords-for-site or research advertisers",
|
|
43
|
-
ga4: "lighthouse for page performance",
|
|
44
|
-
gsc: "keywords-for-site or research keyword-gap",
|
|
45
|
-
x_ads: "research advertisers",
|
|
46
|
-
meta_ads: "research advertisers or research keyword-ideas",
|
|
47
|
-
linkedin_ads: "research advertisers (LinkedIn Ad Library) or research keyword-ideas"
|
|
48
|
-
}[platform];
|
|
49
|
-
const code = {
|
|
50
|
-
google_ads: "NO_GOOGLE_ADS_CONNECTION",
|
|
51
|
-
ga4: "NO_GA4_CONNECTION",
|
|
52
|
-
gsc: "NO_GSC_CONNECTION",
|
|
53
|
-
x_ads: "NO_X_ADS_CONNECTION",
|
|
54
|
-
meta_ads: "NO_META_ADS_CONNECTION",
|
|
55
|
-
linkedin_ads: "NO_LINKEDIN_ADS_CONNECTION"
|
|
56
|
-
}[platform];
|
|
57
|
-
const envelope = {
|
|
58
|
-
ok: false,
|
|
59
|
-
error: {
|
|
60
|
-
code,
|
|
61
|
-
message: originalMessage || `No ${platformName} connection found for this company.`,
|
|
62
|
-
fix: optionalTargetCompany() ? { action: "continue_without", explanation: connectionFixExplanation(platform) } : {
|
|
63
|
-
action: "request_connection",
|
|
64
|
-
explanation: `${connectionFixExplanation(platform, originalMessage)} (Optional fallback for estimated external insights: 'baker research ${alternative}'.)`
|
|
65
|
-
},
|
|
66
|
-
retryable: false
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
writeJsonEnvelope(envelope);
|
|
70
|
-
process.exit(1);
|
|
71
|
-
}
|
|
72
|
-
function isNotConnectedError(code, message) {
|
|
73
|
-
if (code !== "NOT_FOUND" && code !== "UNAUTHORIZED" && code !== "FORBIDDEN") {
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
return /no .* connection found|not connected|no .* (selected|picked)|is not in .* connected/i.test(message);
|
|
77
|
-
}
|
|
78
|
-
function needsConnectionFix(code, message) {
|
|
79
|
-
if (code === "UNAUTHORIZED") {
|
|
80
|
-
return true;
|
|
81
|
-
}
|
|
82
|
-
return isNotConnectedError(code, message);
|
|
83
|
-
}
|
|
84
|
-
function isOrganizationReadRefusal(message) {
|
|
85
|
-
return message.startsWith("The organization workspace only reads its companies");
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// src/commands/ads/cache.ts
|
|
89
|
-
import { createHash } from "crypto";
|
|
90
|
-
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "fs";
|
|
91
|
-
import { homedir } from "os";
|
|
92
|
-
import { join } from "path";
|
|
93
|
-
function cacheDir() {
|
|
94
|
-
const company = optionalTargetCompany()?.replace(/[^a-zA-Z0-9_]/g, "");
|
|
95
|
-
return join(homedir(), ".baker", "cache", "ads", ...company ? ["company", company] : []);
|
|
96
|
-
}
|
|
97
|
-
function ensureDir(dir) {
|
|
98
|
-
if (!existsSync(dir)) {
|
|
99
|
-
mkdirSync(dir, { recursive: true });
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
function hashKey(key) {
|
|
103
|
-
return createHash("sha256").update(key).digest("hex").slice(0, 16);
|
|
104
|
-
}
|
|
105
|
-
function cachePath(category, key) {
|
|
106
|
-
const dir = join(cacheDir(), category);
|
|
107
|
-
ensureDir(dir);
|
|
108
|
-
return join(dir, `${hashKey(key)}.json`);
|
|
109
|
-
}
|
|
110
|
-
function cacheGet(category, key) {
|
|
111
|
-
const path = cachePath(category, key);
|
|
112
|
-
if (!existsSync(path)) {
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
try {
|
|
116
|
-
const raw = readFileSync(path, "utf-8");
|
|
117
|
-
const entry = JSON.parse(raw);
|
|
118
|
-
if (entry.expiresAt < Date.now()) {
|
|
119
|
-
rmSync(path, { force: true });
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
return entry;
|
|
123
|
-
} catch {
|
|
124
|
-
rmSync(path, { force: true });
|
|
125
|
-
return null;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
function cacheSet(category, key, data, ttlMs, fields) {
|
|
129
|
-
const path = cachePath(category, key);
|
|
130
|
-
const entry = {
|
|
131
|
-
expiresAt: Date.now() + ttlMs,
|
|
132
|
-
data,
|
|
133
|
-
fields
|
|
134
|
-
};
|
|
135
|
-
writeFileSync(path, JSON.stringify(entry), "utf-8");
|
|
136
|
-
}
|
|
137
|
-
var HOUR = 60 * 60 * 1e3;
|
|
138
|
-
var MINUTE = 60 * 1e3;
|
|
139
|
-
function getQueryTtl(query) {
|
|
140
|
-
const upper = query.toUpperCase();
|
|
141
|
-
if (upper.includes("TODAY")) {
|
|
142
|
-
return 15 * MINUTE;
|
|
143
|
-
}
|
|
144
|
-
if (upper.includes("LAST_7_DAYS") || upper.includes("LAST_14_DAYS")) {
|
|
145
|
-
return 1 * HOUR;
|
|
146
|
-
}
|
|
147
|
-
return 6 * HOUR;
|
|
148
|
-
}
|
|
149
|
-
function buildQueryCacheKey(customerId, query) {
|
|
150
|
-
const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
151
|
-
return `${customerId}:${today}:${query.trim().replace(/\s+/g, " ")}`;
|
|
152
|
-
}
|
|
153
|
-
function getManagerIdForCustomer(customerId) {
|
|
154
|
-
const cached = cacheGet("accounts", "list");
|
|
155
|
-
if (!cached) return void 0;
|
|
156
|
-
const account = cached.data.find((a) => a.id === customerId);
|
|
157
|
-
if (account?.access_type === "managed") return account.manager_id;
|
|
158
|
-
return void 0;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// src/commands/ads/output.ts
|
|
162
|
-
function writeAdsJson(envelope) {
|
|
163
|
-
process.stdout.write(`${JSON.stringify(envelope, null, 2)}
|
|
164
|
-
`);
|
|
165
|
-
}
|
|
166
|
-
function writeJsonEnvelope(envelope) {
|
|
167
|
-
process.stdout.write(`${JSON.stringify(envelope, null, 2)}
|
|
168
|
-
`);
|
|
169
|
-
}
|
|
170
|
-
var TABLE_OUTPUT_FORMATS = ["json", "csv", "jsonl", "md"];
|
|
171
|
-
function outputFormatRefusal(format, supported) {
|
|
172
|
-
if (supported.includes(format)) return null;
|
|
173
|
-
const list = supported.length > 1 ? `${supported.slice(0, -1).join(", ")} or ${supported.at(-1)}` : supported.join("");
|
|
174
|
-
return `--output ${format} is not supported \u2014 use ${list}`;
|
|
175
|
-
}
|
|
176
|
-
function toCsvRow(values) {
|
|
177
|
-
return values.map((v) => {
|
|
178
|
-
if (v.includes(",") || v.includes('"') || v.includes("\n")) {
|
|
179
|
-
return `"${v.replace(/"/g, '""')}"`;
|
|
180
|
-
}
|
|
181
|
-
return v;
|
|
182
|
-
}).join(",");
|
|
183
|
-
}
|
|
184
|
-
function flattenRow(row) {
|
|
185
|
-
const flat = {};
|
|
186
|
-
for (const [key, val] of Object.entries(row)) {
|
|
187
|
-
flat[key] = typeof val === "object" && val !== null ? JSON.stringify(val) : String(val ?? "");
|
|
188
|
-
}
|
|
189
|
-
return flat;
|
|
190
|
-
}
|
|
191
|
-
function writeWhole(lines) {
|
|
192
|
-
process.stdout.write(`${lines.join("\n")}
|
|
193
|
-
`);
|
|
194
|
-
}
|
|
195
|
-
function writeAdsCsv(data, fields) {
|
|
196
|
-
if (data.length === 0) return;
|
|
197
|
-
const cols = fields ?? Object.keys(data[0] ?? {});
|
|
198
|
-
const lines = [toCsvRow(cols)];
|
|
199
|
-
for (const row of data) {
|
|
200
|
-
const flat = flattenRow(row);
|
|
201
|
-
lines.push(toCsvRow(cols.map((f) => flat[f] ?? "")));
|
|
202
|
-
}
|
|
203
|
-
writeWhole(lines);
|
|
204
|
-
}
|
|
205
|
-
function writeAdsJsonl(data) {
|
|
206
|
-
if (data.length === 0) return;
|
|
207
|
-
writeWhole(data.map((row) => JSON.stringify(row)));
|
|
208
|
-
}
|
|
209
|
-
function mdCell(value) {
|
|
210
|
-
return value.replace(/\|/g, "\\|").replace(/\r?\n/g, " ");
|
|
211
|
-
}
|
|
212
|
-
function writeAdsMd(data, fields) {
|
|
213
|
-
if (data.length === 0) return;
|
|
214
|
-
const cols = fields ?? Object.keys(data[0] ?? {});
|
|
215
|
-
const lines = [`| ${cols.join(" | ")} |`, `| ${cols.map(() => "---").join(" | ")} |`];
|
|
216
|
-
for (const row of data) {
|
|
217
|
-
const flat = flattenRow(row);
|
|
218
|
-
lines.push(`| ${cols.map((f) => mdCell(flat[f] ?? "")).join(" | ")} |`);
|
|
219
|
-
}
|
|
220
|
-
writeWhole(lines);
|
|
221
|
-
}
|
|
222
|
-
function writeAdsOutput(data, format, fields, hints = []) {
|
|
223
|
-
switch (format) {
|
|
224
|
-
case "csv":
|
|
225
|
-
writeAdsCsv(data, fields);
|
|
226
|
-
break;
|
|
227
|
-
case "jsonl":
|
|
228
|
-
writeAdsJsonl(data);
|
|
229
|
-
break;
|
|
230
|
-
case "md":
|
|
231
|
-
writeAdsMd(data, fields);
|
|
232
|
-
break;
|
|
233
|
-
default:
|
|
234
|
-
writeJsonEnvelope(hints.length > 0 ? { ok: true, data, hints } : { ok: true, data });
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
for (const hint of hints) process.stderr.write(`${hint}
|
|
238
|
-
`);
|
|
239
|
-
}
|
|
240
|
-
async function fetchAccounts(useCache = true) {
|
|
241
|
-
if (useCache) {
|
|
242
|
-
const cached = cacheGet("accounts", "list");
|
|
243
|
-
if (cached) return cached.data;
|
|
244
|
-
}
|
|
245
|
-
const params = !useCache ? { "skip-cache": "true" } : void 0;
|
|
246
|
-
const data = await apiGet("/api/ads/google/accounts", params);
|
|
247
|
-
if (useCache) {
|
|
248
|
-
cacheSet("accounts", "list", data, 60 * 60 * 1e3);
|
|
249
|
-
}
|
|
250
|
-
return data;
|
|
251
|
-
}
|
|
252
|
-
async function resolveCustomerId(args) {
|
|
253
|
-
const fromArgs = args["customer-id"];
|
|
254
|
-
const customerId = fromArgs || getEnv().BAKER_GOOGLE_ADS_CUSTOMER_ID;
|
|
255
|
-
if (customerId) {
|
|
256
|
-
if (!/^\d{10}$/.test(customerId)) {
|
|
257
|
-
writeAdsJson({
|
|
258
|
-
ok: false,
|
|
259
|
-
error: {
|
|
260
|
-
code: "INVALID_CUSTOMER_ID",
|
|
261
|
-
message: "Customer ID must be exactly 10 digits without dashes. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID."
|
|
262
|
-
}
|
|
263
|
-
});
|
|
264
|
-
process.exit(1);
|
|
265
|
-
}
|
|
266
|
-
return customerId;
|
|
267
|
-
}
|
|
268
|
-
const useCache = !args["no-cache"];
|
|
269
|
-
try {
|
|
270
|
-
const accounts = await fetchAccounts(useCache);
|
|
271
|
-
const [single] = accounts;
|
|
272
|
-
if (accounts.length === 1 && single) {
|
|
273
|
-
process.stderr.write(`Using account "${single.name}" (${single.id})
|
|
274
|
-
`);
|
|
275
|
-
return single.id;
|
|
276
|
-
}
|
|
277
|
-
if (accounts.length === 0) {
|
|
278
|
-
handleConnectionError("google_ads");
|
|
279
|
-
}
|
|
280
|
-
const list = accounts.map((a) => ` ${a.id} ${a.name}`).join("\n");
|
|
281
|
-
writeAdsJson({
|
|
282
|
-
ok: false,
|
|
283
|
-
error: {
|
|
284
|
-
code: "MULTIPLE_ACCOUNTS",
|
|
285
|
-
message: `Multiple accounts found. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID:
|
|
286
|
-
${list}`
|
|
287
|
-
}
|
|
288
|
-
});
|
|
289
|
-
process.exit(1);
|
|
290
|
-
} catch (err) {
|
|
291
|
-
if (err instanceof ApiError && isNotConnectedError(err.code, err.message)) {
|
|
292
|
-
handleConnectionError("google_ads", err.message);
|
|
293
|
-
}
|
|
294
|
-
writeAdsJson({
|
|
295
|
-
ok: false,
|
|
296
|
-
error: {
|
|
297
|
-
code: "INVALID_CUSTOMER_ID",
|
|
298
|
-
message: "Could not auto-detect account. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID."
|
|
299
|
-
}
|
|
300
|
-
});
|
|
301
|
-
process.exit(1);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
export {
|
|
306
|
-
cacheGet,
|
|
307
|
-
cacheSet,
|
|
308
|
-
getQueryTtl,
|
|
309
|
-
buildQueryCacheKey,
|
|
310
|
-
getManagerIdForCustomer,
|
|
311
|
-
writeAdsJson,
|
|
312
|
-
writeJsonEnvelope,
|
|
313
|
-
TABLE_OUTPUT_FORMATS,
|
|
314
|
-
outputFormatRefusal,
|
|
315
|
-
toCsvRow,
|
|
316
|
-
writeAdsOutput,
|
|
317
|
-
resolveCustomerId,
|
|
318
|
-
connectionFixExplanation,
|
|
319
|
-
handleConnectionError,
|
|
320
|
-
isNotConnectedError,
|
|
321
|
-
needsConnectionFix,
|
|
322
|
-
isOrganizationReadRefusal
|
|
323
|
-
};
|
|
324
|
-
//# sourceMappingURL=chunk-RBCO3C3Q.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/error-handler.ts","../src/commands/ads/cache.ts","../src/commands/ads/output.ts"],"sourcesContent":["import { writeJsonEnvelope } from \"./commands/ads/output.ts\";\nimport { optionalTargetCompany } from \"./env.ts\";\n\ntype ConnectionPlatform = \"google_ads\" | \"ga4\" | \"gsc\" | \"x_ads\" | \"meta_ads\" | \"linkedin_ads\";\n\n/**\n * Platforms the agent can get connected without the user leaving the chat, via\n * the blocking `request_connection` tool, and the id that tool expects. Every\n * platform this CLI can talk to is here — keep it in step with\n * `CONNECTION_PLATFORMS` in `packages/bridge/src/hono/connection-input.ts`: a\n * platform the tool accepts but this map omits sends the user to Settings for a\n * door the agent could have opened itself.\n */\nconst REQUEST_CONNECTION_PLATFORM: Record<ConnectionPlatform, string> = {\n google_ads: \"google-ads\",\n ga4: \"google-analytics\",\n gsc: \"google-search-console\",\n linkedin_ads: \"linkedin\",\n meta_ads: \"meta\",\n x_ads: \"x-ads\",\n};\n\nconst PLATFORM_NAME: Record<ConnectionPlatform, string> = {\n google_ads: \"Google Ads\",\n ga4: \"Google Analytics 4\",\n gsc: \"Google Search Console\",\n x_ads: \"X Ads\",\n meta_ads: \"Meta Ads\",\n linkedin_ads: \"LinkedIn Ads\",\n};\n\n/**\n * How to tell the agent to get a platform connected. Never \"send them to\n * Settings\" for a platform `request_connection` covers — that ends the turn on a\n * wall the agent could have opened itself, and it now covers every platform this\n * CLI talks to. The fallback line matters too: if the `request_connection` call\n * fails, the agent must still be able to say where the connect button is instead\n * of stalling.\n */\nexport function connectionFixExplanation(platform: ConnectionPlatform, originalMessage?: string): string {\n const name = PLATFORM_NAME[platform];\n const slug = REQUEST_CONNECTION_PLATFORM[platform];\n // Read with `--company` from the organization workspace: connecting from here\n // would connect the workspace, not the company the read named.\n if (optionalTargetCompany()) {\n return (\n `${name} is not connected for that company. It can only be connected in that company's own workspace, ` +\n `never with \\`request_connection\\` from here. Show that company as not connected for ${name} and carry on ` +\n \"with the others.\"\n );\n }\n if (originalMessage !== undefined && SIGN_IN_ENDED.test(originalMessage)) {\n return (\n `${name} is connected, but its sign-in no longer works (it expired, or was revoked on the platform) — this is ` +\n `not a Baker error, and retrying later cannot fix it: only the user signing in again can. Call the ` +\n `\\`request_connection\\` tool now with { platform: \"${slug}\", reason } — the card offers Reconnect. If that call ` +\n `fails, give the exact route: dashboard → Brain → Integrations → Platforms → ${name} → Reconnect. Then carry on ` +\n \"with the rest of the task and say what stays unavailable until it is reconnected.\"\n );\n }\n return (\n `${name} is not connected for this company (or no account has been picked). Don't send the user to Settings ` +\n `or end the turn here — call the \\`request_connection\\` tool with { platform: \"${slug}\", reason } and ` +\n `they connect and pick their accounts from inside the chat. If the \\`request_connection\\` call fails, say so ` +\n `plainly and give the exact route: dashboard → Brain → Integrations → Platforms → ${name}. Then carry on with the ` +\n `rest of the task and say what stays unavailable until it is connected.`\n );\n}\n\n/** How the backend says a stored sign-in stopped working (`reconnectMessage`, `convex/oauth/connectedPlatforms.ts`). */\nconst SIGN_IN_ENDED = /connection expired|must reconnect/i;\n\n/**\n * Shared error handler for \"No Connection\" scenarios.\n * Provides a structured error for AI agents with a suggested fix and alternative commands.\n */\nexport function handleConnectionError(platform: ConnectionPlatform, originalMessage?: string): never {\n const platformName = PLATFORM_NAME[platform];\n\n const alternative = {\n google_ads: \"keywords-for-site or research advertisers\",\n ga4: \"lighthouse for page performance\",\n gsc: \"keywords-for-site or research keyword-gap\",\n x_ads: \"research advertisers\",\n meta_ads: \"research advertisers or research keyword-ideas\",\n linkedin_ads: \"research advertisers (LinkedIn Ad Library) or research keyword-ideas\",\n }[platform];\n\n const code = {\n google_ads: \"NO_GOOGLE_ADS_CONNECTION\",\n ga4: \"NO_GA4_CONNECTION\",\n gsc: \"NO_GSC_CONNECTION\",\n x_ads: \"NO_X_ADS_CONNECTION\",\n meta_ads: \"NO_META_ADS_CONNECTION\",\n linkedin_ads: \"NO_LINKEDIN_ADS_CONNECTION\",\n }[platform];\n\n const envelope = {\n ok: false,\n error: {\n code,\n message: originalMessage || `No ${platformName} connection found for this company.`,\n fix: optionalTargetCompany()\n ? { action: \"continue_without\", explanation: connectionFixExplanation(platform) }\n : {\n action: \"request_connection\",\n explanation: `${connectionFixExplanation(platform, originalMessage)} (Optional fallback for estimated external insights: 'baker research ${alternative}'.)`,\n },\n retryable: false,\n },\n };\n\n writeJsonEnvelope(envelope);\n process.exit(1);\n}\n\n/**\n * Does this API failure mean \"the platform isn't connected\"? The read commands\n * surface the backend's own 404/403 verbatim, so the connect fix has to be\n * recognised from the code the client mapped it to plus the message.\n */\nexport function isNotConnectedError(code: string, message: string): boolean {\n if (code !== \"NOT_FOUND\" && code !== \"UNAUTHORIZED\" && code !== \"FORBIDDEN\") {\n return false;\n }\n // The last alternative is the write-path 403 (\"customer X is not in this\n // company's connected Google Ads accounts\") — a different sentence for the\n // same remedy: connect, and pick the account.\n return /no .* connection found|not connected|no .* (selected|picked)|is not in .* connected/i.test(message);\n}\n\n/**\n * Does this failure warrant the connect form? A dead token (401) always does —\n * whatever the wording, the remedy is to sign in again.\n *\n * A 404 or 403 only does when the backend says so. Both codes are overloaded:\n * 403 is also an asset-level refusal on a live connection (reconnecting cannot\n * grant it), and 404 is also how \"no staged op <ref> in this draft\" and a\n * mistyped `--chat` come back. Answering either with \"ask the user to connect\n * Meta Ads\" sends the agent to fix something that was never broken, and the\n * real missing-connection 404 says \"No <platform> connection found\" anyway.\n */\nexport function needsConnectionFix(code: string, message: string): boolean {\n if (code === \"UNAUTHORIZED\") {\n return true;\n }\n return isNotConnectedError(code, message);\n}\n\n/**\n * The organization workspace's refusal of a write to a company (`--company`).\n * It is about where the change belongs, not about the platform, so no\n * platform's permission advice applies to it.\n */\nexport function isOrganizationReadRefusal(message: string): boolean {\n return message.startsWith(\"The organization workspace only reads its companies\");\n}\n","import { createHash } from \"node:crypto\";\nimport { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { optionalTargetCompany } from \"../../env.ts\";\nimport type { CacheEntry } from \"./types.ts\";\n\n/**\n * One folder per company a call reads (`--company`), so the organization\n * workspace never answers one company's read with another's cached accounts.\n * Resolved per call: the flag is read after the command's modules load.\n */\nfunction cacheDir(): string {\n const company = optionalTargetCompany()?.replace(/[^a-zA-Z0-9_]/g, \"\");\n return join(homedir(), \".baker\", \"cache\", \"ads\", ...(company ? [\"company\", company] : []));\n}\n\nfunction ensureDir(dir: string): void {\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n}\n\nfunction hashKey(key: string): string {\n return createHash(\"sha256\").update(key).digest(\"hex\").slice(0, 16);\n}\n\nfunction cachePath(category: string, key: string): string {\n const dir = join(cacheDir(), category);\n ensureDir(dir);\n return join(dir, `${hashKey(key)}.json`);\n}\n\nexport function cacheGet<T>(category: string, key: string): CacheEntry<T> | null {\n const path = cachePath(category, key);\n if (!existsSync(path)) {\n return null;\n }\n try {\n const raw = readFileSync(path, \"utf-8\");\n const entry = JSON.parse(raw) as CacheEntry<T>;\n if (entry.expiresAt < Date.now()) {\n rmSync(path, { force: true });\n return null;\n }\n return entry;\n } catch {\n rmSync(path, { force: true });\n return null;\n }\n}\n\nexport function cacheSet<T>(\n category: string,\n key: string,\n data: T,\n ttlMs: number,\n fields?: Record<string, string>,\n): void {\n const path = cachePath(category, key);\n const entry: CacheEntry<T> = {\n expiresAt: Date.now() + ttlMs,\n data,\n fields,\n };\n writeFileSync(path, JSON.stringify(entry), \"utf-8\");\n}\n\nconst HOUR = 60 * 60 * 1000;\nconst MINUTE = 60 * 1000;\n\nexport function getQueryTtl(query: string): number {\n const upper = query.toUpperCase();\n if (upper.includes(\"TODAY\")) {\n return 15 * MINUTE;\n }\n if (upper.includes(\"LAST_7_DAYS\") || upper.includes(\"LAST_14_DAYS\")) {\n return 1 * HOUR;\n }\n // Historical data (BETWEEN, LAST_30_DAYS, LAST_90_DAYS, etc.)\n return 6 * HOUR;\n}\n\nexport function buildQueryCacheKey(customerId: string, query: string): string {\n const today = new Date().toISOString().slice(0, 10);\n return `${customerId}:${today}:${query.trim().replace(/\\s+/g, \" \")}`;\n}\n\ninterface CachedAccount {\n id: string;\n access_type: \"direct\" | \"managed\";\n manager_id?: string;\n}\n\nexport function getManagerIdForCustomer(customerId: string): string | undefined {\n const cached = cacheGet<CachedAccount[]>(\"accounts\", \"list\");\n if (!cached) return undefined;\n const account = cached.data.find((a) => a.id === customerId);\n if (account?.access_type === \"managed\") return account.manager_id;\n return undefined;\n}\n","import { ApiError, apiGet } from \"../../client.ts\";\nimport { getEnv } from \"../../env.ts\";\nimport { handleConnectionError, isNotConnectedError } from \"../../error-handler.ts\";\nimport type { QueryContext } from \"../../geo-context.ts\";\nimport { cacheGet, cacheSet } from \"./cache.ts\";\nimport type { AdsErrorEnvelope, AdsFileSummary, AdsSuccessEnvelope } from \"./types.ts\";\n\ntype AdsOutput =\n | AdsSuccessEnvelope<unknown>\n | AdsErrorEnvelope\n | AdsFileSummary\n | { ok: true; data: unknown; query_context?: QueryContext; cached?: true; fields?: Record<string, string> }\n | { ok: false; error: { code: string; message: string } };\n\nexport function writeAdsJson(envelope: AdsOutput): void {\n process.stdout.write(`${JSON.stringify(envelope, null, 2)}\\n`);\n}\n\nexport function writeJsonEnvelope(envelope: Record<string, unknown>): void {\n process.stdout.write(`${JSON.stringify(envelope, null, 2)}\\n`);\n}\n\n/** The formats `writeAdsOutput` prints. */\nexport const TABLE_OUTPUT_FORMATS = [\"json\", \"csv\", \"jsonl\", \"md\"] as const;\n\n/** Why `--output <format>` cannot be printed, or null — rather than quietly falling back to JSON. */\nexport function outputFormatRefusal(format: string, supported: readonly string[]): string | null {\n if (supported.includes(format)) return null;\n const list =\n supported.length > 1 ? `${supported.slice(0, -1).join(\", \")} or ${supported.at(-1)}` : supported.join(\"\");\n return `--output ${format} is not supported — use ${list}`;\n}\n\nexport function toCsvRow(values: string[]): string {\n return values\n .map((v) => {\n if (v.includes(\",\") || v.includes('\"') || v.includes(\"\\n\")) {\n return `\"${v.replace(/\"/g, '\"\"')}\"`;\n }\n return v;\n })\n .join(\",\");\n}\n\nfunction flattenRow(row: Record<string, unknown>): Record<string, string> {\n const flat: Record<string, string> = {};\n for (const [key, val] of Object.entries(row)) {\n flat[key] = typeof val === \"object\" && val !== null ? JSON.stringify(val) : String(val ?? \"\");\n }\n return flat;\n}\n\n/**\n * One write per table: a line-by-line write piped into `head` hits a closed pipe on\n * the next line and crashes with EPIPE, where a single write lands in the pipe buffer.\n */\nfunction writeWhole(lines: string[]): void {\n process.stdout.write(`${lines.join(\"\\n\")}\\n`);\n}\n\nfunction writeAdsCsv(data: Array<Record<string, unknown>>, fields?: string[]): void {\n if (data.length === 0) return;\n const cols = fields ?? Object.keys(data[0] ?? {});\n const lines = [toCsvRow(cols)];\n for (const row of data) {\n const flat = flattenRow(row);\n lines.push(toCsvRow(cols.map((f) => flat[f] ?? \"\")));\n }\n writeWhole(lines);\n}\n\nfunction writeAdsJsonl(data: Array<Record<string, unknown>>): void {\n if (data.length === 0) return;\n writeWhole(data.map((row) => JSON.stringify(row)));\n}\n\n/** A `|` or line break in a name would split its cell and shift every later column. */\nfunction mdCell(value: string): string {\n return value.replace(/\\|/g, \"\\\\|\").replace(/\\r?\\n/g, \" \");\n}\n\nfunction writeAdsMd(data: Array<Record<string, unknown>>, fields?: string[]): void {\n if (data.length === 0) return;\n const cols = fields ?? Object.keys(data[0] ?? {});\n const lines = [`| ${cols.join(\" | \")} |`, `| ${cols.map(() => \"---\").join(\" | \")} |`];\n for (const row of data) {\n const flat = flattenRow(row);\n lines.push(`| ${cols.map((f) => mdCell(flat[f] ?? \"\")).join(\" | \")} |`);\n }\n writeWhole(lines);\n}\n\n/**\n * `hints` ride in the JSON envelope; csv/jsonl/md stdout has no room for them,\n * and an empty result is exactly when the hint matters, so they go to stderr.\n */\nexport function writeAdsOutput(\n data: Array<Record<string, unknown>>,\n format: string,\n fields?: string[],\n hints: string[] = [],\n): void {\n switch (format) {\n case \"csv\":\n writeAdsCsv(data, fields);\n break;\n case \"jsonl\":\n writeAdsJsonl(data);\n break;\n case \"md\":\n writeAdsMd(data, fields);\n break;\n default:\n writeJsonEnvelope(hints.length > 0 ? { ok: true, data, hints } : { ok: true, data });\n return;\n }\n for (const hint of hints) process.stderr.write(`${hint}\\n`);\n}\n\ninterface AccountInfo {\n id: string;\n name: string;\n access_type: \"direct\" | \"managed\";\n level: number;\n manager_id?: string;\n}\n\nasync function fetchAccounts(useCache = true): Promise<AccountInfo[]> {\n if (useCache) {\n const cached = cacheGet<AccountInfo[]>(\"accounts\", \"list\");\n if (cached) return cached.data;\n }\n const params = !useCache ? { \"skip-cache\": \"true\" } : undefined;\n const data = await apiGet<AccountInfo[]>(\"/api/ads/google/accounts\", params);\n if (useCache) {\n cacheSet(\"accounts\", \"list\", data, 60 * 60 * 1000);\n }\n return data;\n}\n\nexport async function resolveCustomerId(args: Record<string, unknown>): Promise<string> {\n const fromArgs = args[\"customer-id\"] as string | undefined;\n const customerId = fromArgs || getEnv().BAKER_GOOGLE_ADS_CUSTOMER_ID;\n\n if (customerId) {\n if (!/^\\d{10}$/.test(customerId)) {\n writeAdsJson({\n ok: false,\n error: {\n code: \"INVALID_CUSTOMER_ID\",\n message:\n \"Customer ID must be exactly 10 digits without dashes. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID.\",\n },\n });\n process.exit(1);\n }\n return customerId;\n }\n\n const useCache = !args[\"no-cache\"];\n\n try {\n const accounts = await fetchAccounts(useCache);\n const [single] = accounts;\n if (accounts.length === 1 && single) {\n process.stderr.write(`Using account \"${single.name}\" (${single.id})\\n`);\n return single.id;\n }\n if (accounts.length === 0) {\n handleConnectionError(\"google_ads\");\n }\n const list = accounts.map((a) => ` ${a.id} ${a.name}`).join(\"\\n\");\n writeAdsJson({\n ok: false,\n error: {\n code: \"MULTIPLE_ACCOUNTS\",\n message: `Multiple accounts found. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID:\\n${list}`,\n },\n });\n process.exit(1);\n } catch (err) {\n // \"No connection\" reaches here as a 404/403 from the accounts lookup. Reporting it as\n // an unusable customer id sends the agent hunting for an id that cannot exist yet.\n if (err instanceof ApiError && isNotConnectedError(err.code, err.message)) {\n handleConnectionError(\"google_ads\", err.message);\n }\n writeAdsJson({\n ok: false,\n error: {\n code: \"INVALID_CUSTOMER_ID\",\n message: \"Could not auto-detect account. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID.\",\n },\n });\n process.exit(1);\n }\n}\n"],"mappings":"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","names":[]}
|