@koda-sl/baker-cli 0.442.0 → 0.443.0-dev.043c1d4ac
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 +38 -23
- package/canvas/tiktok-captions-composition/index.html +5 -6
- package/canvas/tiktok-captions-composition/meta.json +5 -0
- package/dist/account-4H7QVBRK.js +80 -0
- package/dist/account-4H7QVBRK.js.map +1 -0
- package/dist/account-IEVEOFIK.js +49 -0
- package/dist/account-IEVEOFIK.js.map +1 -0
- package/dist/account-RDRK7NOE.js +79 -0
- package/dist/account-RDRK7NOE.js.map +1 -0
- package/dist/account-writes-AK42HGRM.js +66 -0
- package/dist/account-writes-AK42HGRM.js.map +1 -0
- package/dist/accounts-4CDRK4S4.js +75 -0
- package/dist/accounts-4CDRK4S4.js.map +1 -0
- package/dist/accounts-4TYIUVWY.js +77 -0
- package/dist/accounts-4TYIUVWY.js.map +1 -0
- package/dist/accounts-5QDKBZMH.js +115 -0
- package/dist/accounts-5QDKBZMH.js.map +1 -0
- package/dist/accounts-6COLJJHM.js +611 -0
- package/dist/accounts-6COLJJHM.js.map +1 -0
- package/dist/accounts-KYJO3JC6.js +114 -0
- package/dist/accounts-KYJO3JC6.js.map +1 -0
- package/dist/actions-PEI6ZQAG.js +55 -0
- package/dist/active-entities-YUSOUR5M.js +103 -0
- package/dist/active-entities-YUSOUR5M.js.map +1 -0
- package/dist/activities-ZVQOBHZH.js +74 -0
- package/dist/activities-ZVQOBHZH.js.map +1 -0
- package/dist/ad-group-writes-QQS4223F.js +170 -0
- package/dist/ad-group-writes-QQS4223F.js.map +1 -0
- package/dist/ad-groups-WGPDPUI2.js +68 -0
- package/dist/ad-groups-WGPDPUI2.js.map +1 -0
- package/dist/ad-writes-XE2IE4DS.js +174 -0
- package/dist/ad-writes-XE2IE4DS.js.map +1 -0
- package/dist/add-577QWMCF.js +97 -0
- package/dist/add-577QWMCF.js.map +1 -0
- package/dist/add-CUWAW7KG.js +105 -0
- package/dist/add-CUWAW7KG.js.map +1 -0
- package/dist/add-XDOQQCHS.js +104 -0
- package/dist/add-XDOQQCHS.js.map +1 -0
- package/dist/add-XEDSBYLM.js +280 -0
- package/dist/add-XEDSBYLM.js.map +1 -0
- package/dist/ads-BCOSQALY.js +77 -0
- package/dist/ads-BCOSQALY.js.map +1 -0
- package/dist/ads-H7GH7A26.js +113 -0
- package/dist/ads-H7GH7A26.js.map +1 -0
- package/dist/ads-TJ7ACFHG.js +40 -0
- package/dist/adsets-H7QT42U6.js +176 -0
- package/dist/adsets-H7QT42U6.js.map +1 -0
- package/dist/advertisers-WSNHNCBQ.js +116 -0
- package/dist/advertisers-WSNHNCBQ.js.map +1 -0
- package/dist/advertisers-YMHPZYNF.js +111 -0
- package/dist/advertisers-YMHPZYNF.js.map +1 -0
- package/dist/analytics-PT2GKCFU.js +1958 -0
- package/dist/analytics-PT2GKCFU.js.map +1 -0
- package/dist/analytics-ZVWUY66X.js +433 -0
- package/dist/analytics-ZVWUY66X.js.map +1 -0
- package/dist/animate-3Z7HXOLE.js +480 -0
- package/dist/animate-3Z7HXOLE.js.map +1 -0
- package/dist/assign-B26AJLGN.js +77 -0
- package/dist/assign-B26AJLGN.js.map +1 -0
- package/dist/audience-size-ZX565D5P.js +94 -0
- package/dist/audience-size-ZX565D5P.js.map +1 -0
- package/dist/audiences-HFRVIE2X.js +85 -0
- package/dist/audiences-HFRVIE2X.js.map +1 -0
- package/dist/audiences-JACGRBNN.js +78 -0
- package/dist/audiences-JACGRBNN.js.map +1 -0
- package/dist/audiences-TGD5US2M.js +268 -0
- package/dist/audiences-TGD5US2M.js.map +1 -0
- package/dist/audit-AD4ZZNJN.js +88 -0
- package/dist/audit-AD4ZZNJN.js.map +1 -0
- package/dist/audit-SAXVPGWS.js +151 -0
- package/dist/audit-SAXVPGWS.js.map +1 -0
- package/dist/autocomplete-6PYFCOMX.js +107 -0
- package/dist/autocomplete-6PYFCOMX.js.map +1 -0
- package/dist/avatars-2UQJXHPV.js +38 -0
- package/dist/bid-pricing-WSHACGX4.js +99 -0
- package/dist/bid-pricing-WSHACGX4.js.map +1 -0
- package/dist/brand-XBABUT52.js +22 -0
- package/dist/brief-KKNC32TA.js +478 -0
- package/dist/brief-KKNC32TA.js.map +1 -0
- package/dist/businesses-JBDQZZIG.js +53 -0
- package/dist/businesses-JBDQZZIG.js.map +1 -0
- package/dist/campaign-groups-G35366AW.js +95 -0
- package/dist/campaign-groups-G35366AW.js.map +1 -0
- package/dist/campaign-writes-SXLZFYF6.js +170 -0
- package/dist/campaign-writes-SXLZFYF6.js.map +1 -0
- package/dist/campaign-writes-ZQGN7FQ3.js +165 -0
- package/dist/campaign-writes-ZQGN7FQ3.js.map +1 -0
- package/dist/campaigns-GXUCHQ2S.js +109 -0
- package/dist/campaigns-GXUCHQ2S.js.map +1 -0
- package/dist/campaigns-WBEG5QA4.js +110 -0
- package/dist/campaigns-WBEG5QA4.js.map +1 -0
- package/dist/campaigns-WECN54WV.js +107 -0
- package/dist/campaigns-WECN54WV.js.map +1 -0
- package/dist/campaigns-YS3OGQXO.js +76 -0
- package/dist/campaigns-YS3OGQXO.js.map +1 -0
- package/dist/canvas-KEXE5P6S.js +46 -0
- package/dist/capabilities-74I5AQ36.js +144 -0
- package/dist/capabilities-74I5AQ36.js.map +1 -0
- package/dist/cards-4477BFEV.js +85 -0
- package/dist/cards-4477BFEV.js.map +1 -0
- package/dist/catalog-IQEQ5TGQ.js +66 -0
- package/dist/catalog-IQEQ5TGQ.js.map +1 -0
- package/dist/catalogs-BRXEDE56.js +128 -0
- package/dist/catalogs-BRXEDE56.js.map +1 -0
- package/dist/changes-6QBJMGJC.js +135 -0
- package/dist/changes-6QBJMGJC.js.map +1 -0
- package/dist/chatgpt-7W75X3ER.js +47 -0
- package/dist/chats-DWHF64IU.js +262 -0
- package/dist/chats-DWHF64IU.js.map +1 -0
- package/dist/chunk-27NMXSC3.js +486 -0
- package/dist/chunk-27NMXSC3.js.map +1 -0
- package/dist/chunk-2CD5ZP7M.js +6659 -0
- package/dist/chunk-2CD5ZP7M.js.map +1 -0
- package/dist/chunk-2TK4DEOE.js +74 -0
- package/dist/chunk-3RJ3VGJP.js +197 -0
- package/dist/chunk-3RJ3VGJP.js.map +1 -0
- package/dist/chunk-4NDCTLI5.js +191 -0
- package/dist/chunk-4NZ47VXO.js +137 -0
- package/dist/chunk-4NZ47VXO.js.map +1 -0
- package/dist/chunk-4SJDDGPV.js +1411 -0
- package/dist/chunk-4SJDDGPV.js.map +1 -0
- package/dist/chunk-5ARG3CQG.js +141 -0
- package/dist/chunk-5HYSKH77.js +315 -0
- package/dist/chunk-5HYSKH77.js.map +1 -0
- package/dist/chunk-5Z2KSVIV.js +67 -0
- package/dist/chunk-654U6NU6.js +534 -0
- package/dist/chunk-654U6NU6.js.map +1 -0
- package/dist/chunk-6B7VKFS4.js +172 -0
- package/dist/chunk-6G5K6ZC6.js +46 -0
- package/dist/chunk-73QKIIIR.js +23 -0
- package/dist/chunk-75FDTDLH.js +96 -0
- package/dist/chunk-75VNSKS3.js +455 -0
- package/dist/chunk-75VNSKS3.js.map +1 -0
- package/dist/chunk-7GPDUS3P.js +494 -0
- package/dist/chunk-7GPDUS3P.js.map +1 -0
- package/dist/chunk-7J6EHOH6.js +274 -0
- package/dist/chunk-7OFNN4CT.js +58 -0
- package/dist/chunk-7QJVPMVB.js +592 -0
- package/dist/chunk-7QJVPMVB.js.map +1 -0
- package/dist/chunk-AN447DQB.js +159 -0
- package/dist/chunk-AN447DQB.js.map +1 -0
- package/dist/chunk-BYDF22T4.js +346 -0
- package/dist/chunk-BYDF22T4.js.map +1 -0
- package/dist/chunk-C6U6UDHJ.js +106 -0
- package/dist/chunk-CLMM6P6B.js +1751 -0
- package/dist/chunk-CLMM6P6B.js.map +1 -0
- package/dist/chunk-DIY6QR3E.js +96 -0
- package/dist/chunk-EFSYTROP.js +94 -0
- package/dist/chunk-EIP4PYCL.js +496 -0
- package/dist/chunk-EIP4PYCL.js.map +1 -0
- package/dist/chunk-EZUG6WE2.js +60 -0
- package/dist/chunk-EZUG6WE2.js.map +1 -0
- package/dist/chunk-F2S5BLPE.js +97 -0
- package/dist/chunk-F2S5BLPE.js.map +1 -0
- package/dist/chunk-FEXDI4NM.js +103 -0
- package/dist/chunk-FHXIEMCG.js +382 -0
- package/dist/chunk-FTWJFDIN.js +23992 -0
- package/dist/chunk-FTWJFDIN.js.map +1 -0
- package/dist/chunk-FXED3VZK.js +174 -0
- package/dist/chunk-FXED3VZK.js.map +1 -0
- package/dist/chunk-GIJT3A5U.js +166 -0
- package/dist/chunk-GIJT3A5U.js.map +1 -0
- package/dist/chunk-H26L3OQY.js +42 -0
- package/dist/chunk-HIPDMQZ6.js +136 -0
- package/dist/chunk-HMEFD2CG.js +5163 -0
- package/dist/chunk-HMEFD2CG.js.map +1 -0
- package/dist/chunk-HO3IUJ4K.js +70 -0
- package/dist/chunk-HO3IUJ4K.js.map +1 -0
- package/dist/chunk-HXTGYOQC.js +813 -0
- package/dist/chunk-HXTGYOQC.js.map +1 -0
- package/dist/chunk-HYCIBVDW.js +98 -0
- package/dist/chunk-ICM2OXZV.js +304 -0
- package/dist/chunk-ICM2OXZV.js.map +1 -0
- package/dist/chunk-IFWP3ZDO.js +215 -0
- package/dist/chunk-IKGWQBKJ.js +422 -0
- package/dist/chunk-IKGWQBKJ.js.map +1 -0
- package/dist/chunk-IXKEWS7X.js +433 -0
- package/dist/chunk-JERXV5A3.js +26 -0
- package/dist/chunk-JM73NDCM.js +163 -0
- package/dist/chunk-JM73NDCM.js.map +1 -0
- package/dist/chunk-K3PN7TN5.js +84 -0
- package/dist/chunk-K3PN7TN5.js.map +1 -0
- package/dist/chunk-KLNKEVIY.js +136 -0
- package/dist/chunk-KNY76UGC.js +84 -0
- package/dist/chunk-KWAOTV7F.js +830 -0
- package/dist/chunk-L3OLEAJN.js +92 -0
- package/dist/chunk-L3OLEAJN.js.map +1 -0
- package/dist/chunk-LERTEZST.js +28 -0
- package/dist/chunk-LL2CD5WU.js +310 -0
- package/dist/chunk-LO6GEJ4Z.js +51 -0
- package/dist/chunk-LS5MTRFI.js +106 -0
- package/dist/chunk-LZ73CZGP.js +188 -0
- package/dist/chunk-MELOSESI.js +20 -0
- package/dist/chunk-MLU6STIN.js +66 -0
- package/dist/chunk-MLU6STIN.js.map +1 -0
- package/dist/chunk-MZL4H5PY.js +225 -0
- package/dist/chunk-MZL4H5PY.js.map +1 -0
- package/dist/chunk-NAWWC5I3.js +454 -0
- package/dist/chunk-NFSLRRIE.js +77 -0
- package/dist/chunk-NFSLRRIE.js.map +1 -0
- package/dist/chunk-NPE7EWBE.js +297 -0
- package/dist/chunk-NU7JSWVA.js +946 -0
- package/dist/chunk-NU7JSWVA.js.map +1 -0
- package/dist/chunk-OBDAYP2P.js +3155 -0
- package/dist/chunk-OBDAYP2P.js.map +1 -0
- package/dist/chunk-OC5IJSIW.js +420 -0
- package/dist/chunk-OC5IJSIW.js.map +1 -0
- package/dist/chunk-OKG6GX2F.js +169 -0
- package/dist/chunk-OTFHEHIU.js +1706 -0
- package/dist/chunk-OTFHEHIU.js.map +1 -0
- package/dist/chunk-PBA3YCZA.js +76 -0
- package/dist/chunk-PWGWMIIJ.js +25 -0
- package/dist/chunk-QHLB5V7J.js +19 -0
- package/dist/chunk-QJE6ZYGI.js +131 -0
- package/dist/chunk-QSN5MZGS.js +74 -0
- package/dist/chunk-QXZYAIWS.js +390 -0
- package/dist/chunk-QXZYAIWS.js.map +1 -0
- package/dist/chunk-RRUJQVWA.js +4372 -0
- package/dist/chunk-RRUJQVWA.js.map +1 -0
- package/dist/chunk-RSW6QJPH.js +217 -0
- package/dist/chunk-RX6F3GEA.js +610 -0
- package/dist/chunk-RX6F3GEA.js.map +1 -0
- package/dist/chunk-SBMIQDCX.js +175 -0
- package/dist/chunk-SJDPHVGE.js +363 -0
- package/dist/chunk-SJDPHVGE.js.map +1 -0
- package/dist/chunk-STIB5DR5.js +56 -0
- package/dist/chunk-TBEUMOEL.js +95 -0
- package/dist/chunk-TCNNOLVZ.js +207 -0
- package/dist/chunk-TCNNOLVZ.js.map +1 -0
- package/dist/chunk-TD2P4HBP.js +55 -0
- package/dist/chunk-URIYUZIN.js +111 -0
- package/dist/chunk-URIYUZIN.js.map +1 -0
- package/dist/chunk-VAJBWA2U.js +75 -0
- package/dist/chunk-VAJBWA2U.js.map +1 -0
- package/dist/chunk-VBHDZSI5.js +57 -0
- package/dist/chunk-VFIOJD5M.js +309 -0
- package/dist/chunk-VVZBBKRC.js +296 -0
- package/dist/chunk-VWCELTQE.js +1079 -0
- package/dist/chunk-VWCELTQE.js.map +1 -0
- package/dist/chunk-W3B4BHQU.js +31 -0
- package/dist/chunk-W3ZHJJVT.js +139 -0
- package/dist/chunk-W3ZHJJVT.js.map +1 -0
- package/dist/chunk-WS2GMOSG.js +74 -0
- package/dist/chunk-XBOK23HI.js +214 -0
- package/dist/chunk-XG3XCHN6.js +26 -0
- package/dist/chunk-XL3BMSYG.js +125 -0
- package/dist/chunk-XWH7CCBL.js +6065 -0
- package/dist/chunk-XWH7CCBL.js.map +1 -0
- package/dist/chunk-XYMPS526.js +622 -0
- package/dist/chunk-Y5ZGWLWP.js +2882 -0
- package/dist/chunk-Y5ZGWLWP.js.map +1 -0
- package/dist/chunk-YBMVHGY3.js +333 -0
- package/dist/chunk-ZJ47BR6X.js +337 -0
- package/dist/chunk-ZJ47BR6X.js.map +1 -0
- package/dist/chunk-ZNBDKK4Y.js +76 -0
- package/dist/chunk-ZNBDKK4Y.js.map +1 -0
- package/dist/chunk-ZXTW3TXY.js +133 -0
- package/dist/chunk-ZXTW3TXY.js.map +1 -0
- package/dist/claim-EIL4ZBSN.js +197 -0
- package/dist/claim-EIL4ZBSN.js.map +1 -0
- package/dist/cli.js +36 -37
- package/dist/cli.js.map +1 -1
- package/dist/client-VHN32ZRE.js +19 -0
- package/dist/code-YS6ZMGX3.js +76 -0
- package/dist/code-YS6ZMGX3.js.map +1 -0
- package/dist/companies-2UG7RDYN.js +195 -0
- package/dist/companies-2UG7RDYN.js.map +1 -0
- package/dist/complete-I4KRFYMD.js +81 -0
- package/dist/complete-I4KRFYMD.js.map +1 -0
- package/dist/config-CQN5FHMZ.js +88 -0
- package/dist/config-CQN5FHMZ.js.map +1 -0
- package/dist/connect-TA5W6YGW.js +36 -0
- package/dist/content-3ZPP4SW2.js +81 -0
- package/dist/content-3ZPP4SW2.js.map +1 -0
- package/dist/conversation-BJI54MI6.js +93 -0
- package/dist/conversation-BJI54MI6.js.map +1 -0
- package/dist/conversion-report-XQBJ6LG4.js +125 -0
- package/dist/conversion-report-XQBJ6LG4.js.map +1 -0
- package/dist/conversion-upload-command-JULHGVIR.js +438 -0
- package/dist/conversion-upload-command-JULHGVIR.js.map +1 -0
- package/dist/conversion-writes-UBCVXP2E.js +120 -0
- package/dist/conversion-writes-UBCVXP2E.js.map +1 -0
- package/dist/conversions-D236RTUK.js +76 -0
- package/dist/conversions-D236RTUK.js.map +1 -0
- package/dist/conversions-VJOJ5S4U.js +135 -0
- package/dist/conversions-VJOJ5S4U.js.map +1 -0
- package/dist/countries-FYHM3IMJ.js +82 -0
- package/dist/countries-FYHM3IMJ.js.map +1 -0
- package/dist/create-E7BIZNUC.js +130 -0
- package/dist/create-E7BIZNUC.js.map +1 -0
- package/dist/create-HKOO7O5L.js +59 -0
- package/dist/create-HKOO7O5L.js.map +1 -0
- package/dist/create-JLQCXAT2.js +207 -0
- package/dist/create-JLQCXAT2.js.map +1 -0
- package/dist/create-VY3RQXOY.js +235 -0
- package/dist/create-VY3RQXOY.js.map +1 -0
- package/dist/creatives-PSWCNY7U.js +87 -0
- package/dist/creatives-PSWCNY7U.js.map +1 -0
- package/dist/creatives-QXMBEA2V.js +51 -0
- package/dist/creatives-QXMBEA2V.js.map +1 -0
- package/dist/creatives-VXQQUH2F.js +182 -0
- package/dist/creatives-VXQQUH2F.js.map +1 -0
- package/dist/credentials-G5BJK7OR.js +1055 -0
- package/dist/credentials-G5BJK7OR.js.map +1 -0
- package/dist/critique-CMLAPVUB.js +1449 -0
- package/dist/critique-CMLAPVUB.js.map +1 -0
- package/dist/critique-O5VNNBPB.js +214 -0
- package/dist/critique-O5VNNBPB.js.map +1 -0
- package/dist/crm-CL7R67FT.js +224 -0
- package/dist/crm-CL7R67FT.js.map +1 -0
- package/dist/crm-GJCAM3DI.js +318 -0
- package/dist/crm-GJCAM3DI.js.map +1 -0
- package/dist/crop-2J4RKJ6B.js +113 -0
- package/dist/crop-2J4RKJ6B.js.map +1 -0
- package/dist/currency-DJDVIR3C.js +88 -0
- package/dist/currency-DJDVIR3C.js.map +1 -0
- package/dist/custom-conversions-6P555U2K.js +125 -0
- package/dist/custom-conversions-6P555U2K.js.map +1 -0
- package/dist/customers-4RJGRR2Y.js +56 -0
- package/dist/delete-3AV3ARMX.js +71 -0
- package/dist/delete-3AV3ARMX.js.map +1 -0
- package/dist/delete-4QXLTL24.js +63 -0
- package/dist/delete-4QXLTL24.js.map +1 -0
- package/dist/delete-A5XD52K4.js +69 -0
- package/dist/delete-A5XD52K4.js.map +1 -0
- package/dist/delete-IJNJTAGW.js +54 -0
- package/dist/delete-IJNJTAGW.js.map +1 -0
- package/dist/delete-MRM2S4Z5.js +71 -0
- package/dist/delete-MRM2S4Z5.js.map +1 -0
- package/dist/delete-R57JFJ3A.js +66 -0
- package/dist/delete-R57JFJ3A.js.map +1 -0
- package/dist/demographics-VMARSTTE.js +138 -0
- package/dist/demographics-VMARSTTE.js.map +1 -0
- package/dist/describe-6NVOWIBE.js +97 -0
- package/dist/describe-6NVOWIBE.js.map +1 -0
- package/dist/describe-P3PPIQME.js +97 -0
- package/dist/describe-P3PPIQME.js.map +1 -0
- package/dist/dimensions-EYAYO27I.js +101 -0
- package/dist/dimensions-EYAYO27I.js.map +1 -0
- package/dist/discard-Y2BKPW4Z.js +66 -0
- package/dist/discard-Y2BKPW4Z.js.map +1 -0
- package/dist/discover-M3ZKKFEL.js +172 -0
- package/dist/discover-M3ZKKFEL.js.map +1 -0
- package/dist/domain-YTHDTRWN.js +98 -0
- package/dist/domain-YTHDTRWN.js.map +1 -0
- package/dist/download-7T6HIJKD.js +299 -0
- package/dist/download-7T6HIJKD.js.map +1 -0
- package/dist/draft-ABGQYDHP.js +328 -0
- package/dist/draft-ABGQYDHP.js.map +1 -0
- package/dist/draft-BGUJDHXR.js +103 -0
- package/dist/draft-BGUJDHXR.js.map +1 -0
- package/dist/draft-KIBMVKSR.js +100 -0
- package/dist/draft-KIBMVKSR.js.map +1 -0
- package/dist/draft-KOLU5BRR.js +217 -0
- package/dist/draft-KOLU5BRR.js.map +1 -0
- package/dist/draft-MNFJ4G3C.js +281 -0
- package/dist/draft-MNFJ4G3C.js.map +1 -0
- package/dist/draft-U6CT6LCC.js +107 -0
- package/dist/draft-U6CT6LCC.js.map +1 -0
- package/dist/draft-YDY2Q2K6.js +233 -0
- package/dist/draft-YDY2Q2K6.js.map +1 -0
- package/dist/draft-ZVVUAMMQ.js +306 -0
- package/dist/draft-ZVVUAMMQ.js.map +1 -0
- package/dist/engine/index.d.ts +10 -0
- package/dist/engine/index.js +16 -17
- package/dist/env-KIP2J2UB.js +43 -0
- package/dist/experiment-LKK77YAN.js +1377 -0
- package/dist/experiment-LKK77YAN.js.map +1 -0
- package/dist/export-JQRMBJ7D.js +168 -0
- package/dist/export-JQRMBJ7D.js.map +1 -0
- package/dist/extract-7QKLME7Z.js +113 -0
- package/dist/extract-7QKLME7Z.js.map +1 -0
- package/dist/facets-UXN4MYPO.js +114 -0
- package/dist/facets-UXN4MYPO.js.map +1 -0
- package/dist/favorites-NSGF4OV5.js +178 -0
- package/dist/favorites-NSGF4OV5.js.map +1 -0
- package/dist/feed-RV4KPPXM.js +157 -0
- package/dist/feed-RV4KPPXM.js.map +1 -0
- package/dist/feedback-3FQYLADC.js +66 -0
- package/dist/feedback-3FQYLADC.js.map +1 -0
- package/dist/feedback-record-DTRZC73R.js +176 -0
- package/dist/feedback-record-DTRZC73R.js.map +1 -0
- package/dist/fetch-UTTJAOLC.js +171 -0
- package/dist/fetch-UTTJAOLC.js.map +1 -0
- package/dist/fetch-XF76JABV.js +139 -0
- package/dist/fetch-XF76JABV.js.map +1 -0
- package/dist/find-OTDIX6V4.js +134 -0
- package/dist/find-OTDIX6V4.js.map +1 -0
- package/dist/fit-KXHYKIA4.js +43 -0
- package/dist/flows-PB4K66NJ.js +244 -0
- package/dist/flows-PB4K66NJ.js.map +1 -0
- package/dist/follow-DUIEGDVK.js +82 -0
- package/dist/follow-DUIEGDVK.js.map +1 -0
- package/dist/follow-competitors-IT5ZVJPE.js +131 -0
- package/dist/follow-competitors-IT5ZVJPE.js.map +1 -0
- package/dist/following-RKC2FLHI.js +109 -0
- package/dist/following-RKC2FLHI.js.map +1 -0
- package/dist/fonts-NTOQS2KU.js +34 -0
- package/dist/forecast-RWDIDDWP.js +104 -0
- package/dist/forecast-RWDIDDWP.js.map +1 -0
- package/dist/funding-NYO65IMT.js +85 -0
- package/dist/funding-NYO65IMT.js.map +1 -0
- package/dist/funnel-XCKPRYTV.js +837 -0
- package/dist/funnel-XCKPRYTV.js.map +1 -0
- package/dist/ga4-UDQ2HA2J.js +55 -0
- package/dist/generate-DMQUS665.js +262 -0
- package/dist/generate-DMQUS665.js.map +1 -0
- package/dist/get-3L6W3E3T.js +59 -0
- package/dist/get-3L6W3E3T.js.map +1 -0
- package/dist/get-67IG7SZI.js +78 -0
- package/dist/get-67IG7SZI.js.map +1 -0
- package/dist/get-6WEYKOY6.js +63 -0
- package/dist/get-6WEYKOY6.js.map +1 -0
- package/dist/get-P743RPSI.js +63 -0
- package/dist/get-P743RPSI.js.map +1 -0
- package/dist/get-WO22OCMZ.js +54 -0
- package/dist/get-WO22OCMZ.js.map +1 -0
- package/dist/get-XN5ZGDIK.js +61 -0
- package/dist/get-XN5ZGDIK.js.map +1 -0
- package/dist/get-YIHTAMRT.js +92 -0
- package/dist/get-YIHTAMRT.js.map +1 -0
- package/dist/gif-53ULFVLR.js +94 -0
- package/dist/gif-53ULFVLR.js.map +1 -0
- package/dist/google-KIBLORXX.js +1872 -0
- package/dist/google-KIBLORXX.js.map +1 -0
- package/dist/google-KTO3PLEU.js +136 -0
- package/dist/google-KTO3PLEU.js.map +1 -0
- package/dist/group-EFZ3AJIE.js +43 -0
- package/dist/group-EFZ3AJIE.js.map +1 -0
- package/dist/group-GKWCCX66.js +43 -0
- package/dist/group-GKWCCX66.js.map +1 -0
- package/dist/gsc-P3QYGDV2.js +30 -0
- package/dist/history-PBFRKLU6.js +133 -0
- package/dist/history-PBFRKLU6.js.map +1 -0
- package/dist/history-Q3QCT64S.js +67 -0
- package/dist/history-Q3QCT64S.js.map +1 -0
- package/dist/hubspot-PMOZST7W.js +779 -0
- package/dist/hubspot-PMOZST7W.js.map +1 -0
- package/dist/icon-I43F77FV.js +137 -0
- package/dist/icon-I43F77FV.js.map +1 -0
- package/dist/ideas-PU7IAX6F.js +32 -0
- package/dist/images-QI2HTX6B.js +90 -0
- package/dist/improve-BCCU5AS6.js +86 -0
- package/dist/improve-BCCU5AS6.js.map +1 -0
- package/dist/ingest-BYJNFOOT.js +23 -0
- package/dist/ingest-ZQM47NVZ.js +107 -0
- package/dist/ingest-ZQM47NVZ.js.map +1 -0
- package/dist/insights-LNAXV2CG.js +122 -0
- package/dist/insights-LNAXV2CG.js.map +1 -0
- package/dist/insights-NZWSJKU4.js +423 -0
- package/dist/insights-NZWSJKU4.js.map +1 -0
- package/dist/inspect-CQH55Q6G.js +189 -0
- package/dist/inspect-CQH55Q6G.js.map +1 -0
- package/dist/inspiration-I4MMKAWA.js +53 -0
- package/dist/intent-ICKFJRT2.js +95 -0
- package/dist/intent-ICKFJRT2.js.map +1 -0
- package/dist/job-L7RJZMSG.js +202 -0
- package/dist/job-L7RJZMSG.js.map +1 -0
- package/dist/job-create-JUDAN52O.js +109 -0
- package/dist/job-create-JUDAN52O.js.map +1 -0
- package/dist/job-status-U43WE3RJ.js +74 -0
- package/dist/job-status-U43WE3RJ.js.map +1 -0
- package/dist/keep-55CPC7DG.js +78 -0
- package/dist/keep-55CPC7DG.js.map +1 -0
- package/dist/keyword-gap-NGPH32FN.js +130 -0
- package/dist/keyword-gap-NGPH32FN.js.map +1 -0
- package/dist/keyword-metrics-E3NJUSEQ.js +197 -0
- package/dist/keyword-metrics-E3NJUSEQ.js.map +1 -0
- package/dist/keywords-for-site-RH47P4GJ.js +124 -0
- package/dist/keywords-for-site-RH47P4GJ.js.map +1 -0
- package/dist/landing-4PA7GCPM.js +28 -0
- package/dist/landing-4PA7GCPM.js.map +1 -0
- package/dist/languages-JDYL2N5F.js +40 -0
- package/dist/languages-JDYL2N5F.js.map +1 -0
- package/dist/languages-JMVNOHMG.js +55 -0
- package/dist/languages-JMVNOHMG.js.map +1 -0
- package/dist/layerize-RPD6SNP6.js +190 -0
- package/dist/layerize-RPD6SNP6.js.map +1 -0
- package/dist/leads-7EVHMNUF.js +293 -0
- package/dist/leads-7EVHMNUF.js.map +1 -0
- package/dist/leads-I7BO5V7P.js +90 -0
- package/dist/leads-I7BO5V7P.js.map +1 -0
- package/dist/learn-HZU3QWNN.js +204 -0
- package/dist/library-ARKRLCNJ.js +109 -0
- package/dist/library-ARKRLCNJ.js.map +1 -0
- package/dist/lighthouse-NQBUCHTW.js +75 -0
- package/dist/lighthouse-NQBUCHTW.js.map +1 -0
- package/dist/line-item-writes-JSR53MID.js +208 -0
- package/dist/line-item-writes-JSR53MID.js.map +1 -0
- package/dist/line-items-2WFLKOOR.js +103 -0
- package/dist/line-items-2WFLKOOR.js.map +1 -0
- package/dist/link-AYXOJQDV.js +64 -0
- package/dist/link-AYXOJQDV.js.map +1 -0
- package/dist/linkedin-M2PVZYLV.js +1008 -0
- package/dist/linkedin-M2PVZYLV.js.map +1 -0
- package/dist/list-3OKEMUFD.js +151 -0
- package/dist/list-3OKEMUFD.js.map +1 -0
- package/dist/list-4MQC23JH.js +63 -0
- package/dist/list-4MQC23JH.js.map +1 -0
- package/dist/list-7MVBXOJT.js +51 -0
- package/dist/list-7MVBXOJT.js.map +1 -0
- package/dist/list-A5UCIR2J.js +65 -0
- package/dist/list-A5UCIR2J.js.map +1 -0
- package/dist/list-AL7N6X2P.js +50 -0
- package/dist/list-AL7N6X2P.js.map +1 -0
- package/dist/list-LI4OGQFW.js +57 -0
- package/dist/list-LI4OGQFW.js.map +1 -0
- package/dist/list-P7NAFN6J.js +76 -0
- package/dist/list-P7NAFN6J.js.map +1 -0
- package/dist/list-QGLIL7J6.js +303 -0
- package/dist/list-QGLIL7J6.js.map +1 -0
- package/dist/locations-2NKBJKBT.js +67 -0
- package/dist/locations-2NKBJKBT.js.map +1 -0
- package/dist/locations-S4U6IJIS.js +40 -0
- package/dist/locations-S4U6IJIS.js.map +1 -0
- package/dist/log-QHR2JNKW.js +92 -0
- package/dist/log-QHR2JNKW.js.map +1 -0
- package/dist/logo-2IP663QO.js +18 -0
- package/dist/lookup-XK45W2SH.js +22 -0
- package/dist/make-ANPR2D2L.js +516 -0
- package/dist/make-ANPR2D2L.js.map +1 -0
- package/dist/map-3BVFAP33.js +404 -0
- package/dist/map-3BVFAP33.js.map +1 -0
- package/dist/mcp-LH5KR6RO.js +476 -0
- package/dist/mcp-LH5KR6RO.js.map +1 -0
- package/dist/media-6CQYG4UY.js +89 -0
- package/dist/media-6CQYG4UY.js.map +1 -0
- package/dist/media-M7E6V2XU.js +15 -0
- package/dist/media-sources-3D246I3O.js +32 -0
- package/dist/members-4DUQHLZH.js +44 -0
- package/dist/members-4DUQHLZH.js.map +1 -0
- package/dist/meta-EZ4SY25M.js +69 -0
- package/dist/metrics-AY4RP54F.js +152 -0
- package/dist/metrics-AY4RP54F.js.map +1 -0
- package/dist/models-5NTC7A5G.js +155 -0
- package/dist/models-5NTC7A5G.js.map +1 -0
- package/dist/normalize-CD4PQRYY.js +138 -0
- package/dist/normalize-CD4PQRYY.js.map +1 -0
- package/dist/normalize-ICQF2AST.js +806 -0
- package/dist/normalize-ICQF2AST.js.map +1 -0
- package/dist/options-6TE5E34Z.js +121 -0
- package/dist/options-6TE5E34Z.js.map +1 -0
- package/dist/output-RAH3TSIL.js +24 -0
- package/dist/page-GS3WLT2C.js +105 -0
- package/dist/page-GS3WLT2C.js.map +1 -0
- package/dist/pages-FXYQLHSJ.js +66 -0
- package/dist/pages-FXYQLHSJ.js.map +1 -0
- package/dist/performance-7LQQCEAW.js +24 -0
- package/dist/pinterest-AUH7WBA7.js +96 -0
- package/dist/pinterest-AUH7WBA7.js.map +1 -0
- package/dist/pixels-TZPF746S.js +60 -0
- package/dist/pixels-TZPF746S.js.map +1 -0
- package/dist/pixels-ZFF4BGUH.js +108 -0
- package/dist/pixels-ZFF4BGUH.js.map +1 -0
- package/dist/preview-AD4GKYIA.js +169 -0
- package/dist/preview-AD4GKYIA.js.map +1 -0
- package/dist/promoted-tweet-writes-F76YIMB6.js +180 -0
- package/dist/promoted-tweet-writes-F76YIMB6.js.map +1 -0
- package/dist/promoted-tweets-EJL37P7K.js +119 -0
- package/dist/promoted-tweets-EJL37P7K.js.map +1 -0
- package/dist/properties-L2XIYQDS.js +101 -0
- package/dist/properties-L2XIYQDS.js.map +1 -0
- package/dist/publish-H5S2IKZP.js +322 -0
- package/dist/publish-H5S2IKZP.js.map +1 -0
- package/dist/query-CPZZNMDY.js +1341 -0
- package/dist/query-CPZZNMDY.js.map +1 -0
- package/dist/query-SGGBCHTF.js +236 -0
- package/dist/query-SGGBCHTF.js.map +1 -0
- package/dist/query-VTGVZQIO.js +247 -0
- package/dist/query-VTGVZQIO.js.map +1 -0
- package/dist/read-LSF7DYTG.js +140 -0
- package/dist/read-LSF7DYTG.js.map +1 -0
- package/dist/reddit-INGPFGP4.js +26 -0
- package/dist/refresh-MKSKISPX.js +94 -0
- package/dist/refresh-MKSKISPX.js.map +1 -0
- package/dist/release-J5LIAIZT.js +60 -0
- package/dist/release-J5LIAIZT.js.map +1 -0
- package/dist/relevant-pages-MTMFMBPD.js +99 -0
- package/dist/relevant-pages-MTMFMBPD.js.map +1 -0
- package/dist/remove-6LGGKMLJ.js +48 -0
- package/dist/remove-6LGGKMLJ.js.map +1 -0
- package/dist/remove-LYEK7VFV.js +50 -0
- package/dist/remove-LYEK7VFV.js.map +1 -0
- package/dist/reopen-FR4UBOG7.js +63 -0
- package/dist/reopen-FR4UBOG7.js.map +1 -0
- package/dist/rerun-3FEOYNG2.js +86 -0
- package/dist/rerun-3FEOYNG2.js.map +1 -0
- package/dist/research-PA53M335.js +59 -0
- package/dist/research-RPJSOWPT.js +226 -0
- package/dist/research-RPJSOWPT.js.map +1 -0
- package/dist/reset-H3ES4WV5.js +54 -0
- package/dist/reset-H3ES4WV5.js.map +1 -0
- package/dist/reset-RCYRE5WO.js +54 -0
- package/dist/reset-RCYRE5WO.js.map +1 -0
- package/dist/resolve-QIDQJCE6.js +121 -0
- package/dist/resolve-QIDQJCE6.js.map +1 -0
- package/dist/retry-PLLCFOJW.js +60 -0
- package/dist/retry-PLLCFOJW.js.map +1 -0
- package/dist/retry-WLVMR7XP.js +62 -0
- package/dist/retry-WLVMR7XP.js.map +1 -0
- package/dist/retry-failed-6HXPUVXJ.js +45 -0
- package/dist/retry-failed-6HXPUVXJ.js.map +1 -0
- package/dist/run-2IM2QOCI.js +61 -0
- package/dist/run-4D7ZCLMF.js +65 -0
- package/dist/run-4D7ZCLMF.js.map +1 -0
- package/dist/scaffold-ad-YYUVL4IP.js +1550 -0
- package/dist/scaffold-ad-YYUVL4IP.js.map +1 -0
- package/dist/scaffold-static-ad-SUEYXLOR.js +948 -0
- package/dist/scaffold-static-ad-SUEYXLOR.js.map +1 -0
- package/dist/scaffold-video-IBH2YJZD.js +874 -0
- package/dist/scaffold-video-IBH2YJZD.js.map +1 -0
- package/dist/schedule-O2K6M43V.js +66 -0
- package/dist/schedule-O2K6M43V.js.map +1 -0
- package/dist/schedule-RXUUCNNI.js +61 -0
- package/dist/schedule-RXUUCNNI.js.map +1 -0
- package/dist/scheduled-agents-2NCGSD76.js +49 -0
- package/dist/schema-6GR77VJG.js +63 -0
- package/dist/schema-6GR77VJG.js.map +1 -0
- package/dist/schema-SFODURN7.js +129 -0
- package/dist/schema-SFODURN7.js.map +1 -0
- package/dist/scrape-ETAMW43A.js +2241 -0
- package/dist/scrape-ETAMW43A.js.map +1 -0
- package/dist/screenshot-YCQF25ZB.js +102 -0
- package/dist/screenshot-YCQF25ZB.js.map +1 -0
- package/dist/search-742XSULP.js +224 -0
- package/dist/search-742XSULP.js.map +1 -0
- package/dist/search-7QVZOWSI.js +174 -0
- package/dist/search-7QVZOWSI.js.map +1 -0
- package/dist/search-MEEM4D3W.js +92 -0
- package/dist/search-MEEM4D3W.js.map +1 -0
- package/dist/search-OQNGSMUH.js +91 -0
- package/dist/search-OQNGSMUH.js.map +1 -0
- package/dist/search-XUIVHGAY.js +26 -0
- package/dist/seeds-N6FF5S4T.js +101 -0
- package/dist/seeds-N6FF5S4T.js.map +1 -0
- package/dist/select-ZWDEVAH2.js +95 -0
- package/dist/sends-WGJVQUMF.js +309 -0
- package/dist/sends-WGJVQUMF.js.map +1 -0
- package/dist/sequences-OIPVR7JL.js +146 -0
- package/dist/sequences-OIPVR7JL.js.map +1 -0
- package/dist/set-prompt-SBEOQGCF.js +187 -0
- package/dist/set-prompt-SBEOQGCF.js.map +1 -0
- package/dist/setup-links-XW4A6L2I.js +141 -0
- package/dist/setup-links-XW4A6L2I.js.map +1 -0
- package/dist/shared-HJDFNID4.js +31 -0
- package/dist/site-6UTQSYIK.js +177 -0
- package/dist/site-6UTQSYIK.js.map +1 -0
- package/dist/sitemaps-POPZJTAX.js +87 -0
- package/dist/sitemaps-POPZJTAX.js.map +1 -0
- package/dist/sites-262H6LM4.js +101 -0
- package/dist/sites-262H6LM4.js.map +1 -0
- package/dist/skills-6TQZLIMP.js +47 -0
- package/dist/skills-6TQZLIMP.js.map +1 -0
- package/dist/sources-QQNWQLUM.js +421 -0
- package/dist/sources-QQNWQLUM.js.map +1 -0
- package/dist/sources-UGMZFZ2E.js +30 -0
- package/dist/stale-QRO3M5R2.js +64 -0
- package/dist/stale-QRO3M5R2.js.map +1 -0
- package/dist/stats-NNXZMPZR.js +34 -0
- package/dist/status-NXGKJGH7.js +62 -0
- package/dist/status-NXGKJGH7.js.map +1 -0
- package/dist/sticker-4KMBSMP5.js +94 -0
- package/dist/sticker-4KMBSMP5.js.map +1 -0
- package/dist/stock-2YCDN3N6.js +179 -0
- package/dist/stock-2YCDN3N6.js.map +1 -0
- package/dist/studio-HUEBE6DS.js +49 -0
- package/dist/sync-CF7FVUQJ.js +54 -0
- package/dist/sync-CF7FVUQJ.js.map +1 -0
- package/dist/sync-RXS6BPLM.js +54 -0
- package/dist/sync-RXS6BPLM.js.map +1 -0
- package/dist/sync-ZSNUBYPM.js +265 -0
- package/dist/sync-ZSNUBYPM.js.map +1 -0
- package/dist/sync-definition-YBDM7D4M.js +54 -0
- package/dist/tag-manager-HREEYGVM.js +43 -0
- package/dist/tags-C65JB762.js +224 -0
- package/dist/tags-C65JB762.js.map +1 -0
- package/dist/tags-CMBKEXIZ.js +20 -0
- package/dist/tags-CMBKEXIZ.js.map +1 -0
- package/dist/tags-GFFQLLG2.js +20 -0
- package/dist/tags-GFFQLLG2.js.map +1 -0
- package/dist/tags-IJN2SPSM.js +20 -0
- package/dist/tags-IJN2SPSM.js.map +1 -0
- package/dist/tags-R3K35KTL.js +26 -0
- package/dist/targeting-constants-XJ2VOW7K.js +118 -0
- package/dist/targeting-constants-XJ2VOW7K.js.map +1 -0
- package/dist/targeting-criteria-IHBPLHSX.js +113 -0
- package/dist/targeting-criteria-IHBPLHSX.js.map +1 -0
- package/dist/targets-JH37NVJF.js +102 -0
- package/dist/targets-JH37NVJF.js.map +1 -0
- package/dist/templates-HXSHQ23T.js +178 -0
- package/dist/templates-HXSHQ23T.js.map +1 -0
- package/dist/testimonials-5QGCPZ6K.js +32 -0
- package/dist/top-companies-FJEFKVI7.js +108 -0
- package/dist/top-companies-FJEFKVI7.js.map +1 -0
- package/dist/translate-H7O5K3RC.js +457 -0
- package/dist/translate-H7O5K3RC.js.map +1 -0
- package/dist/triggers-SEOAAJSS.js +141 -0
- package/dist/triggers-SEOAAJSS.js.map +1 -0
- package/dist/tweets-ATP3FQAC.js +123 -0
- package/dist/tweets-ATP3FQAC.js.map +1 -0
- package/dist/unfollow-CBVPGPF7.js +46 -0
- package/dist/unfollow-CBVPGPF7.js.map +1 -0
- package/dist/unlink-UZDVSHBO.js +67 -0
- package/dist/unlink-UZDVSHBO.js.map +1 -0
- package/dist/unstage-4ZEULXEQ.js +95 -0
- package/dist/unstage-4ZEULXEQ.js.map +1 -0
- package/dist/unstage-CE5RRGM5.js +84 -0
- package/dist/unstage-CE5RRGM5.js.map +1 -0
- package/dist/update-DGZKEP6T.js +63 -0
- package/dist/update-DGZKEP6T.js.map +1 -0
- package/dist/update-JOS4ITAV.js +142 -0
- package/dist/update-JOS4ITAV.js.map +1 -0
- package/dist/update-JZ4I6WW7.js +98 -0
- package/dist/update-JZ4I6WW7.js.map +1 -0
- package/dist/update-ZXOG2V34.js +155 -0
- package/dist/update-ZXOG2V34.js.map +1 -0
- package/dist/upload-L5SYZB3X.js +150 -0
- package/dist/upload-L5SYZB3X.js.map +1 -0
- package/dist/upload-SSOPA7ZT.js +126 -0
- package/dist/upload-SSOPA7ZT.js.map +1 -0
- package/dist/upscale-YWRLFU22.js +109 -0
- package/dist/upscale-YWRLFU22.js.map +1 -0
- package/dist/url-options-QEWKRKZ3.js +127 -0
- package/dist/url-options-QEWKRKZ3.js.map +1 -0
- package/dist/url-params-OR5N5EWT.js +98 -0
- package/dist/url-params-OR5N5EWT.js.map +1 -0
- package/dist/use-UT2DIZOG.js +95 -0
- package/dist/use-UT2DIZOG.js.map +1 -0
- package/dist/validate-2PLHIP6I.js +90 -0
- package/dist/validate-2PLHIP6I.js.map +1 -0
- package/dist/variant-FLZJYGYL.js +338 -0
- package/dist/variant-FLZJYGYL.js.map +1 -0
- package/dist/videos-GIYDCCKR.js +39 -0
- package/dist/view-NPAG66QK.js +121 -0
- package/dist/view-NPAG66QK.js.map +1 -0
- package/dist/viewer-check-VN2JK2LW.js +70 -0
- package/dist/web-WUGLSULO.js +135 -0
- package/dist/web-WUGLSULO.js.map +1 -0
- package/dist/winners-I5BMATJZ.js +79 -0
- package/dist/winners-I5BMATJZ.js.map +1 -0
- package/dist/winning-ads-7QWEIMRU.js +62 -0
- package/dist/write-commands-ERKVRHTC.js +206 -0
- package/dist/write-commands-ERKVRHTC.js.map +1 -0
- package/dist/write-commands-SVJ43D7G.js +1015 -0
- package/dist/write-commands-SVJ43D7G.js.map +1 -0
- package/dist/write-commands-TAYGTJEZ.js +737 -0
- package/dist/write-commands-TAYGTJEZ.js.map +1 -0
- package/dist/write-commands-WTRSOSO3.js +713 -0
- package/dist/write-commands-WTRSOSO3.js.map +1 -0
- package/dist/x-OEAKQBB7.js +47 -0
- package/package.json +1 -1
- package/dist/account-5GT2BEST.js +0 -80
- package/dist/account-5GT2BEST.js.map +0 -1
- package/dist/account-S2RDGMMM.js +0 -81
- package/dist/account-S2RDGMMM.js.map +0 -1
- package/dist/account-YLZAL6W7.js +0 -50
- package/dist/account-YLZAL6W7.js.map +0 -1
- package/dist/account-writes-VBY7FJ7C.js +0 -67
- package/dist/account-writes-VBY7FJ7C.js.map +0 -1
- package/dist/accounts-4IIHAQGS.js +0 -116
- package/dist/accounts-4IIHAQGS.js.map +0 -1
- package/dist/accounts-E7TRNPFA.js +0 -115
- package/dist/accounts-E7TRNPFA.js.map +0 -1
- package/dist/accounts-GFJOGX7J.js +0 -613
- package/dist/accounts-GFJOGX7J.js.map +0 -1
- package/dist/accounts-INB4Z4LZ.js +0 -76
- package/dist/accounts-INB4Z4LZ.js.map +0 -1
- package/dist/accounts-NLL4QWKY.js +0 -78
- package/dist/accounts-NLL4QWKY.js.map +0 -1
- package/dist/actions-7XF5L4U3.js +0 -55
- package/dist/active-entities-IGQG5EZO.js +0 -104
- package/dist/active-entities-IGQG5EZO.js.map +0 -1
- package/dist/activities-MH4C4IVV.js +0 -75
- package/dist/activities-MH4C4IVV.js.map +0 -1
- package/dist/ad-group-writes-B64OBHQ4.js +0 -171
- package/dist/ad-group-writes-B64OBHQ4.js.map +0 -1
- package/dist/ad-groups-APCFB6SI.js +0 -69
- package/dist/ad-groups-APCFB6SI.js.map +0 -1
- package/dist/ad-writes-A7P772KD.js +0 -175
- package/dist/ad-writes-A7P772KD.js.map +0 -1
- package/dist/add-33WQDKGF.js +0 -106
- package/dist/add-33WQDKGF.js.map +0 -1
- package/dist/add-65OIGMD7.js +0 -99
- package/dist/add-65OIGMD7.js.map +0 -1
- package/dist/add-EW276CKL.js +0 -282
- package/dist/add-EW276CKL.js.map +0 -1
- package/dist/add-EXKVB5KR.js +0 -107
- package/dist/add-EXKVB5KR.js.map +0 -1
- package/dist/ads-A2HP6UVG.js +0 -114
- package/dist/ads-A2HP6UVG.js.map +0 -1
- package/dist/ads-H6NPLMNX.js +0 -78
- package/dist/ads-H6NPLMNX.js.map +0 -1
- package/dist/ads-IRE5RZCS.js +0 -40
- package/dist/adsets-UZJTGQQM.js +0 -153
- package/dist/adsets-UZJTGQQM.js.map +0 -1
- package/dist/advertisers-CFS2JAYJ.js +0 -113
- package/dist/advertisers-CFS2JAYJ.js.map +0 -1
- package/dist/advertisers-WQBPBK4D.js +0 -117
- package/dist/advertisers-WQBPBK4D.js.map +0 -1
- package/dist/analytics-L46XME7Y.js +0 -434
- package/dist/analytics-L46XME7Y.js.map +0 -1
- package/dist/analytics-UT7FQ6XA.js +0 -1959
- package/dist/analytics-UT7FQ6XA.js.map +0 -1
- package/dist/animate-S6ZU3723.js +0 -482
- package/dist/animate-S6ZU3723.js.map +0 -1
- package/dist/assign-XHHVXXOL.js +0 -79
- package/dist/assign-XHHVXXOL.js.map +0 -1
- package/dist/audience-size-6FR7WFVU.js +0 -95
- package/dist/audience-size-6FR7WFVU.js.map +0 -1
- package/dist/audiences-BN2LT7E6.js +0 -86
- package/dist/audiences-BN2LT7E6.js.map +0 -1
- package/dist/audiences-HQS6V7EV.js +0 -269
- package/dist/audiences-HQS6V7EV.js.map +0 -1
- package/dist/audiences-JVEXHN67.js +0 -79
- package/dist/audiences-JVEXHN67.js.map +0 -1
- package/dist/audit-7UDFEGZV.js +0 -152
- package/dist/audit-7UDFEGZV.js.map +0 -1
- package/dist/audit-YTRTNTAK.js +0 -89
- package/dist/audit-YTRTNTAK.js.map +0 -1
- package/dist/autocomplete-LAZ6FFG6.js +0 -108
- package/dist/autocomplete-LAZ6FFG6.js.map +0 -1
- package/dist/avatars-G54K55J3.js +0 -38
- package/dist/bid-pricing-EQKORHAA.js +0 -100
- package/dist/bid-pricing-EQKORHAA.js.map +0 -1
- package/dist/brand-ODTHWWFL.js +0 -22
- package/dist/brief-EA4DWOJW.js +0 -479
- package/dist/brief-EA4DWOJW.js.map +0 -1
- package/dist/businesses-QHNI7MSK.js +0 -54
- package/dist/businesses-QHNI7MSK.js.map +0 -1
- package/dist/campaign-groups-EJEGKHQD.js +0 -96
- package/dist/campaign-groups-EJEGKHQD.js.map +0 -1
- package/dist/campaign-writes-DZE43ZOC.js +0 -166
- package/dist/campaign-writes-DZE43ZOC.js.map +0 -1
- package/dist/campaign-writes-OX62FCEH.js +0 -171
- package/dist/campaign-writes-OX62FCEH.js.map +0 -1
- package/dist/campaigns-APRWHCGF.js +0 -111
- package/dist/campaigns-APRWHCGF.js.map +0 -1
- package/dist/campaigns-D2LYKUO2.js +0 -108
- package/dist/campaigns-D2LYKUO2.js.map +0 -1
- package/dist/campaigns-E3H4POUU.js +0 -77
- package/dist/campaigns-E3H4POUU.js.map +0 -1
- package/dist/campaigns-OPLRDMJW.js +0 -110
- package/dist/campaigns-OPLRDMJW.js.map +0 -1
- package/dist/canvas-M5HAG7VA.js +0 -46
- package/dist/capabilities-4Q4CMVIE.js +0 -146
- package/dist/capabilities-4Q4CMVIE.js.map +0 -1
- package/dist/cards-L37M7Q3L.js +0 -86
- package/dist/cards-L37M7Q3L.js.map +0 -1
- package/dist/catalog-HOWAUW2V.js +0 -67
- package/dist/catalog-HOWAUW2V.js.map +0 -1
- package/dist/catalogs-XBIQ4PNK.js +0 -129
- package/dist/catalogs-XBIQ4PNK.js.map +0 -1
- package/dist/changes-HCOPS4FF.js +0 -136
- package/dist/changes-HCOPS4FF.js.map +0 -1
- package/dist/chatgpt-PLKNBNVL.js +0 -47
- package/dist/chats-HELZHJO4.js +0 -264
- package/dist/chats-HELZHJO4.js.map +0 -1
- package/dist/chunk-3KQ5R3H7.js +0 -45
- package/dist/chunk-3KQ5R3H7.js.map +0 -1
- package/dist/chunk-4MU3U3SO.js +0 -103
- package/dist/chunk-4VKV3DNC.js +0 -23992
- package/dist/chunk-4VKV3DNC.js.map +0 -1
- package/dist/chunk-5HH4RGC4.js +0 -136
- package/dist/chunk-5HH4RGC4.js.map +0 -1
- package/dist/chunk-5NQIFCNX.js +0 -141
- package/dist/chunk-6CCDQO2F.js +0 -225
- package/dist/chunk-6CCDQO2F.js.map +0 -1
- package/dist/chunk-6FBZ5E6L.js +0 -96
- package/dist/chunk-6YWRJMGR.js +0 -309
- package/dist/chunk-73MCYA5Z.js +0 -310
- package/dist/chunk-7DQAVVUA.js +0 -130
- package/dist/chunk-7DQAVVUA.js.map +0 -1
- package/dist/chunk-A3PEJ3V3.js +0 -95
- package/dist/chunk-A57AHUNA.js +0 -28
- package/dist/chunk-ABELDLY3.js +0 -594
- package/dist/chunk-ABELDLY3.js.map +0 -1
- package/dist/chunk-AWICKT2B.js +0 -25
- package/dist/chunk-AYC2WM4P.js +0 -106
- package/dist/chunk-AYC2WM4P.js.map +0 -1
- package/dist/chunk-BDD2ILIT.js +0 -56
- package/dist/chunk-BSFTG66P.js +0 -2743
- package/dist/chunk-BSFTG66P.js.map +0 -1
- package/dist/chunk-BSUN6JMU.js +0 -215
- package/dist/chunk-CBEL3P22.js +0 -57
- package/dist/chunk-CSADPKPC.js +0 -161
- package/dist/chunk-CSADPKPC.js.map +0 -1
- package/dist/chunk-DPEQVHTX.js +0 -26
- package/dist/chunk-DQLBKU7G.js +0 -469
- package/dist/chunk-DQLBKU7G.js.map +0 -1
- package/dist/chunk-ECXNE6RJ.js +0 -622
- package/dist/chunk-EDFVATFW.js +0 -211
- package/dist/chunk-EDFVATFW.js.map +0 -1
- package/dist/chunk-EPK2GYLV.js +0 -214
- package/dist/chunk-EYO62URT.js +0 -172
- package/dist/chunk-F3WFP75M.js +0 -94
- package/dist/chunk-F6NJAHAZ.js +0 -19
- package/dist/chunk-F7HBCFUA.js +0 -188
- package/dist/chunk-FCTWXNRC.js +0 -365
- package/dist/chunk-FCTWXNRC.js.map +0 -1
- package/dist/chunk-FFZBW4CC.js +0 -297
- package/dist/chunk-FR345TDN.js +0 -577
- package/dist/chunk-FR345TDN.js.map +0 -1
- package/dist/chunk-FRVROFI6.js +0 -98
- package/dist/chunk-G32FXVQ6.js +0 -31
- package/dist/chunk-HA5D6US2.js +0 -26
- package/dist/chunk-HWWPDUZM.js +0 -217
- package/dist/chunk-IEULFYA2.js +0 -174
- package/dist/chunk-IEULFYA2.js.map +0 -1
- package/dist/chunk-IMZIECST.js +0 -830
- package/dist/chunk-IPF4P6ZQ.js +0 -392
- package/dist/chunk-IPF4P6ZQ.js.map +0 -1
- package/dist/chunk-IRHNWYDT.js +0 -106
- package/dist/chunk-JH7NHC5W.js +0 -169
- package/dist/chunk-JIHG6K7N.js +0 -30
- package/dist/chunk-JIHG6K7N.js.map +0 -1
- package/dist/chunk-JKDITP62.js +0 -1380
- package/dist/chunk-JKDITP62.js.map +0 -1
- package/dist/chunk-JMXBUIVI.js +0 -84
- package/dist/chunk-KHCN2QXV.js +0 -346
- package/dist/chunk-KHCN2QXV.js.map +0 -1
- package/dist/chunk-KY4MPR6R.js +0 -3155
- package/dist/chunk-KY4MPR6R.js.map +0 -1
- package/dist/chunk-L4DOL7L7.js +0 -125
- package/dist/chunk-L6PDFIND.js +0 -496
- package/dist/chunk-L6PDFIND.js.map +0 -1
- package/dist/chunk-L7HPNEKW.js +0 -304
- package/dist/chunk-L7HPNEKW.js.map +0 -1
- package/dist/chunk-LB3VYIS2.js +0 -141
- package/dist/chunk-LB3VYIS2.js.map +0 -1
- package/dist/chunk-LDVMMLRA.js +0 -106
- package/dist/chunk-LQ4HBQ2B.js +0 -433
- package/dist/chunk-LXUEWTHJ.js +0 -788
- package/dist/chunk-LXUEWTHJ.js.map +0 -1
- package/dist/chunk-LYZVLKRA.js +0 -175
- package/dist/chunk-MBKCUSMR.js +0 -6078
- package/dist/chunk-MBKCUSMR.js.map +0 -1
- package/dist/chunk-MPI3SWIT.js +0 -536
- package/dist/chunk-MPI3SWIT.js.map +0 -1
- package/dist/chunk-MXPFUDFR.js +0 -1024
- package/dist/chunk-MXPFUDFR.js.map +0 -1
- package/dist/chunk-N5SQSMMR.js +0 -229
- package/dist/chunk-N5SQSMMR.js.map +0 -1
- package/dist/chunk-NEONVKMJ.js +0 -455
- package/dist/chunk-NEONVKMJ.js.map +0 -1
- package/dist/chunk-NFSV3CDO.js +0 -6198
- package/dist/chunk-NFSV3CDO.js.map +0 -1
- package/dist/chunk-NGT6MARJ.js +0 -274
- package/dist/chunk-NGYKF4T6.js +0 -20
- package/dist/chunk-NMMKTPGI.js +0 -136
- package/dist/chunk-O4AXPEOE.js +0 -923
- package/dist/chunk-O4AXPEOE.js.map +0 -1
- package/dist/chunk-OPEMWO6C.js +0 -5096
- package/dist/chunk-OPEMWO6C.js.map +0 -1
- package/dist/chunk-OZLBLXTK.js +0 -74
- package/dist/chunk-PB4LQHL2.js +0 -4341
- package/dist/chunk-PB4LQHL2.js.map +0 -1
- package/dist/chunk-PDJZMQ7F.js +0 -316
- package/dist/chunk-PDJZMQ7F.js.map +0 -1
- package/dist/chunk-PNHDM76R.js +0 -74
- package/dist/chunk-PNHDM76R.js.map +0 -1
- package/dist/chunk-Q7UF4ERB.js +0 -74
- package/dist/chunk-QRXTDXMX.js +0 -129
- package/dist/chunk-QRXTDXMX.js.map +0 -1
- package/dist/chunk-QTERC4PG.js +0 -1700
- package/dist/chunk-QTERC4PG.js.map +0 -1
- package/dist/chunk-QYOPQRLI.js +0 -296
- package/dist/chunk-R34LJSPM.js +0 -42
- package/dist/chunk-R4ODZS43.js +0 -492
- package/dist/chunk-R4ODZS43.js.map +0 -1
- package/dist/chunk-RJAQEZVD.js +0 -23
- package/dist/chunk-RPFBZHHE.js +0 -55
- package/dist/chunk-SXRSLUW7.js +0 -454
- package/dist/chunk-T5RKIWPQ.js +0 -352
- package/dist/chunk-T5RKIWPQ.js.map +0 -1
- package/dist/chunk-TCSPJQ2X.js +0 -136
- package/dist/chunk-TD44SXQX.js +0 -58
- package/dist/chunk-TQAXOBKJ.js +0 -364
- package/dist/chunk-TQAXOBKJ.js.map +0 -1
- package/dist/chunk-TTFTS2SO.js +0 -131
- package/dist/chunk-UA5EUJXV.js +0 -51
- package/dist/chunk-W7OFLOZB.js +0 -46
- package/dist/chunk-WAQYXH2U.js +0 -76
- package/dist/chunk-WWD4PITU.js +0 -333
- package/dist/chunk-WZ5YRUQU.js +0 -12
- package/dist/chunk-WZ5YRUQU.js.map +0 -1
- package/dist/chunk-XEVVAGAG.js +0 -422
- package/dist/chunk-XEVVAGAG.js.map +0 -1
- package/dist/chunk-Y4JR4RDM.js +0 -74
- package/dist/chunk-YMOVI3WT.js +0 -382
- package/dist/chunk-YS6PCTPS.js +0 -96
- package/dist/chunk-YUP46PWY.js +0 -199
- package/dist/chunk-YUP46PWY.js.map +0 -1
- package/dist/chunk-Z4NYXXTP.js +0 -42
- package/dist/chunk-Z4NYXXTP.js.map +0 -1
- package/dist/chunk-Z5AUNK6P.js +0 -1709
- package/dist/chunk-Z5AUNK6P.js.map +0 -1
- package/dist/chunk-ZAFR46HG.js +0 -67
- package/dist/chunk-ZHW3O25C.js +0 -191
- package/dist/claim-CG2IMTHK.js +0 -199
- package/dist/claim-CG2IMTHK.js.map +0 -1
- package/dist/client-XKDFFS7O.js +0 -20
- package/dist/code-JWIOO2AJ.js +0 -78
- package/dist/code-JWIOO2AJ.js.map +0 -1
- package/dist/companies-LQN4HUUH.js +0 -196
- package/dist/companies-LQN4HUUH.js.map +0 -1
- package/dist/complete-MKB27QP7.js +0 -82
- package/dist/complete-MKB27QP7.js.map +0 -1
- package/dist/config-LJOEAYFZ.js +0 -89
- package/dist/config-LJOEAYFZ.js.map +0 -1
- package/dist/connect-ATGYJNG4.js +0 -37
- package/dist/content-Y2BJSXG6.js +0 -83
- package/dist/content-Y2BJSXG6.js.map +0 -1
- package/dist/conversation-EFNQM435.js +0 -94
- package/dist/conversation-EFNQM435.js.map +0 -1
- package/dist/conversion-report-EUSTSHPV.js +0 -126
- package/dist/conversion-report-EUSTSHPV.js.map +0 -1
- package/dist/conversion-upload-command-677OT5NZ.js +0 -432
- package/dist/conversion-upload-command-677OT5NZ.js.map +0 -1
- package/dist/conversion-writes-E7M6VHGB.js +0 -121
- package/dist/conversion-writes-E7M6VHGB.js.map +0 -1
- package/dist/conversions-BXZLEXHU.js +0 -136
- package/dist/conversions-BXZLEXHU.js.map +0 -1
- package/dist/conversions-FERAOXWG.js +0 -77
- package/dist/conversions-FERAOXWG.js.map +0 -1
- package/dist/countries-TKPX2GDH.js +0 -83
- package/dist/countries-TKPX2GDH.js.map +0 -1
- package/dist/create-HGMIWFVX.js +0 -132
- package/dist/create-HGMIWFVX.js.map +0 -1
- package/dist/create-LBJV3NPD.js +0 -209
- package/dist/create-LBJV3NPD.js.map +0 -1
- package/dist/create-QTPZ7PP7.js +0 -117
- package/dist/create-QTPZ7PP7.js.map +0 -1
- package/dist/create-SBIHEG25.js +0 -60
- package/dist/create-SBIHEG25.js.map +0 -1
- package/dist/creatives-CIOOFE3T.js +0 -88
- package/dist/creatives-CIOOFE3T.js.map +0 -1
- package/dist/creatives-MIUJAK4E.js +0 -49
- package/dist/creatives-MIUJAK4E.js.map +0 -1
- package/dist/creatives-QXR7QDXM.js +0 -183
- package/dist/creatives-QXR7QDXM.js.map +0 -1
- package/dist/credentials-CMVAKAUL.js +0 -1057
- package/dist/credentials-CMVAKAUL.js.map +0 -1
- package/dist/critique-LUB35ORK.js +0 -213
- package/dist/critique-LUB35ORK.js.map +0 -1
- package/dist/critique-XXCM7YAV.js +0 -1477
- package/dist/critique-XXCM7YAV.js.map +0 -1
- package/dist/crm-EGNVKQHB.js +0 -279
- package/dist/crm-EGNVKQHB.js.map +0 -1
- package/dist/crm-I6IQ5M55.js +0 -226
- package/dist/crm-I6IQ5M55.js.map +0 -1
- package/dist/crop-ES2IDPUL.js +0 -115
- package/dist/crop-ES2IDPUL.js.map +0 -1
- package/dist/currency-VFKYXFBM.js +0 -89
- package/dist/currency-VFKYXFBM.js.map +0 -1
- package/dist/custom-conversions-WPTEXOWR.js +0 -126
- package/dist/custom-conversions-WPTEXOWR.js.map +0 -1
- package/dist/customers-ACRYXALZ.js +0 -58
- package/dist/delete-3AHBFPQJ.js +0 -68
- package/dist/delete-3AHBFPQJ.js.map +0 -1
- package/dist/delete-E7WYQN2L.js +0 -73
- package/dist/delete-E7WYQN2L.js.map +0 -1
- package/dist/delete-EJCB5MHV.js +0 -71
- package/dist/delete-EJCB5MHV.js.map +0 -1
- package/dist/delete-J677F4BG.js +0 -64
- package/dist/delete-J677F4BG.js.map +0 -1
- package/dist/delete-LVQ7R6DI.js +0 -73
- package/dist/delete-LVQ7R6DI.js.map +0 -1
- package/dist/delete-U4K6NIOE.js +0 -55
- package/dist/delete-U4K6NIOE.js.map +0 -1
- package/dist/demographics-RY6R6VWA.js +0 -139
- package/dist/demographics-RY6R6VWA.js.map +0 -1
- package/dist/describe-N36XDO4P.js +0 -99
- package/dist/describe-N36XDO4P.js.map +0 -1
- package/dist/describe-Q5OAJDYH.js +0 -99
- package/dist/describe-Q5OAJDYH.js.map +0 -1
- package/dist/dimensions-YIWQVFTO.js +0 -103
- package/dist/dimensions-YIWQVFTO.js.map +0 -1
- package/dist/discard-UO4DJNP3.js +0 -67
- package/dist/discard-UO4DJNP3.js.map +0 -1
- package/dist/discover-IASOLBUQ.js +0 -173
- package/dist/discover-IASOLBUQ.js.map +0 -1
- package/dist/domain-QBF4TBGL.js +0 -100
- package/dist/domain-QBF4TBGL.js.map +0 -1
- package/dist/download-DKFYGXEH.js +0 -301
- package/dist/download-DKFYGXEH.js.map +0 -1
- package/dist/draft-5ZZOTJZR.js +0 -282
- package/dist/draft-5ZZOTJZR.js.map +0 -1
- package/dist/draft-DKMUTG4F.js +0 -104
- package/dist/draft-DKMUTG4F.js.map +0 -1
- package/dist/draft-FMOQUVPP.js +0 -219
- package/dist/draft-FMOQUVPP.js.map +0 -1
- package/dist/draft-KFXJCKCH.js +0 -234
- package/dist/draft-KFXJCKCH.js.map +0 -1
- package/dist/draft-KJ6SH67P.js +0 -101
- package/dist/draft-KJ6SH67P.js.map +0 -1
- package/dist/draft-QW7EYFFU.js +0 -329
- package/dist/draft-QW7EYFFU.js.map +0 -1
- package/dist/draft-URMXE4U4.js +0 -101
- package/dist/draft-URMXE4U4.js.map +0 -1
- package/dist/draft-ZU7MZLIT.js +0 -300
- package/dist/draft-ZU7MZLIT.js.map +0 -1
- package/dist/env-ODWJOKNV.js +0 -44
- package/dist/experiment-TUKKH6UJ.js +0 -1378
- package/dist/experiment-TUKKH6UJ.js.map +0 -1
- package/dist/export-WXFUVX6F.js +0 -170
- package/dist/export-WXFUVX6F.js.map +0 -1
- package/dist/extract-PY3J3WVF.js +0 -115
- package/dist/extract-PY3J3WVF.js.map +0 -1
- package/dist/facets-NUEIHCKA.js +0 -115
- package/dist/facets-NUEIHCKA.js.map +0 -1
- package/dist/favorites-JDFIYSV2.js +0 -180
- package/dist/favorites-JDFIYSV2.js.map +0 -1
- package/dist/feed-CYFNDBJS.js +0 -159
- package/dist/feed-CYFNDBJS.js.map +0 -1
- package/dist/feedback-E2P3NB7H.js +0 -68
- package/dist/feedback-E2P3NB7H.js.map +0 -1
- package/dist/feedback-record-IMCTEDOX.js +0 -137
- package/dist/feedback-record-IMCTEDOX.js.map +0 -1
- package/dist/fetch-ELSDT3NZ.js +0 -141
- package/dist/fetch-ELSDT3NZ.js.map +0 -1
- package/dist/fetch-NM7MD3CN.js +0 -172
- package/dist/fetch-NM7MD3CN.js.map +0 -1
- package/dist/find-HYMLZCKA.js +0 -136
- package/dist/find-HYMLZCKA.js.map +0 -1
- package/dist/fit-5WZ6NVSF.js +0 -44
- package/dist/flows-ZEUUIXCS.js +0 -246
- package/dist/flows-ZEUUIXCS.js.map +0 -1
- package/dist/follow-RGJ76HHD.js +0 -84
- package/dist/follow-RGJ76HHD.js.map +0 -1
- package/dist/follow-competitors-JMNOP2ZT.js +0 -133
- package/dist/follow-competitors-JMNOP2ZT.js.map +0 -1
- package/dist/following-5GINRDTL.js +0 -111
- package/dist/following-5GINRDTL.js.map +0 -1
- package/dist/fonts-7U7I2TWV.js +0 -27
- package/dist/forecast-PGDYFFKQ.js +0 -105
- package/dist/forecast-PGDYFFKQ.js.map +0 -1
- package/dist/funding-ED6PDKJF.js +0 -86
- package/dist/funding-ED6PDKJF.js.map +0 -1
- package/dist/funnel-IML4F5ZP.js +0 -838
- package/dist/funnel-IML4F5ZP.js.map +0 -1
- package/dist/ga4-QPEXE6YG.js +0 -55
- package/dist/generate-VVTQCJRI.js +0 -264
- package/dist/generate-VVTQCJRI.js.map +0 -1
- package/dist/get-CZSESEHU.js +0 -61
- package/dist/get-CZSESEHU.js.map +0 -1
- package/dist/get-DEGOS3R6.js +0 -63
- package/dist/get-DEGOS3R6.js.map +0 -1
- package/dist/get-L3ZGUJJB.js +0 -65
- package/dist/get-L3ZGUJJB.js.map +0 -1
- package/dist/get-NX5DGSRP.js +0 -65
- package/dist/get-NX5DGSRP.js.map +0 -1
- package/dist/get-TL6UET23.js +0 -56
- package/dist/get-TL6UET23.js.map +0 -1
- package/dist/get-UNZMYRB6.js +0 -80
- package/dist/get-UNZMYRB6.js.map +0 -1
- package/dist/get-ZVRRZDUU.js +0 -94
- package/dist/get-ZVRRZDUU.js.map +0 -1
- package/dist/gif-MNBSPA64.js +0 -96
- package/dist/gif-MNBSPA64.js.map +0 -1
- package/dist/google-C2Z4XWRL.js +0 -1866
- package/dist/google-C2Z4XWRL.js.map +0 -1
- package/dist/google-LJSSLBP3.js +0 -138
- package/dist/google-LJSSLBP3.js.map +0 -1
- package/dist/group-7BGYA6LK.js +0 -44
- package/dist/group-7BGYA6LK.js.map +0 -1
- package/dist/group-MPYAKBH5.js +0 -44
- package/dist/group-MPYAKBH5.js.map +0 -1
- package/dist/gsc-LC5ADBA3.js +0 -30
- package/dist/history-GPQE2ZYR.js +0 -68
- package/dist/history-GPQE2ZYR.js.map +0 -1
- package/dist/history-XTSLGMK6.js +0 -135
- package/dist/history-XTSLGMK6.js.map +0 -1
- package/dist/hubspot-GPTEZD3A.js +0 -781
- package/dist/hubspot-GPTEZD3A.js.map +0 -1
- package/dist/icon-YKMRIU7A.js +0 -139
- package/dist/icon-YKMRIU7A.js.map +0 -1
- package/dist/ideas-NEBJBIBM.js +0 -31
- package/dist/images-ASWWS5TH.js +0 -90
- package/dist/improve-VXDJGXTG.js +0 -88
- package/dist/improve-VXDJGXTG.js.map +0 -1
- package/dist/ingest-AW37RWJN.js +0 -109
- package/dist/ingest-AW37RWJN.js.map +0 -1
- package/dist/ingest-X7UPOCKP.js +0 -24
- package/dist/insights-MHUV75RQ.js +0 -424
- package/dist/insights-MHUV75RQ.js.map +0 -1
- package/dist/insights-NLQXAW3F.js +0 -123
- package/dist/insights-NLQXAW3F.js.map +0 -1
- package/dist/inspect-TXVKPBAR.js +0 -191
- package/dist/inspect-TXVKPBAR.js.map +0 -1
- package/dist/inspiration-64DY3QWN.js +0 -53
- package/dist/intent-3HY6DRHW.js +0 -96
- package/dist/intent-3HY6DRHW.js.map +0 -1
- package/dist/job-L73KC4TC.js +0 -203
- package/dist/job-L73KC4TC.js.map +0 -1
- package/dist/job-create-LR3EHWKO.js +0 -110
- package/dist/job-create-LR3EHWKO.js.map +0 -1
- package/dist/job-status-MSL4EAJT.js +0 -75
- package/dist/job-status-MSL4EAJT.js.map +0 -1
- package/dist/keep-XUATLR5B.js +0 -80
- package/dist/keep-XUATLR5B.js.map +0 -1
- package/dist/keyword-gap-DJAYVD4U.js +0 -131
- package/dist/keyword-gap-DJAYVD4U.js.map +0 -1
- package/dist/keyword-metrics-4FEFFTQO.js +0 -198
- package/dist/keyword-metrics-4FEFFTQO.js.map +0 -1
- package/dist/keywords-for-site-HIMEQY63.js +0 -125
- package/dist/keywords-for-site-HIMEQY63.js.map +0 -1
- package/dist/landing-KU3ILVB3.js +0 -28
- package/dist/landing-KU3ILVB3.js.map +0 -1
- package/dist/languages-4QYK5DMW.js +0 -56
- package/dist/languages-4QYK5DMW.js.map +0 -1
- package/dist/languages-L5E7WS77.js +0 -41
- package/dist/languages-L5E7WS77.js.map +0 -1
- package/dist/layerize-YAVLAXYM.js +0 -192
- package/dist/layerize-YAVLAXYM.js.map +0 -1
- package/dist/leads-DR3EK77T.js +0 -91
- package/dist/leads-DR3EK77T.js.map +0 -1
- package/dist/leads-PFPQOCBR.js +0 -286
- package/dist/leads-PFPQOCBR.js.map +0 -1
- package/dist/learn-D4D75X2Y.js +0 -204
- package/dist/library-E2SJS7PT.js +0 -111
- package/dist/library-E2SJS7PT.js.map +0 -1
- package/dist/lighthouse-QMECKX4R.js +0 -76
- package/dist/lighthouse-QMECKX4R.js.map +0 -1
- package/dist/line-item-writes-XMDA7AZQ.js +0 -209
- package/dist/line-item-writes-XMDA7AZQ.js.map +0 -1
- package/dist/line-items-YGKTYKVE.js +0 -104
- package/dist/line-items-YGKTYKVE.js.map +0 -1
- package/dist/link-AOB3WGGN.js +0 -65
- package/dist/link-AOB3WGGN.js.map +0 -1
- package/dist/linkedin-WRJNY6NY.js +0 -1002
- package/dist/linkedin-WRJNY6NY.js.map +0 -1
- package/dist/list-66VKYGKM.js +0 -52
- package/dist/list-66VKYGKM.js.map +0 -1
- package/dist/list-6DZWRLDN.js +0 -59
- package/dist/list-6DZWRLDN.js.map +0 -1
- package/dist/list-6KJWGPPS.js +0 -67
- package/dist/list-6KJWGPPS.js.map +0 -1
- package/dist/list-GXCKA2AN.js +0 -153
- package/dist/list-GXCKA2AN.js.map +0 -1
- package/dist/list-KNHZPT7L.js +0 -65
- package/dist/list-KNHZPT7L.js.map +0 -1
- package/dist/list-LPETG6A6.js +0 -78
- package/dist/list-LPETG6A6.js.map +0 -1
- package/dist/list-WHJNWHSZ.js +0 -53
- package/dist/list-WHJNWHSZ.js.map +0 -1
- package/dist/list-YV5Z2J6U.js +0 -305
- package/dist/list-YV5Z2J6U.js.map +0 -1
- package/dist/locations-4FZYKG2A.js +0 -68
- package/dist/locations-4FZYKG2A.js.map +0 -1
- package/dist/locations-W32YE2KS.js +0 -41
- package/dist/locations-W32YE2KS.js.map +0 -1
- package/dist/log-YVW46HL7.js +0 -94
- package/dist/log-YVW46HL7.js.map +0 -1
- package/dist/logo-7O7VW5R3.js +0 -19
- package/dist/lookup-Z2X5WAO6.js +0 -23
- package/dist/make-Q6BQ7LNT.js +0 -505
- package/dist/make-Q6BQ7LNT.js.map +0 -1
- package/dist/map-VZM5C6DA.js +0 -406
- package/dist/map-VZM5C6DA.js.map +0 -1
- package/dist/mcp-KSJDALG6.js +0 -478
- package/dist/mcp-KSJDALG6.js.map +0 -1
- package/dist/media-7P66TUIR.js +0 -15
- package/dist/media-JBQKYSRQ.js +0 -90
- package/dist/media-JBQKYSRQ.js.map +0 -1
- package/dist/media-sources-427U333M.js +0 -32
- package/dist/members-ABGEFALK.js +0 -46
- package/dist/members-ABGEFALK.js.map +0 -1
- package/dist/meta-JH4FHVNX.js +0 -69
- package/dist/metrics-ALSPX6EQ.js +0 -153
- package/dist/metrics-ALSPX6EQ.js.map +0 -1
- package/dist/models-7BM5BKXX.js +0 -157
- package/dist/models-7BM5BKXX.js.map +0 -1
- package/dist/normalize-DFK3DGGZ.js +0 -808
- package/dist/normalize-DFK3DGGZ.js.map +0 -1
- package/dist/normalize-NDR7YEQE.js +0 -140
- package/dist/normalize-NDR7YEQE.js.map +0 -1
- package/dist/options-G5VGH22X.js +0 -123
- package/dist/options-G5VGH22X.js.map +0 -1
- package/dist/output-ZLXBAA4O.js +0 -25
- package/dist/page-L7BBMINT.js +0 -107
- package/dist/page-L7BBMINT.js.map +0 -1
- package/dist/pages-NBV35ECG.js +0 -67
- package/dist/pages-NBV35ECG.js.map +0 -1
- package/dist/performance-SOMZNPIG.js +0 -25
- package/dist/pinterest-KXAZTRDP.js +0 -98
- package/dist/pinterest-KXAZTRDP.js.map +0 -1
- package/dist/pixels-DYWHXAJT.js +0 -109
- package/dist/pixels-DYWHXAJT.js.map +0 -1
- package/dist/pixels-UMS2QBUG.js +0 -61
- package/dist/pixels-UMS2QBUG.js.map +0 -1
- package/dist/preview-C5FER5SU.js +0 -170
- package/dist/preview-C5FER5SU.js.map +0 -1
- package/dist/promoted-tweet-writes-3PECZLQA.js +0 -181
- package/dist/promoted-tweet-writes-3PECZLQA.js.map +0 -1
- package/dist/promoted-tweets-GMV6WIWV.js +0 -120
- package/dist/promoted-tweets-GMV6WIWV.js.map +0 -1
- package/dist/properties-YAJQF577.js +0 -102
- package/dist/properties-YAJQF577.js.map +0 -1
- package/dist/publish-5WDUTTG5.js +0 -355
- package/dist/publish-5WDUTTG5.js.map +0 -1
- package/dist/query-TBWL52JI.js +0 -1342
- package/dist/query-TBWL52JI.js.map +0 -1
- package/dist/query-VESQSTQI.js +0 -237
- package/dist/query-VESQSTQI.js.map +0 -1
- package/dist/query-XZQSY62P.js +0 -248
- package/dist/query-XZQSY62P.js.map +0 -1
- package/dist/read-UMAWDVKX.js +0 -141
- package/dist/read-UMAWDVKX.js.map +0 -1
- package/dist/reddit-OPHQFRRC.js +0 -27
- package/dist/refresh-U56RE7DI.js +0 -96
- package/dist/refresh-U56RE7DI.js.map +0 -1
- package/dist/release-P66DYNKQ.js +0 -61
- package/dist/release-P66DYNKQ.js.map +0 -1
- package/dist/relevant-pages-DSQQU6F7.js +0 -100
- package/dist/relevant-pages-DSQQU6F7.js.map +0 -1
- package/dist/remove-GRLXSDZC.js +0 -50
- package/dist/remove-GRLXSDZC.js.map +0 -1
- package/dist/remove-IRIP4OKM.js +0 -52
- package/dist/remove-IRIP4OKM.js.map +0 -1
- package/dist/reopen-PMIO7NJJ.js +0 -65
- package/dist/reopen-PMIO7NJJ.js.map +0 -1
- package/dist/rerun-V4O6TKBY.js +0 -84
- package/dist/rerun-V4O6TKBY.js.map +0 -1
- package/dist/research-MG3MESKH.js +0 -59
- package/dist/research-RFPBKIVP.js +0 -228
- package/dist/research-RFPBKIVP.js.map +0 -1
- package/dist/reset-3HKXFAV7.js +0 -56
- package/dist/reset-3HKXFAV7.js.map +0 -1
- package/dist/reset-LQZA3CIB.js +0 -56
- package/dist/reset-LQZA3CIB.js.map +0 -1
- package/dist/resolve-H33CQAY4.js +0 -122
- package/dist/resolve-H33CQAY4.js.map +0 -1
- package/dist/retry-6F3YAVYQ.js +0 -64
- package/dist/retry-6F3YAVYQ.js.map +0 -1
- package/dist/retry-QWD3HWFP.js +0 -62
- package/dist/retry-QWD3HWFP.js.map +0 -1
- package/dist/retry-failed-7OAJ5TMD.js +0 -47
- package/dist/retry-failed-7OAJ5TMD.js.map +0 -1
- package/dist/run-CGZIVYLV.js +0 -67
- package/dist/run-CGZIVYLV.js.map +0 -1
- package/dist/run-PZF26R6H.js +0 -59
- package/dist/scaffold-ad-AI6R4GDU.js +0 -1458
- package/dist/scaffold-ad-AI6R4GDU.js.map +0 -1
- package/dist/scaffold-static-ad-T7ZDHRB3.js +0 -944
- package/dist/scaffold-static-ad-T7ZDHRB3.js.map +0 -1
- package/dist/scaffold-video-R24U2WC7.js +0 -840
- package/dist/scaffold-video-R24U2WC7.js.map +0 -1
- package/dist/schedule-BK44B77G.js +0 -68
- package/dist/schedule-BK44B77G.js.map +0 -1
- package/dist/schedule-F2EEY4UK.js +0 -63
- package/dist/schedule-F2EEY4UK.js.map +0 -1
- package/dist/scheduled-agents-CIEAOWM6.js +0 -49
- package/dist/schema-3B6FDPBF.js +0 -131
- package/dist/schema-3B6FDPBF.js.map +0 -1
- package/dist/schema-4FOZ5W35.js +0 -65
- package/dist/schema-4FOZ5W35.js.map +0 -1
- package/dist/scrape-P46M2J43.js +0 -2243
- package/dist/scrape-P46M2J43.js.map +0 -1
- package/dist/screenshot-6F7G3LN5.js +0 -104
- package/dist/screenshot-6F7G3LN5.js.map +0 -1
- package/dist/search-23LREBOG.js +0 -94
- package/dist/search-23LREBOG.js.map +0 -1
- package/dist/search-DNYAA6TT.js +0 -176
- package/dist/search-DNYAA6TT.js.map +0 -1
- package/dist/search-FORHMB7P.js +0 -27
- package/dist/search-KQMPPO3X.js +0 -226
- package/dist/search-KQMPPO3X.js.map +0 -1
- package/dist/search-X4AKUB2K.js +0 -93
- package/dist/search-X4AKUB2K.js.map +0 -1
- package/dist/seeds-K4CHZ2HU.js +0 -103
- package/dist/seeds-K4CHZ2HU.js.map +0 -1
- package/dist/select-52K6KZGY.js +0 -95
- package/dist/sends-UH2MZGCD.js +0 -310
- package/dist/sends-UH2MZGCD.js.map +0 -1
- package/dist/sequences-BXGO3NPA.js +0 -148
- package/dist/sequences-BXGO3NPA.js.map +0 -1
- package/dist/set-prompt-3IXP42AK.js +0 -186
- package/dist/set-prompt-3IXP42AK.js.map +0 -1
- package/dist/setup-links-OV6ALAUU.js +0 -143
- package/dist/setup-links-OV6ALAUU.js.map +0 -1
- package/dist/shared-VMV44VPB.js +0 -32
- package/dist/site-MQ5ORTKV.js +0 -179
- package/dist/site-MQ5ORTKV.js.map +0 -1
- package/dist/sitemaps-LKCTG2WM.js +0 -88
- package/dist/sitemaps-LKCTG2WM.js.map +0 -1
- package/dist/sites-YHUF7G4Z.js +0 -102
- package/dist/sites-YHUF7G4Z.js.map +0 -1
- package/dist/skills-CG674XHN.js +0 -49
- package/dist/skills-CG674XHN.js.map +0 -1
- package/dist/sources-44THTN2Y.js +0 -422
- package/dist/sources-44THTN2Y.js.map +0 -1
- package/dist/sources-BQNCLGWT.js +0 -30
- package/dist/stale-JGLP7BAC.js +0 -63
- package/dist/stale-JGLP7BAC.js.map +0 -1
- package/dist/stats-TO3J2FU6.js +0 -34
- package/dist/status-NJ3SMBGS.js +0 -64
- package/dist/status-NJ3SMBGS.js.map +0 -1
- package/dist/sticker-YBOWSWMR.js +0 -96
- package/dist/sticker-YBOWSWMR.js.map +0 -1
- package/dist/stock-E6NMDSVI.js +0 -181
- package/dist/stock-E6NMDSVI.js.map +0 -1
- package/dist/studio-LHH62SZC.js +0 -49
- package/dist/sync-2R5UKTHN.js +0 -56
- package/dist/sync-2R5UKTHN.js.map +0 -1
- package/dist/sync-AZRR5JNS.js +0 -266
- package/dist/sync-AZRR5JNS.js.map +0 -1
- package/dist/sync-ML7E5J22.js +0 -56
- package/dist/sync-ML7E5J22.js.map +0 -1
- package/dist/sync-definition-LBPI7P5F.js +0 -48
- package/dist/tag-manager-D3YNI7JG.js +0 -43
- package/dist/tags-BYGKXDDS.js +0 -21
- package/dist/tags-BYGKXDDS.js.map +0 -1
- package/dist/tags-OOQV4G2Y.js +0 -26
- package/dist/tags-TKYXWGN4.js +0 -21
- package/dist/tags-TKYXWGN4.js.map +0 -1
- package/dist/tags-V732MEES.js +0 -226
- package/dist/tags-V732MEES.js.map +0 -1
- package/dist/tags-YLC46IXM.js +0 -21
- package/dist/tags-YLC46IXM.js.map +0 -1
- package/dist/targeting-constants-XT56MOGP.js +0 -119
- package/dist/targeting-constants-XT56MOGP.js.map +0 -1
- package/dist/targeting-criteria-24X3IIJS.js +0 -114
- package/dist/targeting-criteria-24X3IIJS.js.map +0 -1
- package/dist/targets-AKAN2HFY.js +0 -104
- package/dist/targets-AKAN2HFY.js.map +0 -1
- package/dist/templates-7MRVQTB2.js +0 -180
- package/dist/templates-7MRVQTB2.js.map +0 -1
- package/dist/testimonials-OIZMXEYZ.js +0 -32
- package/dist/top-companies-3IG5FRQ2.js +0 -109
- package/dist/top-companies-3IG5FRQ2.js.map +0 -1
- package/dist/triggers-ZHNWHJG4.js +0 -143
- package/dist/triggers-ZHNWHJG4.js.map +0 -1
- package/dist/tweets-V5R5DUA2.js +0 -124
- package/dist/tweets-V5R5DUA2.js.map +0 -1
- package/dist/unfollow-RYDJDDAV.js +0 -48
- package/dist/unfollow-RYDJDDAV.js.map +0 -1
- package/dist/unlink-CS7QNOU2.js +0 -68
- package/dist/unlink-CS7QNOU2.js.map +0 -1
- package/dist/unstage-DDZ5F2Z6.js +0 -86
- package/dist/unstage-DDZ5F2Z6.js.map +0 -1
- package/dist/unstage-KPLOFKU5.js +0 -96
- package/dist/unstage-KPLOFKU5.js.map +0 -1
- package/dist/update-ASY63WIK.js +0 -157
- package/dist/update-ASY63WIK.js.map +0 -1
- package/dist/update-HA5IQCJ2.js +0 -99
- package/dist/update-HA5IQCJ2.js.map +0 -1
- package/dist/update-R3VD5DC3.js +0 -143
- package/dist/update-R3VD5DC3.js.map +0 -1
- package/dist/update-WMCBSNSD.js +0 -64
- package/dist/update-WMCBSNSD.js.map +0 -1
- package/dist/upload-ADEYBWTV.js +0 -152
- package/dist/upload-ADEYBWTV.js.map +0 -1
- package/dist/upload-WBNPIOVR.js +0 -128
- package/dist/upload-WBNPIOVR.js.map +0 -1
- package/dist/upscale-WYTZPUIA.js +0 -111
- package/dist/upscale-WYTZPUIA.js.map +0 -1
- package/dist/url-options-DOCH5AWX.js +0 -128
- package/dist/url-options-DOCH5AWX.js.map +0 -1
- package/dist/url-params-IYTU3MVV.js +0 -99
- package/dist/url-params-IYTU3MVV.js.map +0 -1
- package/dist/use-RGJMULXG.js +0 -97
- package/dist/use-RGJMULXG.js.map +0 -1
- package/dist/validate-T22BKIFK.js +0 -89
- package/dist/validate-T22BKIFK.js.map +0 -1
- package/dist/variant-3DBL2RDV.js +0 -339
- package/dist/variant-3DBL2RDV.js.map +0 -1
- package/dist/videos-7SB2CLZW.js +0 -39
- package/dist/view-5QDCP7HF.js +0 -123
- package/dist/view-5QDCP7HF.js.map +0 -1
- package/dist/viewer-check-NGIMC2BR.js +0 -66
- package/dist/web-IRWXTGE2.js +0 -136
- package/dist/web-IRWXTGE2.js.map +0 -1
- package/dist/winners-JSI4N26Y.js +0 -81
- package/dist/winners-JSI4N26Y.js.map +0 -1
- package/dist/winning-ads-XQZ6HEX5.js +0 -62
- package/dist/write-commands-3C3TV2YC.js +0 -714
- package/dist/write-commands-3C3TV2YC.js.map +0 -1
- package/dist/write-commands-7WIG5UDU.js +0 -731
- package/dist/write-commands-7WIG5UDU.js.map +0 -1
- package/dist/write-commands-G7HHGAEE.js +0 -1009
- package/dist/write-commands-G7HHGAEE.js.map +0 -1
- package/dist/write-commands-ROQSZFXR.js +0 -207
- package/dist/write-commands-ROQSZFXR.js.map +0 -1
- package/dist/x-BLTCL6L3.js +0 -47
- /package/dist/{actions-7XF5L4U3.js.map → actions-PEI6ZQAG.js.map} +0 -0
- /package/dist/{ads-IRE5RZCS.js.map → ads-TJ7ACFHG.js.map} +0 -0
- /package/dist/{avatars-G54K55J3.js.map → avatars-2UQJXHPV.js.map} +0 -0
- /package/dist/{brand-ODTHWWFL.js.map → brand-XBABUT52.js.map} +0 -0
- /package/dist/{canvas-M5HAG7VA.js.map → canvas-KEXE5P6S.js.map} +0 -0
- /package/dist/{chatgpt-PLKNBNVL.js.map → chatgpt-7W75X3ER.js.map} +0 -0
- /package/dist/{chunk-OZLBLXTK.js.map → chunk-2TK4DEOE.js.map} +0 -0
- /package/dist/{chunk-ZHW3O25C.js.map → chunk-4NDCTLI5.js.map} +0 -0
- /package/dist/{chunk-5NQIFCNX.js.map → chunk-5ARG3CQG.js.map} +0 -0
- /package/dist/{chunk-ZAFR46HG.js.map → chunk-5Z2KSVIV.js.map} +0 -0
- /package/dist/{chunk-EYO62URT.js.map → chunk-6B7VKFS4.js.map} +0 -0
- /package/dist/{chunk-W7OFLOZB.js.map → chunk-6G5K6ZC6.js.map} +0 -0
- /package/dist/{chunk-RJAQEZVD.js.map → chunk-73QKIIIR.js.map} +0 -0
- /package/dist/{chunk-YS6PCTPS.js.map → chunk-75FDTDLH.js.map} +0 -0
- /package/dist/{chunk-NGT6MARJ.js.map → chunk-7J6EHOH6.js.map} +0 -0
- /package/dist/{chunk-TD44SXQX.js.map → chunk-7OFNN4CT.js.map} +0 -0
- /package/dist/{chunk-LDVMMLRA.js.map → chunk-C6U6UDHJ.js.map} +0 -0
- /package/dist/{chunk-6FBZ5E6L.js.map → chunk-DIY6QR3E.js.map} +0 -0
- /package/dist/{chunk-F3WFP75M.js.map → chunk-EFSYTROP.js.map} +0 -0
- /package/dist/{chunk-4MU3U3SO.js.map → chunk-FEXDI4NM.js.map} +0 -0
- /package/dist/{chunk-YMOVI3WT.js.map → chunk-FHXIEMCG.js.map} +0 -0
- /package/dist/{chunk-R34LJSPM.js.map → chunk-H26L3OQY.js.map} +0 -0
- /package/dist/{chunk-NMMKTPGI.js.map → chunk-HIPDMQZ6.js.map} +0 -0
- /package/dist/{chunk-FRVROFI6.js.map → chunk-HYCIBVDW.js.map} +0 -0
- /package/dist/{chunk-BSUN6JMU.js.map → chunk-IFWP3ZDO.js.map} +0 -0
- /package/dist/{chunk-LQ4HBQ2B.js.map → chunk-IXKEWS7X.js.map} +0 -0
- /package/dist/{chunk-DPEQVHTX.js.map → chunk-JERXV5A3.js.map} +0 -0
- /package/dist/{chunk-TCSPJQ2X.js.map → chunk-KLNKEVIY.js.map} +0 -0
- /package/dist/{chunk-JMXBUIVI.js.map → chunk-KNY76UGC.js.map} +0 -0
- /package/dist/{chunk-IMZIECST.js.map → chunk-KWAOTV7F.js.map} +0 -0
- /package/dist/{chunk-A57AHUNA.js.map → chunk-LERTEZST.js.map} +0 -0
- /package/dist/{chunk-73MCYA5Z.js.map → chunk-LL2CD5WU.js.map} +0 -0
- /package/dist/{chunk-UA5EUJXV.js.map → chunk-LO6GEJ4Z.js.map} +0 -0
- /package/dist/{chunk-IRHNWYDT.js.map → chunk-LS5MTRFI.js.map} +0 -0
- /package/dist/{chunk-F7HBCFUA.js.map → chunk-LZ73CZGP.js.map} +0 -0
- /package/dist/{chunk-NGYKF4T6.js.map → chunk-MELOSESI.js.map} +0 -0
- /package/dist/{chunk-SXRSLUW7.js.map → chunk-NAWWC5I3.js.map} +0 -0
- /package/dist/{chunk-FFZBW4CC.js.map → chunk-NPE7EWBE.js.map} +0 -0
- /package/dist/{chunk-JH7NHC5W.js.map → chunk-OKG6GX2F.js.map} +0 -0
- /package/dist/{chunk-WAQYXH2U.js.map → chunk-PBA3YCZA.js.map} +0 -0
- /package/dist/{chunk-AWICKT2B.js.map → chunk-PWGWMIIJ.js.map} +0 -0
- /package/dist/{chunk-F6NJAHAZ.js.map → chunk-QHLB5V7J.js.map} +0 -0
- /package/dist/{chunk-TTFTS2SO.js.map → chunk-QJE6ZYGI.js.map} +0 -0
- /package/dist/{chunk-Y4JR4RDM.js.map → chunk-QSN5MZGS.js.map} +0 -0
- /package/dist/{chunk-HWWPDUZM.js.map → chunk-RSW6QJPH.js.map} +0 -0
- /package/dist/{chunk-LYZVLKRA.js.map → chunk-SBMIQDCX.js.map} +0 -0
- /package/dist/{chunk-BDD2ILIT.js.map → chunk-STIB5DR5.js.map} +0 -0
- /package/dist/{chunk-A3PEJ3V3.js.map → chunk-TBEUMOEL.js.map} +0 -0
- /package/dist/{chunk-RPFBZHHE.js.map → chunk-TD2P4HBP.js.map} +0 -0
- /package/dist/{chunk-CBEL3P22.js.map → chunk-VBHDZSI5.js.map} +0 -0
- /package/dist/{chunk-6YWRJMGR.js.map → chunk-VFIOJD5M.js.map} +0 -0
- /package/dist/{chunk-QYOPQRLI.js.map → chunk-VVZBBKRC.js.map} +0 -0
- /package/dist/{chunk-G32FXVQ6.js.map → chunk-W3B4BHQU.js.map} +0 -0
- /package/dist/{chunk-Q7UF4ERB.js.map → chunk-WS2GMOSG.js.map} +0 -0
- /package/dist/{chunk-EPK2GYLV.js.map → chunk-XBOK23HI.js.map} +0 -0
- /package/dist/{chunk-HA5D6US2.js.map → chunk-XG3XCHN6.js.map} +0 -0
- /package/dist/{chunk-L4DOL7L7.js.map → chunk-XL3BMSYG.js.map} +0 -0
- /package/dist/{chunk-ECXNE6RJ.js.map → chunk-XYMPS526.js.map} +0 -0
- /package/dist/{chunk-WWD4PITU.js.map → chunk-YBMVHGY3.js.map} +0 -0
- /package/dist/{client-XKDFFS7O.js.map → client-VHN32ZRE.js.map} +0 -0
- /package/dist/{connect-ATGYJNG4.js.map → connect-TA5W6YGW.js.map} +0 -0
- /package/dist/{customers-ACRYXALZ.js.map → customers-4RJGRR2Y.js.map} +0 -0
- /package/dist/{env-ODWJOKNV.js.map → env-KIP2J2UB.js.map} +0 -0
- /package/dist/{fit-5WZ6NVSF.js.map → fit-KXHYKIA4.js.map} +0 -0
- /package/dist/{fonts-7U7I2TWV.js.map → fonts-NTOQS2KU.js.map} +0 -0
- /package/dist/{ga4-QPEXE6YG.js.map → ga4-UDQ2HA2J.js.map} +0 -0
- /package/dist/{gsc-LC5ADBA3.js.map → gsc-P3QYGDV2.js.map} +0 -0
- /package/dist/{ideas-NEBJBIBM.js.map → ideas-PU7IAX6F.js.map} +0 -0
- /package/dist/{images-ASWWS5TH.js.map → images-QI2HTX6B.js.map} +0 -0
- /package/dist/{ingest-X7UPOCKP.js.map → ingest-BYJNFOOT.js.map} +0 -0
- /package/dist/{inspiration-64DY3QWN.js.map → inspiration-I4MMKAWA.js.map} +0 -0
- /package/dist/{learn-D4D75X2Y.js.map → learn-HZU3QWNN.js.map} +0 -0
- /package/dist/{logo-7O7VW5R3.js.map → logo-2IP663QO.js.map} +0 -0
- /package/dist/{lookup-Z2X5WAO6.js.map → lookup-XK45W2SH.js.map} +0 -0
- /package/dist/{media-7P66TUIR.js.map → media-M7E6V2XU.js.map} +0 -0
- /package/dist/{media-sources-427U333M.js.map → media-sources-3D246I3O.js.map} +0 -0
- /package/dist/{meta-JH4FHVNX.js.map → meta-EZ4SY25M.js.map} +0 -0
- /package/dist/{output-ZLXBAA4O.js.map → output-RAH3TSIL.js.map} +0 -0
- /package/dist/{performance-SOMZNPIG.js.map → performance-7LQQCEAW.js.map} +0 -0
- /package/dist/{reddit-OPHQFRRC.js.map → reddit-INGPFGP4.js.map} +0 -0
- /package/dist/{research-MG3MESKH.js.map → research-PA53M335.js.map} +0 -0
- /package/dist/{run-PZF26R6H.js.map → run-2IM2QOCI.js.map} +0 -0
- /package/dist/{scheduled-agents-CIEAOWM6.js.map → scheduled-agents-2NCGSD76.js.map} +0 -0
- /package/dist/{search-FORHMB7P.js.map → search-XUIVHGAY.js.map} +0 -0
- /package/dist/{select-52K6KZGY.js.map → select-ZWDEVAH2.js.map} +0 -0
- /package/dist/{shared-VMV44VPB.js.map → shared-HJDFNID4.js.map} +0 -0
- /package/dist/{sources-BQNCLGWT.js.map → sources-UGMZFZ2E.js.map} +0 -0
- /package/dist/{stats-TO3J2FU6.js.map → stats-NNXZMPZR.js.map} +0 -0
- /package/dist/{studio-LHH62SZC.js.map → studio-HUEBE6DS.js.map} +0 -0
- /package/dist/{sync-definition-LBPI7P5F.js.map → sync-definition-YBDM7D4M.js.map} +0 -0
- /package/dist/{tag-manager-D3YNI7JG.js.map → tag-manager-HREEYGVM.js.map} +0 -0
- /package/dist/{tags-OOQV4G2Y.js.map → tags-R3K35KTL.js.map} +0 -0
- /package/dist/{testimonials-OIZMXEYZ.js.map → testimonials-5QGCPZ6K.js.map} +0 -0
- /package/dist/{videos-7SB2CLZW.js.map → videos-GIYDCCKR.js.map} +0 -0
- /package/dist/{viewer-check-NGIMC2BR.js.map → viewer-check-VN2JK2LW.js.map} +0 -0
- /package/dist/{winning-ads-XQZ6HEX5.js.map → winning-ads-7QWEIMRU.js.map} +0 -0
- /package/dist/{x-BLTCL6L3.js.map → x-OEAKQBB7.js.map} +0 -0
|
@@ -0,0 +1,948 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isValidScaffoldSlug,
|
|
3
|
+
resolveCastAvatars,
|
|
4
|
+
resolveScaffoldStaticAdPaths
|
|
5
|
+
} from "./chunk-7OFNN4CT.js";
|
|
6
|
+
import {
|
|
7
|
+
fail,
|
|
8
|
+
fileExists,
|
|
9
|
+
loadAssetText,
|
|
10
|
+
parseElements,
|
|
11
|
+
resolveModel
|
|
12
|
+
} from "./chunk-ZNBDKK4Y.js";
|
|
13
|
+
import {
|
|
14
|
+
buildBackendClient
|
|
15
|
+
} from "./chunk-Y5ZGWLWP.js";
|
|
16
|
+
import "./chunk-DIY6QR3E.js";
|
|
17
|
+
import {
|
|
18
|
+
syncCreativeDefinitionBestEffort
|
|
19
|
+
} from "./chunk-TCNNOLVZ.js";
|
|
20
|
+
import "./chunk-EZUG6WE2.js";
|
|
21
|
+
import "./chunk-WN4KX7GE.js";
|
|
22
|
+
import "./chunk-PWGWMIIJ.js";
|
|
23
|
+
import "./chunk-W3ZHJJVT.js";
|
|
24
|
+
import "./chunk-IVIJJXXT.js";
|
|
25
|
+
import "./chunk-WS2GMOSG.js";
|
|
26
|
+
import "./chunk-Q6ULQMWG.js";
|
|
27
|
+
import "./chunk-KKJ4KJCW.js";
|
|
28
|
+
import "./chunk-3ACMDRSE.js";
|
|
29
|
+
import {
|
|
30
|
+
enforceNewCreativeLimit
|
|
31
|
+
} from "./chunk-MLU6STIN.js";
|
|
32
|
+
import "./chunk-IKGWQBKJ.js";
|
|
33
|
+
import {
|
|
34
|
+
buildCreativeDefinition,
|
|
35
|
+
describeBlueprintIntent,
|
|
36
|
+
parseDefinitionViewerFields,
|
|
37
|
+
resolveFormatList,
|
|
38
|
+
resolvePlatform,
|
|
39
|
+
setDefinitionViewer,
|
|
40
|
+
titleFromSlug
|
|
41
|
+
} from "./chunk-ICM2OXZV.js";
|
|
42
|
+
import "./chunk-URIYUZIN.js";
|
|
43
|
+
import {
|
|
44
|
+
brandBlock,
|
|
45
|
+
brandHeadlineFont,
|
|
46
|
+
castAvatarsOnStaticElements,
|
|
47
|
+
computeSourceSha,
|
|
48
|
+
findBrandRoot,
|
|
49
|
+
pickImageModel,
|
|
50
|
+
readNamedTypefaces,
|
|
51
|
+
readStaticBrandKit,
|
|
52
|
+
scaffoldStaticAd,
|
|
53
|
+
staticAdReport,
|
|
54
|
+
staticAdSpec,
|
|
55
|
+
staticAvatarsNotCast,
|
|
56
|
+
webFontUrl
|
|
57
|
+
} from "./chunk-2CD5ZP7M.js";
|
|
58
|
+
import "./chunk-73QKIIIR.js";
|
|
59
|
+
import {
|
|
60
|
+
describeViewer,
|
|
61
|
+
liveViewerLookups,
|
|
62
|
+
resolveViewer
|
|
63
|
+
} from "./chunk-HXTGYOQC.js";
|
|
64
|
+
import "./chunk-27NMXSC3.js";
|
|
65
|
+
import {
|
|
66
|
+
LIBRARY_PLATFORMS,
|
|
67
|
+
conceptFromFit,
|
|
68
|
+
fetchLibraryReference,
|
|
69
|
+
fitHints,
|
|
70
|
+
libraryReferenceBlock,
|
|
71
|
+
mergeReferenceIntoBlueprint,
|
|
72
|
+
readCachedFit,
|
|
73
|
+
referenceDescribeContext,
|
|
74
|
+
resolveSourcePlatform
|
|
75
|
+
} from "./chunk-OC5IJSIW.js";
|
|
76
|
+
import {
|
|
77
|
+
fetchJson,
|
|
78
|
+
lookupGoogleCss
|
|
79
|
+
} from "./chunk-7GPDUS3P.js";
|
|
80
|
+
import "./chunk-75VNSKS3.js";
|
|
81
|
+
import "./chunk-ZJ47BR6X.js";
|
|
82
|
+
import "./chunk-NFSLRRIE.js";
|
|
83
|
+
import "./chunk-F2S5BLPE.js";
|
|
84
|
+
import "./chunk-K3PN7TN5.js";
|
|
85
|
+
import {
|
|
86
|
+
findWorkspaceRoot,
|
|
87
|
+
resolveRelativeCanvasPaths
|
|
88
|
+
} from "./chunk-HIPDMQZ6.js";
|
|
89
|
+
import {
|
|
90
|
+
ValidationError,
|
|
91
|
+
createEngineFromEnv,
|
|
92
|
+
defaultRegistry,
|
|
93
|
+
validateCanvasDeep
|
|
94
|
+
} from "./chunk-HMEFD2CG.js";
|
|
95
|
+
import "./chunk-RRUJQVWA.js";
|
|
96
|
+
import "./chunk-W3B4BHQU.js";
|
|
97
|
+
import {
|
|
98
|
+
conceptClassOf,
|
|
99
|
+
conceptProblems,
|
|
100
|
+
readAdSpec
|
|
101
|
+
} from "./chunk-CLMM6P6B.js";
|
|
102
|
+
import "./chunk-4SJDDGPV.js";
|
|
103
|
+
import "./chunk-DGCUPJZD.js";
|
|
104
|
+
import "./chunk-HO3IUJ4K.js";
|
|
105
|
+
import {
|
|
106
|
+
AD_DESCRIBE_MODEL,
|
|
107
|
+
AD_FORMAT_PLATFORMS,
|
|
108
|
+
AD_PLATFORMS,
|
|
109
|
+
BLUEPRINT_ANALYSIS_MODEL,
|
|
110
|
+
deliverySet
|
|
111
|
+
} from "./chunk-OBDAYP2P.js";
|
|
112
|
+
import "./chunk-RX6F3GEA.js";
|
|
113
|
+
import {
|
|
114
|
+
VIEWER_KNOWS_VALUES,
|
|
115
|
+
VIEWER_TEMPERATURE_VALUES,
|
|
116
|
+
marketFromCompanyDoc
|
|
117
|
+
} from "./chunk-5HYSKH77.js";
|
|
118
|
+
import "./chunk-KIGGMKAE.js";
|
|
119
|
+
import "./chunk-VAJBWA2U.js";
|
|
120
|
+
import {
|
|
121
|
+
sha256Hex,
|
|
122
|
+
toModelSafeImage
|
|
123
|
+
} from "./chunk-OTFHEHIU.js";
|
|
124
|
+
import "./chunk-VVZBBKRC.js";
|
|
125
|
+
import {
|
|
126
|
+
MAX_REMOTE_IMAGE_BYTES,
|
|
127
|
+
fetchExternalBytes
|
|
128
|
+
} from "./chunk-YBMVHGY3.js";
|
|
129
|
+
import "./chunk-XWH7CCBL.js";
|
|
130
|
+
import "./chunk-GXDLWBOY.js";
|
|
131
|
+
import "./chunk-WYCVJIHD.js";
|
|
132
|
+
import "./chunk-ZJWUBJYQ.js";
|
|
133
|
+
import "./chunk-XML7AJM3.js";
|
|
134
|
+
import "./chunk-XBOK23HI.js";
|
|
135
|
+
import "./chunk-IFWP3ZDO.js";
|
|
136
|
+
import "./chunk-NAWWC5I3.js";
|
|
137
|
+
import {
|
|
138
|
+
registerSchema
|
|
139
|
+
} from "./chunk-NU7JSWVA.js";
|
|
140
|
+
import "./chunk-YQSBHWOI.js";
|
|
141
|
+
|
|
142
|
+
// src/commands/canvas/scaffold-static-ad.ts
|
|
143
|
+
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
144
|
+
import path from "path";
|
|
145
|
+
import { defineCommand } from "citty";
|
|
146
|
+
|
|
147
|
+
// src/commands/canvas/scaffold-viewer.ts
|
|
148
|
+
function flagText(value) {
|
|
149
|
+
const text = typeof value === "string" || typeof value === "number" ? String(value).trim() : "";
|
|
150
|
+
return text || void 0;
|
|
151
|
+
}
|
|
152
|
+
function narrows(placements) {
|
|
153
|
+
return placements.some((placement) => placement !== "automatic");
|
|
154
|
+
}
|
|
155
|
+
function flagList(value) {
|
|
156
|
+
const list = (flagText(value) ?? "").split(",").map((item) => item.trim()).filter(Boolean);
|
|
157
|
+
return list.length > 0 ? list : void 0;
|
|
158
|
+
}
|
|
159
|
+
var isTemperature = (value) => VIEWER_TEMPERATURE_VALUES.includes(value);
|
|
160
|
+
var isKnows = (value) => VIEWER_KNOWS_VALUES.includes(value);
|
|
161
|
+
function viewerFields(flags) {
|
|
162
|
+
const temperature = flagText(flags["viewer-temperature"]);
|
|
163
|
+
if (temperature !== void 0 && !isTemperature(temperature)) {
|
|
164
|
+
return { ok: false, message: `--viewer-temperature must be one of ${VIEWER_TEMPERATURE_VALUES.join(", ")}` };
|
|
165
|
+
}
|
|
166
|
+
const knows = flagList(flags["viewer-knows"]);
|
|
167
|
+
if (knows && !knows.every(isKnows)) {
|
|
168
|
+
return { ok: false, message: `--viewer-knows takes ${VIEWER_KNOWS_VALUES.join(", ")}` };
|
|
169
|
+
}
|
|
170
|
+
const placements = flagList(flags["viewer-placements"]);
|
|
171
|
+
return {
|
|
172
|
+
ok: true,
|
|
173
|
+
fields: {
|
|
174
|
+
...temperature ? { temperature } : {},
|
|
175
|
+
...knows ? { knows: knows.filter(isKnows) } : {},
|
|
176
|
+
...placements ? { placements } : {}
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
function givenViewer(fields) {
|
|
181
|
+
if (!fields.temperature) return void 0;
|
|
182
|
+
return {
|
|
183
|
+
temperature: fields.temperature,
|
|
184
|
+
knows: fields.knows ?? [],
|
|
185
|
+
placements: fields.placements ?? ["automatic"],
|
|
186
|
+
source: "knowledge",
|
|
187
|
+
reasons: ["No ad set was read: this viewer was given when the ad was scaffolded, from the Knowledge."]
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
var FIELD_WORDS = {
|
|
191
|
+
temperature: "Temperature",
|
|
192
|
+
knows: "What they know",
|
|
193
|
+
placements: "Placements"
|
|
194
|
+
};
|
|
195
|
+
function correctedViewer(read, fields) {
|
|
196
|
+
const stated = Object.keys(FIELD_WORDS).filter((key) => fields[key] !== void 0);
|
|
197
|
+
if (stated.length === 0) return read;
|
|
198
|
+
return {
|
|
199
|
+
...read,
|
|
200
|
+
...fields,
|
|
201
|
+
reasons: [...read.reasons, ...stated.map((key) => `${FIELD_WORDS[key]} given when the ad was scaffolded.`)]
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
var EVERY_PLACEMENT = "so the sizes keep clear of every placement";
|
|
205
|
+
async function readAdSet(adSetId, adSetViewer, notes) {
|
|
206
|
+
try {
|
|
207
|
+
const viewer = await adSetViewer(adSetId);
|
|
208
|
+
if (viewer) return viewer;
|
|
209
|
+
notes.push(`Ad set ${adSetId} is not in any connected Meta ad account, ${EVERY_PLACEMENT}.`);
|
|
210
|
+
} catch (e) {
|
|
211
|
+
notes.push(`Could not read ad set ${adSetId} (${e instanceof Error ? e.message : String(e)}), ${EVERY_PLACEMENT}.`);
|
|
212
|
+
}
|
|
213
|
+
return void 0;
|
|
214
|
+
}
|
|
215
|
+
async function recordedViewer(definition, adSetViewer) {
|
|
216
|
+
const { targetAdSet, viewer: recorded } = parseDefinitionViewerFields(definition);
|
|
217
|
+
if (!targetAdSet && recorded === void 0) return { ok: true, record: false, notes: [] };
|
|
218
|
+
const resolved = await resolveViewer({ recorded, targetAdSet }, { adSetViewer, personas: async () => [] });
|
|
219
|
+
const viewer = resolved.from === "recorded" || resolved.from === "ad_set" ? resolved.viewer : void 0;
|
|
220
|
+
return outcome(targetAdSet, viewer, false, resolved.notes);
|
|
221
|
+
}
|
|
222
|
+
function outcome(targetAdSet, viewer, record, notes) {
|
|
223
|
+
return {
|
|
224
|
+
ok: true,
|
|
225
|
+
...targetAdSet ? { targetAdSet } : {},
|
|
226
|
+
...viewer ? { viewer } : {},
|
|
227
|
+
record,
|
|
228
|
+
...viewer && narrows(viewer.placements) ? { adPlacements: viewer.placements } : {},
|
|
229
|
+
notes
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
async function scaffoldViewer(flags, existingDefinition, adSetViewer) {
|
|
233
|
+
const targetAdSet = flagText(flags["target-adset"]);
|
|
234
|
+
const given = viewerFields(flags);
|
|
235
|
+
if (!given.ok) return given;
|
|
236
|
+
const { fields } = given;
|
|
237
|
+
if (!targetAdSet && !fields.temperature && (fields.knows || fields.placements)) {
|
|
238
|
+
return {
|
|
239
|
+
ok: false,
|
|
240
|
+
message: "--viewer-knows and --viewer-placements describe a viewer: pass --viewer-temperature too"
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
if (!targetAdSet && !fields.temperature && existingDefinition !== null) {
|
|
244
|
+
return await recordedViewer(existingDefinition, adSetViewer);
|
|
245
|
+
}
|
|
246
|
+
const notes = [];
|
|
247
|
+
const read = targetAdSet ? await readAdSet(targetAdSet, adSetViewer, notes) : void 0;
|
|
248
|
+
const viewer = read ? correctedViewer(read, fields) : givenViewer(fields);
|
|
249
|
+
return outcome(targetAdSet, viewer, targetAdSet !== void 0 || viewer !== void 0, notes);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
// src/commands/canvas/scaffold-static-ad.ts
|
|
253
|
+
function toCanvasRelative(canvasDir, file) {
|
|
254
|
+
const rel = path.relative(canvasDir, file).split(path.sep).join("/");
|
|
255
|
+
return rel.startsWith(".") ? rel : `./${rel}`;
|
|
256
|
+
}
|
|
257
|
+
async function uploadSourceAsReference(source, isUrl, client) {
|
|
258
|
+
let bytes;
|
|
259
|
+
if (isUrl) {
|
|
260
|
+
try {
|
|
261
|
+
({ buffer: bytes } = await fetchExternalBytes(source, { maxBytes: MAX_REMOTE_IMAGE_BYTES }));
|
|
262
|
+
} catch (e) {
|
|
263
|
+
throw new Error(`failed to download source image (${e instanceof Error ? e.message : String(e)})`);
|
|
264
|
+
}
|
|
265
|
+
} else {
|
|
266
|
+
bytes = await readFile(source);
|
|
267
|
+
}
|
|
268
|
+
const safe = await toModelSafeImage(bytes);
|
|
269
|
+
const sha256 = sha256Hex(safe.bytes);
|
|
270
|
+
const { putUrl, publicUrl } = await client.presignAssetUpload(sha256, safe.mime, void 0, "source");
|
|
271
|
+
const putRes = await fetch(putUrl, {
|
|
272
|
+
method: "PUT",
|
|
273
|
+
body: new Uint8Array(safe.bytes),
|
|
274
|
+
headers: { "Content-Type": safe.mime }
|
|
275
|
+
});
|
|
276
|
+
if (!putRes.ok) throw new Error(`source upload failed (${putRes.status})`);
|
|
277
|
+
return publicUrl;
|
|
278
|
+
}
|
|
279
|
+
async function brandFace(root, kit, toCanvas) {
|
|
280
|
+
const font = await brandHeadlineFont({
|
|
281
|
+
file: kit.headlineFont,
|
|
282
|
+
named: await readNamedTypefaces(root),
|
|
283
|
+
resolveUrl: (family, weight) => webFontUrl(family, weight, { lookupGoogleCss, fetchJson })
|
|
284
|
+
});
|
|
285
|
+
if (!font) return null;
|
|
286
|
+
return "path" in font.slot ? { ...font, slot: { path: toCanvas(font.slot.path) } } : font;
|
|
287
|
+
}
|
|
288
|
+
function staticTextNote(report) {
|
|
289
|
+
if (report.text_forward) {
|
|
290
|
+
return "The reference pictures nothing but copy, so this ad is its words on the brand's colours: keep prompt.json's `references` empty unless the concept wants a picture.";
|
|
291
|
+
}
|
|
292
|
+
const face = report.font ? `in ${report.font}, shown to it as a specimen` : "in the face `brand.typeface` names (the brand has no font file)";
|
|
293
|
+
return `The copy is set by the image model: every line of \`copy\` in prompt.json, exactly as written, once. A line marked \`"lettering": "designed"\` is set ${face}; a line marked \`"in_scene"\` is lettered on the object it names (\`on\`), the way \`look\` says. Edit the copy in prompt.json; every run compiles the render prompts from it again and the review reads every word back against it.`;
|
|
294
|
+
}
|
|
295
|
+
function staticFormatsNote(report, genModel) {
|
|
296
|
+
const set = report.placements === null && report.platforms === null ? " Pass --platforms meta,tiktok,google_display,\u2026 for every size where the ad runs." : "";
|
|
297
|
+
const banners = report.banners.length > 0 ? ` The fixed banners ${report.banners.join(", ")} are not made from the picture: make them apart, from the delivered sizes, before staging a display campaign.` : "";
|
|
298
|
+
const plan = report.format_plan;
|
|
299
|
+
const made = {
|
|
300
|
+
master: (format) => `${format} is the chosen picture (rendered at ${plan.master.renderRatio})`,
|
|
301
|
+
relayout: (format) => `${format} is the chosen ad re-laid out for that frame by the image model (one billed request): the same words, people, product and logo, re-scaled for the frame, inside its safe area`,
|
|
302
|
+
crop: (format) => `${format} is cut from it, every word kept inside its safe area (free)`,
|
|
303
|
+
adapt: (format) => `${format} is adapted from it by the reframe model (one billed request)`
|
|
304
|
+
};
|
|
305
|
+
const how = plan.sizes.map((f) => made[f.from]?.(f.format) ?? f.format).join("; ");
|
|
306
|
+
const again = plan.sizes.some((s) => s.from === "relayout") ? "" : " No size is rendered again.";
|
|
307
|
+
return `Delivers ${report.output_formats.join(", ")}, each at its exact size, all from one picture (${genModel}): ${how}.${again}${set}${banners}`;
|
|
308
|
+
}
|
|
309
|
+
function viewerOutput(who) {
|
|
310
|
+
return {
|
|
311
|
+
...who.targetAdSet ? { target_adset: who.targetAdSet } : {},
|
|
312
|
+
...who.viewer ? {
|
|
313
|
+
viewer: {
|
|
314
|
+
temperature: who.viewer.temperature,
|
|
315
|
+
knows: who.viewer.knows,
|
|
316
|
+
placements: who.viewer.placements,
|
|
317
|
+
source: who.viewer.source
|
|
318
|
+
}
|
|
319
|
+
} : {}
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
function viewerNote(who) {
|
|
323
|
+
if (!who.viewer) {
|
|
324
|
+
return "Nobody said who sees this ad: pass --target-adset <id> (or, with no ad account, --viewer-temperature from the Knowledge) so the sizes keep clear of its placements and every run checks the ad against that viewer. Until then it is checked against a cold stranger.";
|
|
325
|
+
}
|
|
326
|
+
const sizes = who.adPlacements ? `the sizes keep clear of ${who.adPlacements.join(", ")}` : "the sizes keep clear of every placement (Advantage+)";
|
|
327
|
+
return `Made for ${describeViewer(who.viewer)}: write prompt.json's \`viewer\` for them, ${sizes}, and every run checks the ad against this viewer before it spends.`;
|
|
328
|
+
}
|
|
329
|
+
var DESCRIBE_FOCUS = "FIRST, WHY THIS AD WINS, in layers, in `why_it_wins` { disguise (what it pretends to be: a note, a tweet, a newspaper, a chat, a plain ad), voice (who speaks, and how), trigger (the emotion or need it pulls: a free gift, a hidden loss, status, curiosity), attention (what stops the scroll), logic (why it convinces: reciprocity, social proof, a comparison, a price anchor) }, one short phrase each; and in `load_bearing` the 1-4 elements it stops working without (never decoration), each { element, needs: what it takes to carry it } (a free gift, a real peer's face, priced tiers, a native disguise). THEN the LAYOUT: the column/row grid, which region holds what (describe each by what fills it and where it sits, never by percentages or pixel figures), any panel splits, and for EVERY text block its string verbatim, its size relative to the other text (x_large | large | medium | small), weight, case, colour in words, and placement, including small bottom-corner fine print, and whether it is lettered on something in the scene (`surface`). Also: the EXPRESSION and emotion of every person/animal (capture exaggerated or AI-edited faces), the ad_intent, logos by brand, and all visible text verbatim. The TYPOGRAPHY as a first-class identity signal: for EVERY distinct typeface record a `fonts` entry (which text blocks use it, its classification, a best-guess family or close lookalike, its weight/case/styling), and whether the advertiser's LOGO appears in more than one lockup (a square/icon MARK and a horizontal WORDMARK are two assets: capture BOTH). Capture as a photographer would describe it in words (phone or studio, the height and angle, the light and its direction), never as lens or exposure figures. CRITICAL: name the MECHANISM, the one device that makes THIS ad work on a stranger rather than a generic ad (VERBAL: a rhyme, pun, repetition, antithesis; VISUAL: an unexpected crop or scale, a visual gag, a before/after or comparison, bold negative space; STRUCTURAL: an unusual hook, order or reveal). Record every device in `winning_mechanisms` as { kind: verbal|visual|structural, device, why_it_works } and the strongest one in `mechanism`. And read WHO the ad is for, in `audience`: the viewer it speaks to, their awareness stage, how warm they must already be, and whether the copy only works if they already know this brand or offer (`presumes_brand_knowledge`), so a rebuild for a different audience knows what to change";
|
|
330
|
+
var SELECT_SYSTEM = 'You identify the MAIN, identity-critical visual elements of an advertisement from its JSON blueprint \u2014 the things a faithful reproduction must supply as REAL reference images instead of letting a model invent them. Output ONLY a JSON object of the form { "elements": [ ... ] }, no prose.';
|
|
331
|
+
var SELECT_PROMPT = `AD BLUEPRINT (from image_describe):
|
|
332
|
+
{{blueprint}}
|
|
333
|
+
|
|
334
|
+
From this blueprint, list ONLY the elements that are prominent, important, and identity-bearing \u2014 the ones a reproduction must ground in a real asset:
|
|
335
|
+
- the brand logo/wordmark (from brands_logos with function_in_image = advertiser_brand) -> type "logo". A brand often ships its logo in TWO lockups \u2014 a square/icon MARK and a horizontal WORDMARK \u2014 and an ad may use both (e.g. an icon in a product mock plus the wordmark in the sign-off). When more than one distinct lockup of the SAME advertiser appears, emit a SEPARATE logo element for each (label them by lockup, e.g. LOGO_MARK and LOGO_WORDMARK) so the reproduction can drop the right file in each slot instead of stretching one logo to cover both.
|
|
336
|
+
- trust/rating/certification/app-store/review badges (brands_logos with function_in_image = trust_badge | review_platform | certification_or_seal | app_store_badge | payment_method) -> type "badge"
|
|
337
|
+
- a showcased/hero product or package (a foreground entry in subjects that the ad is selling) -> type "product"
|
|
338
|
+
- a foreground person (from people) \u2014 keep it when its identity matters OR it is the emotional/hero focal point of the ad, even a generic one with no brand identity -> type "person". Describe them as a castable, invented everyday person (age band, look, wardrobe, expression) \u2014 never the source person's identity: unless a company avatar is cast, the render draws this person from your words alone
|
|
339
|
+
- a foreground animal/character (from subjects) \u2014 keep it when it carries a specific expression OR it is the emotional/hero focal point, even a generic one -> type "animal"
|
|
340
|
+
(For an animal: a free-generated muzzle or teeth reads as AI and grows artifacts \u2014 malformed mouths, foam \u2014 so the emotional hero needs the STRONGEST real grounding, not the weakest; "it's just a generic dog/person" is never a reason to drop either.)
|
|
341
|
+
|
|
342
|
+
DROP background extras, decorative props, generic scenery, and anything small or incidental. Keep at most ~6. If there are none, return an empty list.
|
|
343
|
+
|
|
344
|
+
For each kept element return: { "type": one of logo|product|person|animal|badge, "label": a short UPPER_SNAKE_CASE name (e.g. LOGO, PRODUCT, HERO_DOG, TRUSTPILOT), "description": a concrete reusable description to source/shoot the real asset (include the exact expression for a living subject, and its castable attributes \u2014 breed/species for an animal, apparent age band, apparent origin/ethnicity, and wardrobe/setting for a person \u2014 so it can be recast to fit OUR audience/market), "expression": the facial expression for a living subject or null, "reason": why it is identity-critical, "locator": the blueprint entry this element came from as { "collection": one of "subjects" | "people" | "brands_logos", "index": its 0-based position in that array } (people -> people; logos/badges -> brands_logos; products/animals/objects -> subjects). Output ONLY the JSON object.`;
|
|
345
|
+
function resolveModels(args) {
|
|
346
|
+
return {
|
|
347
|
+
describeModel: resolveModel("image_describe", args["describe-model"], AD_DESCRIBE_MODEL),
|
|
348
|
+
selectModel: resolveModel("text_generate", args["select-model"], BLUEPRINT_ANALYSIS_MODEL),
|
|
349
|
+
// The render model: `--gen-model`, else the router's model for the concept (decided once
|
|
350
|
+
// the blueprint is read, `renderModelFor`). Resolved here only so a bad override fails for free.
|
|
351
|
+
genModel: args["gen-model"] ? resolveModel("image_generate", args["gen-model"], String(args["gen-model"])) : void 0
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
var PLATFORM_PLACEMENTS = {
|
|
355
|
+
meta: "meta_feed_stories",
|
|
356
|
+
google: "google_demandgen",
|
|
357
|
+
linkedin: "linkedin",
|
|
358
|
+
tiktok: "tiktok",
|
|
359
|
+
youtube: "youtube",
|
|
360
|
+
x: void 0,
|
|
361
|
+
other: void 0
|
|
362
|
+
};
|
|
363
|
+
function resolvePlacements(placementsFlag, definitionPlatform) {
|
|
364
|
+
const flag = placementsFlag?.trim();
|
|
365
|
+
if (flag === void 0 || flag === "") return { ok: true, placements: PLATFORM_PLACEMENTS[definitionPlatform] };
|
|
366
|
+
if (flag === "none") return { ok: true, placements: void 0 };
|
|
367
|
+
if (AD_FORMAT_PLATFORMS.includes(flag)) return { ok: true, placements: flag };
|
|
368
|
+
return {
|
|
369
|
+
ok: false,
|
|
370
|
+
message: `--placements "${flag}" is not a valid placement set. Use one of: ${AD_FORMAT_PLATFORMS.join(", ")}, or "none" for a single base ad.`
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
function resolvePlatforms(flag) {
|
|
374
|
+
const names = (flag ?? "").split(",").map((n) => n.trim()).filter(Boolean);
|
|
375
|
+
if (names.length === 0) return { ok: true, platforms: void 0 };
|
|
376
|
+
const { unknown, formats, banners } = deliverySet(names);
|
|
377
|
+
if (unknown.length > 0) {
|
|
378
|
+
return { ok: false, message: `--platforms names ${unknown.join(", ")}, which is no platform here. Use any of: ${AD_PLATFORMS.join(", ")}.` };
|
|
379
|
+
}
|
|
380
|
+
if (formats.length === 0 && banners.length > 0) {
|
|
381
|
+
return {
|
|
382
|
+
ok: false,
|
|
383
|
+
message: `--platforms ${names.join(",")} requires only fixed-size banners (${banners.map((b) => b.format).join(", ")}), which are never made from the picture: add a platform with a feed or story size (meta, google_display, \u2026).`
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
return { ok: true, platforms: names };
|
|
387
|
+
}
|
|
388
|
+
async function validateScaffoldedStaticAd(canvas, canvasDir) {
|
|
389
|
+
const validation = await validateCanvasDeep(resolveRelativeCanvasPaths(canvas, canvasDir), defaultRegistry());
|
|
390
|
+
if (validation.ok) return { blocking: [], hints: [], estimatedCredits: validation.estimatedCredits };
|
|
391
|
+
const overCap = validation.issues.filter((i) => i.code === "PROMPT_OVER_MODEL_LIMIT");
|
|
392
|
+
return {
|
|
393
|
+
blocking: validation.issues.filter((i) => i.code !== "PROMPT_OVER_MODEL_LIMIT"),
|
|
394
|
+
hints: overCap.map((i) => `${i.code}: ${i.message} Trim prompt.json, then \`baker canvas validate\`.`)
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
function buildDescribeCanvas(imageSource, imageIsUrl, describeModel, selectModel, context) {
|
|
398
|
+
const originalParams = imageIsUrl ? { source: "url", url: imageSource, expect: "image" } : { source: "path", path: imageSource, expect: "image" };
|
|
399
|
+
return {
|
|
400
|
+
schema: "baker-canvas/1",
|
|
401
|
+
metadata: { name: "static-ad describe pass" },
|
|
402
|
+
nodes: [
|
|
403
|
+
{ id: "original", type: "ingest", params: originalParams },
|
|
404
|
+
{
|
|
405
|
+
id: "describe",
|
|
406
|
+
type: "image_describe",
|
|
407
|
+
inputs: { image: "$ref:original.asset" },
|
|
408
|
+
params: { model: describeModel, max_tokens: 9e3, ...context ? { context } : {}, focus: DESCRIBE_FOCUS }
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
id: "select",
|
|
412
|
+
type: "text_generate",
|
|
413
|
+
inputs: { blueprint: "$ref:describe.description" },
|
|
414
|
+
params: {
|
|
415
|
+
model: selectModel,
|
|
416
|
+
max_tokens: 4e3,
|
|
417
|
+
temperature: 0,
|
|
418
|
+
response_format: "json_object",
|
|
419
|
+
system: SELECT_SYSTEM,
|
|
420
|
+
prompt: SELECT_PROMPT
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
]
|
|
424
|
+
// No declared output: runVisionPasses reads both node outputs after the run.
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
async function runVisionPasses(canvas) {
|
|
428
|
+
const engine = createEngineFromEnv({ log: (line) => process.stderr.write(`${line}
|
|
429
|
+
`) });
|
|
430
|
+
let outputsByNode;
|
|
431
|
+
let creditsSpent;
|
|
432
|
+
try {
|
|
433
|
+
const result = await engine.run(canvas, {});
|
|
434
|
+
outputsByNode = result.outputs_by_node;
|
|
435
|
+
creditsSpent = result.stats?.total_credits;
|
|
436
|
+
} catch (e) {
|
|
437
|
+
if (e instanceof ValidationError) return fail("validation", JSON.stringify(e.issues));
|
|
438
|
+
return fail("describe", e instanceof Error ? e.message : String(e));
|
|
439
|
+
}
|
|
440
|
+
try {
|
|
441
|
+
const blueprint = JSON.parse(await loadAssetText(outputsByNode.describe?.description, "describe output"));
|
|
442
|
+
const elements = parseElements(await loadAssetText(outputsByNode.select?.text, "selection output"));
|
|
443
|
+
return { blueprint, elements, creditsSpent };
|
|
444
|
+
} catch (e) {
|
|
445
|
+
return fail("read_outputs", e instanceof Error ? e.message : String(e));
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
var SOURCE_AD_ID_DESCRIPTION = "The winners-library ad this creative adapts (the `ad_id` from `baker winning-ads search`). The library's read of that ad (container, layout, colours, text blocks with their roles, persuasion mechanism, offer) is fetched and written into prompt.json as `reference`, the describe pass is told it so the two reads agree, and the source is recorded on the creative from this scaffold on. With it, the image is optional: the library's picture is used when none is given. Pass it whenever the reference came from the library.";
|
|
449
|
+
var PLATFORMS_DESCRIPTION = `Where the ad runs, comma-separated platforms or placements (e.g. \`meta,tiktok\`, \`google_display\`, \`meta_reels\`): every size they require is delivered, each kept clear of its own placement's interface (a 9:16 for TikTok keeps clear of TikTok's buttons). Platforms: ${AD_PLATFORMS.join(", ")}. Wins over --placements. Fixed banner sizes (728x90\u2026) are listed in the report, not made.`;
|
|
450
|
+
var SOURCE_PLATFORM_DESCRIPTION = `Which platform the library ad is on: ${LIBRARY_PLATFORMS.join("|")} (default meta).`;
|
|
451
|
+
var TARGET_ADSET_DESCRIPTION = "The Meta ad set this ad will run in (an id from `baker ads meta adsets`). Who it reaches is read off its targeting, as `baker ads meta adsets --audience` reads it, and recorded in _definition.md as `targetAdSet` and `viewer`; the sizes and the render brief keep clear of its placements, and every run checks the ad against that viewer. Free, read before anything is billed. Start here whenever the ad is for a known ad set.";
|
|
452
|
+
var VIEWER_TEMPERATURE_DESCRIPTION = "With no ad set to read (no ad account, or not decided yet): how warm the viewer is, from the Knowledge (personas, funnel): cold (never heard of the brand), warm (knows the brand), hot (a customer). Recorded as `viewer` with `source: knowledge`. With --target-adset it corrects the temperature read off the ad set.";
|
|
453
|
+
var VIEWER_KNOWS_DESCRIPTION = "What the viewer already knows, comma-separated from brand,offer,product (e.g. `brand,offer`). Needs --viewer-temperature or --target-adset.";
|
|
454
|
+
var VIEWER_PLACEMENTS_DESCRIPTION = "Where the viewer meets the ad, comma-separated Meta placements (e.g. `instagram_feed,facebook_feed`, `instagram_stories`); default automatic (Advantage+, Reels included). The sizes keep clear of these placements' interface. Needs --viewer-temperature or --target-adset.";
|
|
455
|
+
var SOURCE_ADVERTISER_ID_DESCRIPTION = "The library advertiser id of the reference (the `advertiser_id` beside the ad in search results). Defaults to the one the library returns for the ad.";
|
|
456
|
+
registerSchema({
|
|
457
|
+
command: "canvas.scaffold-static-ad",
|
|
458
|
+
description: "Turn a reference image into a runnable static-ad canvas: billed image_describe + element-selection passes, then a canvas on which the image model renders the finished ad from prompt.json. Start here for a static ad adapted from a winning ad: pass `--source-ad-id <ad_id> --source-platform <platform>` from the search result, so the library's structured read grounds the describe pass (and so prompt.json) and the source is recorded on the creative; the image may then be omitted. A person in one ad is an invented, realistic person drawn from the description; `--avatar <handle>` (`baker avatars list`) only when the same actor must recur across ads.",
|
|
459
|
+
args: {
|
|
460
|
+
file: {
|
|
461
|
+
type: "positional",
|
|
462
|
+
required: false,
|
|
463
|
+
description: "Path or http(s) URL to the reference image. Optional with --source-ad-id: the library's picture is used."
|
|
464
|
+
},
|
|
465
|
+
"source-ad-id": { type: "string", required: false, description: SOURCE_AD_ID_DESCRIPTION },
|
|
466
|
+
"source-platform": {
|
|
467
|
+
type: "string",
|
|
468
|
+
required: false,
|
|
469
|
+
description: SOURCE_PLATFORM_DESCRIPTION,
|
|
470
|
+
enum: [...LIBRARY_PLATFORMS]
|
|
471
|
+
},
|
|
472
|
+
"source-advertiser-id": { type: "string", required: false, description: SOURCE_ADVERTISER_ID_DESCRIPTION },
|
|
473
|
+
context: {
|
|
474
|
+
type: "string",
|
|
475
|
+
required: false,
|
|
476
|
+
description: "Known provenance (advertiser, category, market, their brand palette) to ground the describe pass"
|
|
477
|
+
},
|
|
478
|
+
slug: {
|
|
479
|
+
type: "string",
|
|
480
|
+
required: false,
|
|
481
|
+
description: "Creative slug: writes src/creatives/<slug>/<slug>.canvas.json, prompt.json and _definition.md"
|
|
482
|
+
},
|
|
483
|
+
title: { type: "string", required: false, description: "Creative title for _definition.md (default: title-cased slug)" },
|
|
484
|
+
platform: {
|
|
485
|
+
type: "string",
|
|
486
|
+
required: false,
|
|
487
|
+
description: "Ad platform for _definition.md and the default placement set (meta|google|linkedin|tiktok|youtube|x|other; default meta)"
|
|
488
|
+
},
|
|
489
|
+
advertiser: {
|
|
490
|
+
type: "string",
|
|
491
|
+
required: false,
|
|
492
|
+
description: "Source advertiser name for _definition.md (default: the library ad's advertiser when --source-ad-id is given)"
|
|
493
|
+
},
|
|
494
|
+
placements: {
|
|
495
|
+
type: "string",
|
|
496
|
+
required: false,
|
|
497
|
+
description: "Formats delivered: meta_feed|meta_feed_stories|meta_all|linkedin|google_demandgen|tiktok|youtube, or none for a single base ad (default from --platform)"
|
|
498
|
+
},
|
|
499
|
+
platforms: { type: "string", required: false, description: PLATFORMS_DESCRIPTION },
|
|
500
|
+
aspect: { type: "string", required: false, description: "Force the lead format (else inferred from the image)" },
|
|
501
|
+
"target-adset": { type: "string", required: false, description: TARGET_ADSET_DESCRIPTION },
|
|
502
|
+
"viewer-temperature": {
|
|
503
|
+
type: "string",
|
|
504
|
+
required: false,
|
|
505
|
+
description: VIEWER_TEMPERATURE_DESCRIPTION,
|
|
506
|
+
enum: [...VIEWER_TEMPERATURE_VALUES]
|
|
507
|
+
},
|
|
508
|
+
"viewer-knows": { type: "string", required: false, description: VIEWER_KNOWS_DESCRIPTION },
|
|
509
|
+
"viewer-placements": { type: "string", required: false, description: VIEWER_PLACEMENTS_DESCRIPTION },
|
|
510
|
+
takes: {
|
|
511
|
+
type: "string",
|
|
512
|
+
required: false,
|
|
513
|
+
description: "Variants of the finished ad rendered (one request each) and judged, 1-3 (default 3). 1 skips the judge."
|
|
514
|
+
},
|
|
515
|
+
avatar: {
|
|
516
|
+
type: "string",
|
|
517
|
+
required: false,
|
|
518
|
+
description: "Cast company avatars as the ad's people, comma-separated in detection order (`marta` or `marta,joan`)"
|
|
519
|
+
},
|
|
520
|
+
out: { type: "string", required: false, description: "Output canvas path (default <image-dir>/static-ad.canvas.json)" },
|
|
521
|
+
"describe-model": { type: "string", required: false, description: "Override the image_describe model id" },
|
|
522
|
+
"select-model": { type: "string", required: false, description: "Override the element-selection text_generate model id" },
|
|
523
|
+
"gen-model": { type: "string", required: false, description: "Override the image_generate model id" }
|
|
524
|
+
}
|
|
525
|
+
});
|
|
526
|
+
async function lookupReference(args) {
|
|
527
|
+
const adId = args["source-ad-id"] ? String(args["source-ad-id"]).trim() : "";
|
|
528
|
+
if (!adId) return { status: "none" };
|
|
529
|
+
const platformResult = resolveSourcePlatform(args["source-platform"] ? String(args["source-platform"]) : void 0);
|
|
530
|
+
if (!platformResult.ok) return fail("invalid_source_platform", platformResult.message);
|
|
531
|
+
const platform = platformResult.platform;
|
|
532
|
+
const advertiserId = args["source-advertiser-id"] ? String(args["source-advertiser-id"]).trim() : void 0;
|
|
533
|
+
try {
|
|
534
|
+
const ad = await fetchLibraryReference(adId, platform);
|
|
535
|
+
return {
|
|
536
|
+
status: "grounded",
|
|
537
|
+
reference: libraryReferenceBlock(ad, { adId, platform, advertiserId }),
|
|
538
|
+
mediaUrl: ad.media_url ?? void 0
|
|
539
|
+
};
|
|
540
|
+
} catch (e) {
|
|
541
|
+
return { status: "unavailable", adId, platform, message: e instanceof Error ? e.message : String(e) };
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
async function scaffoldFromSpec(args, slug) {
|
|
545
|
+
if (!slug) return fail("missing_slug", "--spec needs --slug: an ad started from a spec is a creative.");
|
|
546
|
+
const specPath = path.resolve(process.cwd(), String(args.spec));
|
|
547
|
+
let started;
|
|
548
|
+
try {
|
|
549
|
+
started = readAdSpec(JSON.parse(await readFile(specPath, "utf8")));
|
|
550
|
+
} catch (e) {
|
|
551
|
+
return fail("invalid_spec", `${specPath} is not an ad spec: ${e instanceof Error ? e.message : String(e)}`);
|
|
552
|
+
}
|
|
553
|
+
const outPath = path.join(process.cwd(), "src", "creatives", slug, `${slug}.canvas.json`);
|
|
554
|
+
const dir = path.dirname(outPath);
|
|
555
|
+
const blueprintPath = path.join(dir, "prompt.json");
|
|
556
|
+
const definitionPath = path.join(dir, "_definition.md");
|
|
557
|
+
await enforceNewCreativeLimit(slug, outPath);
|
|
558
|
+
const existingDefinition = await fileExists(definitionPath) ? await readFile(definitionPath, "utf8") : null;
|
|
559
|
+
const who = await scaffoldViewer(args, existingDefinition, liveViewerLookups(process.cwd()).adSetViewer);
|
|
560
|
+
if (!who.ok) return fail("invalid_viewer", who.message);
|
|
561
|
+
await mkdir(dir, { recursive: true });
|
|
562
|
+
const workspaceRoot = await findBrandRoot(dir) ?? process.cwd();
|
|
563
|
+
const kit = await readStaticBrandKit(workspaceRoot);
|
|
564
|
+
const market = who.viewer?.market ?? marketFromCompanyDoc(await readFile(path.join(workspaceRoot, "COMPANY.md"), "utf8").catch(() => null));
|
|
565
|
+
const brand = brandBlock(kit);
|
|
566
|
+
const platform = resolvePlatform(args.platform ? String(args.platform) : void 0);
|
|
567
|
+
const placementsResult = resolvePlacements(args.placements ? String(args.placements) : void 0, platform);
|
|
568
|
+
if (!placementsResult.ok) return fail("invalid_placements", placementsResult.message);
|
|
569
|
+
const font = await brandFace(workspaceRoot, kit, (file) => toCanvasRelative(dir, file));
|
|
570
|
+
const genModel = pickImageModel(conceptClassOf(started), "generate");
|
|
571
|
+
const opts = {
|
|
572
|
+
genModel,
|
|
573
|
+
blueprintPath: "./prompt.json",
|
|
574
|
+
placements: placementsResult.placements,
|
|
575
|
+
...who.adPlacements ? { adPlacements: who.adPlacements } : {},
|
|
576
|
+
brand: { logoPath: kit.logo ? toCanvasRelative(dir, kit.logo) : void 0, ...font ? { font } : {} }
|
|
577
|
+
};
|
|
578
|
+
const report = staticAdReport({}, [], { ...opts, spec: started });
|
|
579
|
+
const spec = {
|
|
580
|
+
...started,
|
|
581
|
+
...brand ? { brand: { ...brand, ...started.brand } } : {},
|
|
582
|
+
formats: report.output_formats,
|
|
583
|
+
logo: Boolean(kit.logo),
|
|
584
|
+
...market ? { viewer: { ...started.viewer ?? { who: "the people this ad is for" }, market } } : {}
|
|
585
|
+
};
|
|
586
|
+
await writeFile(blueprintPath, `${JSON.stringify(spec, null, 2)}
|
|
587
|
+
`, "utf8");
|
|
588
|
+
const canvas = scaffoldStaticAd({}, [], { ...opts, spec });
|
|
589
|
+
const validation = await validateScaffoldedStaticAd(canvas, dir);
|
|
590
|
+
if (validation.blocking.length > 0) return fail("validation", validation.blocking.map((i) => i.message).join("; "));
|
|
591
|
+
await writeFile(outPath, `${JSON.stringify(canvas, null, 2)}
|
|
592
|
+
`, "utf8");
|
|
593
|
+
const title = args.title ? String(args.title) : titleFromSlug(slug);
|
|
594
|
+
const recorded = who.record ? { targetAdSet: who.targetAdSet, viewer: who.viewer } : {};
|
|
595
|
+
if (existingDefinition === null) {
|
|
596
|
+
const formats = resolveFormatList(report.output_formats);
|
|
597
|
+
await writeFile(definitionPath, buildCreativeDefinition({ title, kind: "static", platform, formats, ...recorded }), "utf8");
|
|
598
|
+
}
|
|
599
|
+
await syncCreativeDefinitionBestEffort({
|
|
600
|
+
slug,
|
|
601
|
+
title,
|
|
602
|
+
platform,
|
|
603
|
+
formats: resolveFormatList(report.output_formats),
|
|
604
|
+
canvas,
|
|
605
|
+
sourceSha: await computeSourceSha(outPath)
|
|
606
|
+
});
|
|
607
|
+
process.stdout.write(
|
|
608
|
+
`${JSON.stringify(
|
|
609
|
+
{
|
|
610
|
+
ok: true,
|
|
611
|
+
canvas_path: outPath,
|
|
612
|
+
prompt_path: blueprintPath,
|
|
613
|
+
definition_path: definitionPath,
|
|
614
|
+
output: canvas.output,
|
|
615
|
+
hints: [...who.notes, ...validation.hints],
|
|
616
|
+
...viewerOutput(who),
|
|
617
|
+
output_formats: report.output_formats,
|
|
618
|
+
stats: { total_nodes: canvas.nodes.length, describe_credits_spent: 0, run_estimated_credits: validation.estimatedCredits }
|
|
619
|
+
},
|
|
620
|
+
null,
|
|
621
|
+
2
|
|
622
|
+
)}
|
|
623
|
+
`
|
|
624
|
+
);
|
|
625
|
+
}
|
|
626
|
+
var scaffoldStaticAdCommand = defineCommand({
|
|
627
|
+
meta: {
|
|
628
|
+
name: "scaffold-static-ad",
|
|
629
|
+
description: "Turn a source/inspiration image into a runnable static-ad canvas. Runs billed passes \u2014 image_describe (read into prompt.json, the ad spec you rewrite) and an AI selection of the image's MAIN identity elements \u2014 then scaffolds a canvas on which the image model renders the FINISHED ad: up to three variants, one request each, from a brief compiled from prompt.json, the copy quoted verbatim, the brand's typeface shown as a specimen and the logo from src/brand/logos/ as a reference (only when prompt.json has \"logo\": true). A prefilter drops variants whose words or placement fail the checks, and a judge compares the rest pairwise against the brief; the chosen picture is delivered at the lead format (4:5 for a feed) and every other placement format is that ad re-laid out for its own frame by one image request, with the chosen picture as the reference: the same words, people, product and logo, re-scaled for the frame, never cut or shrunk onto a background. The run reads every word back and refuses to call the ad ready when one is off. No copy means the picture is the ad. Pass --placements none for a single base ad, or a preset to pick the set. Edit prompt.json and drop the real assets, then `baker canvas run` it. A person who appears in this one ad is drawn as an invented, realistic person from the description \u2014 no slot to fill; pass `--avatar <handle>` (`baker avatars list`) only when the same actor has to recur across several ads. Never a photo of anyone real. A reference from the library: pass `--source-ad-id <ad_id> --source-platform <platform>` so its structured read grounds the describe pass and the source is recorded on the creative."
|
|
630
|
+
},
|
|
631
|
+
args: {
|
|
632
|
+
file: {
|
|
633
|
+
type: "positional",
|
|
634
|
+
required: false,
|
|
635
|
+
description: "Path or http(s) URL to the source/inspiration image (optional with --source-ad-id)"
|
|
636
|
+
},
|
|
637
|
+
"source-ad-id": { type: "string", description: SOURCE_AD_ID_DESCRIPTION },
|
|
638
|
+
spec: {
|
|
639
|
+
type: "string",
|
|
640
|
+
description: "Start from an ad spec (a prompt.json) instead of a reference picture: no describe pass, no source. `baker creatives make` writes one from an idea when no proven ad fits. Needs --slug."
|
|
641
|
+
},
|
|
642
|
+
"source-platform": { type: "string", description: SOURCE_PLATFORM_DESCRIPTION },
|
|
643
|
+
"source-advertiser-id": { type: "string", description: SOURCE_ADVERTISER_ID_DESCRIPTION },
|
|
644
|
+
context: { type: "string", description: "Known provenance (advertiser, category, market) to ground the describe" },
|
|
645
|
+
out: { type: "string", description: "Output canvas path (default <image-dir>/static-ad.canvas.json)" },
|
|
646
|
+
slug: {
|
|
647
|
+
type: "string",
|
|
648
|
+
description: "Creative slug \u2014 writes the canvas to src/creatives/<slug>/<slug>.canvas.json (repo convention)"
|
|
649
|
+
},
|
|
650
|
+
title: { type: "string", description: "Creative title for _definition.md (default: title-cased slug)" },
|
|
651
|
+
platform: {
|
|
652
|
+
type: "string",
|
|
653
|
+
description: "Ad platform (meta|google|linkedin|tiktok|youtube|x|other; default meta). Sets _definition.md AND, unless --placements is given, the formats the ad is delivered in (meta \u2192 4:5+9:16, google \u2192 1:1+4:5+16:9, linkedin \u2192 1:1, tiktok \u2192 9:16, youtube \u2192 16:9; x/other \u2192 one format)."
|
|
654
|
+
},
|
|
655
|
+
advertiser: {
|
|
656
|
+
type: "string",
|
|
657
|
+
description: "Source advertiser recorded in _definition.md (default: the library ad's advertiser)"
|
|
658
|
+
},
|
|
659
|
+
"describe-model": { type: "string", description: "Override the image_describe model id" },
|
|
660
|
+
"select-model": { type: "string", description: "Override the text_generate model id for element selection" },
|
|
661
|
+
"gen-model": { type: "string", description: "Override the image_generate model id" },
|
|
662
|
+
aspect: {
|
|
663
|
+
type: "string",
|
|
664
|
+
description: "Force the ad's lead format (else inferred from the image). Delivered exactly: the ad renders at the model's nearest shape and is cropped to it."
|
|
665
|
+
},
|
|
666
|
+
"target-adset": { type: "string", description: TARGET_ADSET_DESCRIPTION },
|
|
667
|
+
"viewer-temperature": { type: "string", description: VIEWER_TEMPERATURE_DESCRIPTION },
|
|
668
|
+
"viewer-knows": { type: "string", description: VIEWER_KNOWS_DESCRIPTION },
|
|
669
|
+
"viewer-placements": { type: "string", description: VIEWER_PLACEMENTS_DESCRIPTION },
|
|
670
|
+
placements: {
|
|
671
|
+
type: "string",
|
|
672
|
+
description: "Formats the ad is delivered in. One of meta_feed | meta_feed_stories | meta_all | linkedin | google_demandgen | tiktok | youtube, or `none` for a single base ad. Default: derived from --platform (meta \u2192 feed + stories). Every format is made from the one chosen picture: the picture itself (the 4:5 when it is delivered), or that ad re-laid out for the format's own frame (one billed request per format)."
|
|
673
|
+
},
|
|
674
|
+
platforms: { type: "string", description: PLATFORMS_DESCRIPTION },
|
|
675
|
+
takes: {
|
|
676
|
+
type: "string",
|
|
677
|
+
description: "Variants of the finished ad to render (one request each) and judge, 1-3 (default 3). 1 skips the judge."
|
|
678
|
+
},
|
|
679
|
+
avatar: {
|
|
680
|
+
type: "string",
|
|
681
|
+
description: "Cast company avatars as the ad's people \u2014 pass this when the same actor has to recur across several ads (a one-off person needs none: they are drawn from the description). One handle, or several comma-separated in the order the people were detected (`--avatar marta` / `--avatar marta,joan`). Each person slot grounds on that avatar's identity sheet and prompt.json describes them in the avatar's own words, so the ad shows the company's cast instead of the source ad's. `baker avatars list` shows who there is; checked before anything is billed."
|
|
682
|
+
}
|
|
683
|
+
},
|
|
684
|
+
async run({ args }) {
|
|
685
|
+
const slug = args.slug ? String(args.slug) : void 0;
|
|
686
|
+
if (slug && !isValidScaffoldSlug(slug)) {
|
|
687
|
+
process.stderr.write(
|
|
688
|
+
`${JSON.stringify({ ok: false, error: { code: "invalid_slug", message: "--slug must be lowercase kebab (a-z, 0-9, hyphens), max 100 chars" } }, null, 2)}
|
|
689
|
+
`
|
|
690
|
+
);
|
|
691
|
+
process.exit(2);
|
|
692
|
+
}
|
|
693
|
+
if (args.spec) return scaffoldFromSpec(args, slug);
|
|
694
|
+
const lookup = await lookupReference(args);
|
|
695
|
+
if (lookup.status === "unavailable") {
|
|
696
|
+
process.stderr.write(
|
|
697
|
+
`[warn] winners-library ad ${lookup.adId} (${lookup.platform}) could not be read (${lookup.message}); scaffolding without its structured read
|
|
698
|
+
`
|
|
699
|
+
);
|
|
700
|
+
}
|
|
701
|
+
const reference = lookup.status === "grounded" ? lookup.reference : void 0;
|
|
702
|
+
const fileArg = args.file ? String(args.file) : void 0;
|
|
703
|
+
const sourceFile = fileArg ?? (lookup.status === "grounded" ? lookup.mediaUrl : void 0);
|
|
704
|
+
if (!sourceFile) {
|
|
705
|
+
if (lookup.status === "none") return fail("missing_source", "Pass the reference image, or --source-ad-id <ad_id> to use a library ad.");
|
|
706
|
+
if (lookup.status === "unavailable") return fail("source_unavailable", `No image given and the library ad could not be read (${lookup.message}).`);
|
|
707
|
+
return fail("source_unavailable", `The library holds no picture for ad ${reference?.ad_id}; pass the image.`);
|
|
708
|
+
}
|
|
709
|
+
const { imageIsUrl, imageSource, outPath, blueprintPath, definitionPath, referencesDir } = resolveScaffoldStaticAdPaths(sourceFile, args.out ? String(args.out) : void 0, process.cwd(), slug);
|
|
710
|
+
if (slug) await enforceNewCreativeLimit(slug, outPath);
|
|
711
|
+
const existingDefinition = definitionPath && await fileExists(definitionPath) ? await readFile(definitionPath, "utf8") : null;
|
|
712
|
+
const who = await scaffoldViewer(args, existingDefinition, liveViewerLookups(process.cwd()).adSetViewer);
|
|
713
|
+
if (!who.ok) return fail("invalid_viewer", who.message);
|
|
714
|
+
const fitRoot = findWorkspaceRoot(process.cwd()) ?? process.cwd();
|
|
715
|
+
const fit = reference || lookup.status === "unavailable" ? await readCachedFit(fitRoot, reference?.platform ?? (lookup.status === "unavailable" ? lookup.platform : "meta"), reference?.ad_id ?? (lookup.status === "unavailable" ? lookup.adId : "")) : null;
|
|
716
|
+
const fitProblems = fit ? fitHints(fit, reference?.ad_id ?? "").filter((h) => h.startsWith("Pick another reference")) : [];
|
|
717
|
+
if (fitProblems.length > 0) return fail("concept_does_not_fit", fitProblems.join(" "));
|
|
718
|
+
await mkdir(path.dirname(outPath), { recursive: true });
|
|
719
|
+
let models;
|
|
720
|
+
try {
|
|
721
|
+
models = resolveModels(args);
|
|
722
|
+
} catch (e) {
|
|
723
|
+
return fail("unknown_model", e instanceof Error ? e.message : String(e));
|
|
724
|
+
}
|
|
725
|
+
const { describeModel, selectModel } = models;
|
|
726
|
+
const cast = await resolveCastAvatars(args.avatar);
|
|
727
|
+
if ("error" in cast) return fail("avatar", cast.error);
|
|
728
|
+
let durableSourceUrl;
|
|
729
|
+
if (referencesDir) {
|
|
730
|
+
const client = buildBackendClient();
|
|
731
|
+
if (client) {
|
|
732
|
+
try {
|
|
733
|
+
durableSourceUrl = await uploadSourceAsReference(imageSource, imageIsUrl, client);
|
|
734
|
+
} catch (e) {
|
|
735
|
+
return fail("source_unavailable", e instanceof Error ? e.message : String(e));
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
const describeCanvas = buildDescribeCanvas(
|
|
740
|
+
durableSourceUrl ?? imageSource,
|
|
741
|
+
durableSourceUrl !== void 0 || imageIsUrl,
|
|
742
|
+
describeModel,
|
|
743
|
+
selectModel,
|
|
744
|
+
referenceDescribeContext(reference, args.context ? String(args.context) : void 0)
|
|
745
|
+
);
|
|
746
|
+
const vision = await runVisionPasses(describeCanvas);
|
|
747
|
+
const { creditsSpent } = vision;
|
|
748
|
+
const blueprint = mergeReferenceIntoBlueprint(vision.blueprint, reference);
|
|
749
|
+
const persona = existingDefinition?.match(/^persona:\s*"?([^"\n]+)"?\s*$/m)?.[1];
|
|
750
|
+
const elements = castAvatarsOnStaticElements(vision.elements, cast.avatars, persona);
|
|
751
|
+
const uncast = staticAvatarsNotCast(elements, cast.handles);
|
|
752
|
+
const canvasDir = path.dirname(outPath);
|
|
753
|
+
const workspaceRoot = await findBrandRoot(canvasDir) ?? process.cwd();
|
|
754
|
+
const kit = await readStaticBrandKit(workspaceRoot);
|
|
755
|
+
const market = who.viewer?.market ?? marketFromCompanyDoc(await readFile(path.join(workspaceRoot, "COMPANY.md"), "utf8").catch(() => null));
|
|
756
|
+
const brand = brandBlock(kit);
|
|
757
|
+
let canvasImagePath = imageSource;
|
|
758
|
+
let canvasImageIsUrl = imageIsUrl;
|
|
759
|
+
let canvasBlueprintPath = blueprintPath;
|
|
760
|
+
if (referencesDir) {
|
|
761
|
+
canvasBlueprintPath = "./prompt.json";
|
|
762
|
+
if (durableSourceUrl) {
|
|
763
|
+
canvasImagePath = durableSourceUrl;
|
|
764
|
+
canvasImageIsUrl = true;
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
const definitionPlatform = resolvePlatform(args.platform ? String(args.platform) : void 0);
|
|
768
|
+
const placementsResult = resolvePlacements(
|
|
769
|
+
args.placements ? String(args.placements) : void 0,
|
|
770
|
+
definitionPlatform
|
|
771
|
+
);
|
|
772
|
+
if (!placementsResult.ok) return fail("invalid_placements", placementsResult.message);
|
|
773
|
+
const placements = placementsResult.placements;
|
|
774
|
+
const platformsResult = resolvePlatforms(args.platforms ? String(args.platforms) : void 0);
|
|
775
|
+
if (!platformsResult.ok) return fail("invalid_platforms", platformsResult.message);
|
|
776
|
+
const relative = (file) => file ? toCanvasRelative(canvasDir, file) : void 0;
|
|
777
|
+
const takes = args.takes !== void 0 ? Number.parseInt(String(args.takes), 10) : void 0;
|
|
778
|
+
if (takes !== void 0 && !(takes >= 1 && takes <= 3)) return fail("invalid_takes", "--takes must be 1, 2 or 3");
|
|
779
|
+
const font = await brandFace(workspaceRoot, kit, (file) => toCanvasRelative(canvasDir, file));
|
|
780
|
+
const genModel = models.genModel ?? pickImageModel(conceptClassOf(staticAdSpec(blueprint, elements)), "generate");
|
|
781
|
+
const opts = {
|
|
782
|
+
genModel,
|
|
783
|
+
imagePath: canvasImagePath,
|
|
784
|
+
imageIsUrl: canvasImageIsUrl,
|
|
785
|
+
blueprintPath: canvasBlueprintPath,
|
|
786
|
+
aspectRatio: args.aspect ? String(args.aspect) : void 0,
|
|
787
|
+
placements,
|
|
788
|
+
...platformsResult.platforms ? { platforms: platformsResult.platforms } : {},
|
|
789
|
+
...who.adPlacements ? { adPlacements: who.adPlacements } : {},
|
|
790
|
+
brand: { logoPath: relative(kit.logo), ...font ? { font } : {} },
|
|
791
|
+
takes
|
|
792
|
+
};
|
|
793
|
+
let canvas;
|
|
794
|
+
let report;
|
|
795
|
+
let conceptNotes = [];
|
|
796
|
+
try {
|
|
797
|
+
report = staticAdReport(blueprint, elements, { ...opts, spec: staticAdSpec(blueprint, elements, { logo: Boolean(kit.logo) }) });
|
|
798
|
+
const spec = staticAdSpec(blueprint, elements, {
|
|
799
|
+
brand,
|
|
800
|
+
formats: report.output_formats,
|
|
801
|
+
logo: Boolean(kit.logo),
|
|
802
|
+
...fit ? { fit: conceptFromFit(fit, reference?.ad_id ?? "") } : {},
|
|
803
|
+
...market ? { market } : {}
|
|
804
|
+
});
|
|
805
|
+
await writeFile(blueprintPath, `${JSON.stringify(spec, null, 2)}
|
|
806
|
+
`, "utf8");
|
|
807
|
+
conceptNotes = conceptProblems(spec).map(
|
|
808
|
+
(p) => `CONCEPT: ${p} Then \`baker canvas run\`; until then it refuses to render.`
|
|
809
|
+
);
|
|
810
|
+
if (!fit && reference) {
|
|
811
|
+
conceptNotes.push(
|
|
812
|
+
`No fit was made of this reference: \`baker winning-ads fit ${reference.ad_id}\` says what it wins on and what we have for it, and re-scaffolding seeds prompt.json's \`concept\` from it.`
|
|
813
|
+
);
|
|
814
|
+
}
|
|
815
|
+
canvas = scaffoldStaticAd(blueprint, elements, { ...opts, spec });
|
|
816
|
+
} catch (e) {
|
|
817
|
+
return fail("scaffold", e instanceof Error ? e.message : String(e));
|
|
818
|
+
}
|
|
819
|
+
const validation = await validateScaffoldedStaticAd(canvas, path.dirname(outPath));
|
|
820
|
+
if (validation.blocking.length > 0) {
|
|
821
|
+
process.stderr.write(
|
|
822
|
+
`${JSON.stringify({ ok: false, error: { code: "validation", issues: validation.blocking } }, null, 2)}
|
|
823
|
+
`
|
|
824
|
+
);
|
|
825
|
+
process.exit(2);
|
|
826
|
+
}
|
|
827
|
+
await writeFile(outPath, `${JSON.stringify(canvas, null, 2)}
|
|
828
|
+
`, "utf8");
|
|
829
|
+
const sourceFields = reference ? {
|
|
830
|
+
sourceAdId: reference.ad_id,
|
|
831
|
+
sourcePlatform: reference.platform,
|
|
832
|
+
...reference.advertiser_id ? { sourceAdvertiserId: reference.advertiser_id } : {}
|
|
833
|
+
} : lookup.status === "unavailable" ? {
|
|
834
|
+
sourceAdId: lookup.adId,
|
|
835
|
+
sourcePlatform: lookup.platform,
|
|
836
|
+
...args["source-advertiser-id"] ? { sourceAdvertiserId: String(args["source-advertiser-id"]).trim() } : {}
|
|
837
|
+
} : {};
|
|
838
|
+
const recorded = who.record ? { targetAdSet: who.targetAdSet, viewer: who.viewer } : {};
|
|
839
|
+
if (definitionPath && existingDefinition !== null && who.record) {
|
|
840
|
+
await writeFile(definitionPath, setDefinitionViewer(existingDefinition, recorded), "utf8");
|
|
841
|
+
}
|
|
842
|
+
if (definitionPath && existingDefinition === null) {
|
|
843
|
+
await writeFile(
|
|
844
|
+
definitionPath,
|
|
845
|
+
buildCreativeDefinition({
|
|
846
|
+
title: args.title ? String(args.title) : titleFromSlug(slug ?? ""),
|
|
847
|
+
kind: "static",
|
|
848
|
+
platform: definitionPlatform,
|
|
849
|
+
formats: resolveFormatList(report.output_formats),
|
|
850
|
+
sourceReferenceUrl: durableSourceUrl ?? (imageIsUrl ? imageSource : void 0),
|
|
851
|
+
sourceAdvertiser: args.advertiser ? String(args.advertiser) : reference?.advertiser ?? (args.context ? String(args.context) : void 0),
|
|
852
|
+
...sourceFields,
|
|
853
|
+
sourceKind: "image",
|
|
854
|
+
...recorded,
|
|
855
|
+
description: describeBlueprintIntent(blueprint)
|
|
856
|
+
}),
|
|
857
|
+
"utf8"
|
|
858
|
+
);
|
|
859
|
+
}
|
|
860
|
+
if (slug) {
|
|
861
|
+
await syncCreativeDefinitionBestEffort({
|
|
862
|
+
slug,
|
|
863
|
+
title: args.title ? String(args.title) : titleFromSlug(slug),
|
|
864
|
+
platform: definitionPlatform,
|
|
865
|
+
formats: resolveFormatList(report.output_formats),
|
|
866
|
+
sourceReferenceUrl: durableSourceUrl ?? (imageIsUrl ? imageSource : void 0),
|
|
867
|
+
...sourceFields,
|
|
868
|
+
canvas,
|
|
869
|
+
sourceSha: await computeSourceSha(outPath)
|
|
870
|
+
});
|
|
871
|
+
}
|
|
872
|
+
const hints = [
|
|
873
|
+
...who.notes,
|
|
874
|
+
...lookup.status === "unavailable" ? [
|
|
875
|
+
`REFERENCE NOT READ: the winners library could not return ad ${lookup.adId} (${lookup.message}). prompt.json is read from the picture alone and has no \`reference\` block; the source ids are still recorded. Check the ad id and platform, or continue from the picture.`
|
|
876
|
+
] : [],
|
|
877
|
+
...uncast.length ? [
|
|
878
|
+
`NOT CAST: ${uncast.map((h) => `\`${h}\``).join(", ")} \u2014 the element selection found fewer people than avatars passed, so ${uncast.length === 1 ? "this avatar plays" : "these avatars play"} nobody in this ad. Tell the user who is cast and who is not.`
|
|
879
|
+
] : [],
|
|
880
|
+
...validation.hints,
|
|
881
|
+
...conceptNotes,
|
|
882
|
+
...report.describe_gaps.map(
|
|
883
|
+
(gap) => gap === "winning_mechanisms" ? "The describe pass named no winning mechanism. Look at the source ad, add a `mechanism` entry to prompt.json ({ device, why_it_works }) and rebuild that device for our brand; a rewrite without it keeps the look and loses what made the ad work." : "The describe pass recorded no typefaces. The designed lines are set in the brand's font when one loads (src/brand/fonts/, tokens.json or BRAND.md); with none, name our face in prompt.json's `brand.typeface` (for example \"a heavy geometric sans\"), or they are set in a plain sans."
|
|
884
|
+
)
|
|
885
|
+
];
|
|
886
|
+
process.stdout.write(
|
|
887
|
+
`${JSON.stringify(
|
|
888
|
+
{
|
|
889
|
+
ok: true,
|
|
890
|
+
canvas_path: outPath,
|
|
891
|
+
prompt_path: blueprintPath,
|
|
892
|
+
definition_path: definitionPath ?? void 0,
|
|
893
|
+
source_reference: durableSourceUrl ?? void 0,
|
|
894
|
+
...reference ? {
|
|
895
|
+
reference: {
|
|
896
|
+
ad_id: reference.ad_id,
|
|
897
|
+
platform: reference.platform,
|
|
898
|
+
advertiser_id: reference.advertiser_id,
|
|
899
|
+
format_pattern: reference.format_pattern,
|
|
900
|
+
mechanism: reference.message.mechanism
|
|
901
|
+
}
|
|
902
|
+
} : {},
|
|
903
|
+
output: canvas.output,
|
|
904
|
+
...hints.length ? { hints } : {},
|
|
905
|
+
models: { describe: describeModel, select: selectModel, gen: opts.genModel },
|
|
906
|
+
aspect_ratio: report.aspect_ratio,
|
|
907
|
+
placements: report.placements,
|
|
908
|
+
...viewerOutput(who),
|
|
909
|
+
output_formats: report.output_formats,
|
|
910
|
+
stats: {
|
|
911
|
+
total_nodes: canvas.nodes.length,
|
|
912
|
+
describe_credits_spent: creditsSpent,
|
|
913
|
+
run_estimated_credits: validation.estimatedCredits
|
|
914
|
+
},
|
|
915
|
+
checklist: {
|
|
916
|
+
edit_prompt: `Edit ${path.basename(blueprintPath)}: it is the ad spec, read from your image, to rewrite into the ad you want. \`viewer\` (who sees it and what they already know), \`message\` (the one thing it tells them), \`copy\` (each line, \`in_scene\` or \`designed\`), \`scene\`, \`references\` (one picture each, by role), \`colors\` (each tied to an object, from the brand) and an optional \`direction\`. You never write a model prompt: every render prompt is compiled from this file and shown on its node.${reference ? " Its `reference` block is the library's read of the source ad (container, layout, mechanism, offer, text blocks): keep it as the account of why the ad won, and rebuild it for our brand." : ""}`,
|
|
917
|
+
mechanism: report.winning_mechanisms,
|
|
918
|
+
rebuild_the_mechanism: "`mechanism` is WHY the source ad works. Rebuild each device for our brand in prompt.json's copy and scene (a rhyme stays a rhyme in our words, a before/after stays a before/after of our product); never copy the source's literal copy.",
|
|
919
|
+
assets_to_supply: report.elements,
|
|
920
|
+
summary: report.summary,
|
|
921
|
+
text: staticTextNote(report),
|
|
922
|
+
font: report.font,
|
|
923
|
+
in_scene_text: report.in_scene_text,
|
|
924
|
+
logo: report.logo.why,
|
|
925
|
+
takes: report.takes === 1 ? "1 finished ad is rendered and used as it is (no judge)." : `${report.takes} variants of the finished ad are rendered, one request each on its own direction. A prefilter drops any whose words or placement fail the checks, and the judge compares the rest pairwise against the brief (words, picture, space, one idea, the brief itself, brand); the winner becomes the ad and the others stay in the run as options the person can switch to (\`baker canvas run --use-variant\`).`,
|
|
926
|
+
pictures: "The reference's own people, products, animals and badges are not slots to fill: they are the source's world. A person is drawn from the description, or cast from a company Avatar (--avatar <handle>) when they recur across ads; never a found photo. To show our own product or another picture, add it to prompt.json's `references` with its `image` (a path from this folder, or a URL): every run wires it.",
|
|
927
|
+
formats: staticFormatsNote(report, opts.genModel),
|
|
928
|
+
viewer: viewerNote(who),
|
|
929
|
+
note: `Populate as you go: for each [TODO] ingest slot, source its real asset and wire it into the slot right away, one at a time. The logo is optional and never a slot to fill: it is given to the model only when prompt.json has \`"logo": true\` and src/brand/logos/ has the real file; never fetch or draw a stand-in. When every slot is filled, \`baker canvas validate\` then \`baker canvas run\`. Running generates billed images: it is not free.`
|
|
930
|
+
}
|
|
931
|
+
},
|
|
932
|
+
null,
|
|
933
|
+
2
|
|
934
|
+
)}
|
|
935
|
+
`
|
|
936
|
+
);
|
|
937
|
+
}
|
|
938
|
+
});
|
|
939
|
+
export {
|
|
940
|
+
PLATFORM_PLACEMENTS,
|
|
941
|
+
buildDescribeCanvas,
|
|
942
|
+
resolvePlacements,
|
|
943
|
+
resolvePlatforms,
|
|
944
|
+
scaffoldStaticAdCommand,
|
|
945
|
+
uploadSourceAsReference,
|
|
946
|
+
validateScaffoldedStaticAd
|
|
947
|
+
};
|
|
948
|
+
//# sourceMappingURL=scaffold-static-ad-SUEYXLOR.js.map
|