@koda-sl/baker-cli 0.481.0-dev.2d33e194f → 0.482.0-dev.a5555ab55
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 +131 -149
- package/canvas/avocado-tutorial.json +3 -3
- package/canvas/hello-world-overlay.json +1 -1
- package/dist/account-7LUQWY6Q.js +49 -0
- package/dist/account-ELL7ZZLM.js +80 -0
- package/dist/account-KZVOT6HL.js +79 -0
- package/dist/account-reads-LA45L6G3.js +218 -0
- package/dist/account-writes-CEPERFD6.js +66 -0
- package/dist/accounts-7G556DH4.js +77 -0
- package/dist/accounts-E4TVYTUR.js +115 -0
- package/dist/accounts-HC7GPQNG.js +611 -0
- package/dist/accounts-SMB3TNXX.js +114 -0
- package/dist/accounts-UA2ZWRN4.js +75 -0
- package/dist/actions-V6YP5C3X.js +55 -0
- package/dist/active-entities-MCL7UEGV.js +103 -0
- package/dist/activecampaign-CHZEHRHZ.js +935 -0
- package/dist/activecampaign-CHZEHRHZ.js.map +1 -0
- package/dist/activities-IQPJPP4B.js +74 -0
- package/dist/ad-group-writes-XGSCEQTW.js +170 -0
- package/dist/ad-groups-GKOLDGET.js +68 -0
- package/dist/ad-writes-VVD36JKH.js +174 -0
- package/dist/add-3MD72QMT.js +104 -0
- package/dist/add-5IGUQHVZ.js +105 -0
- package/dist/add-BK5AQI5A.js +97 -0
- package/dist/add-TSQNUP5N.js +302 -0
- package/dist/add-accounts-CJSV5NPL.js +91 -0
- package/dist/ads-EKZVHKPN.js +77 -0
- package/dist/ads-HXX2IAFF.js +113 -0
- package/dist/ads-KRM4WAMZ.js +40 -0
- package/dist/ads-KRM4WAMZ.js.map +1 -0
- package/dist/ads-RAUM6ISF.js +128 -0
- package/dist/adsets-LPN6WFGF.js +176 -0
- package/dist/advertisers-DS2NRWKI.js +125 -0
- package/dist/advertisers-XJG7XDK7.js +120 -0
- package/dist/analytics-DO4UKW2H.js +1976 -0
- package/dist/analytics-JVT2OBQC.js +433 -0
- package/dist/analytics-JVT2OBQC.js.map +1 -0
- package/dist/animate-G4P3OEJE.js +480 -0
- package/dist/assign-72YAL6TP.js +77 -0
- package/dist/audience-size-M5NU4QYN.js +73 -0
- package/dist/audience-size-M5NU4QYN.js.map +1 -0
- package/dist/audiences-3LRCLHTQ.js +85 -0
- package/dist/audiences-BU4JZJT7.js +268 -0
- package/dist/audiences-XEZHACKH.js +78 -0
- package/dist/audit-22KQAHJR.js +151 -0
- package/dist/audit-YEGQU474.js +88 -0
- package/dist/autocomplete-KLNQIK5T.js +111 -0
- package/dist/avatars-VO6FMJFB.js +38 -0
- package/dist/bid-pricing-52HDANYL.js +100 -0
- package/dist/bid-pricing-52HDANYL.js.map +1 -0
- package/dist/brand-XXNOVSGE.js +22 -0
- package/dist/brief-JIARAUIR.js +538 -0
- package/dist/brief-JIARAUIR.js.map +1 -0
- package/dist/businesses-PRRYPR7H.js +53 -0
- package/dist/campaign-groups-JFOFU76X.js +95 -0
- package/dist/campaign-writes-NSEJCINS.js +170 -0
- package/dist/campaign-writes-PKWLLKB5.js +165 -0
- package/dist/campaigns-4SOLY7OR.js +110 -0
- package/dist/campaigns-5AZMOOID.js +107 -0
- package/dist/campaigns-H4VK3GKK.js +109 -0
- package/dist/campaigns-VWN2XPK2.js +76 -0
- package/dist/canvas-TTV7QZZT.js +46 -0
- package/dist/capabilities-VJ53ROIP.js +144 -0
- package/dist/cards-WHMCSRZX.js +85 -0
- package/dist/catalog-43BSTAT6.js +65 -0
- package/dist/catalog-43BSTAT6.js.map +1 -0
- package/dist/catalogs-XH5NHH4C.js +128 -0
- package/dist/changes-F6WUXFC3.js +135 -0
- package/dist/chatgpt-K6KNTME4.js +47 -0
- package/dist/chats-PWLQO7UY.js +262 -0
- package/dist/check-545MAB4E.js +104 -0
- package/dist/check-545MAB4E.js.map +1 -0
- package/dist/chunk-232YUPUI.js +125 -0
- package/dist/chunk-23H4ZJRP.js +136 -0
- package/dist/chunk-2FSEESJU.js +1744 -0
- package/dist/chunk-2FSEESJU.js.map +1 -0
- package/dist/chunk-2QSPPWOU.js +6306 -0
- package/dist/chunk-2QSPPWOU.js.map +1 -0
- package/dist/chunk-2WTD5Y34.js +66 -0
- package/dist/chunk-2WTD5Y34.js.map +1 -0
- package/dist/chunk-3BKNGXCL.js +23992 -0
- package/dist/chunk-3BKNGXCL.js.map +1 -0
- package/dist/chunk-3OCSWUHV.js +67 -0
- package/dist/chunk-3UBTVAFJ.js +392 -0
- package/dist/chunk-3UBTVAFJ.js.map +1 -0
- package/dist/chunk-3ZHOBEQD.js +122 -0
- package/dist/chunk-3ZHOBEQD.js.map +1 -0
- package/dist/chunk-46TND6YK.js +207 -0
- package/dist/chunk-46TND6YK.js.map +1 -0
- package/dist/chunk-5SRHACZW.js +274 -0
- package/dist/chunk-5WMTPYKT.js +84 -0
- package/dist/chunk-64HQDJ2E.js +344 -0
- package/dist/chunk-64HQDJ2E.js.map +1 -0
- package/dist/chunk-6JWEGFM5.js +174 -0
- package/dist/chunk-6OIKNJ7G.js +26 -0
- package/dist/chunk-7RBJ2Z7Z.js +172 -0
- package/dist/chunk-AOZ7547I.js +159 -0
- package/dist/chunk-AOZ7547I.js.map +1 -0
- package/dist/chunk-B7FVPHCW.js +843 -0
- package/dist/chunk-B7FVPHCW.js.map +1 -0
- package/dist/chunk-BC2BXRXY.js +2887 -0
- package/dist/chunk-BC2BXRXY.js.map +1 -0
- package/dist/chunk-BFRIRZRZ.js +98 -0
- package/dist/chunk-BFZS3WHS.js +84 -0
- package/dist/chunk-BITS62MF.js +77 -0
- package/dist/chunk-BLAHHMPF.js +333 -0
- package/dist/chunk-C7MENOP5.js +224 -0
- package/dist/chunk-C7MENOP5.js.map +1 -0
- package/dist/chunk-CM6FCSWN.js +644 -0
- package/dist/chunk-CM6FCSWN.js.map +1 -0
- package/dist/chunk-CSN6L345.js +547 -0
- package/dist/chunk-CSN6L345.js.map +1 -0
- package/dist/chunk-CVBKW75S.js +296 -0
- package/dist/chunk-D4LKZJYJ.js +76 -0
- package/dist/chunk-D6KHVUDS.js +297 -0
- package/dist/chunk-D7KR6KXR.js +66 -0
- package/dist/chunk-D7KR6KXR.js.map +1 -0
- package/dist/chunk-DDES6J6A.js +97 -0
- package/dist/chunk-DDES6J6A.js.map +1 -0
- package/dist/chunk-DMVDVZJK.js +97 -0
- package/dist/chunk-DMVDVZJK.js.map +1 -0
- package/dist/chunk-DWX44QL6.js +75 -0
- package/dist/chunk-EE72SSB2.js +472 -0
- package/dist/chunk-EE72SSB2.js.map +1 -0
- package/dist/chunk-F3CZFUXZ.js +3187 -0
- package/dist/chunk-F3CZFUXZ.js.map +1 -0
- package/dist/chunk-F5IH7G2F.js +1919 -0
- package/dist/chunk-F5IH7G2F.js.map +1 -0
- package/dist/chunk-FNA277HP.js +97 -0
- package/dist/chunk-FQXGII24.js +592 -0
- package/dist/chunk-FU7HJWGM.js +26 -0
- package/dist/chunk-G5GV6SUK.js +399 -0
- package/dist/chunk-G5GV6SUK.js.map +1 -0
- package/dist/chunk-GD6UJDOB.js +665 -0
- package/dist/chunk-GDLQ6SGW.js +46 -0
- package/dist/chunk-GEKXIXMG.js +106 -0
- package/dist/chunk-GJWMPTUE.js +156 -0
- package/dist/chunk-GJWMPTUE.js.map +1 -0
- package/dist/chunk-GLW7UJLB.js +58 -0
- package/dist/chunk-GM46ZEYP.js +831 -0
- package/dist/chunk-GM46ZEYP.js.map +1 -0
- package/dist/chunk-H5HDZ7IC.js +139 -0
- package/dist/chunk-HNEYIWXW.js +8896 -0
- package/dist/chunk-HNEYIWXW.js.map +1 -0
- package/dist/chunk-I2WRZJAC.js +46 -0
- package/dist/chunk-I2WRZJAC.js.map +1 -0
- package/dist/chunk-I44SNQ34.js +275 -0
- package/dist/chunk-I5VZVQBZ.js +35 -0
- package/dist/chunk-IC6SDOED.js +45 -0
- package/dist/chunk-IN4G7X6W.js +94 -0
- package/dist/chunk-IPLE5K5E.js +188 -0
- package/dist/chunk-IYELKHBG.js +197 -0
- package/dist/chunk-JQNO6JCV.js +206 -0
- package/dist/chunk-JRFVSSKP.js +160 -0
- package/dist/chunk-JRFVSSKP.js.map +1 -0
- package/dist/chunk-JYBLCIRN.js +106 -0
- package/dist/chunk-K3TNTBZJ.js +52 -0
- package/dist/chunk-K4NMOWG7.js +455 -0
- package/dist/chunk-KOVQ2JGM.js +903 -0
- package/dist/chunk-KOVQ2JGM.js.map +1 -0
- package/dist/chunk-KPYDTIAI.js +317 -0
- package/dist/chunk-KPYDTIAI.js.map +1 -0
- package/dist/chunk-KXSXZAC2.js +225 -0
- package/dist/chunk-KXSXZAC2.js.map +1 -0
- package/dist/chunk-LCW3U4EA.js +25 -0
- package/dist/chunk-LFXE2G6R.js +61 -0
- package/dist/chunk-LFXE2G6R.js.map +1 -0
- package/dist/chunk-LMZAOTRX.js +846 -0
- package/dist/chunk-M6UNISGO.js +66 -0
- package/dist/chunk-M6UNISGO.js.map +1 -0
- package/dist/chunk-MI3JB5KB.js +76 -0
- package/dist/chunk-MJQBXFW6.js +74 -0
- package/dist/chunk-MK3OJZIU.js +23 -0
- package/dist/chunk-MPACDBH5.js +74 -0
- package/dist/chunk-MXWOYFI2.js +544 -0
- package/dist/chunk-MXWOYFI2.js.map +1 -0
- package/dist/chunk-N5O67GK5.js +215 -0
- package/dist/chunk-OP7DNHD2.js +137 -0
- package/dist/chunk-OP7DNHD2.js.map +1 -0
- package/dist/chunk-P3TNRS56.js +149 -0
- package/dist/chunk-P5PX2G7E.js +225 -0
- package/dist/chunk-P5PX2G7E.js.map +1 -0
- package/dist/chunk-PAJJXZ3Z.js +170 -0
- package/dist/chunk-PHPXAMY3.js +346 -0
- package/dist/chunk-PNVEV3XP.js +8928 -0
- package/dist/chunk-PNVEV3XP.js.map +1 -0
- package/dist/chunk-QABSQADZ.js +56 -0
- package/dist/chunk-QKABEX3F.js +148 -0
- package/dist/chunk-QKABEX3F.js.map +1 -0
- package/dist/chunk-QTLZXIF3.js +5366 -0
- package/dist/chunk-QTLZXIF3.js.map +1 -0
- package/dist/chunk-QVQKCVP7.js +85 -0
- package/dist/chunk-QVQKCVP7.js.map +1 -0
- package/dist/chunk-QYAI24PN.js +172 -0
- package/dist/chunk-QZHGIJOW.js +51 -0
- package/dist/chunk-REMR5FHD.js +91 -0
- package/dist/chunk-REMR5FHD.js.map +1 -0
- package/dist/chunk-RGX7AQ2K.js +131 -0
- package/dist/chunk-RGX7AQ2K.js.map +1 -0
- package/dist/chunk-RMNKCVRB.js +275 -0
- package/dist/chunk-RMNKCVRB.js.map +1 -0
- package/dist/chunk-ROX7LQRR.js +19 -0
- package/dist/chunk-S7A34DOA.js +111 -0
- package/dist/chunk-S7A34DOA.js.map +1 -0
- package/dist/chunk-S7B2TOOU.js +98 -0
- package/dist/chunk-SFJW2KED.js +166 -0
- package/dist/chunk-SIKCVWM3.js +76 -0
- package/dist/chunk-SK2N45LO.js +1079 -0
- package/dist/chunk-SOKVXKRM.js +74 -0
- package/dist/chunk-STNCMKL6.js +191 -0
- package/dist/chunk-SWL4AAPP.js +320 -0
- package/dist/chunk-SWL4AAPP.js.map +1 -0
- package/dist/chunk-TBHRRQZD.js +942 -0
- package/dist/chunk-TBHRRQZD.js.map +1 -0
- package/dist/chunk-TKPVVD52.js +169 -0
- package/dist/chunk-TNB5EIFV.js +433 -0
- package/dist/chunk-TUSR5R7I.js +57 -0
- package/dist/chunk-TY4BDVLG.js +624 -0
- package/dist/chunk-TY4BDVLG.js.map +1 -0
- package/dist/chunk-U63S2JWI.js +167 -0
- package/dist/chunk-U63S2JWI.js.map +1 -0
- package/dist/chunk-ULPO72IQ.js +225 -0
- package/dist/chunk-UTLIQBRY.js +604 -0
- package/dist/chunk-UTLIQBRY.js.map +1 -0
- package/dist/chunk-UWT7RCL3.js +363 -0
- package/dist/chunk-V4UIM4QE.js +103 -0
- package/dist/chunk-WHSTZRUY.js +64 -0
- package/dist/chunk-WHSTZRUY.js.map +1 -0
- package/dist/chunk-WNSE7N75.js +2123 -0
- package/dist/chunk-WNSE7N75.js.map +1 -0
- package/dist/chunk-XDZVBX6L.js +220 -0
- package/dist/chunk-XDZVBX6L.js.map +1 -0
- package/dist/chunk-XF5R2FQT.js +3868 -0
- package/dist/chunk-XF5R2FQT.js.map +1 -0
- package/dist/chunk-XFJNCZXA.js +142 -0
- package/dist/chunk-XFJNCZXA.js.map +1 -0
- package/dist/chunk-XGOEX2VJ.js +55 -0
- package/dist/chunk-XLJVJ5TK.js +1518 -0
- package/dist/chunk-XLJVJ5TK.js.map +1 -0
- package/dist/chunk-XP4G2DJL.js +494 -0
- package/dist/chunk-XZ4YMCZK.js +66 -0
- package/dist/chunk-Y3VRMFGF.js +42 -0
- package/dist/chunk-YU2XIIL3.js +191 -0
- package/dist/chunk-YU2XIIL3.js.map +1 -0
- package/dist/chunk-ZBUWO4XH.js +1599 -0
- package/dist/chunk-ZBUWO4XH.js.map +1 -0
- package/dist/chunk-ZJ6HUCRK.js +89 -0
- package/dist/chunk-ZJ6HUCRK.js.map +1 -0
- package/dist/claim-QHXKN7W6.js +197 -0
- package/dist/cli.js +101 -81
- package/dist/cli.js.map +1 -1
- package/dist/client-WL2FKW4T.js +19 -0
- package/dist/code-NXN7QYKU.js +76 -0
- package/dist/companies-PGVT62JL.js +195 -0
- package/dist/complete-TCTR3XVD.js +81 -0
- package/dist/config-VOF57KBL.js +88 -0
- package/dist/connect-4S7JLICS.js +42 -0
- package/dist/content-KA25YYO3.js +85 -0
- package/dist/conversation-DI4WMEL2.js +93 -0
- package/dist/conversion-report-KL4LIVY5.js +125 -0
- package/dist/conversion-upload-command-EIKJU5ZW.js +438 -0
- package/dist/conversion-writes-MPBCTVSP.js +120 -0
- package/dist/conversions-ACYT6K7H.js +76 -0
- package/dist/conversions-JTYMFX66.js +135 -0
- package/dist/countries-XGMZWUGP.js +82 -0
- package/dist/create-3QA7X2DD.js +207 -0
- package/dist/create-AFVT5JTH.js +235 -0
- package/dist/create-TYCOMVWR.js +59 -0
- package/dist/create-VFXEJ3EV.js +132 -0
- package/dist/create-VFXEJ3EV.js.map +1 -0
- package/dist/creatives-5VY3LT6X.js +58 -0
- package/dist/creatives-5VY3LT6X.js.map +1 -0
- package/dist/creatives-E6N2YLHE.js +182 -0
- package/dist/creatives-YJ3CXZQC.js +87 -0
- package/dist/credentials-34I6ZZWU.js +287 -0
- package/dist/critique-JM5QADYW.js +1451 -0
- package/dist/critique-JM5QADYW.js.map +1 -0
- package/dist/critique-OCVV6N3U.js +227 -0
- package/dist/critique-OCVV6N3U.js.map +1 -0
- package/dist/crm-4F3LFOZD.js +318 -0
- package/dist/crm-MNBYNP5R.js +224 -0
- package/dist/crop-7UTYG7GS.js +113 -0
- package/dist/currency-3QTI5RSB.js +88 -0
- package/dist/custom-conversions-YRYE65PU.js +125 -0
- package/dist/customers-VNYNT2EQ.js +56 -0
- package/dist/decide-TWKH5QQU.js +199 -0
- package/dist/delete-2GIIUPA3.js +69 -0
- package/dist/delete-AZEVPMVO.js +64 -0
- package/dist/delete-AZEVPMVO.js.map +1 -0
- package/dist/delete-GLLYPNNB.js +71 -0
- package/dist/delete-J7DXPGKD.js +71 -0
- package/dist/delete-PRJGFA2U.js +54 -0
- package/dist/delete-UZRHYEPK.js +66 -0
- package/dist/demographics-JMZA7MB6.js +138 -0
- package/dist/describe-5QCPRSIG.js +97 -0
- package/dist/describe-L3UC6MIL.js +97 -0
- package/dist/dimensions-POH4JXEM.js +101 -0
- package/dist/discard-OH3B5P4C.js +66 -0
- package/dist/discover-5GLET36U.js +172 -0
- package/dist/discover-XAJKZCMM.js +93 -0
- package/dist/domain-K3IILLYE.js +98 -0
- package/dist/download-N4J5WFHD.js +299 -0
- package/dist/draft-2KHUZTIE.js +217 -0
- package/dist/draft-7RYDPOFS.js +307 -0
- package/dist/draft-BB3UUWJP.js +328 -0
- package/dist/draft-EWDOIXSH.js +233 -0
- package/dist/draft-IL37WDST.js +103 -0
- package/dist/draft-KDMYGLWN.js +100 -0
- package/dist/draft-LZL6VWHX.js +306 -0
- package/dist/draft-VXGZDBC7.js +281 -0
- package/dist/engine/index.d.ts +31 -1
- package/dist/engine/index.js +15 -14
- package/dist/env-5MUVYE2L.js +51 -0
- package/dist/experiment-G3FQVAJU.js +1397 -0
- package/dist/export-OLDI32HM.js +168 -0
- package/dist/extract-PPS6ONQN.js +113 -0
- package/dist/facets-PAWOEHOK.js +114 -0
- package/dist/favorites-4ELADD3R.js +178 -0
- package/dist/feed-XIY5TVDL.js +177 -0
- package/dist/feedback-GAGIKZ6B.js +106 -0
- package/dist/feedback-GAGIKZ6B.js.map +1 -0
- package/dist/feedback-record-ZORDBRV2.js +260 -0
- package/dist/feedback-record-ZORDBRV2.js.map +1 -0
- package/dist/fetch-M5GIBURQ.js +176 -0
- package/dist/fetch-YWUVDMUH.js +139 -0
- package/dist/find-EVY4XEIQ.js +134 -0
- package/dist/find-EVY4XEIQ.js.map +1 -0
- package/dist/fit-DGCYW7LN.js +62 -0
- package/dist/flows-TD6PNUDM.js +247 -0
- package/dist/flows-TD6PNUDM.js.map +1 -0
- package/dist/follow-ZTPZKIMZ.js +94 -0
- package/dist/follow-competitors-6QDVQ4VJ.js +112 -0
- package/dist/following-PBZLZFGQ.js +113 -0
- package/dist/fonts-IQ6XOUGU.js +36 -0
- package/dist/forecast-FACEH4WR.js +118 -0
- package/dist/forecast-FACEH4WR.js.map +1 -0
- package/dist/forecast-YXOKAWDZ.js +168 -0
- package/dist/funding-ULBMKUMW.js +85 -0
- package/dist/funnel-CJRFDTCD.js +394 -0
- package/dist/ga4-2BL5YAYN.js +55 -0
- package/dist/generate-D3LUXFJT.js +263 -0
- package/dist/generate-D3LUXFJT.js.map +1 -0
- package/dist/get-6RZU4M6W.js +63 -0
- package/dist/get-7GCEJ6KG.js +92 -0
- package/dist/get-JRMJLLU5.js +79 -0
- package/dist/get-JRMJLLU5.js.map +1 -0
- package/dist/get-MZWUMHEF.js +61 -0
- package/dist/get-NUL4YJG5.js +56 -0
- package/dist/get-OAZZHUZP.js +59 -0
- package/dist/get-OHU2N7B7.js +63 -0
- package/dist/gif-NYZYV5RY.js +102 -0
- package/dist/gif-NYZYV5RY.js.map +1 -0
- package/dist/google-7STODZQR.js +136 -0
- package/dist/google-URYXWN5O.js +3190 -0
- package/dist/google-URYXWN5O.js.map +1 -0
- package/dist/google-ads-BB7CF4NV.js +195 -0
- package/dist/group-D5WXNFCP.js +43 -0
- package/dist/group-Y5PLETFT.js +43 -0
- package/dist/gsc-UU3T2C6B.js +30 -0
- package/dist/history-OQAOTEO3.js +67 -0
- package/dist/history-Q47TKZJS.js +133 -0
- package/dist/hubspot-A6O5GVTH.js +779 -0
- package/dist/icon-GB7UH5RF.js +137 -0
- package/dist/ideas-LD6X753E.js +40 -0
- package/dist/images-XY5DLJEA.js +92 -0
- package/dist/images-XY5DLJEA.js.map +1 -0
- package/dist/improve-U5USRH4G.js +86 -0
- package/dist/ingest-PUMTHASV.js +107 -0
- package/dist/ingest-WWNSA6VZ.js +23 -0
- package/dist/insights-4HT2NAYP.js +423 -0
- package/dist/insights-4HT2NAYP.js.map +1 -0
- package/dist/insights-PZXFCMX2.js +122 -0
- package/dist/insights-PZXFCMX2.js.map +1 -0
- package/dist/inspect-5PRLZLF5.js +189 -0
- package/dist/inspiration-XQYHBJY2.js +53 -0
- package/dist/intent-4QVVI4FF.js +95 -0
- package/dist/job-CGQHEANB.js +202 -0
- package/dist/job-create-SZYJT2NC.js +109 -0
- package/dist/job-status-6LAKLCKH.js +74 -0
- package/dist/keep-3MJSHWU3.js +78 -0
- package/dist/keyword-gap-YMMDRYVK.js +130 -0
- package/dist/keyword-metrics-FB7FCYK6.js +197 -0
- package/dist/keywords-for-site-YZYALONY.js +128 -0
- package/dist/landing-XOCPIOWX.js +28 -0
- package/dist/landings-ZLKUP66P.js +151 -0
- package/dist/languages-3IJVDS5Z.js +55 -0
- package/dist/languages-R3Y2IOFU.js +40 -0
- package/dist/launches-RG2SWEXM.js +19 -0
- package/dist/layerize-SJYK6HPD.js +190 -0
- package/dist/leads-2XOSAYP4.js +293 -0
- package/dist/leads-SWINPYEP.js +90 -0
- package/dist/learn-6HVDSTTJ.js +204 -0
- package/dist/learn-6HVDSTTJ.js.map +1 -0
- package/dist/library-Q4OU7VR7.js +109 -0
- package/dist/library-Q4OU7VR7.js.map +1 -0
- package/dist/lighthouse-FALRSVQH.js +75 -0
- package/dist/line-item-writes-FG3TY4W4.js +208 -0
- package/dist/line-items-ZNVBFA4H.js +103 -0
- package/dist/link-IFEXIUDW.js +64 -0
- package/dist/linkedin-NINSMEW6.js +1045 -0
- package/dist/linkedin-NINSMEW6.js.map +1 -0
- package/dist/list-2ZTOMTES.js +65 -0
- package/dist/list-FR2OVRVL.js +151 -0
- package/dist/list-GK6LNWIW.js +76 -0
- package/dist/list-K65FY6SV.js +303 -0
- package/dist/list-RJG3FMZR.js +64 -0
- package/dist/list-RJG3FMZR.js.map +1 -0
- package/dist/list-RR53EF3O.js +57 -0
- package/dist/list-TB677Q2F.js +50 -0
- package/dist/list-VTVRZIYL.js +51 -0
- package/dist/locations-6IH7WGRG.js +40 -0
- package/dist/locations-VL2G22Y5.js +67 -0
- package/dist/log-TAKCMC2C.js +92 -0
- package/dist/logo-YSNUUT33.js +18 -0
- package/dist/lookup-RH5N3OWJ.js +22 -0
- package/dist/make-EWHS4EHQ.js +1345 -0
- package/dist/make-EWHS4EHQ.js.map +1 -0
- package/dist/map-DWLEYXSW.js +433 -0
- package/dist/map-DWLEYXSW.js.map +1 -0
- package/dist/mcp-NNQZ5B7N.js +463 -0
- package/dist/media-ES2UBGYW.js +15 -0
- package/dist/media-MPXEXN4O.js +89 -0
- package/dist/media-sources-OAFBA62X.js +32 -0
- package/dist/members-SS7IBYVE.js +44 -0
- package/dist/meme-FMHHKWVU.js +100 -0
- package/dist/meme-FMHHKWVU.js.map +1 -0
- package/dist/meta-AOIPEDV5.js +69 -0
- package/dist/metrics-YLAREC4T.js +152 -0
- package/dist/models-IH6KE6OH.js +155 -0
- package/dist/normalize-NR5RS3WR.js +806 -0
- package/dist/normalize-WOZTAI6C.js +141 -0
- package/dist/options-PL44BV5E.js +122 -0
- package/dist/options-PL44BV5E.js.map +1 -0
- package/dist/organization-SQBODZUK.js +328 -0
- package/dist/organization-SQBODZUK.js.map +1 -0
- package/dist/output-GWIP6ROX.js +24 -0
- package/dist/page-YWGBCN65.js +105 -0
- package/dist/pages-FTI44OSH.js +66 -0
- package/dist/performance-WRARV3YR.js +24 -0
- package/dist/pinterest-J442QLQS.js +96 -0
- package/dist/pixels-DWW2TDY2.js +60 -0
- package/dist/pixels-MBKR4XPX.js +108 -0
- package/dist/plan-YPE77T4R.js +207 -0
- package/dist/preview-V4YBD45S.js +169 -0
- package/dist/profile-S3MXS2VO.js +159 -0
- package/dist/profile-S3MXS2VO.js.map +1 -0
- package/dist/promoted-tweet-writes-CAD3RGU4.js +180 -0
- package/dist/promoted-tweets-NYJP3TXL.js +119 -0
- package/dist/properties-G3L2OAOL.js +101 -0
- package/dist/publish-ZW6VHB27.js +341 -0
- package/dist/publish-ZW6VHB27.js.map +1 -0
- package/dist/query-QRPBV2AR.js +61 -0
- package/dist/query-WCB5W4NW.js +236 -0
- package/dist/query-YBS6ZQ75.js +247 -0
- package/dist/questionnaire-PAK4DALP.js +93 -0
- package/dist/read-LUTB3UOR.js +141 -0
- package/dist/reddit-VJTNXORD.js +26 -0
- package/dist/refresh-6I52WXG5.js +94 -0
- package/dist/release-LSSYP2ZJ.js +60 -0
- package/dist/relevant-pages-2XHS5WP4.js +99 -0
- package/dist/remove-K62YJYGT.js +50 -0
- package/dist/remove-X6DNVS67.js +48 -0
- package/dist/reopen-RPVEBQVR.js +63 -0
- package/dist/rerun-ETH2NEEX.js +90 -0
- package/dist/rerun-ETH2NEEX.js.map +1 -0
- package/dist/research-4ASN2KMB.js +62 -0
- package/dist/research-6J3EOBAL.js +262 -0
- package/dist/reset-ETORO5UO.js +54 -0
- package/dist/reset-YVTYHSTY.js +54 -0
- package/dist/resolve-BI7GB5U2.js +121 -0
- package/dist/retry-2ZZCKSRW.js +62 -0
- package/dist/retry-QZ7YHXF3.js +60 -0
- package/dist/retry-failed-EJBP4236.js +45 -0
- package/dist/rules-KEHQEXEU.js +96 -0
- package/dist/rules-KEHQEXEU.js.map +1 -0
- package/dist/rules-add-IDBWO6XV.js +462 -0
- package/dist/rules-add-IDBWO6XV.js.map +1 -0
- package/dist/run-FFASB4YB.js +65 -0
- package/dist/run-KYEOLJFV.js +66 -0
- package/dist/run-KYEOLJFV.js.map +1 -0
- package/dist/scaffold-ad-EKCXHZPT.js +1511 -0
- package/dist/scaffold-ad-EKCXHZPT.js.map +1 -0
- package/dist/scaffold-static-ad-MWKTXATN.js +1005 -0
- package/dist/scaffold-static-ad-MWKTXATN.js.map +1 -0
- package/dist/scaffold-video-BYPPH352.js +883 -0
- package/dist/scaffold-video-BYPPH352.js.map +1 -0
- package/dist/schedule-4BK2ML6F.js +61 -0
- package/dist/schedule-IDZC6M32.js +66 -0
- package/dist/scheduled-agents-GMGP3G6T.js +50 -0
- package/dist/scheduled-agents-GMGP3G6T.js.map +1 -0
- package/dist/schema-EFR7NGJG.js +69 -0
- package/dist/schema-EFR7NGJG.js.map +1 -0
- package/dist/schema-QPPWADIL.js +132 -0
- package/dist/scrape-J2Y7YZ4Z.js +2241 -0
- package/dist/screenshot-K7ZGTVTE.js +102 -0
- package/dist/search-CI7LEOOK.js +92 -0
- package/dist/search-GCSQ6CSD.js +174 -0
- package/dist/search-I6DRUXBX.js +224 -0
- package/dist/search-TTL7VQET.js +26 -0
- package/dist/search-VT2KUAH6.js +91 -0
- package/dist/search-copy-N2AIJNUH.js +168 -0
- package/dist/seeds-EYYQCMGF.js +101 -0
- package/dist/select-CPFKK57J.js +101 -0
- package/dist/select-CPFKK57J.js.map +1 -0
- package/dist/sends-RHVFV2XM.js +309 -0
- package/dist/sequences-5DUWNSWQ.js +146 -0
- package/dist/set-prompt-TJ3UTNYS.js +193 -0
- package/dist/set-prompt-TJ3UTNYS.js.map +1 -0
- package/dist/setup-links-C3EUV2RX.js +141 -0
- package/dist/shared-NDRFKAH7.js +31 -0
- package/dist/site-W5W7FCUD.js +177 -0
- package/dist/sitemaps-QKKXMXMV.js +87 -0
- package/dist/sites-GRC6CCCK.js +101 -0
- package/dist/skills-UML6GSW6.js +47 -0
- package/dist/sources-AWODYZDS.js +454 -0
- package/dist/sources-AWODYZDS.js.map +1 -0
- package/dist/sources-SGGLJIOA.js +30 -0
- package/dist/stale-KILEXX57.js +71 -0
- package/dist/stale-KILEXX57.js.map +1 -0
- package/dist/stats-RCLQE4HJ.js +34 -0
- package/dist/status-KUSLGZD7.js +62 -0
- package/dist/sticker-SINY47WT.js +94 -0
- package/dist/stock-ECRBD7RP.js +179 -0
- package/dist/studio-LMDDQWRY.js +49 -0
- package/dist/sync-2MFUI3ME.js +54 -0
- package/dist/sync-IE4AAVGY.js +265 -0
- package/dist/sync-IE4AAVGY.js.map +1 -0
- package/dist/sync-TCY4NX7J.js +54 -0
- package/dist/sync-definition-DGSAZGQZ.js +64 -0
- package/dist/tag-manager-G3LBQZUL.js +43 -0
- package/dist/tags-IHLO2NDM.js +20 -0
- package/dist/tags-QQLYW2QQ.js +224 -0
- package/dist/tags-QXRKKRIR.js +20 -0
- package/dist/tags-U5YWCPFW.js +20 -0
- package/dist/tags-ZYVOKGHU.js +26 -0
- package/dist/targeting-constants-KEKYU5JQ.js +118 -0
- package/dist/targeting-criteria-AEBSY6OY.js +113 -0
- package/dist/targets-5Q2OFVXL.js +103 -0
- package/dist/targets-5Q2OFVXL.js.map +1 -0
- package/dist/testimonials-O52ULRAU.js +32 -0
- package/dist/themes-26XFWSWC.js +94 -0
- package/dist/top-companies-OMGAFFWN.js +108 -0
- package/dist/translate-C5LZ6KVN.js +604 -0
- package/dist/translate-C5LZ6KVN.js.map +1 -0
- package/dist/triggers-PTPG6OQ6.js +142 -0
- package/dist/triggers-PTPG6OQ6.js.map +1 -0
- package/dist/tweets-C3QUKS3I.js +123 -0
- package/dist/unfollow-ZI5QU7RD.js +46 -0
- package/dist/unlink-3BAXM2OH.js +67 -0
- package/dist/unstage-7F7JI6HY.js +95 -0
- package/dist/unstage-EFW465VN.js +85 -0
- package/dist/unstage-EFW465VN.js.map +1 -0
- package/dist/update-2RCIXWP3.js +98 -0
- package/dist/update-5A7Q7S6I.js +63 -0
- package/dist/update-VTUB2M5I.js +188 -0
- package/dist/update-VTUB2M5I.js.map +1 -0
- package/dist/update-XPRHUFBR.js +152 -0
- package/dist/update-XPRHUFBR.js.map +1 -0
- package/dist/upload-KO46L76G.js +150 -0
- package/dist/upload-Y3TACPEN.js +126 -0
- package/dist/upscale-SJ7SCSRS.js +109 -0
- package/dist/url-options-6CNDIUDM.js +130 -0
- package/dist/url-params-ZUYOLAJG.js +98 -0
- package/dist/use-6ULEM3WE.js +95 -0
- package/dist/validate-KPJLIGYY.js +117 -0
- package/dist/validate-KPJLIGYY.js.map +1 -0
- package/dist/variant-5TRRSYBB.js +338 -0
- package/dist/videos-EFMNE6U2.js +39 -0
- package/dist/view-ABSWZMXW.js +121 -0
- package/dist/viewer-check-2GI26EKA.js +80 -0
- package/dist/viewer-check-2GI26EKA.js.map +1 -0
- package/dist/web-4JGYRY36.js +140 -0
- package/dist/winners-KRISBKOR.js +113 -0
- package/dist/winning-ads-6SXA4HGB.js +84 -0
- package/dist/write-commands-HCQI4Y27.js +737 -0
- package/dist/write-commands-LQXKNBA5.js +1015 -0
- package/dist/write-commands-QCI6XBM7.js +206 -0
- package/dist/write-commands-RHCCPMAE.js +713 -0
- package/dist/x-LUEUC3XO.js +47 -0
- package/package.json +2 -1
- package/dist/account-67PZBEP6.js +0 -79
- package/dist/account-HZC6X2PH.js +0 -49
- package/dist/account-TQUV64XP.js +0 -80
- package/dist/account-reads-IRBTERTY.js +0 -218
- package/dist/account-writes-ALDSHAEV.js +0 -66
- package/dist/accounts-4P54UY6F.js +0 -115
- package/dist/accounts-6UNBLIUH.js +0 -75
- package/dist/accounts-GVTZN4VE.js +0 -114
- package/dist/accounts-NJ6TF6WH.js +0 -611
- package/dist/accounts-WTB737BM.js +0 -77
- package/dist/actions-D3BOWDEB.js +0 -55
- package/dist/active-entities-J2O76SRP.js +0 -103
- package/dist/activities-2J7FTZMN.js +0 -74
- package/dist/ad-group-writes-PQKDCMQF.js +0 -170
- package/dist/ad-groups-NGYEJMV4.js +0 -68
- package/dist/ad-writes-77FVHJTS.js +0 -174
- package/dist/add-2FHPLALV.js +0 -105
- package/dist/add-2XJYOGKW.js +0 -104
- package/dist/add-62JPGFD4.js +0 -302
- package/dist/add-JP76KCCY.js +0 -97
- package/dist/add-accounts-M5Y4DQFM.js +0 -91
- package/dist/ads-DB5NDHX5.js +0 -128
- package/dist/ads-J2F7BSHR.js +0 -45
- package/dist/ads-J2F7BSHR.js.map +0 -1
- package/dist/ads-LYNA2I7B.js +0 -77
- package/dist/ads-W2IPUWHQ.js +0 -113
- package/dist/adsets-PY5ZKGBO.js +0 -176
- package/dist/advertisers-BVAZ4XUX.js +0 -125
- package/dist/advertisers-NZPJQF7W.js +0 -120
- package/dist/analytics-K2QIWKBN.js +0 -444
- package/dist/analytics-K2QIWKBN.js.map +0 -1
- package/dist/analytics-NTPZKMYK.js +0 -1976
- package/dist/animate-EIV2OHXT.js +0 -480
- package/dist/assign-UNIA5YDC.js +0 -77
- package/dist/audience-size-4NN6ENP5.js +0 -94
- package/dist/audience-size-4NN6ENP5.js.map +0 -1
- package/dist/audiences-45ZCY2VZ.js +0 -268
- package/dist/audiences-UUIYQFS6.js +0 -78
- package/dist/audiences-VYFX7OFS.js +0 -85
- package/dist/audit-NSVHNA5J.js +0 -151
- package/dist/audit-OWXTLQC4.js +0 -88
- package/dist/autocomplete-EHWAQYVB.js +0 -111
- package/dist/avatars-7WZPW7BV.js +0 -38
- package/dist/bid-pricing-F5NDMS6W.js +0 -99
- package/dist/bid-pricing-F5NDMS6W.js.map +0 -1
- package/dist/brand-QAJ5VWFM.js +0 -22
- package/dist/brief-V2OB5OJW.js +0 -490
- package/dist/brief-V2OB5OJW.js.map +0 -1
- package/dist/businesses-ZH67AXR6.js +0 -53
- package/dist/campaign-groups-KFJKLNNU.js +0 -95
- package/dist/campaign-writes-BDGQ6XB3.js +0 -170
- package/dist/campaign-writes-FNMAGCKB.js +0 -165
- package/dist/campaigns-66OOGMDW.js +0 -110
- package/dist/campaigns-6HMHOXXY.js +0 -109
- package/dist/campaigns-HJTGX5WW.js +0 -76
- package/dist/campaigns-KT3J2O7S.js +0 -107
- package/dist/canvas-MQ6ZE5CZ.js +0 -46
- package/dist/capabilities-RVUMPP7C.js +0 -144
- package/dist/cards-I4BZIYUV.js +0 -85
- package/dist/catalog-NLL5VDRK.js +0 -64
- package/dist/catalog-NLL5VDRK.js.map +0 -1
- package/dist/catalogs-B2NKQO24.js +0 -128
- package/dist/changes-FX3TPYGT.js +0 -135
- package/dist/chatgpt-3NS2R442.js +0 -47
- package/dist/chats-72L7U4ML.js +0 -262
- package/dist/chunk-2KIF3U2C.js +0 -51
- package/dist/chunk-35ENAFJX.js +0 -46
- package/dist/chunk-3ZWHAIMU.js +0 -207
- package/dist/chunk-3ZWHAIMU.js.map +0 -1
- package/dist/chunk-4DM6OAQ6.js +0 -2065
- package/dist/chunk-4DM6OAQ6.js.map +0 -1
- package/dist/chunk-4TU2MWBJ.js +0 -275
- package/dist/chunk-57UECM77.js +0 -98
- package/dist/chunk-5HYSKH77.js +0 -315
- package/dist/chunk-5HYSKH77.js.map +0 -1
- package/dist/chunk-65BQAJMH.js +0 -136
- package/dist/chunk-6GFJFTG6.js +0 -75
- package/dist/chunk-6HPIWZHS.js +0 -76
- package/dist/chunk-73B3RQJC.js +0 -610
- package/dist/chunk-73B3RQJC.js.map +0 -1
- package/dist/chunk-7GYM4I5I.js +0 -206
- package/dist/chunk-7NTION5F.js +0 -26
- package/dist/chunk-7SX73SH2.js +0 -2902
- package/dist/chunk-7SX73SH2.js.map +0 -1
- package/dist/chunk-AFDPISNJ.js +0 -111
- package/dist/chunk-AFDPISNJ.js.map +0 -1
- package/dist/chunk-AIDXJHZ4.js +0 -433
- package/dist/chunk-AR7PU7BB.js +0 -76
- package/dist/chunk-AXVOBRQT.js +0 -1442
- package/dist/chunk-AXVOBRQT.js.map +0 -1
- package/dist/chunk-BBBZR7MF.js +0 -160
- package/dist/chunk-BBBZR7MF.js.map +0 -1
- package/dist/chunk-BVYPRGPG.js +0 -92
- package/dist/chunk-BVYPRGPG.js.map +0 -1
- package/dist/chunk-CAMX6OHF.js +0 -3182
- package/dist/chunk-CAMX6OHF.js.map +0 -1
- package/dist/chunk-CBCGVPHB.js +0 -125
- package/dist/chunk-CECS3DHZ.js +0 -333
- package/dist/chunk-CZYUZL6R.js +0 -3151
- package/dist/chunk-CZYUZL6R.js.map +0 -1
- package/dist/chunk-D5MF337I.js +0 -97
- package/dist/chunk-DDTILZXI.js +0 -103
- package/dist/chunk-DL2W4N7J.js +0 -52
- package/dist/chunk-DLUWHZCE.js +0 -225
- package/dist/chunk-EOGPNV25.js +0 -509
- package/dist/chunk-EOGPNV25.js.map +0 -1
- package/dist/chunk-F3FSD6BO.js +0 -96
- package/dist/chunk-F3FSD6BO.js.map +0 -1
- package/dist/chunk-FDG2LLX7.js +0 -494
- package/dist/chunk-FE7T32YL.js +0 -163
- package/dist/chunk-FE7T32YL.js.map +0 -1
- package/dist/chunk-FIN4ZXGJ.js +0 -70
- package/dist/chunk-FIN4ZXGJ.js.map +0 -1
- package/dist/chunk-FO5EP6DA.js +0 -24008
- package/dist/chunk-FO5EP6DA.js.map +0 -1
- package/dist/chunk-FSGTITIW.js +0 -622
- package/dist/chunk-FSGTITIW.js.map +0 -1
- package/dist/chunk-FSPV2DUG.js +0 -310
- package/dist/chunk-FSPV2DUG.js.map +0 -1
- package/dist/chunk-FYAWA3FO.js +0 -1830
- package/dist/chunk-FYAWA3FO.js.map +0 -1
- package/dist/chunk-G3KO2HFZ.js +0 -35
- package/dist/chunk-GKXMIXEV.js +0 -166
- package/dist/chunk-GT4UFORX.js +0 -296
- package/dist/chunk-GZ6YS7TG.js +0 -106
- package/dist/chunk-H7JOVRHO.js +0 -106
- package/dist/chunk-IJDF7D4U.js +0 -139
- package/dist/chunk-INJHF7AF.js +0 -172
- package/dist/chunk-IZFGTGFR.js +0 -67
- package/dist/chunk-J2QOKD2F.js +0 -76
- package/dist/chunk-J5WZ7SAD.js +0 -346
- package/dist/chunk-JC6GNMA7.js +0 -297
- package/dist/chunk-KB5HBQEK.js +0 -25
- package/dist/chunk-KB5XJHQX.js +0 -216
- package/dist/chunk-KB5XJHQX.js.map +0 -1
- package/dist/chunk-KM4AAAHZ.js +0 -5187
- package/dist/chunk-KM4AAAHZ.js.map +0 -1
- package/dist/chunk-LFZTGIPJ.js +0 -384
- package/dist/chunk-LFZTGIPJ.js.map +0 -1
- package/dist/chunk-LHNL6JM2.js +0 -309
- package/dist/chunk-LHNL6JM2.js.map +0 -1
- package/dist/chunk-LMHVLUD4.js +0 -175
- package/dist/chunk-LMHVLUD4.js.map +0 -1
- package/dist/chunk-NAMEFVWL.js +0 -1743
- package/dist/chunk-NAMEFVWL.js.map +0 -1
- package/dist/chunk-NFSLRRIE.js +0 -77
- package/dist/chunk-NORAJYUI.js +0 -172
- package/dist/chunk-NQTSHC7Z.js +0 -304
- package/dist/chunk-NQTSHC7Z.js.map +0 -1
- package/dist/chunk-O3LHCQ7Q.js +0 -136
- package/dist/chunk-O3LHCQ7Q.js.map +0 -1
- package/dist/chunk-O4ABJ352.js +0 -4410
- package/dist/chunk-O4ABJ352.js.map +0 -1
- package/dist/chunk-O5XLQUDS.js +0 -846
- package/dist/chunk-OI7KSXZM.js +0 -6265
- package/dist/chunk-OI7KSXZM.js.map +0 -1
- package/dist/chunk-OO67YTPM.js +0 -35
- package/dist/chunk-OO67YTPM.js.map +0 -1
- package/dist/chunk-OXBPKBSK.js +0 -6667
- package/dist/chunk-OXBPKBSK.js.map +0 -1
- package/dist/chunk-P3XJUOWT.js +0 -474
- package/dist/chunk-P3XJUOWT.js.map +0 -1
- package/dist/chunk-P3ZJIIDS.js +0 -57
- package/dist/chunk-P5T7OZKV.js +0 -26
- package/dist/chunk-P66JWKAL.js +0 -533
- package/dist/chunk-P66JWKAL.js.map +0 -1
- package/dist/chunk-PA5MYVQY.js +0 -66
- package/dist/chunk-PELW56D7.js +0 -45
- package/dist/chunk-PGVF4SB7.js +0 -169
- package/dist/chunk-Q676JHJA.js +0 -58
- package/dist/chunk-QDOVBGKZ.js +0 -149
- package/dist/chunk-QHIUJXU7.js +0 -363
- package/dist/chunk-QJPPPQPD.js +0 -98
- package/dist/chunk-QNEX7FEC.js +0 -174
- package/dist/chunk-QTL4NJ5I.js +0 -65
- package/dist/chunk-QTL4NJ5I.js.map +0 -1
- package/dist/chunk-QWX3QJNM.js +0 -170
- package/dist/chunk-QXDEZKAR.js +0 -455
- package/dist/chunk-QXDEZKAR.js.map +0 -1
- package/dist/chunk-RG7OMI5W.js +0 -1621
- package/dist/chunk-RG7OMI5W.js.map +0 -1
- package/dist/chunk-RUHMLPH5.js +0 -455
- package/dist/chunk-SJLIV6PF.js +0 -19
- package/dist/chunk-SLCSLVGS.js +0 -274
- package/dist/chunk-THU74XR6.js +0 -96
- package/dist/chunk-THU74XR6.js.map +0 -1
- package/dist/chunk-TY7TEU3T.js +0 -1079
- package/dist/chunk-UXTZ5MBE.js +0 -56
- package/dist/chunk-V43RLLZE.js +0 -55
- package/dist/chunk-V7PMSMPF.js +0 -817
- package/dist/chunk-V7PMSMPF.js.map +0 -1
- package/dist/chunk-VFSLIDXA.js +0 -42
- package/dist/chunk-VHMNSO2B.js +0 -84
- package/dist/chunk-VKH6LSC2.js +0 -188
- package/dist/chunk-VTCBPYGE.js +0 -592
- package/dist/chunk-W6ASM6UP.js +0 -197
- package/dist/chunk-W7KB3LJE.js +0 -60
- package/dist/chunk-W7KB3LJE.js.map +0 -1
- package/dist/chunk-WESRVXFS.js +0 -133
- package/dist/chunk-WESRVXFS.js.map +0 -1
- package/dist/chunk-WILN7TD6.js +0 -84
- package/dist/chunk-YGK7ZHNI.js +0 -337
- package/dist/chunk-YGK7ZHNI.js.map +0 -1
- package/dist/chunk-YGL5LTEA.js +0 -665
- package/dist/chunk-YONSWWCF.js +0 -215
- package/dist/chunk-Z5KBRTB2.js +0 -191
- package/dist/chunk-Z62XZCBE.js +0 -541
- package/dist/chunk-Z62XZCBE.js.map +0 -1
- package/dist/chunk-ZBKBTTHD.js +0 -74
- package/dist/chunk-ZJR5E53N.js +0 -23
- package/dist/chunk-ZLU5QDLU.js +0 -486
- package/dist/chunk-ZLU5QDLU.js.map +0 -1
- package/dist/chunk-ZNNC6B75.js +0 -94
- package/dist/chunk-ZO2YLHRW.js +0 -74
- package/dist/chunk-ZPJE6D7W.js +0 -74
- package/dist/claim-DIITRUIN.js +0 -197
- package/dist/client-LY2JCQS2.js +0 -19
- package/dist/code-7CBNYUPU.js +0 -76
- package/dist/companies-HHSYHL74.js +0 -195
- package/dist/complete-M3TURPU5.js +0 -81
- package/dist/config-7COTFJWK.js +0 -88
- package/dist/connect-TQL5EVVE.js +0 -42
- package/dist/content-OXMONMHJ.js +0 -85
- package/dist/conversation-GE273GC4.js +0 -93
- package/dist/conversion-report-BH4HH2Q3.js +0 -125
- package/dist/conversion-upload-command-QWWYCTNV.js +0 -438
- package/dist/conversion-writes-HG2O6JI7.js +0 -120
- package/dist/conversions-DP6ZF57D.js +0 -135
- package/dist/conversions-XPSN7SOW.js +0 -76
- package/dist/countries-UXAUGSBR.js +0 -82
- package/dist/create-ENQWVWGB.js +0 -59
- package/dist/create-NVXJP477.js +0 -207
- package/dist/create-PITWGVAS.js +0 -130
- package/dist/create-PITWGVAS.js.map +0 -1
- package/dist/create-XLZYNFKN.js +0 -235
- package/dist/creatives-O3444SBT.js +0 -182
- package/dist/creatives-ONKKGW5T.js +0 -87
- package/dist/creatives-U6IKIQBT.js +0 -51
- package/dist/creatives-U6IKIQBT.js.map +0 -1
- package/dist/credentials-3UY7RVUL.js +0 -287
- package/dist/critique-3LMW73QJ.js +0 -1449
- package/dist/critique-3LMW73QJ.js.map +0 -1
- package/dist/critique-KB32Y4AW.js +0 -213
- package/dist/critique-KB32Y4AW.js.map +0 -1
- package/dist/crm-OX67TBWD.js +0 -224
- package/dist/crm-XXU5XZIQ.js +0 -318
- package/dist/crop-3ZV5BFCA.js +0 -113
- package/dist/currency-XP4EMU4M.js +0 -88
- package/dist/custom-conversions-TV23XQHW.js +0 -125
- package/dist/customers-EJ7FVCTC.js +0 -56
- package/dist/decide-EGQ3CRHI.js +0 -199
- package/dist/delete-55IHV25V.js +0 -63
- package/dist/delete-55IHV25V.js.map +0 -1
- package/dist/delete-GXLPIGTC.js +0 -54
- package/dist/delete-MUPTLWHI.js +0 -71
- package/dist/delete-OW2N4WIA.js +0 -66
- package/dist/delete-R2SEUSLV.js +0 -69
- package/dist/delete-ZGBBWFAW.js +0 -71
- package/dist/demographics-K6DEWUE5.js +0 -138
- package/dist/describe-4O3VCV6L.js +0 -97
- package/dist/describe-FCTM53MM.js +0 -97
- package/dist/dimensions-AD4VS5AH.js +0 -101
- package/dist/discard-NZ7FQJEE.js +0 -66
- package/dist/discover-OISU5EJF.js +0 -172
- package/dist/discover-UQXQUPNO.js +0 -93
- package/dist/domain-DXBHNZLO.js +0 -98
- package/dist/download-IE6XLFHM.js +0 -299
- package/dist/draft-DB6KMBCH.js +0 -306
- package/dist/draft-ENA7S4Y7.js +0 -103
- package/dist/draft-HJBAG3SN.js +0 -307
- package/dist/draft-ICEVLF4E.js +0 -328
- package/dist/draft-MGKJ5RYI.js +0 -100
- package/dist/draft-OBFKQEPK.js +0 -281
- package/dist/draft-OOHU6NMA.js +0 -217
- package/dist/draft-S6VPKZYY.js +0 -233
- package/dist/env-YLOVBOAE.js +0 -43
- package/dist/experiment-PHFP6IBM.js +0 -1397
- package/dist/export-R2IMUCQO.js +0 -168
- package/dist/extract-OQP3TSQG.js +0 -113
- package/dist/facets-NUKR7I57.js +0 -114
- package/dist/favorites-NS73FDG5.js +0 -178
- package/dist/feed-SQPOB7SP.js +0 -177
- package/dist/feedback-SQAAAKOQ.js +0 -66
- package/dist/feedback-SQAAAKOQ.js.map +0 -1
- package/dist/feedback-record-7W7WBHSQ.js +0 -175
- package/dist/feedback-record-7W7WBHSQ.js.map +0 -1
- package/dist/fetch-PQ3NOPIE.js +0 -139
- package/dist/fetch-PTSAVQW5.js +0 -176
- package/dist/find-Y22AANDE.js +0 -134
- package/dist/find-Y22AANDE.js.map +0 -1
- package/dist/fit-IITU6UWC.js +0 -45
- package/dist/flows-ZLF3QJ76.js +0 -247
- package/dist/flows-ZLF3QJ76.js.map +0 -1
- package/dist/follow-N3DQZV7M.js +0 -94
- package/dist/follow-competitors-BZPCBGIB.js +0 -112
- package/dist/following-KESWTEBR.js +0 -113
- package/dist/fonts-FG6XMK5A.js +0 -34
- package/dist/forecast-43XBSHJR.js +0 -168
- package/dist/forecast-MAFZQ4UF.js +0 -104
- package/dist/forecast-MAFZQ4UF.js.map +0 -1
- package/dist/funding-HYSCYS62.js +0 -85
- package/dist/funnel-32CNV57L.js +0 -394
- package/dist/ga4-J2KTNCD4.js +0 -55
- package/dist/generate-G3I5BLLW.js +0 -262
- package/dist/generate-G3I5BLLW.js.map +0 -1
- package/dist/get-3P2EQLP3.js +0 -63
- package/dist/get-FJB3X44Z.js +0 -61
- package/dist/get-GDF5V3RN.js +0 -78
- package/dist/get-GDF5V3RN.js.map +0 -1
- package/dist/get-MBGO4VJD.js +0 -63
- package/dist/get-NOKSZPIV.js +0 -59
- package/dist/get-W7MKBMQ3.js +0 -56
- package/dist/get-WHC4SRYK.js +0 -92
- package/dist/gif-SFYVDLCU.js +0 -94
- package/dist/gif-SFYVDLCU.js.map +0 -1
- package/dist/google-THWFDDHJ.js +0 -3191
- package/dist/google-THWFDDHJ.js.map +0 -1
- package/dist/google-XRAMIES5.js +0 -136
- package/dist/google-ads-N55SE2CB.js +0 -195
- package/dist/group-6RDJTWVN.js +0 -43
- package/dist/group-TZJCKHKS.js +0 -43
- package/dist/gsc-HD6UFRYM.js +0 -30
- package/dist/history-4RWCE7WW.js +0 -67
- package/dist/history-IROFQ6LA.js +0 -133
- package/dist/hubspot-75N4AI43.js +0 -779
- package/dist/icon-BMCDFGMN.js +0 -137
- package/dist/ideas-7UQMXLI5.js +0 -32
- package/dist/images-OFR3S2U4.js +0 -90
- package/dist/images-OFR3S2U4.js.map +0 -1
- package/dist/improve-P6F2HXYQ.js +0 -86
- package/dist/ingest-HGR7KSG4.js +0 -107
- package/dist/ingest-XU4WXE4U.js +0 -23
- package/dist/insights-7SI2TB72.js +0 -128
- package/dist/insights-7SI2TB72.js.map +0 -1
- package/dist/insights-P5VIDOZN.js +0 -432
- package/dist/insights-P5VIDOZN.js.map +0 -1
- package/dist/inspect-TL2VZBN7.js +0 -189
- package/dist/inspiration-7WTS3AVI.js +0 -53
- package/dist/intent-OCZE4O7R.js +0 -95
- package/dist/job-XMPQ27SJ.js +0 -202
- package/dist/job-create-HTDQHPEF.js +0 -109
- package/dist/job-status-L7WUTZ2C.js +0 -74
- package/dist/keep-42SLV4CR.js +0 -78
- package/dist/keyword-gap-323NE4AK.js +0 -130
- package/dist/keyword-metrics-V6DGO7U5.js +0 -197
- package/dist/keywords-for-site-ANSLXBHB.js +0 -128
- package/dist/landing-K25GUBLZ.js +0 -28
- package/dist/landings-5IYXHA5Z.js +0 -151
- package/dist/languages-SRFGW6Z3.js +0 -55
- package/dist/languages-US6JUATO.js +0 -40
- package/dist/launches-7U4TPNO3.js +0 -108
- package/dist/launches-7U4TPNO3.js.map +0 -1
- package/dist/layerize-U672AXED.js +0 -190
- package/dist/leads-MXUQISOC.js +0 -293
- package/dist/leads-UJVKPRXX.js +0 -90
- package/dist/learn-XTEU4K66.js +0 -203
- package/dist/learn-XTEU4K66.js.map +0 -1
- package/dist/library-RPFXNER4.js +0 -109
- package/dist/library-RPFXNER4.js.map +0 -1
- package/dist/lighthouse-SJ4QNLUS.js +0 -75
- package/dist/line-item-writes-NURRHJ7P.js +0 -208
- package/dist/line-items-PC6QWV5J.js +0 -103
- package/dist/link-ZSXKCLQD.js +0 -64
- package/dist/linkedin-EZJJBKY3.js +0 -1008
- package/dist/linkedin-EZJJBKY3.js.map +0 -1
- package/dist/list-ECF3RA26.js +0 -303
- package/dist/list-GQ65MC2N.js +0 -65
- package/dist/list-K56J7FZW.js +0 -51
- package/dist/list-M4Z3WYPM.js +0 -76
- package/dist/list-N7ZLO2LE.js +0 -63
- package/dist/list-N7ZLO2LE.js.map +0 -1
- package/dist/list-Q5ZZRPHO.js +0 -151
- package/dist/list-SXYVDDMU.js +0 -57
- package/dist/list-XFIOXFB2.js +0 -50
- package/dist/locations-LZUHWKZY.js +0 -40
- package/dist/locations-NG4YXIBT.js +0 -67
- package/dist/log-EEBJQ6X2.js +0 -92
- package/dist/logo-4JOWGJ5A.js +0 -18
- package/dist/lookup-7NBZ64TE.js +0 -22
- package/dist/make-3J5EK52U.js +0 -633
- package/dist/make-3J5EK52U.js.map +0 -1
- package/dist/map-JVVNH2RI.js +0 -404
- package/dist/map-JVVNH2RI.js.map +0 -1
- package/dist/mcp-DAKGMA2Z.js +0 -463
- package/dist/media-2SWDJDA6.js +0 -15
- package/dist/media-R64YP7T2.js +0 -89
- package/dist/media-sources-L2X3KRDU.js +0 -32
- package/dist/members-22BOEGQS.js +0 -44
- package/dist/meta-RBHF2RG3.js +0 -69
- package/dist/metrics-IXRQZVSM.js +0 -152
- package/dist/models-BDXZ56GI.js +0 -155
- package/dist/normalize-JAE3NVOX.js +0 -141
- package/dist/normalize-P5Q3F7FU.js +0 -806
- package/dist/options-YTIU3BDC.js +0 -121
- package/dist/options-YTIU3BDC.js.map +0 -1
- package/dist/output-ZL62UZHQ.js +0 -24
- package/dist/page-FZ7IZ5CV.js +0 -105
- package/dist/pages-SS7TZTHV.js +0 -66
- package/dist/performance-FOOV624A.js +0 -24
- package/dist/performance-VYEANYQ5.js +0 -4707
- package/dist/performance-VYEANYQ5.js.map +0 -1
- package/dist/pinterest-UETS7U7U.js +0 -96
- package/dist/pixels-LCTMLKGP.js +0 -108
- package/dist/pixels-MPZYWGFD.js +0 -60
- package/dist/plan-V74EVXTW.js +0 -207
- package/dist/preview-RU54Z4EM.js +0 -169
- package/dist/profile-NQOIBLJL.js +0 -150
- package/dist/profile-NQOIBLJL.js.map +0 -1
- package/dist/promoted-tweet-writes-FQRFU7PB.js +0 -180
- package/dist/promoted-tweets-L2L3V5SF.js +0 -119
- package/dist/properties-ZUDQH3LE.js +0 -101
- package/dist/publish-5XTAHTM4.js +0 -322
- package/dist/publish-5XTAHTM4.js.map +0 -1
- package/dist/query-26T7XATH.js +0 -236
- package/dist/query-SHUOHXTO.js +0 -247
- package/dist/query-XISUHMBR.js +0 -62
- package/dist/questionnaire-UG55JLVW.js +0 -93
- package/dist/read-UYSQAXRV.js +0 -141
- package/dist/reddit-BCB4FT6J.js +0 -26
- package/dist/refresh-WY5NPNLX.js +0 -94
- package/dist/release-JBSPPNQE.js +0 -60
- package/dist/relevant-pages-OU5H56KY.js +0 -99
- package/dist/remove-2KACTXKP.js +0 -48
- package/dist/remove-M5P7M5JU.js +0 -50
- package/dist/reopen-J3VW5766.js +0 -63
- package/dist/rerun-5MRYJG6U.js +0 -84
- package/dist/rerun-5MRYJG6U.js.map +0 -1
- package/dist/research-4CAA5CA2.js +0 -262
- package/dist/research-7LBTJ2B2.js +0 -62
- package/dist/reset-DBWWGCXY.js +0 -54
- package/dist/reset-DJSSXC4Y.js +0 -54
- package/dist/resolve-BNRUYS56.js +0 -121
- package/dist/retry-TMRIFGVT.js +0 -62
- package/dist/retry-WRBGLB7O.js +0 -60
- package/dist/retry-failed-NWLH6WHK.js +0 -45
- package/dist/run-TA3DP6QG.js +0 -59
- package/dist/run-VVTLDRRW.js +0 -65
- package/dist/run-VVTLDRRW.js.map +0 -1
- package/dist/scaffold-ad-7DSV6XDB.js +0 -1548
- package/dist/scaffold-ad-7DSV6XDB.js.map +0 -1
- package/dist/scaffold-static-ad-BEZ37QWN.js +0 -971
- package/dist/scaffold-static-ad-BEZ37QWN.js.map +0 -1
- package/dist/scaffold-video-SPCMTYK3.js +0 -872
- package/dist/scaffold-video-SPCMTYK3.js.map +0 -1
- package/dist/schedule-BQQGYGT7.js +0 -61
- package/dist/schedule-S547HPUT.js +0 -66
- package/dist/scheduled-agents-4Q6WS333.js +0 -49
- package/dist/scheduled-agents-4Q6WS333.js.map +0 -1
- package/dist/schema-DDEWM5ZX.js +0 -132
- package/dist/schema-SQIP75WG.js +0 -63
- package/dist/schema-SQIP75WG.js.map +0 -1
- package/dist/scrape-TI6S2W7I.js +0 -2241
- package/dist/screenshot-XFAYY4WW.js +0 -102
- package/dist/search-4HIOKYFR.js +0 -26
- package/dist/search-D2IV7KFJ.js +0 -92
- package/dist/search-IZPDHRJ4.js +0 -224
- package/dist/search-KFDL2IGG.js +0 -91
- package/dist/search-VJBKRD2U.js +0 -174
- package/dist/search-copy-QZXCAGK4.js +0 -168
- package/dist/seeds-VUNZMHZH.js +0 -101
- package/dist/select-U5TPAXGY.js +0 -94
- package/dist/select-U5TPAXGY.js.map +0 -1
- package/dist/sends-7HWLIOUO.js +0 -309
- package/dist/sequences-5RAGZE7L.js +0 -146
- package/dist/set-prompt-MHU4WI3Q.js +0 -185
- package/dist/set-prompt-MHU4WI3Q.js.map +0 -1
- package/dist/setup-links-SPIGXQTY.js +0 -141
- package/dist/shared-3CGGKICB.js +0 -31
- package/dist/site-FW6K6L6M.js +0 -177
- package/dist/sitemaps-3WDYQHYR.js +0 -87
- package/dist/sites-G4DQ2Z2X.js +0 -101
- package/dist/skills-PA26HXEP.js +0 -47
- package/dist/sources-4NAC6HV6.js +0 -421
- package/dist/sources-4NAC6HV6.js.map +0 -1
- package/dist/sources-PMBWG4KO.js +0 -30
- package/dist/stale-5IMY6MWC.js +0 -63
- package/dist/stale-5IMY6MWC.js.map +0 -1
- package/dist/stats-Q35I5DRW.js +0 -34
- package/dist/status-62SUXUWW.js +0 -62
- package/dist/sticker-MC2IAIQB.js +0 -94
- package/dist/stock-B7LKMKUK.js +0 -179
- package/dist/studio-BB2EVW5I.js +0 -49
- package/dist/sync-CLZDZL5F.js +0 -54
- package/dist/sync-XCHBEBZG.js +0 -279
- package/dist/sync-XCHBEBZG.js.map +0 -1
- package/dist/sync-YTHNOAAM.js +0 -54
- package/dist/sync-definition-DYSVT7BJ.js +0 -52
- package/dist/tag-manager-EAREWVYR.js +0 -43
- package/dist/tags-53AG3FYG.js +0 -20
- package/dist/tags-7TH7TVR6.js +0 -224
- package/dist/tags-EB4RE3ML.js +0 -20
- package/dist/tags-EUEWDTTN.js +0 -20
- package/dist/tags-ICAWBCOR.js +0 -26
- package/dist/targeting-constants-IFE72XKL.js +0 -118
- package/dist/targeting-criteria-WZDGJKOI.js +0 -113
- package/dist/targets-OKJ6A4YL.js +0 -102
- package/dist/targets-OKJ6A4YL.js.map +0 -1
- package/dist/templates-IA5TDCCZ.js +0 -178
- package/dist/templates-IA5TDCCZ.js.map +0 -1
- package/dist/testimonials-THHR5JH5.js +0 -32
- package/dist/themes-ZFRM6AVO.js +0 -94
- package/dist/top-companies-63Q475IA.js +0 -108
- package/dist/translate-XKUWIIOS.js +0 -598
- package/dist/translate-XKUWIIOS.js.map +0 -1
- package/dist/triggers-XLKO2QXQ.js +0 -141
- package/dist/triggers-XLKO2QXQ.js.map +0 -1
- package/dist/tweets-7EZRFG3Y.js +0 -123
- package/dist/unfollow-WBBTVEHE.js +0 -46
- package/dist/unlink-P7KU54YU.js +0 -67
- package/dist/unstage-EG7AUE5X.js +0 -84
- package/dist/unstage-EG7AUE5X.js.map +0 -1
- package/dist/unstage-GHXGDOT2.js +0 -95
- package/dist/update-7EWDO32L.js +0 -98
- package/dist/update-BVYGB4YL.js +0 -142
- package/dist/update-BVYGB4YL.js.map +0 -1
- package/dist/update-KVMQOVQK.js +0 -63
- package/dist/update-N74F5KXB.js +0 -155
- package/dist/update-N74F5KXB.js.map +0 -1
- package/dist/upload-6PYPHPCZ.js +0 -126
- package/dist/upload-NA62W5RS.js +0 -150
- package/dist/upscale-RXJUBHXN.js +0 -109
- package/dist/url-options-EUDXLDBD.js +0 -130
- package/dist/url-params-DBJSM2LP.js +0 -98
- package/dist/use-MHPNS4V4.js +0 -95
- package/dist/validate-TTAGVGM2.js +0 -88
- package/dist/validate-TTAGVGM2.js.map +0 -1
- package/dist/variant-ZFCWILPG.js +0 -338
- package/dist/videos-DUG7JYUA.js +0 -39
- package/dist/view-PYCGDGT2.js +0 -121
- package/dist/viewer-check-HIMNCZGY.js +0 -68
- package/dist/web-SDG42OBC.js +0 -140
- package/dist/winners-AI4PVSOI.js +0 -113
- package/dist/winning-ads-KGAYAIPG.js +0 -84
- package/dist/write-commands-34L5LJIB.js +0 -713
- package/dist/write-commands-5TJ3LQ5F.js +0 -737
- package/dist/write-commands-OYMWOFEY.js +0 -1015
- package/dist/write-commands-R3UCCBUI.js +0 -206
- package/dist/x-VNRVGVLI.js +0 -47
- /package/dist/{account-HZC6X2PH.js.map → account-7LUQWY6Q.js.map} +0 -0
- /package/dist/{account-TQUV64XP.js.map → account-ELL7ZZLM.js.map} +0 -0
- /package/dist/{account-67PZBEP6.js.map → account-KZVOT6HL.js.map} +0 -0
- /package/dist/{account-reads-IRBTERTY.js.map → account-reads-LA45L6G3.js.map} +0 -0
- /package/dist/{account-writes-ALDSHAEV.js.map → account-writes-CEPERFD6.js.map} +0 -0
- /package/dist/{accounts-WTB737BM.js.map → accounts-7G556DH4.js.map} +0 -0
- /package/dist/{accounts-4P54UY6F.js.map → accounts-E4TVYTUR.js.map} +0 -0
- /package/dist/{accounts-NJ6TF6WH.js.map → accounts-HC7GPQNG.js.map} +0 -0
- /package/dist/{accounts-GVTZN4VE.js.map → accounts-SMB3TNXX.js.map} +0 -0
- /package/dist/{accounts-6UNBLIUH.js.map → accounts-UA2ZWRN4.js.map} +0 -0
- /package/dist/{actions-D3BOWDEB.js.map → actions-V6YP5C3X.js.map} +0 -0
- /package/dist/{active-entities-J2O76SRP.js.map → active-entities-MCL7UEGV.js.map} +0 -0
- /package/dist/{activities-2J7FTZMN.js.map → activities-IQPJPP4B.js.map} +0 -0
- /package/dist/{ad-group-writes-PQKDCMQF.js.map → ad-group-writes-XGSCEQTW.js.map} +0 -0
- /package/dist/{ad-groups-NGYEJMV4.js.map → ad-groups-GKOLDGET.js.map} +0 -0
- /package/dist/{ad-writes-77FVHJTS.js.map → ad-writes-VVD36JKH.js.map} +0 -0
- /package/dist/{add-2XJYOGKW.js.map → add-3MD72QMT.js.map} +0 -0
- /package/dist/{add-2FHPLALV.js.map → add-5IGUQHVZ.js.map} +0 -0
- /package/dist/{add-JP76KCCY.js.map → add-BK5AQI5A.js.map} +0 -0
- /package/dist/{add-62JPGFD4.js.map → add-TSQNUP5N.js.map} +0 -0
- /package/dist/{add-accounts-M5Y4DQFM.js.map → add-accounts-CJSV5NPL.js.map} +0 -0
- /package/dist/{ads-LYNA2I7B.js.map → ads-EKZVHKPN.js.map} +0 -0
- /package/dist/{ads-W2IPUWHQ.js.map → ads-HXX2IAFF.js.map} +0 -0
- /package/dist/{ads-DB5NDHX5.js.map → ads-RAUM6ISF.js.map} +0 -0
- /package/dist/{adsets-PY5ZKGBO.js.map → adsets-LPN6WFGF.js.map} +0 -0
- /package/dist/{advertisers-BVAZ4XUX.js.map → advertisers-DS2NRWKI.js.map} +0 -0
- /package/dist/{advertisers-NZPJQF7W.js.map → advertisers-XJG7XDK7.js.map} +0 -0
- /package/dist/{analytics-NTPZKMYK.js.map → analytics-DO4UKW2H.js.map} +0 -0
- /package/dist/{animate-EIV2OHXT.js.map → animate-G4P3OEJE.js.map} +0 -0
- /package/dist/{assign-UNIA5YDC.js.map → assign-72YAL6TP.js.map} +0 -0
- /package/dist/{audiences-VYFX7OFS.js.map → audiences-3LRCLHTQ.js.map} +0 -0
- /package/dist/{audiences-45ZCY2VZ.js.map → audiences-BU4JZJT7.js.map} +0 -0
- /package/dist/{audiences-UUIYQFS6.js.map → audiences-XEZHACKH.js.map} +0 -0
- /package/dist/{audit-NSVHNA5J.js.map → audit-22KQAHJR.js.map} +0 -0
- /package/dist/{audit-OWXTLQC4.js.map → audit-YEGQU474.js.map} +0 -0
- /package/dist/{autocomplete-EHWAQYVB.js.map → autocomplete-KLNQIK5T.js.map} +0 -0
- /package/dist/{avatars-7WZPW7BV.js.map → avatars-VO6FMJFB.js.map} +0 -0
- /package/dist/{brand-QAJ5VWFM.js.map → brand-XXNOVSGE.js.map} +0 -0
- /package/dist/{businesses-ZH67AXR6.js.map → businesses-PRRYPR7H.js.map} +0 -0
- /package/dist/{campaign-groups-KFJKLNNU.js.map → campaign-groups-JFOFU76X.js.map} +0 -0
- /package/dist/{campaign-writes-BDGQ6XB3.js.map → campaign-writes-NSEJCINS.js.map} +0 -0
- /package/dist/{campaign-writes-FNMAGCKB.js.map → campaign-writes-PKWLLKB5.js.map} +0 -0
- /package/dist/{campaigns-66OOGMDW.js.map → campaigns-4SOLY7OR.js.map} +0 -0
- /package/dist/{campaigns-KT3J2O7S.js.map → campaigns-5AZMOOID.js.map} +0 -0
- /package/dist/{campaigns-6HMHOXXY.js.map → campaigns-H4VK3GKK.js.map} +0 -0
- /package/dist/{campaigns-HJTGX5WW.js.map → campaigns-VWN2XPK2.js.map} +0 -0
- /package/dist/{canvas-MQ6ZE5CZ.js.map → canvas-TTV7QZZT.js.map} +0 -0
- /package/dist/{capabilities-RVUMPP7C.js.map → capabilities-VJ53ROIP.js.map} +0 -0
- /package/dist/{cards-I4BZIYUV.js.map → cards-WHMCSRZX.js.map} +0 -0
- /package/dist/{catalogs-B2NKQO24.js.map → catalogs-XH5NHH4C.js.map} +0 -0
- /package/dist/{changes-FX3TPYGT.js.map → changes-F6WUXFC3.js.map} +0 -0
- /package/dist/{chatgpt-3NS2R442.js.map → chatgpt-K6KNTME4.js.map} +0 -0
- /package/dist/{chats-72L7U4ML.js.map → chats-PWLQO7UY.js.map} +0 -0
- /package/dist/{chunk-CBCGVPHB.js.map → chunk-232YUPUI.js.map} +0 -0
- /package/dist/{chunk-65BQAJMH.js.map → chunk-23H4ZJRP.js.map} +0 -0
- /package/dist/{chunk-IZFGTGFR.js.map → chunk-3OCSWUHV.js.map} +0 -0
- /package/dist/{chunk-SLCSLVGS.js.map → chunk-5SRHACZW.js.map} +0 -0
- /package/dist/{chunk-VHMNSO2B.js.map → chunk-5WMTPYKT.js.map} +0 -0
- /package/dist/{chunk-QNEX7FEC.js.map → chunk-6JWEGFM5.js.map} +0 -0
- /package/dist/{chunk-P5T7OZKV.js.map → chunk-6OIKNJ7G.js.map} +0 -0
- /package/dist/{chunk-INJHF7AF.js.map → chunk-7RBJ2Z7Z.js.map} +0 -0
- /package/dist/{chunk-57UECM77.js.map → chunk-BFRIRZRZ.js.map} +0 -0
- /package/dist/{chunk-WILN7TD6.js.map → chunk-BFZS3WHS.js.map} +0 -0
- /package/dist/{chunk-NFSLRRIE.js.map → chunk-BITS62MF.js.map} +0 -0
- /package/dist/{chunk-CECS3DHZ.js.map → chunk-BLAHHMPF.js.map} +0 -0
- /package/dist/{chunk-GT4UFORX.js.map → chunk-CVBKW75S.js.map} +0 -0
- /package/dist/{chunk-J2QOKD2F.js.map → chunk-D4LKZJYJ.js.map} +0 -0
- /package/dist/{chunk-JC6GNMA7.js.map → chunk-D6KHVUDS.js.map} +0 -0
- /package/dist/{chunk-6GFJFTG6.js.map → chunk-DWX44QL6.js.map} +0 -0
- /package/dist/{chunk-D5MF337I.js.map → chunk-FNA277HP.js.map} +0 -0
- /package/dist/{chunk-VTCBPYGE.js.map → chunk-FQXGII24.js.map} +0 -0
- /package/dist/{chunk-7NTION5F.js.map → chunk-FU7HJWGM.js.map} +0 -0
- /package/dist/{chunk-YGL5LTEA.js.map → chunk-GD6UJDOB.js.map} +0 -0
- /package/dist/{chunk-35ENAFJX.js.map → chunk-GDLQ6SGW.js.map} +0 -0
- /package/dist/{chunk-GZ6YS7TG.js.map → chunk-GEKXIXMG.js.map} +0 -0
- /package/dist/{chunk-Q676JHJA.js.map → chunk-GLW7UJLB.js.map} +0 -0
- /package/dist/{chunk-IJDF7D4U.js.map → chunk-H5HDZ7IC.js.map} +0 -0
- /package/dist/{chunk-4TU2MWBJ.js.map → chunk-I44SNQ34.js.map} +0 -0
- /package/dist/{chunk-G3KO2HFZ.js.map → chunk-I5VZVQBZ.js.map} +0 -0
- /package/dist/{chunk-PELW56D7.js.map → chunk-IC6SDOED.js.map} +0 -0
- /package/dist/{chunk-ZNNC6B75.js.map → chunk-IN4G7X6W.js.map} +0 -0
- /package/dist/{chunk-VKH6LSC2.js.map → chunk-IPLE5K5E.js.map} +0 -0
- /package/dist/{chunk-W6ASM6UP.js.map → chunk-IYELKHBG.js.map} +0 -0
- /package/dist/{chunk-7GYM4I5I.js.map → chunk-JQNO6JCV.js.map} +0 -0
- /package/dist/{chunk-H7JOVRHO.js.map → chunk-JYBLCIRN.js.map} +0 -0
- /package/dist/{chunk-DL2W4N7J.js.map → chunk-K3TNTBZJ.js.map} +0 -0
- /package/dist/{chunk-RUHMLPH5.js.map → chunk-K4NMOWG7.js.map} +0 -0
- /package/dist/{chunk-KB5HBQEK.js.map → chunk-LCW3U4EA.js.map} +0 -0
- /package/dist/{chunk-O5XLQUDS.js.map → chunk-LMZAOTRX.js.map} +0 -0
- /package/dist/{chunk-6HPIWZHS.js.map → chunk-MI3JB5KB.js.map} +0 -0
- /package/dist/{chunk-ZBKBTTHD.js.map → chunk-MJQBXFW6.js.map} +0 -0
- /package/dist/{chunk-ZJR5E53N.js.map → chunk-MK3OJZIU.js.map} +0 -0
- /package/dist/{chunk-ZO2YLHRW.js.map → chunk-MPACDBH5.js.map} +0 -0
- /package/dist/{chunk-YONSWWCF.js.map → chunk-N5O67GK5.js.map} +0 -0
- /package/dist/{chunk-QDOVBGKZ.js.map → chunk-P3TNRS56.js.map} +0 -0
- /package/dist/{chunk-QWX3QJNM.js.map → chunk-PAJJXZ3Z.js.map} +0 -0
- /package/dist/{chunk-J5WZ7SAD.js.map → chunk-PHPXAMY3.js.map} +0 -0
- /package/dist/{chunk-UXTZ5MBE.js.map → chunk-QABSQADZ.js.map} +0 -0
- /package/dist/{chunk-NORAJYUI.js.map → chunk-QYAI24PN.js.map} +0 -0
- /package/dist/{chunk-2KIF3U2C.js.map → chunk-QZHGIJOW.js.map} +0 -0
- /package/dist/{chunk-SJLIV6PF.js.map → chunk-ROX7LQRR.js.map} +0 -0
- /package/dist/{chunk-QJPPPQPD.js.map → chunk-S7B2TOOU.js.map} +0 -0
- /package/dist/{chunk-GKXMIXEV.js.map → chunk-SFJW2KED.js.map} +0 -0
- /package/dist/{chunk-AR7PU7BB.js.map → chunk-SIKCVWM3.js.map} +0 -0
- /package/dist/{chunk-TY7TEU3T.js.map → chunk-SK2N45LO.js.map} +0 -0
- /package/dist/{chunk-ZPJE6D7W.js.map → chunk-SOKVXKRM.js.map} +0 -0
- /package/dist/{chunk-Z5KBRTB2.js.map → chunk-STNCMKL6.js.map} +0 -0
- /package/dist/{chunk-PGVF4SB7.js.map → chunk-TKPVVD52.js.map} +0 -0
- /package/dist/{chunk-AIDXJHZ4.js.map → chunk-TNB5EIFV.js.map} +0 -0
- /package/dist/{chunk-P3ZJIIDS.js.map → chunk-TUSR5R7I.js.map} +0 -0
- /package/dist/{chunk-DLUWHZCE.js.map → chunk-ULPO72IQ.js.map} +0 -0
- /package/dist/{chunk-QHIUJXU7.js.map → chunk-UWT7RCL3.js.map} +0 -0
- /package/dist/{chunk-DDTILZXI.js.map → chunk-V4UIM4QE.js.map} +0 -0
- /package/dist/{chunk-V43RLLZE.js.map → chunk-XGOEX2VJ.js.map} +0 -0
- /package/dist/{chunk-FDG2LLX7.js.map → chunk-XP4G2DJL.js.map} +0 -0
- /package/dist/{chunk-PA5MYVQY.js.map → chunk-XZ4YMCZK.js.map} +0 -0
- /package/dist/{chunk-VFSLIDXA.js.map → chunk-Y3VRMFGF.js.map} +0 -0
- /package/dist/{claim-DIITRUIN.js.map → claim-QHXKN7W6.js.map} +0 -0
- /package/dist/{client-LY2JCQS2.js.map → client-WL2FKW4T.js.map} +0 -0
- /package/dist/{code-7CBNYUPU.js.map → code-NXN7QYKU.js.map} +0 -0
- /package/dist/{companies-HHSYHL74.js.map → companies-PGVT62JL.js.map} +0 -0
- /package/dist/{complete-M3TURPU5.js.map → complete-TCTR3XVD.js.map} +0 -0
- /package/dist/{config-7COTFJWK.js.map → config-VOF57KBL.js.map} +0 -0
- /package/dist/{connect-TQL5EVVE.js.map → connect-4S7JLICS.js.map} +0 -0
- /package/dist/{content-OXMONMHJ.js.map → content-KA25YYO3.js.map} +0 -0
- /package/dist/{conversation-GE273GC4.js.map → conversation-DI4WMEL2.js.map} +0 -0
- /package/dist/{conversion-report-BH4HH2Q3.js.map → conversion-report-KL4LIVY5.js.map} +0 -0
- /package/dist/{conversion-upload-command-QWWYCTNV.js.map → conversion-upload-command-EIKJU5ZW.js.map} +0 -0
- /package/dist/{conversion-writes-HG2O6JI7.js.map → conversion-writes-MPBCTVSP.js.map} +0 -0
- /package/dist/{conversions-XPSN7SOW.js.map → conversions-ACYT6K7H.js.map} +0 -0
- /package/dist/{conversions-DP6ZF57D.js.map → conversions-JTYMFX66.js.map} +0 -0
- /package/dist/{countries-UXAUGSBR.js.map → countries-XGMZWUGP.js.map} +0 -0
- /package/dist/{create-NVXJP477.js.map → create-3QA7X2DD.js.map} +0 -0
- /package/dist/{create-XLZYNFKN.js.map → create-AFVT5JTH.js.map} +0 -0
- /package/dist/{create-ENQWVWGB.js.map → create-TYCOMVWR.js.map} +0 -0
- /package/dist/{creatives-O3444SBT.js.map → creatives-E6N2YLHE.js.map} +0 -0
- /package/dist/{creatives-ONKKGW5T.js.map → creatives-YJ3CXZQC.js.map} +0 -0
- /package/dist/{credentials-3UY7RVUL.js.map → credentials-34I6ZZWU.js.map} +0 -0
- /package/dist/{crm-XXU5XZIQ.js.map → crm-4F3LFOZD.js.map} +0 -0
- /package/dist/{crm-OX67TBWD.js.map → crm-MNBYNP5R.js.map} +0 -0
- /package/dist/{crop-3ZV5BFCA.js.map → crop-7UTYG7GS.js.map} +0 -0
- /package/dist/{currency-XP4EMU4M.js.map → currency-3QTI5RSB.js.map} +0 -0
- /package/dist/{custom-conversions-TV23XQHW.js.map → custom-conversions-YRYE65PU.js.map} +0 -0
- /package/dist/{customers-EJ7FVCTC.js.map → customers-VNYNT2EQ.js.map} +0 -0
- /package/dist/{decide-EGQ3CRHI.js.map → decide-TWKH5QQU.js.map} +0 -0
- /package/dist/{delete-R2SEUSLV.js.map → delete-2GIIUPA3.js.map} +0 -0
- /package/dist/{delete-ZGBBWFAW.js.map → delete-GLLYPNNB.js.map} +0 -0
- /package/dist/{delete-MUPTLWHI.js.map → delete-J7DXPGKD.js.map} +0 -0
- /package/dist/{delete-GXLPIGTC.js.map → delete-PRJGFA2U.js.map} +0 -0
- /package/dist/{delete-OW2N4WIA.js.map → delete-UZRHYEPK.js.map} +0 -0
- /package/dist/{demographics-K6DEWUE5.js.map → demographics-JMZA7MB6.js.map} +0 -0
- /package/dist/{describe-FCTM53MM.js.map → describe-5QCPRSIG.js.map} +0 -0
- /package/dist/{describe-4O3VCV6L.js.map → describe-L3UC6MIL.js.map} +0 -0
- /package/dist/{dimensions-AD4VS5AH.js.map → dimensions-POH4JXEM.js.map} +0 -0
- /package/dist/{discard-NZ7FQJEE.js.map → discard-OH3B5P4C.js.map} +0 -0
- /package/dist/{discover-OISU5EJF.js.map → discover-5GLET36U.js.map} +0 -0
- /package/dist/{discover-UQXQUPNO.js.map → discover-XAJKZCMM.js.map} +0 -0
- /package/dist/{domain-DXBHNZLO.js.map → domain-K3IILLYE.js.map} +0 -0
- /package/dist/{download-IE6XLFHM.js.map → download-N4J5WFHD.js.map} +0 -0
- /package/dist/{draft-OOHU6NMA.js.map → draft-2KHUZTIE.js.map} +0 -0
- /package/dist/{draft-HJBAG3SN.js.map → draft-7RYDPOFS.js.map} +0 -0
- /package/dist/{draft-ICEVLF4E.js.map → draft-BB3UUWJP.js.map} +0 -0
- /package/dist/{draft-S6VPKZYY.js.map → draft-EWDOIXSH.js.map} +0 -0
- /package/dist/{draft-ENA7S4Y7.js.map → draft-IL37WDST.js.map} +0 -0
- /package/dist/{draft-MGKJ5RYI.js.map → draft-KDMYGLWN.js.map} +0 -0
- /package/dist/{draft-DB6KMBCH.js.map → draft-LZL6VWHX.js.map} +0 -0
- /package/dist/{draft-OBFKQEPK.js.map → draft-VXGZDBC7.js.map} +0 -0
- /package/dist/{env-YLOVBOAE.js.map → env-5MUVYE2L.js.map} +0 -0
- /package/dist/{experiment-PHFP6IBM.js.map → experiment-G3FQVAJU.js.map} +0 -0
- /package/dist/{export-R2IMUCQO.js.map → export-OLDI32HM.js.map} +0 -0
- /package/dist/{extract-OQP3TSQG.js.map → extract-PPS6ONQN.js.map} +0 -0
- /package/dist/{facets-NUKR7I57.js.map → facets-PAWOEHOK.js.map} +0 -0
- /package/dist/{favorites-NS73FDG5.js.map → favorites-4ELADD3R.js.map} +0 -0
- /package/dist/{feed-SQPOB7SP.js.map → feed-XIY5TVDL.js.map} +0 -0
- /package/dist/{fetch-PTSAVQW5.js.map → fetch-M5GIBURQ.js.map} +0 -0
- /package/dist/{fetch-PQ3NOPIE.js.map → fetch-YWUVDMUH.js.map} +0 -0
- /package/dist/{fit-IITU6UWC.js.map → fit-DGCYW7LN.js.map} +0 -0
- /package/dist/{follow-N3DQZV7M.js.map → follow-ZTPZKIMZ.js.map} +0 -0
- /package/dist/{follow-competitors-BZPCBGIB.js.map → follow-competitors-6QDVQ4VJ.js.map} +0 -0
- /package/dist/{following-KESWTEBR.js.map → following-PBZLZFGQ.js.map} +0 -0
- /package/dist/{fonts-FG6XMK5A.js.map → fonts-IQ6XOUGU.js.map} +0 -0
- /package/dist/{forecast-43XBSHJR.js.map → forecast-YXOKAWDZ.js.map} +0 -0
- /package/dist/{funding-HYSCYS62.js.map → funding-ULBMKUMW.js.map} +0 -0
- /package/dist/{funnel-32CNV57L.js.map → funnel-CJRFDTCD.js.map} +0 -0
- /package/dist/{ga4-J2KTNCD4.js.map → ga4-2BL5YAYN.js.map} +0 -0
- /package/dist/{get-MBGO4VJD.js.map → get-6RZU4M6W.js.map} +0 -0
- /package/dist/{get-WHC4SRYK.js.map → get-7GCEJ6KG.js.map} +0 -0
- /package/dist/{get-FJB3X44Z.js.map → get-MZWUMHEF.js.map} +0 -0
- /package/dist/{get-W7MKBMQ3.js.map → get-NUL4YJG5.js.map} +0 -0
- /package/dist/{get-NOKSZPIV.js.map → get-OAZZHUZP.js.map} +0 -0
- /package/dist/{get-3P2EQLP3.js.map → get-OHU2N7B7.js.map} +0 -0
- /package/dist/{google-XRAMIES5.js.map → google-7STODZQR.js.map} +0 -0
- /package/dist/{google-ads-N55SE2CB.js.map → google-ads-BB7CF4NV.js.map} +0 -0
- /package/dist/{group-6RDJTWVN.js.map → group-D5WXNFCP.js.map} +0 -0
- /package/dist/{group-TZJCKHKS.js.map → group-Y5PLETFT.js.map} +0 -0
- /package/dist/{gsc-HD6UFRYM.js.map → gsc-UU3T2C6B.js.map} +0 -0
- /package/dist/{history-4RWCE7WW.js.map → history-OQAOTEO3.js.map} +0 -0
- /package/dist/{history-IROFQ6LA.js.map → history-Q47TKZJS.js.map} +0 -0
- /package/dist/{hubspot-75N4AI43.js.map → hubspot-A6O5GVTH.js.map} +0 -0
- /package/dist/{icon-BMCDFGMN.js.map → icon-GB7UH5RF.js.map} +0 -0
- /package/dist/{ideas-7UQMXLI5.js.map → ideas-LD6X753E.js.map} +0 -0
- /package/dist/{improve-P6F2HXYQ.js.map → improve-U5USRH4G.js.map} +0 -0
- /package/dist/{ingest-HGR7KSG4.js.map → ingest-PUMTHASV.js.map} +0 -0
- /package/dist/{ingest-XU4WXE4U.js.map → ingest-WWNSA6VZ.js.map} +0 -0
- /package/dist/{inspect-TL2VZBN7.js.map → inspect-5PRLZLF5.js.map} +0 -0
- /package/dist/{inspiration-7WTS3AVI.js.map → inspiration-XQYHBJY2.js.map} +0 -0
- /package/dist/{intent-OCZE4O7R.js.map → intent-4QVVI4FF.js.map} +0 -0
- /package/dist/{job-XMPQ27SJ.js.map → job-CGQHEANB.js.map} +0 -0
- /package/dist/{job-create-HTDQHPEF.js.map → job-create-SZYJT2NC.js.map} +0 -0
- /package/dist/{job-status-L7WUTZ2C.js.map → job-status-6LAKLCKH.js.map} +0 -0
- /package/dist/{keep-42SLV4CR.js.map → keep-3MJSHWU3.js.map} +0 -0
- /package/dist/{keyword-gap-323NE4AK.js.map → keyword-gap-YMMDRYVK.js.map} +0 -0
- /package/dist/{keyword-metrics-V6DGO7U5.js.map → keyword-metrics-FB7FCYK6.js.map} +0 -0
- /package/dist/{keywords-for-site-ANSLXBHB.js.map → keywords-for-site-YZYALONY.js.map} +0 -0
- /package/dist/{landing-K25GUBLZ.js.map → landing-XOCPIOWX.js.map} +0 -0
- /package/dist/{landings-5IYXHA5Z.js.map → landings-ZLKUP66P.js.map} +0 -0
- /package/dist/{languages-SRFGW6Z3.js.map → languages-3IJVDS5Z.js.map} +0 -0
- /package/dist/{languages-US6JUATO.js.map → languages-R3Y2IOFU.js.map} +0 -0
- /package/dist/{logo-4JOWGJ5A.js.map → launches-RG2SWEXM.js.map} +0 -0
- /package/dist/{layerize-U672AXED.js.map → layerize-SJYK6HPD.js.map} +0 -0
- /package/dist/{leads-MXUQISOC.js.map → leads-2XOSAYP4.js.map} +0 -0
- /package/dist/{leads-UJVKPRXX.js.map → leads-SWINPYEP.js.map} +0 -0
- /package/dist/{lighthouse-SJ4QNLUS.js.map → lighthouse-FALRSVQH.js.map} +0 -0
- /package/dist/{line-item-writes-NURRHJ7P.js.map → line-item-writes-FG3TY4W4.js.map} +0 -0
- /package/dist/{line-items-PC6QWV5J.js.map → line-items-ZNVBFA4H.js.map} +0 -0
- /package/dist/{link-ZSXKCLQD.js.map → link-IFEXIUDW.js.map} +0 -0
- /package/dist/{list-GQ65MC2N.js.map → list-2ZTOMTES.js.map} +0 -0
- /package/dist/{list-Q5ZZRPHO.js.map → list-FR2OVRVL.js.map} +0 -0
- /package/dist/{list-M4Z3WYPM.js.map → list-GK6LNWIW.js.map} +0 -0
- /package/dist/{list-ECF3RA26.js.map → list-K65FY6SV.js.map} +0 -0
- /package/dist/{list-SXYVDDMU.js.map → list-RR53EF3O.js.map} +0 -0
- /package/dist/{list-XFIOXFB2.js.map → list-TB677Q2F.js.map} +0 -0
- /package/dist/{list-K56J7FZW.js.map → list-VTVRZIYL.js.map} +0 -0
- /package/dist/{locations-LZUHWKZY.js.map → locations-6IH7WGRG.js.map} +0 -0
- /package/dist/{locations-NG4YXIBT.js.map → locations-VL2G22Y5.js.map} +0 -0
- /package/dist/{log-EEBJQ6X2.js.map → log-TAKCMC2C.js.map} +0 -0
- /package/dist/{lookup-7NBZ64TE.js.map → logo-YSNUUT33.js.map} +0 -0
- /package/dist/{output-ZL62UZHQ.js.map → lookup-RH5N3OWJ.js.map} +0 -0
- /package/dist/{mcp-DAKGMA2Z.js.map → mcp-NNQZ5B7N.js.map} +0 -0
- /package/dist/{media-2SWDJDA6.js.map → media-ES2UBGYW.js.map} +0 -0
- /package/dist/{media-R64YP7T2.js.map → media-MPXEXN4O.js.map} +0 -0
- /package/dist/{media-sources-L2X3KRDU.js.map → media-sources-OAFBA62X.js.map} +0 -0
- /package/dist/{members-22BOEGQS.js.map → members-SS7IBYVE.js.map} +0 -0
- /package/dist/{meta-RBHF2RG3.js.map → meta-AOIPEDV5.js.map} +0 -0
- /package/dist/{metrics-IXRQZVSM.js.map → metrics-YLAREC4T.js.map} +0 -0
- /package/dist/{models-BDXZ56GI.js.map → models-IH6KE6OH.js.map} +0 -0
- /package/dist/{normalize-P5Q3F7FU.js.map → normalize-NR5RS3WR.js.map} +0 -0
- /package/dist/{normalize-JAE3NVOX.js.map → normalize-WOZTAI6C.js.map} +0 -0
- /package/dist/{performance-FOOV624A.js.map → output-GWIP6ROX.js.map} +0 -0
- /package/dist/{page-FZ7IZ5CV.js.map → page-YWGBCN65.js.map} +0 -0
- /package/dist/{pages-SS7TZTHV.js.map → pages-FTI44OSH.js.map} +0 -0
- /package/dist/{query-XISUHMBR.js.map → performance-WRARV3YR.js.map} +0 -0
- /package/dist/{pinterest-UETS7U7U.js.map → pinterest-J442QLQS.js.map} +0 -0
- /package/dist/{pixels-MPZYWGFD.js.map → pixels-DWW2TDY2.js.map} +0 -0
- /package/dist/{pixels-LCTMLKGP.js.map → pixels-MBKR4XPX.js.map} +0 -0
- /package/dist/{plan-V74EVXTW.js.map → plan-YPE77T4R.js.map} +0 -0
- /package/dist/{preview-RU54Z4EM.js.map → preview-V4YBD45S.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-FQRFU7PB.js.map → promoted-tweet-writes-CAD3RGU4.js.map} +0 -0
- /package/dist/{promoted-tweets-L2L3V5SF.js.map → promoted-tweets-NYJP3TXL.js.map} +0 -0
- /package/dist/{properties-ZUDQH3LE.js.map → properties-G3L2OAOL.js.map} +0 -0
- /package/dist/{reddit-BCB4FT6J.js.map → query-QRPBV2AR.js.map} +0 -0
- /package/dist/{query-26T7XATH.js.map → query-WCB5W4NW.js.map} +0 -0
- /package/dist/{query-SHUOHXTO.js.map → query-YBS6ZQ75.js.map} +0 -0
- /package/dist/{questionnaire-UG55JLVW.js.map → questionnaire-PAK4DALP.js.map} +0 -0
- /package/dist/{read-UYSQAXRV.js.map → read-LUTB3UOR.js.map} +0 -0
- /package/dist/{run-TA3DP6QG.js.map → reddit-VJTNXORD.js.map} +0 -0
- /package/dist/{refresh-WY5NPNLX.js.map → refresh-6I52WXG5.js.map} +0 -0
- /package/dist/{release-JBSPPNQE.js.map → release-LSSYP2ZJ.js.map} +0 -0
- /package/dist/{relevant-pages-OU5H56KY.js.map → relevant-pages-2XHS5WP4.js.map} +0 -0
- /package/dist/{remove-M5P7M5JU.js.map → remove-K62YJYGT.js.map} +0 -0
- /package/dist/{remove-2KACTXKP.js.map → remove-X6DNVS67.js.map} +0 -0
- /package/dist/{reopen-J3VW5766.js.map → reopen-RPVEBQVR.js.map} +0 -0
- /package/dist/{research-7LBTJ2B2.js.map → research-4ASN2KMB.js.map} +0 -0
- /package/dist/{research-4CAA5CA2.js.map → research-6J3EOBAL.js.map} +0 -0
- /package/dist/{reset-DJSSXC4Y.js.map → reset-ETORO5UO.js.map} +0 -0
- /package/dist/{reset-DBWWGCXY.js.map → reset-YVTYHSTY.js.map} +0 -0
- /package/dist/{resolve-BNRUYS56.js.map → resolve-BI7GB5U2.js.map} +0 -0
- /package/dist/{retry-TMRIFGVT.js.map → retry-2ZZCKSRW.js.map} +0 -0
- /package/dist/{retry-WRBGLB7O.js.map → retry-QZ7YHXF3.js.map} +0 -0
- /package/dist/{retry-failed-NWLH6WHK.js.map → retry-failed-EJBP4236.js.map} +0 -0
- /package/dist/{search-4HIOKYFR.js.map → run-FFASB4YB.js.map} +0 -0
- /package/dist/{schedule-BQQGYGT7.js.map → schedule-4BK2ML6F.js.map} +0 -0
- /package/dist/{schedule-S547HPUT.js.map → schedule-IDZC6M32.js.map} +0 -0
- /package/dist/{schema-DDEWM5ZX.js.map → schema-QPPWADIL.js.map} +0 -0
- /package/dist/{scrape-TI6S2W7I.js.map → scrape-J2Y7YZ4Z.js.map} +0 -0
- /package/dist/{screenshot-XFAYY4WW.js.map → screenshot-K7ZGTVTE.js.map} +0 -0
- /package/dist/{search-D2IV7KFJ.js.map → search-CI7LEOOK.js.map} +0 -0
- /package/dist/{search-VJBKRD2U.js.map → search-GCSQ6CSD.js.map} +0 -0
- /package/dist/{search-IZPDHRJ4.js.map → search-I6DRUXBX.js.map} +0 -0
- /package/dist/{shared-3CGGKICB.js.map → search-TTL7VQET.js.map} +0 -0
- /package/dist/{search-KFDL2IGG.js.map → search-VT2KUAH6.js.map} +0 -0
- /package/dist/{search-copy-QZXCAGK4.js.map → search-copy-N2AIJNUH.js.map} +0 -0
- /package/dist/{seeds-VUNZMHZH.js.map → seeds-EYYQCMGF.js.map} +0 -0
- /package/dist/{sends-7HWLIOUO.js.map → sends-RHVFV2XM.js.map} +0 -0
- /package/dist/{sequences-5RAGZE7L.js.map → sequences-5DUWNSWQ.js.map} +0 -0
- /package/dist/{setup-links-SPIGXQTY.js.map → setup-links-C3EUV2RX.js.map} +0 -0
- /package/dist/{sync-definition-DYSVT7BJ.js.map → shared-NDRFKAH7.js.map} +0 -0
- /package/dist/{site-FW6K6L6M.js.map → site-W5W7FCUD.js.map} +0 -0
- /package/dist/{sitemaps-3WDYQHYR.js.map → sitemaps-QKKXMXMV.js.map} +0 -0
- /package/dist/{sites-G4DQ2Z2X.js.map → sites-GRC6CCCK.js.map} +0 -0
- /package/dist/{skills-PA26HXEP.js.map → skills-UML6GSW6.js.map} +0 -0
- /package/dist/{sources-PMBWG4KO.js.map → sources-SGGLJIOA.js.map} +0 -0
- /package/dist/{stats-Q35I5DRW.js.map → stats-RCLQE4HJ.js.map} +0 -0
- /package/dist/{status-62SUXUWW.js.map → status-KUSLGZD7.js.map} +0 -0
- /package/dist/{sticker-MC2IAIQB.js.map → sticker-SINY47WT.js.map} +0 -0
- /package/dist/{stock-B7LKMKUK.js.map → stock-ECRBD7RP.js.map} +0 -0
- /package/dist/{studio-BB2EVW5I.js.map → studio-LMDDQWRY.js.map} +0 -0
- /package/dist/{sync-CLZDZL5F.js.map → sync-2MFUI3ME.js.map} +0 -0
- /package/dist/{sync-YTHNOAAM.js.map → sync-TCY4NX7J.js.map} +0 -0
- /package/dist/{viewer-check-HIMNCZGY.js.map → sync-definition-DGSAZGQZ.js.map} +0 -0
- /package/dist/{tag-manager-EAREWVYR.js.map → tag-manager-G3LBQZUL.js.map} +0 -0
- /package/dist/{tags-53AG3FYG.js.map → tags-IHLO2NDM.js.map} +0 -0
- /package/dist/{tags-7TH7TVR6.js.map → tags-QQLYW2QQ.js.map} +0 -0
- /package/dist/{tags-EUEWDTTN.js.map → tags-QXRKKRIR.js.map} +0 -0
- /package/dist/{tags-EB4RE3ML.js.map → tags-U5YWCPFW.js.map} +0 -0
- /package/dist/{tags-ICAWBCOR.js.map → tags-ZYVOKGHU.js.map} +0 -0
- /package/dist/{targeting-constants-IFE72XKL.js.map → targeting-constants-KEKYU5JQ.js.map} +0 -0
- /package/dist/{targeting-criteria-WZDGJKOI.js.map → targeting-criteria-AEBSY6OY.js.map} +0 -0
- /package/dist/{testimonials-THHR5JH5.js.map → testimonials-O52ULRAU.js.map} +0 -0
- /package/dist/{themes-ZFRM6AVO.js.map → themes-26XFWSWC.js.map} +0 -0
- /package/dist/{top-companies-63Q475IA.js.map → top-companies-OMGAFFWN.js.map} +0 -0
- /package/dist/{tweets-7EZRFG3Y.js.map → tweets-C3QUKS3I.js.map} +0 -0
- /package/dist/{unfollow-WBBTVEHE.js.map → unfollow-ZI5QU7RD.js.map} +0 -0
- /package/dist/{unlink-P7KU54YU.js.map → unlink-3BAXM2OH.js.map} +0 -0
- /package/dist/{unstage-GHXGDOT2.js.map → unstage-7F7JI6HY.js.map} +0 -0
- /package/dist/{update-7EWDO32L.js.map → update-2RCIXWP3.js.map} +0 -0
- /package/dist/{update-KVMQOVQK.js.map → update-5A7Q7S6I.js.map} +0 -0
- /package/dist/{upload-NA62W5RS.js.map → upload-KO46L76G.js.map} +0 -0
- /package/dist/{upload-6PYPHPCZ.js.map → upload-Y3TACPEN.js.map} +0 -0
- /package/dist/{upscale-RXJUBHXN.js.map → upscale-SJ7SCSRS.js.map} +0 -0
- /package/dist/{url-options-EUDXLDBD.js.map → url-options-6CNDIUDM.js.map} +0 -0
- /package/dist/{url-params-DBJSM2LP.js.map → url-params-ZUYOLAJG.js.map} +0 -0
- /package/dist/{use-MHPNS4V4.js.map → use-6ULEM3WE.js.map} +0 -0
- /package/dist/{variant-ZFCWILPG.js.map → variant-5TRRSYBB.js.map} +0 -0
- /package/dist/{videos-DUG7JYUA.js.map → videos-EFMNE6U2.js.map} +0 -0
- /package/dist/{view-PYCGDGT2.js.map → view-ABSWZMXW.js.map} +0 -0
- /package/dist/{web-SDG42OBC.js.map → web-4JGYRY36.js.map} +0 -0
- /package/dist/{winners-AI4PVSOI.js.map → winners-KRISBKOR.js.map} +0 -0
- /package/dist/{winning-ads-KGAYAIPG.js.map → winning-ads-6SXA4HGB.js.map} +0 -0
- /package/dist/{write-commands-5TJ3LQ5F.js.map → write-commands-HCQI4Y27.js.map} +0 -0
- /package/dist/{write-commands-OYMWOFEY.js.map → write-commands-LQXKNBA5.js.map} +0 -0
- /package/dist/{write-commands-R3UCCBUI.js.map → write-commands-QCI6XBM7.js.map} +0 -0
- /package/dist/{write-commands-34L5LJIB.js.map → write-commands-RHCCPMAE.js.map} +0 -0
- /package/dist/{x-VNRVGVLI.js.map → x-LUEUC3XO.js.map} +0 -0
|
@@ -0,0 +1,85 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ACTION_TEMP_ID_PREFIX
|
|
3
|
+
} from "./chunk-2QSPPWOU.js";
|
|
4
|
+
import {
|
|
5
|
+
ApiError
|
|
6
|
+
} from "./chunk-XDZVBX6L.js";
|
|
7
|
+
import {
|
|
8
|
+
writeJson
|
|
9
|
+
} from "./chunk-WNSE7N75.js";
|
|
10
|
+
|
|
11
|
+
// src/commands/actions/tagError.ts
|
|
12
|
+
var UNKNOWN_TAG_RE = /Unknown action tag\(s\): ([^.]+)\. Valid tags: ([^.]+)\./;
|
|
13
|
+
function splitSlugs(list) {
|
|
14
|
+
return list.split(",").map((slug) => slug.trim()).filter((slug) => slug.length > 0);
|
|
15
|
+
}
|
|
16
|
+
function actionTagFix(message) {
|
|
17
|
+
const match = UNKNOWN_TAG_RE.exec(message);
|
|
18
|
+
if (!match) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const [, unknownList, validList] = match;
|
|
22
|
+
const unknownTags = splitSlugs(unknownList ?? "");
|
|
23
|
+
const validTags = splitSlugs(validList ?? "");
|
|
24
|
+
const first = unknownTags[0];
|
|
25
|
+
if (first === void 0 || validTags.length === 0) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
action: "retry_with_a_valid_tag",
|
|
30
|
+
explanation: `The tag(s) ${unknownTags.join(", ")} are not in this company's taxonomy. \`validTags\` below is the complete accepted set \u2014 pick from it and re-run the same command. Only mint a new tag when none of them names this work; a near-duplicate of an existing tag splits the backlog's filter instead of extending it.`,
|
|
31
|
+
unknownTags,
|
|
32
|
+
validTags,
|
|
33
|
+
mintCommand: `baker actions tags create --slug ${first} --description "<what ${first} groups>"`,
|
|
34
|
+
listCommand: "baker actions tags list"
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// src/commands/actions/shared.ts
|
|
39
|
+
function writeOk(data) {
|
|
40
|
+
writeJson({ ok: true, data: data ?? null });
|
|
41
|
+
}
|
|
42
|
+
function failValidation(message) {
|
|
43
|
+
writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message } });
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
function failApi(err) {
|
|
47
|
+
if (err instanceof ApiError) {
|
|
48
|
+
const fix = actionTagFix(err.message);
|
|
49
|
+
writeJson({ ok: false, error: { code: err.code, message: err.message, ...fix ? { fix } : {} } });
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
if (err instanceof Error) {
|
|
53
|
+
writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: err.message } });
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: "Unexpected error" } });
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
function generateTempId() {
|
|
60
|
+
return `${ACTION_TEMP_ID_PREFIX}${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;
|
|
61
|
+
}
|
|
62
|
+
function isTempId(id) {
|
|
63
|
+
return id.startsWith(ACTION_TEMP_ID_PREFIX);
|
|
64
|
+
}
|
|
65
|
+
function parseTagList(value) {
|
|
66
|
+
if (typeof value !== "string") {
|
|
67
|
+
return void 0;
|
|
68
|
+
}
|
|
69
|
+
const tags = value.split(",").map((t) => t.trim()).filter((t) => t.length > 0);
|
|
70
|
+
return [...new Set(tags)];
|
|
71
|
+
}
|
|
72
|
+
var ACTION_PRIORITIES = ["urgent", "high", "medium", "low"];
|
|
73
|
+
function parsePriority(value, { allowClear }) {
|
|
74
|
+
if (value === void 0) {
|
|
75
|
+
return void 0;
|
|
76
|
+
}
|
|
77
|
+
if (typeof value !== "string") {
|
|
78
|
+
failValidation(
|
|
79
|
+
`--priority must be one of: ${ACTION_PRIORITIES.join(", ")}${allowClear ? ", or 'none' to clear" : ""}.`
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
const trimmed = value.trim().toLowerCase();
|
|
83
|
+
if (trimmed === "") {
|
|
84
|
+
if (allowClear) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
return void 0;
|
|
88
|
+
}
|
|
89
|
+
if (allowClear && (trimmed === "none" || trimmed === "clear")) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
if (ACTION_PRIORITIES.includes(trimmed)) {
|
|
93
|
+
return trimmed;
|
|
94
|
+
}
|
|
95
|
+
failValidation(
|
|
96
|
+
`Unknown --priority "${value}". Expected one of: ${ACTION_PRIORITIES.join(", ")}${allowClear ? ", or 'none' to clear" : ""}.`
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
var FAN_OUT_NUDGE_THRESHOLD = 2;
|
|
100
|
+
var FAN_OUT_THRESHOLD = 3;
|
|
101
|
+
function buildCreateHints({
|
|
102
|
+
advisory,
|
|
103
|
+
description,
|
|
104
|
+
tempId,
|
|
105
|
+
tags,
|
|
106
|
+
prioritySet,
|
|
107
|
+
draftCreateCount
|
|
108
|
+
}) {
|
|
109
|
+
const hints = [];
|
|
110
|
+
if (advisory) {
|
|
111
|
+
hints.push(
|
|
112
|
+
`${advisory.hint} If nothing actually blocks it: baker actions draft remove ${tempId}, then do the work.`
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
if (draftCreateCount >= FAN_OUT_THRESHOLD) {
|
|
116
|
+
hints.push(
|
|
117
|
+
`${draftCreateCount} Tasks are staged in this chat. Re-read them with \`baker actions draft\`: can any be done now with a surface you already have, and do any two touch the same system (same container, same campaign, same page)? Those belong in ONE Task \u2014 fold them together with \`baker actions update\` and drop the extras with \`baker actions draft remove <tempId>\`.`
|
|
118
|
+
);
|
|
119
|
+
} else if (draftCreateCount === FAN_OUT_NUDGE_THRESHOLD) {
|
|
120
|
+
hints.push(
|
|
121
|
+
`Second Task staged in this chat. If these two land on the same system (same container, same campaign, same page) they are ONE Task \u2014 fold them with \`baker actions update\` and drop the extra with \`baker actions draft remove ${tempId}\`.`
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
hints.push(`Link dependencies: baker actions link --blocker <id> --blocked ${tempId}`);
|
|
125
|
+
if (!description) {
|
|
126
|
+
hints.push("Add description: baker actions update <tempId> --description '...' (what/why/where/done-when)");
|
|
127
|
+
}
|
|
128
|
+
if (!tags || tags.length === 0) {
|
|
129
|
+
hints.push(
|
|
130
|
+
"MISSING --tags. This action is invisible to the backlog's tag filter. Re-run with --tags <slug,...> (`baker actions tags list` for the taxonomy, `baker actions tags create --slug <slug>` to mint) \u2014 or `baker actions update <tempId> --tags <slug,...>`."
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
if (!prioritySet) {
|
|
134
|
+
hints.push(
|
|
135
|
+
`MISSING --priority. Without it this action ranks as 'normal' (medium) in the do-first ordering, so urgent/high client work won't surface first. Re-run with --priority ${ACTION_PRIORITIES.join("|")} \u2014 or \`baker actions update <tempId> --priority <level>\`.`
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
return hints;
|
|
139
|
+
}
|
|
140
|
+
var ACTIONS_LIST_DEFAULT_LIMIT = 500;
|
|
141
|
+
function buildListHints({ returned, limit }) {
|
|
142
|
+
if (returned < limit) {
|
|
143
|
+
return [];
|
|
144
|
+
}
|
|
145
|
+
return [
|
|
146
|
+
`This list is capped at ${limit} Tasks and came back full, so older Tasks exist that are NOT shown. Do not treat it as the whole backlog \u2014 re-run with --limit ${limit * 2} (or narrow with --status / --search).`
|
|
147
|
+
];
|
|
148
|
+
}
|
|
149
|
+
function buildGetHints(detail) {
|
|
150
|
+
if (detail?.action.status !== "pending" || detail.activeChat !== null) {
|
|
151
|
+
return [];
|
|
152
|
+
}
|
|
153
|
+
return [
|
|
154
|
+
`If you are working on this Task in this chat, claim it first so the Tasks page shows it in progress: baker actions claim ${detail.action._id}`
|
|
155
|
+
];
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export {
|
|
159
|
+
writeOk,
|
|
160
|
+
failValidation,
|
|
161
|
+
failApi,
|
|
162
|
+
generateTempId,
|
|
163
|
+
isTempId,
|
|
164
|
+
parseTagList,
|
|
165
|
+
ACTION_PRIORITIES,
|
|
166
|
+
parsePriority,
|
|
167
|
+
buildCreateHints,
|
|
168
|
+
ACTIONS_LIST_DEFAULT_LIMIT,
|
|
169
|
+
buildListHints,
|
|
170
|
+
buildGetHints
|
|
171
|
+
};
|
|
172
|
+
//# sourceMappingURL=chunk-QYAI24PN.js.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import {
|
|
2
|
+
failApi
|
|
3
|
+
} from "./chunk-QYAI24PN.js";
|
|
4
|
+
import {
|
|
5
|
+
HUBSPOT_MISSING_GRANT_MARKER,
|
|
6
|
+
HUBSPOT_NOT_CONNECTED_MESSAGE
|
|
7
|
+
} from "./chunk-2QSPPWOU.js";
|
|
8
|
+
import {
|
|
9
|
+
ApiError
|
|
10
|
+
} from "./chunk-XDZVBX6L.js";
|
|
11
|
+
import {
|
|
12
|
+
writeJson
|
|
13
|
+
} from "./chunk-WNSE7N75.js";
|
|
14
|
+
|
|
15
|
+
// src/commands/hubspot/refusal.ts
|
|
16
|
+
var CONTINUE = "Keep going with the wider task: say which part you could not read, skip it, and finish everything else. If the `request_connection` call fails, say so plainly and give the exact route: dashboard \u2192 Brain \u2192 Integrations \u2192 Platforms \u2192 HubSpot.";
|
|
17
|
+
function hubspotRefusal(code, message, reason = "so I can count a contact becoming a customer") {
|
|
18
|
+
if (code === "NOT_FOUND" && message.includes(HUBSPOT_NOT_CONNECTED_MESSAGE)) {
|
|
19
|
+
return {
|
|
20
|
+
code: "NO_HUBSPOT_CONNECTION",
|
|
21
|
+
fix: {
|
|
22
|
+
action: "request_connection",
|
|
23
|
+
explanation: `AGENT INSTRUCTION: HubSpot is not connected, and only the user can connect it. Call the \`request_connection\` tool with { platform: "hubspot", reason } \u2014 reason in their words, e.g. "${reason}" \u2014 and they connect it inside the chat; then run this command again. ` + CONTINUE
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (code === "FORBIDDEN" && message.includes(HUBSPOT_MISSING_GRANT_MARKER)) {
|
|
28
|
+
return {
|
|
29
|
+
code: "HUBSPOT_RECONNECT_REQUIRED",
|
|
30
|
+
fix: {
|
|
31
|
+
action: "request_connection",
|
|
32
|
+
explanation: 'AGENT INSTRUCTION: HubSpot is connected \u2014 do not tell the user it is missing, and do not retry. Its access does not cover this read (it was connected before Baker asked for it, or the access was withdrawn), and only the user can widen it. Call the `request_connection` tool with { platform: "hubspot", reason } naming what you need to read; the card offers them a Reconnect button. Run this command again once they have. ' + CONTINUE
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
function failNotConnected(err, reason) {
|
|
39
|
+
const refusal = err instanceof ApiError ? hubspotRefusal(err.code, err.message, reason) : null;
|
|
40
|
+
if (err instanceof ApiError && refusal !== null) {
|
|
41
|
+
writeJson({ ok: false, error: { code: refusal.code, message: err.message, fix: refusal.fix } });
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
failApi(err);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export {
|
|
48
|
+
hubspotRefusal,
|
|
49
|
+
failNotConnected
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=chunk-QZHGIJOW.js.map
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import {
|
|
2
|
+
definitionPlatformOf,
|
|
3
|
+
parseDefinitionDelivery,
|
|
4
|
+
resolveDelivery,
|
|
5
|
+
resolveFormatList
|
|
6
|
+
} from "./chunk-PNVEV3XP.js";
|
|
7
|
+
import {
|
|
8
|
+
AD_PLACEMENTS
|
|
9
|
+
} from "./chunk-F3CZFUXZ.js";
|
|
10
|
+
import {
|
|
11
|
+
CAPABILITY_SURFACES
|
|
12
|
+
} from "./chunk-XQIOCIDO.js";
|
|
13
|
+
import {
|
|
14
|
+
apiPost
|
|
15
|
+
} from "./chunk-XDZVBX6L.js";
|
|
16
|
+
|
|
17
|
+
// src/commands/canvas/scaffold-delivery.ts
|
|
18
|
+
var flagText = (value) => typeof value === "string" || typeof value === "number" ? String(value).trim() || void 0 : void 0;
|
|
19
|
+
function deliveryInputOf(flags, definition, idea) {
|
|
20
|
+
const platformsFlag = flagText(flags.platforms);
|
|
21
|
+
const legacyPlatform = flagText(flags.platform);
|
|
22
|
+
const legacyPlacements = flagText(flags.placements);
|
|
23
|
+
const aspect = flagText(flags.aspect);
|
|
24
|
+
const formatsFlag = flagText(flags.formats);
|
|
25
|
+
const targetAdSet = flagText(flags["target-adset"]);
|
|
26
|
+
return {
|
|
27
|
+
...platformsFlag ? { platformsFlag } : {},
|
|
28
|
+
...legacyPlatform ? { legacyPlatform } : {},
|
|
29
|
+
...legacyPlacements ? { legacyPlacements } : {},
|
|
30
|
+
...aspect ? { aspect } : {},
|
|
31
|
+
...formatsFlag ? { formatsFlag } : {},
|
|
32
|
+
...idea && idea.length > 0 ? { idea } : {},
|
|
33
|
+
definition,
|
|
34
|
+
...targetAdSet ? { targetAdSet } : {}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function namesDelivery(flags) {
|
|
38
|
+
return [flags.platforms, flags.platform, flags.placements, flags.formats].some((f) => flagText(f) !== void 0);
|
|
39
|
+
}
|
|
40
|
+
var SURFACE_PLATFORMS = {
|
|
41
|
+
"meta-ads": "meta",
|
|
42
|
+
"linkedin-ads": "linkedin",
|
|
43
|
+
"google-ads": "google_demandgen",
|
|
44
|
+
"x-ads": "x",
|
|
45
|
+
"chatgpt-ads": "chatgpt"
|
|
46
|
+
};
|
|
47
|
+
async function connectedAdPlatforms() {
|
|
48
|
+
try {
|
|
49
|
+
const response = await apiPost("/api/capabilities", {}, { timeoutMs: 15e3 });
|
|
50
|
+
return response.data.surfaces.filter((s) => s.connected && CAPABILITY_SURFACES.includes(s.surface)).flatMap((s) => SURFACE_PLATFORMS[s.surface] ? [SURFACE_PLATFORMS[s.surface]] : []);
|
|
51
|
+
} catch {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function scaffoldDelivery(flags, definitionText, idea) {
|
|
56
|
+
const definition = definitionText === null ? null : parseDefinitionDelivery(definitionText);
|
|
57
|
+
const input = deliveryInputOf(flags, definition, idea);
|
|
58
|
+
const resolved = resolveDelivery(input);
|
|
59
|
+
if (resolved.ok || resolved.error.code !== "platform_required") return resolved;
|
|
60
|
+
return resolveDelivery({ ...input, connected: await connectedAdPlatforms() });
|
|
61
|
+
}
|
|
62
|
+
function deliveryDefinitionFields(delivery) {
|
|
63
|
+
const platforms = delivery.platforms.map((p) => p.trim());
|
|
64
|
+
return {
|
|
65
|
+
// The collection names whole platforms; a placement named alone records its platform.
|
|
66
|
+
platforms: [...new Set(platforms.map(platformOfName))],
|
|
67
|
+
platform: definitionPlatformOf(platforms[0] ?? ""),
|
|
68
|
+
formats: resolveFormatList(delivery.formats)
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function platformOfName(name) {
|
|
72
|
+
return AD_PLACEMENTS.find((p) => p.id === name)?.platform ?? name;
|
|
73
|
+
}
|
|
74
|
+
function deliveryNote(delivery, renderRatio) {
|
|
75
|
+
const from = {
|
|
76
|
+
flag: "as asked",
|
|
77
|
+
idea: "from the idea",
|
|
78
|
+
definition: "from _definition.md",
|
|
79
|
+
legacy_definition: "from _definition.md's platform",
|
|
80
|
+
adset: "from its Meta ad set"
|
|
81
|
+
};
|
|
82
|
+
return `Made for ${delivery.platforms.join(", ")} (${from[delivery.source]}): delivers ${delivery.formats.join(", ")}, the ${delivery.lead} designed first (rendered at ${renderRatio}) and every other size re-laid out from it.`;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export {
|
|
86
|
+
namesDelivery,
|
|
87
|
+
scaffoldDelivery,
|
|
88
|
+
deliveryDefinitionFields,
|
|
89
|
+
deliveryNote
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=chunk-REMR5FHD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/canvas/scaffold-delivery.ts"],"sourcesContent":["/**\n * Where a scaffolded static ad runs, decided from the command's flags, the idea and the\n * creative's `_definition.md` before anything is billed (`resolveDelivery`), and what of it the\n * definition records. A refusal for a missing platform names the ad accounts connected, read\n * best-effort: they inform the agent's choice, the CLI never makes it.\n */\nimport { CAPABILITY_SURFACES, type CapabilitiesResponse } from \"@baker/api/capabilities\";\nimport { AD_PLACEMENTS } from \"@baker/canvas-contract\";\nimport { apiPost } from \"../../client.ts\";\nimport {\n type DeliveryInput,\n type DeliveryRefusal,\n type DefinitionDelivery,\n parseDefinitionDelivery,\n type ResolvedDelivery,\n resolveDelivery,\n type StaticDelivery,\n} from \"../../engine/scaffold/static-delivery.ts\";\nimport { definitionPlatformOf, resolveFormatList } from \"./creative-definition.ts\";\n\n/** The scaffold flags that say where the ad runs, as citty hands them over. */\nexport type DeliveryFlags = {\n platforms?: unknown;\n platform?: unknown;\n placements?: unknown;\n aspect?: unknown;\n formats?: unknown;\n \"target-adset\"?: unknown;\n};\n\nconst flagText = (value: unknown) =>\n typeof value === \"string\" || typeof value === \"number\" ? String(value).trim() || undefined : undefined;\n\n/** The flags, the idea and the definition as `resolveDelivery` reads them. Pure. */\nexport function deliveryInputOf(\n flags: DeliveryFlags,\n definition: DefinitionDelivery | null,\n idea?: readonly string[],\n): DeliveryInput {\n const platformsFlag = flagText(flags.platforms);\n const legacyPlatform = flagText(flags.platform);\n const legacyPlacements = flagText(flags.placements);\n const aspect = flagText(flags.aspect);\n const formatsFlag = flagText(flags.formats);\n const targetAdSet = flagText(flags[\"target-adset\"]);\n return {\n ...(platformsFlag ? { platformsFlag } : {}),\n ...(legacyPlatform ? { legacyPlatform } : {}),\n ...(legacyPlacements ? { legacyPlacements } : {}),\n ...(aspect ? { aspect } : {}),\n ...(formatsFlag ? { formatsFlag } : {}),\n ...(idea && idea.length > 0 ? { idea } : {}),\n definition,\n ...(targetAdSet ? { targetAdSet } : {}),\n };\n}\n\n/** Whether any flag names where the ad runs: an ad-hoc canvas (no creative) is planned only then. */\nexport function namesDelivery(flags: DeliveryFlags): boolean {\n return [flags.platforms, flags.platform, flags.placements, flags.formats].some((f) => flagText(f) !== undefined);\n}\n\n/** A connected ads surface as the catalog's platform names. */\nconst SURFACE_PLATFORMS: Record<string, string> = {\n \"meta-ads\": \"meta\",\n \"linkedin-ads\": \"linkedin\",\n \"google-ads\": \"google_demandgen\",\n \"x-ads\": \"x\",\n \"chatgpt-ads\": \"chatgpt\",\n};\n\n/** The platforms of the ad accounts connected; empty when they cannot be read. Never decides anything. */\nexport async function connectedAdPlatforms(): Promise<string[]> {\n try {\n const response = await apiPost<CapabilitiesResponse>(\"/api/capabilities\", {}, { timeoutMs: 15_000 });\n return response.data.surfaces\n .filter((s) => s.connected && (CAPABILITY_SURFACES as readonly string[]).includes(s.surface))\n .flatMap((s) => (SURFACE_PLATFORMS[s.surface] ? [SURFACE_PLATFORMS[s.surface] as string] : []));\n } catch {\n return [];\n }\n}\n\n/**\n * Where the ad runs, or the refusal to print. A missing platform's refusal names the connected\n * ad accounts (one free read, only when refusing).\n */\nexport async function scaffoldDelivery(\n flags: DeliveryFlags,\n definitionText: string | null,\n idea?: readonly string[],\n): Promise<{ ok: true; delivery: ResolvedDelivery } | { ok: false; error: DeliveryRefusal }> {\n const definition = definitionText === null ? null : parseDefinitionDelivery(definitionText);\n const input = deliveryInputOf(flags, definition, idea);\n const resolved = resolveDelivery(input);\n if (resolved.ok || resolved.error.code !== \"platform_required\") return resolved;\n return resolveDelivery({ ...input, connected: await connectedAdPlatforms() });\n}\n\n/** What the definition records of where the ad runs: the platforms, their family, the sizes. Pure. */\nexport function deliveryDefinitionFields(delivery: StaticDelivery): {\n platforms: string[];\n platform: string;\n formats: string[];\n} {\n const platforms = delivery.platforms.map((p) => p.trim());\n return {\n // The collection names whole platforms; a placement named alone records its platform.\n platforms: [...new Set(platforms.map(platformOfName))],\n platform: definitionPlatformOf(platforms[0] ?? \"\"),\n formats: resolveFormatList(delivery.formats),\n };\n}\n\n/** A placement id (`meta_stories`) as its platform (`meta`); a platform as itself. */\nfunction platformOfName(name: string): string {\n return AD_PLACEMENTS.find((p) => p.id === name)?.platform ?? name;\n}\n\n/** How the output names where the ad runs and why: \"Made for LinkedIn (from the idea): delivers 1:1, …\". */\nexport function deliveryNote(delivery: ResolvedDelivery, renderRatio: string): string {\n const from: Record<ResolvedDelivery[\"source\"], string> = {\n flag: \"as asked\",\n idea: \"from the idea\",\n definition: \"from _definition.md\",\n legacy_definition: \"from _definition.md's platform\",\n adset: \"from its Meta ad set\",\n };\n return `Made for ${delivery.platforms.join(\", \")} (${from[delivery.source]}): delivers ${delivery.formats.join(\", \")}, the ${delivery.lead} designed first (rendered at ${renderRatio}) and every other size re-laid out from it.`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA8BA,IAAM,WAAW,CAAC,UAChB,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW,OAAO,KAAK,EAAE,KAAK,KAAK,SAAY;AAGxF,SAAS,gBACd,OACA,YACA,MACe;AACf,QAAM,gBAAgB,SAAS,MAAM,SAAS;AAC9C,QAAM,iBAAiB,SAAS,MAAM,QAAQ;AAC9C,QAAM,mBAAmB,SAAS,MAAM,UAAU;AAClD,QAAM,SAAS,SAAS,MAAM,MAAM;AACpC,QAAM,cAAc,SAAS,MAAM,OAAO;AAC1C,QAAM,cAAc,SAAS,MAAM,cAAc,CAAC;AAClD,SAAO;AAAA,IACL,GAAI,gBAAgB,EAAE,cAAc,IAAI,CAAC;AAAA,IACzC,GAAI,iBAAiB,EAAE,eAAe,IAAI,CAAC;AAAA,IAC3C,GAAI,mBAAmB,EAAE,iBAAiB,IAAI,CAAC;AAAA,IAC/C,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,IAC3B,GAAI,cAAc,EAAE,YAAY,IAAI,CAAC;AAAA,IACrC,GAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,CAAC;AAAA,IAC1C;AAAA,IACA,GAAI,cAAc,EAAE,YAAY,IAAI,CAAC;AAAA,EACvC;AACF;AAGO,SAAS,cAAc,OAA+B;AAC3D,SAAO,CAAC,MAAM,WAAW,MAAM,UAAU,MAAM,YAAY,MAAM,OAAO,EAAE,KAAK,CAAC,MAAM,SAAS,CAAC,MAAM,MAAS;AACjH;AAGA,IAAM,oBAA4C;AAAA,EAChD,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,SAAS;AAAA,EACT,eAAe;AACjB;AAGA,eAAsB,uBAA0C;AAC9D,MAAI;AACF,UAAM,WAAW,MAAM,QAA8B,qBAAqB,CAAC,GAAG,EAAE,WAAW,KAAO,CAAC;AACnG,WAAO,SAAS,KAAK,SAClB,OAAO,CAAC,MAAM,EAAE,aAAc,oBAA0C,SAAS,EAAE,OAAO,CAAC,EAC3F,QAAQ,CAAC,MAAO,kBAAkB,EAAE,OAAO,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAW,IAAI,CAAC,CAAE;AAAA,EAClG,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAMA,eAAsB,iBACpB,OACA,gBACA,MAC2F;AAC3F,QAAM,aAAa,mBAAmB,OAAO,OAAO,wBAAwB,cAAc;AAC1F,QAAM,QAAQ,gBAAgB,OAAO,YAAY,IAAI;AACrD,QAAM,WAAW,gBAAgB,KAAK;AACtC,MAAI,SAAS,MAAM,SAAS,MAAM,SAAS,oBAAqB,QAAO;AACvE,SAAO,gBAAgB,EAAE,GAAG,OAAO,WAAW,MAAM,qBAAqB,EAAE,CAAC;AAC9E;AAGO,SAAS,yBAAyB,UAIvC;AACA,QAAM,YAAY,SAAS,UAAU,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AACxD,SAAO;AAAA;AAAA,IAEL,WAAW,CAAC,GAAG,IAAI,IAAI,UAAU,IAAI,cAAc,CAAC,CAAC;AAAA,IACrD,UAAU,qBAAqB,UAAU,CAAC,KAAK,EAAE;AAAA,IACjD,SAAS,kBAAkB,SAAS,OAAO;AAAA,EAC7C;AACF;AAGA,SAAS,eAAe,MAAsB;AAC5C,SAAO,cAAc,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,GAAG,YAAY;AAC/D;AAGO,SAAS,aAAa,UAA4B,aAA6B;AACpF,QAAM,OAAmD;AAAA,IACvD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,OAAO;AAAA,EACT;AACA,SAAO,YAAY,SAAS,UAAU,KAAK,IAAI,CAAC,KAAK,KAAK,SAAS,MAAM,CAAC,eAAe,SAAS,QAAQ,KAAK,IAAI,CAAC,SAAS,SAAS,IAAI,gCAAgC,WAAW;AACvL;","names":[]}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import {
|
|
2
|
+
holdUnbilledSpend
|
|
3
|
+
} from "./chunk-5WMTPYKT.js";
|
|
4
|
+
import {
|
|
5
|
+
askAboutText
|
|
6
|
+
} from "./chunk-B7FVPHCW.js";
|
|
7
|
+
|
|
8
|
+
// src/engine/brand/brand-doc.ts
|
|
9
|
+
import { createHash } from "crypto";
|
|
10
|
+
import { mkdir, readdir, readFile, writeFile } from "fs/promises";
|
|
11
|
+
import path from "path";
|
|
12
|
+
import { z } from "zod";
|
|
13
|
+
var BRAND_DOC_MODEL = "google/gemini-3.5-flash-lite";
|
|
14
|
+
var REQUEST = {
|
|
15
|
+
provider: { order: ["google-vertex"], allow_fallbacks: false },
|
|
16
|
+
seed: 0,
|
|
17
|
+
response_format: { type: "json_object" }
|
|
18
|
+
};
|
|
19
|
+
var PROMPT_VERSION = 3;
|
|
20
|
+
var TIMEOUT_MS = 3e4;
|
|
21
|
+
var BRAND_MD_CHARS = 32e3;
|
|
22
|
+
var NOTE_CHARS = 600;
|
|
23
|
+
var COMPANY_MD_CHARS = 4e3;
|
|
24
|
+
var Font = z.object({
|
|
25
|
+
family: z.string().trim().min(1).max(60),
|
|
26
|
+
role: z.enum(["heading", "body", "any"]).catch("any"),
|
|
27
|
+
use: z.boolean()
|
|
28
|
+
});
|
|
29
|
+
var Color = z.object({
|
|
30
|
+
hex: z.string().trim().regex(/^#?[0-9a-fA-F]{6}$/).transform((h) => `#${h.replace(/^#/, "").toLowerCase()}`),
|
|
31
|
+
use: z.boolean()
|
|
32
|
+
});
|
|
33
|
+
var note = z.string().trim().min(1).max(NOTE_CHARS).nullable().optional().catch(null);
|
|
34
|
+
var Reading = z.object({
|
|
35
|
+
name: z.string().trim().min(1).max(80).nullable().catch(null),
|
|
36
|
+
wordmark: z.array(z.string().trim().min(1).max(40)).catch([]),
|
|
37
|
+
logoNames: z.array(z.string().trim().min(1).max(40)).catch([]),
|
|
38
|
+
fonts: z.array(z.unknown()).catch([]),
|
|
39
|
+
colors: z.array(z.unknown()).catch([]),
|
|
40
|
+
voice: note,
|
|
41
|
+
imagery: note,
|
|
42
|
+
logoUsage: note
|
|
43
|
+
});
|
|
44
|
+
function brandDocPrompt(docs) {
|
|
45
|
+
return [
|
|
46
|
+
"You read a company's brand guidelines (BRAND.md), the start of its company profile (COMPANY.md) and the file names of its logos. They may be written in any language, or several. Extract only what they state; never invent a value.",
|
|
47
|
+
"",
|
|
48
|
+
"Return JSON only, in this shape:",
|
|
49
|
+
'{"name": string | null, "wordmark": string[], "logoNames": string[], "fonts": [{"family": string, "role": "heading" | "body" | "any", "use": boolean}], "colors": [{"hex": "#rrggbb", "use": boolean}], "voice": string | null, "imagery": string | null, "logoUsage": string | null}',
|
|
50
|
+
"",
|
|
51
|
+
`- name: the brand's name exactly as written ("# Zernio Brand Guidelines" names Zernio). null when neither document states one, as in an unfilled template ("# Brand Guidelines", "# Company", TODO).`,
|
|
52
|
+
`- wordmark: every word the documents say the logo prints, as they quote it ("Wordmark: \\"permut\\"" gives "permut"; 'symbol plus "Cubbo" wordmark' gives "Cubbo"), even when it is also the name. [] when they quote none.`,
|
|
53
|
+
'- logoNames: a product or brand name a logo file name carries ("logo-engage-blue.png" gives "Engage"). Colours, variants, sizes and formats (dark, white, icon, isotype, png) are not names. [] when none.',
|
|
54
|
+
`- fonts: every typeface the guidelines name, by its family name exactly, the banned ones included. role is heading, body, or any when they do not say. use is false when the guidelines ban it, forbid it or say to avoid it or never use it, in any wording or language; true when the brand uses it. Only a named typeface counts: a generic family (sans-serif, serif, monospace, system-ui) or the operating system's own fonts ("system stack", "system fonts") is not one, so leave it out.`,
|
|
55
|
+
"- colors: every hex colour the guidelines give. use is false when they ban it or say to avoid it, true when it is a brand colour.",
|
|
56
|
+
"- voice: how the brand speaks, as the guidelines put it, at most two sentences in their language. null when they do not say.",
|
|
57
|
+
"- imagery: what the brand's pictures look like and never look like (photography, illustration, people; a ```generation-style block says it too), at most two sentences in their language. null when they do not say.",
|
|
58
|
+
"- logoUsage: which logo file an ad uses and how it must appear (which file for which product, line or background, what never to do to it), at most two sentences in their language. null when they do not say.",
|
|
59
|
+
"",
|
|
60
|
+
"<brand_md>",
|
|
61
|
+
(docs.brandMd ?? "").slice(0, BRAND_MD_CHARS),
|
|
62
|
+
"</brand_md>",
|
|
63
|
+
"<company_md>",
|
|
64
|
+
(docs.companyMd ?? "").slice(0, COMPANY_MD_CHARS),
|
|
65
|
+
"</company_md>",
|
|
66
|
+
"<logo_files>",
|
|
67
|
+
(docs.logoFiles ?? []).join("\n"),
|
|
68
|
+
"</logo_files>"
|
|
69
|
+
].join("\n");
|
|
70
|
+
}
|
|
71
|
+
function parseBrandDoc(answer) {
|
|
72
|
+
const parsed = Reading.safeParse(answer);
|
|
73
|
+
if (!parsed.success) return null;
|
|
74
|
+
const fonts = parsed.data.fonts.flatMap((f) => {
|
|
75
|
+
const font = Font.safeParse(f);
|
|
76
|
+
return font.success ? [font.data] : [];
|
|
77
|
+
});
|
|
78
|
+
const colors = parsed.data.colors.flatMap((c) => {
|
|
79
|
+
const color = Color.safeParse(c);
|
|
80
|
+
return color.success ? [color.data] : [];
|
|
81
|
+
});
|
|
82
|
+
const { voice, imagery, logoUsage } = parsed.data;
|
|
83
|
+
return {
|
|
84
|
+
...parsed.data.name ? { name: parsed.data.name } : {},
|
|
85
|
+
wordmark: [.../* @__PURE__ */ new Set([...parsed.data.wordmark, ...parsed.data.logoNames])],
|
|
86
|
+
fonts,
|
|
87
|
+
colors,
|
|
88
|
+
...voice ? { voice } : {},
|
|
89
|
+
...imagery ? { imagery } : {},
|
|
90
|
+
...logoUsage ? { logoUsage } : {}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function brandDocReader(cacheDir, onSpend) {
|
|
94
|
+
return async (docs) => {
|
|
95
|
+
const prompt = brandDocPrompt(docs);
|
|
96
|
+
const key = createHash("sha256").update(JSON.stringify([PROMPT_VERSION, BRAND_DOC_MODEL, prompt])).digest("hex");
|
|
97
|
+
const file = path.join(cacheDir, "brand-doc", `${key}.json`);
|
|
98
|
+
const cached = parseBrandDoc(await readFile(file, "utf8").then(JSON.parse, () => null));
|
|
99
|
+
if (cached) return cached;
|
|
100
|
+
const spent = [];
|
|
101
|
+
const answer = await askAboutText(BRAND_DOC_MODEL, prompt, (u) => onSpend ? onSpend(u) : spent.push(u), {
|
|
102
|
+
timeoutMs: TIMEOUT_MS,
|
|
103
|
+
request: REQUEST
|
|
104
|
+
}).catch(() => null);
|
|
105
|
+
await holdUnbilledSpend(cacheDir, spent).catch(() => void 0);
|
|
106
|
+
const reading = parseBrandDoc(answer);
|
|
107
|
+
if (reading) {
|
|
108
|
+
await mkdir(path.dirname(file), { recursive: true }).catch(() => void 0);
|
|
109
|
+
await writeFile(file, JSON.stringify(reading), "utf8").catch(() => void 0);
|
|
110
|
+
}
|
|
111
|
+
return reading;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
var LOGO_FILE = /logo|lockup|wordmark|isotype|isologo/i;
|
|
115
|
+
async function workspaceBrandDocs(root) {
|
|
116
|
+
const read = (rel) => readFile(path.join(root, rel), "utf8").catch(() => null);
|
|
117
|
+
const logoFiles = (await readdir(path.join(root, "src", "brand", "logos")).catch(() => [])).filter((f) => /\.(png|jpe?g|webp|svg)$/i.test(f) && LOGO_FILE.test(f)).sort();
|
|
118
|
+
return { brandMd: await read("src/brand/BRAND.md"), companyMd: await read("COMPANY.md"), logoFiles };
|
|
119
|
+
}
|
|
120
|
+
async function readWorkspaceBrandDoc(root, opts = {}) {
|
|
121
|
+
const docs = await workspaceBrandDocs(root);
|
|
122
|
+
if (!docs.brandMd?.trim() && !docs.companyMd?.trim()) return null;
|
|
123
|
+
const read = opts.read ?? brandDocReader(path.join(root, "canvas", ".cache"), opts.onSpend);
|
|
124
|
+
return await read(docs).catch(() => null);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export {
|
|
128
|
+
LOGO_FILE,
|
|
129
|
+
readWorkspaceBrandDoc
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=chunk-RGX7AQ2K.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/engine/brand/brand-doc.ts"],"sourcesContent":["/**\n * What the brand's own documents state about it, read by a text model in whatever language they\n * are written: its name, the words its logo prints, the typefaces and colours it uses and the ones\n * it bans, how it speaks, what its pictures look like and how its logo is used. Its rules for ads\n * are read apart (`brand-rules.ts`). BRAND.md is prose, and every reader that scraped it with English words got it wrong\n * the moment it was written otherwise: \"nunca uses Inter\" read as a face to use.\n *\n * `src/brand/tokens.json` stays the canonical machine source; this is what the documents add or\n * what a workspace that predates tokens.json has. The model only extracts, pinned to one provider\n * and a seed, and each reading is kept by the documents' content, so the same documents\n * read the same on every run and cost one call per edit. Measured on scripts/brand-doc-evals.\n */\nimport { createHash } from \"node:crypto\";\nimport { mkdir, readdir, readFile, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { z } from \"zod\";\nimport { holdUnbilledSpend } from \"../../commands/canvas/unbilled-spend.ts\";\nimport { askAboutText, type ReviewUsage } from \"../nodes/local/lib/render-review.ts\";\n\n/**\n * Measured 2026-10-11 with scripts/brand-doc-evals: 21/21 on each of nine runs, p50 about 0.65 s\n * (2.5 Flash-Lite, which it replaces: 21/21, 0.5 s). Vertex takes no temperature for this model\n * and AI Studio, which does, fails the key's zero-data-retention guardrail, so the seed pins the draw.\n */\nexport const BRAND_DOC_MODEL = \"google/gemini-3.5-flash-lite\";\nconst REQUEST = {\n provider: { order: [\"google-vertex\"], allow_fallbacks: false },\n seed: 0,\n response_format: { type: \"json_object\" },\n};\nconst PROMPT_VERSION = 3;\nconst TIMEOUT_MS = 30_000;\n/** About 8k tokens of guidelines: a brand document is shorter, and a runaway one is cut. */\nconst BRAND_MD_CHARS = 32_000;\nconst NOTE_CHARS = 600;\n/** A company profile states its name at the top. */\nconst COMPANY_MD_CHARS = 4_000;\n\nconst Font = z.object({\n family: z.string().trim().min(1).max(60),\n role: z.enum([\"heading\", \"body\", \"any\"]).catch(\"any\"),\n use: z.boolean(),\n});\nconst Color = z.object({\n hex: z\n .string()\n .trim()\n .regex(/^#?[0-9a-fA-F]{6}$/)\n .transform((h) => `#${h.replace(/^#/, \"\").toLowerCase()}`),\n use: z.boolean(),\n});\nconst note = z.string().trim().min(1).max(NOTE_CHARS).nullable().optional().catch(null);\nconst Reading = z.object({\n name: z.string().trim().min(1).max(80).nullable().catch(null),\n wordmark: z.array(z.string().trim().min(1).max(40)).catch([]),\n logoNames: z.array(z.string().trim().min(1).max(40)).catch([]),\n fonts: z.array(z.unknown()).catch([]),\n colors: z.array(z.unknown()).catch([]),\n voice: note,\n imagery: note,\n logoUsage: note,\n});\n\nexport type BrandDocReading = {\n name?: string;\n /** The words the brand's logo prints, as the documents quote them or a logo file names a product. */\n wordmark: string[];\n fonts: Array<z.infer<typeof Font>>;\n colors: Array<z.infer<typeof Color>>;\n /** How the brand speaks, in the documents' words. */\n voice?: string;\n /** What its pictures look like and never look like. */\n imagery?: string;\n /** Which logo an ad uses and how it must appear. */\n logoUsage?: string;\n};\n\nexport type BrandDocs = { brandMd?: string | null; companyMd?: string | null; logoFiles?: readonly string[] };\n\nfunction brandDocPrompt(docs: BrandDocs): string {\n return [\n \"You read a company's brand guidelines (BRAND.md), the start of its company profile (COMPANY.md) and the file names of its logos. They may be written in any language, or several. Extract only what they state; never invent a value.\",\n \"\",\n \"Return JSON only, in this shape:\",\n '{\"name\": string | null, \"wordmark\": string[], \"logoNames\": string[], \"fonts\": [{\"family\": string, \"role\": \"heading\" | \"body\" | \"any\", \"use\": boolean}], \"colors\": [{\"hex\": \"#rrggbb\", \"use\": boolean}], \"voice\": string | null, \"imagery\": string | null, \"logoUsage\": string | null}',\n \"\",\n '- name: the brand\\'s name exactly as written (\"# Zernio Brand Guidelines\" names Zernio). null when neither document states one, as in an unfilled template (\"# Brand Guidelines\", \"# Company\", TODO).',\n '- wordmark: every word the documents say the logo prints, as they quote it (\"Wordmark: \\\\\"permut\\\\\"\" gives \"permut\"; \\'symbol plus \"Cubbo\" wordmark\\' gives \"Cubbo\"), even when it is also the name. [] when they quote none.',\n '- logoNames: a product or brand name a logo file name carries (\"logo-engage-blue.png\" gives \"Engage\"). Colours, variants, sizes and formats (dark, white, icon, isotype, png) are not names. [] when none.',\n '- fonts: every typeface the guidelines name, by its family name exactly, the banned ones included. role is heading, body, or any when they do not say. use is false when the guidelines ban it, forbid it or say to avoid it or never use it, in any wording or language; true when the brand uses it. Only a named typeface counts: a generic family (sans-serif, serif, monospace, system-ui) or the operating system\\'s own fonts (\"system stack\", \"system fonts\") is not one, so leave it out.',\n \"- colors: every hex colour the guidelines give. use is false when they ban it or say to avoid it, true when it is a brand colour.\",\n \"- voice: how the brand speaks, as the guidelines put it, at most two sentences in their language. null when they do not say.\",\n \"- imagery: what the brand's pictures look like and never look like (photography, illustration, people; a ```generation-style block says it too), at most two sentences in their language. null when they do not say.\",\n \"- logoUsage: which logo file an ad uses and how it must appear (which file for which product, line or background, what never to do to it), at most two sentences in their language. null when they do not say.\",\n \"\",\n \"<brand_md>\",\n (docs.brandMd ?? \"\").slice(0, BRAND_MD_CHARS),\n \"</brand_md>\",\n \"<company_md>\",\n (docs.companyMd ?? \"\").slice(0, COMPANY_MD_CHARS),\n \"</company_md>\",\n \"<logo_files>\",\n (docs.logoFiles ?? []).join(\"\\n\"),\n \"</logo_files>\",\n ].join(\"\\n\");\n}\n\n/** The model's answer as a reading, every entry it got wrong dropped; null when it is not one. Pure. */\nexport function parseBrandDoc(answer: unknown): BrandDocReading | null {\n const parsed = Reading.safeParse(answer);\n if (!parsed.success) return null;\n const fonts = parsed.data.fonts.flatMap((f) => {\n const font = Font.safeParse(f);\n return font.success ? [font.data] : [];\n });\n const colors = parsed.data.colors.flatMap((c) => {\n const color = Color.safeParse(c);\n return color.success ? [color.data] : [];\n });\n const { voice, imagery, logoUsage } = parsed.data;\n return {\n ...(parsed.data.name ? { name: parsed.data.name } : {}),\n wordmark: [...new Set([...parsed.data.wordmark, ...parsed.data.logoNames])],\n fonts,\n colors,\n ...(voice ? { voice } : {}),\n ...(imagery ? { imagery } : {}),\n ...(logoUsage ? { logoUsage } : {}),\n };\n}\n\n/** Reads the documents with the model, or null when it could not answer. */\nexport type ReadBrandDocs = (docs: BrandDocs) => Promise<BrandDocReading | null>;\n\n/**\n * The real reader: each reading kept in `cacheDir` by the documents, the model and the prompt.\n * Spend goes to `onSpend`, or, without one, waits in `cacheDir` for the workspace's next run\n * record to bill it.\n */\nexport function brandDocReader(cacheDir: string, onSpend?: (usage: ReviewUsage) => void): ReadBrandDocs {\n return async (docs) => {\n const prompt = brandDocPrompt(docs);\n const key = createHash(\"sha256\")\n .update(JSON.stringify([PROMPT_VERSION, BRAND_DOC_MODEL, prompt]))\n .digest(\"hex\");\n const file = path.join(cacheDir, \"brand-doc\", `${key}.json`);\n const cached = parseBrandDoc(await readFile(file, \"utf8\").then(JSON.parse, () => null));\n if (cached) return cached;\n const spent: ReviewUsage[] = [];\n const answer = await askAboutText(BRAND_DOC_MODEL, prompt, (u) => (onSpend ? onSpend(u) : spent.push(u)), {\n timeoutMs: TIMEOUT_MS,\n request: REQUEST,\n }).catch(() => null);\n await holdUnbilledSpend(cacheDir, spent).catch(() => undefined);\n const reading = parseBrandDoc(answer);\n if (reading) {\n await mkdir(path.dirname(file), { recursive: true }).catch(() => undefined);\n await writeFile(file, JSON.stringify(reading), \"utf8\").catch(() => undefined);\n }\n return reading;\n };\n}\n\n/** A file named as the brand's own logo; a partner's or a tool's icon (`python-icon.png`) is not. */\nexport const LOGO_FILE = /logo|lockup|wordmark|isotype|isologo/i;\n\n/** BRAND.md, COMPANY.md and the brand's own logo file names in a workspace. Never throws. */\nasync function workspaceBrandDocs(root: string): Promise<BrandDocs> {\n const read = (rel: string) => readFile(path.join(root, rel), \"utf8\").catch(() => null);\n const logoFiles = ((await readdir(path.join(root, \"src\", \"brand\", \"logos\")).catch(() => [])) as string[])\n .filter((f) => /\\.(png|jpe?g|webp|svg)$/i.test(f) && LOGO_FILE.test(f))\n .sort();\n return { brandMd: await read(\"src/brand/BRAND.md\"), companyMd: await read(\"COMPANY.md\"), logoFiles };\n}\n\n/**\n * What the workspace's brand documents state, read once per edit. Null when there is nothing to\n * read, or no model could read it: every caller then uses what code can read without one.\n */\nexport async function readWorkspaceBrandDoc(\n root: string,\n opts: { read?: ReadBrandDocs; onSpend?: (usage: ReviewUsage) => void } = {},\n): Promise<BrandDocReading | null> {\n const docs = await workspaceBrandDocs(root);\n if (!docs.brandMd?.trim() && !docs.companyMd?.trim()) return null;\n const read = opts.read ?? brandDocReader(path.join(root, \"canvas\", \".cache\"), opts.onSpend);\n return await read(docs).catch(() => null);\n}\n"],"mappings":"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","names":[]}
|