@koda-sl/baker-cli 0.386.0 → 0.387.0-dev.3bafd569e
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 +1090 -211
- package/canvas/tiktok-captions-composition/index.html +5 -6
- package/canvas/tiktok-captions-composition/meta.json +5 -0
- package/dist/account-CLOKMTTC.js +49 -0
- package/dist/account-CLOKMTTC.js.map +1 -0
- package/dist/account-V5Y2QHAK.js +79 -0
- package/dist/account-V5Y2QHAK.js.map +1 -0
- package/dist/account-XFK6VX2R.js +80 -0
- package/dist/account-XFK6VX2R.js.map +1 -0
- package/dist/account-reads-S5VXX2QU.js +218 -0
- package/dist/account-reads-S5VXX2QU.js.map +1 -0
- package/dist/account-writes-Y7EQXDXF.js +66 -0
- package/dist/account-writes-Y7EQXDXF.js.map +1 -0
- package/dist/accounts-7YD457YN.js +114 -0
- package/dist/accounts-7YD457YN.js.map +1 -0
- package/dist/accounts-BJ3X5JQT.js +115 -0
- package/dist/accounts-BJ3X5JQT.js.map +1 -0
- package/dist/accounts-LOJ4WLIX.js +77 -0
- package/dist/accounts-LOJ4WLIX.js.map +1 -0
- package/dist/accounts-RYBDLQ6H.js +75 -0
- package/dist/accounts-RYBDLQ6H.js.map +1 -0
- package/dist/accounts-UO4XBWM2.js +611 -0
- package/dist/accounts-UO4XBWM2.js.map +1 -0
- package/dist/actions-3AW3R63U.js +55 -0
- package/dist/actions-3AW3R63U.js.map +1 -0
- package/dist/active-entities-R6GZIO6Z.js +103 -0
- package/dist/active-entities-R6GZIO6Z.js.map +1 -0
- package/dist/activities-ESBF3GFS.js +74 -0
- package/dist/activities-ESBF3GFS.js.map +1 -0
- package/dist/ad-group-writes-I225OYDZ.js +170 -0
- package/dist/ad-group-writes-I225OYDZ.js.map +1 -0
- package/dist/ad-groups-O35MWNF6.js +68 -0
- package/dist/ad-groups-O35MWNF6.js.map +1 -0
- package/dist/ad-writes-SS5YZO5W.js +174 -0
- package/dist/ad-writes-SS5YZO5W.js.map +1 -0
- package/dist/add-43DUOVNR.js +104 -0
- package/dist/add-43DUOVNR.js.map +1 -0
- package/dist/add-IE5WDELB.js +302 -0
- package/dist/add-IE5WDELB.js.map +1 -0
- package/dist/add-QZHAWUBA.js +97 -0
- package/dist/add-QZHAWUBA.js.map +1 -0
- package/dist/add-TGQIVVXH.js +105 -0
- package/dist/add-TGQIVVXH.js.map +1 -0
- package/dist/add-accounts-6QYPOPR2.js +91 -0
- package/dist/add-accounts-6QYPOPR2.js.map +1 -0
- package/dist/ads-AUSRB4GU.js +128 -0
- package/dist/ads-AUSRB4GU.js.map +1 -0
- package/dist/ads-COYOTEKE.js +77 -0
- package/dist/ads-COYOTEKE.js.map +1 -0
- package/dist/ads-DZ4N5INZ.js +40 -0
- package/dist/ads-DZ4N5INZ.js.map +1 -0
- package/dist/ads-XZCMSPM5.js +113 -0
- package/dist/ads-XZCMSPM5.js.map +1 -0
- package/dist/adsets-AKR75THA.js +176 -0
- package/dist/adsets-AKR75THA.js.map +1 -0
- package/dist/advertisers-52FMMBTQ.js +120 -0
- package/dist/advertisers-52FMMBTQ.js.map +1 -0
- package/dist/advertisers-BCGKUMEH.js +125 -0
- package/dist/advertisers-BCGKUMEH.js.map +1 -0
- package/dist/analytics-JPDBKETM.js +1980 -0
- package/dist/analytics-JPDBKETM.js.map +1 -0
- package/dist/analytics-YVQ6H4BG.js +433 -0
- package/dist/analytics-YVQ6H4BG.js.map +1 -0
- package/dist/animate-JXIT77Y5.js +480 -0
- package/dist/animate-JXIT77Y5.js.map +1 -0
- package/dist/assign-66NTWTR2.js +77 -0
- package/dist/assign-66NTWTR2.js.map +1 -0
- package/dist/audience-size-LVQJWQAS.js +94 -0
- package/dist/audience-size-LVQJWQAS.js.map +1 -0
- package/dist/audiences-DC3IOG34.js +85 -0
- package/dist/audiences-DC3IOG34.js.map +1 -0
- package/dist/audiences-NEW3LLQR.js +268 -0
- package/dist/audiences-NEW3LLQR.js.map +1 -0
- package/dist/audiences-NYGMBGQ3.js +79 -0
- package/dist/audiences-NYGMBGQ3.js.map +1 -0
- package/dist/audit-UIPMTI5C.js +88 -0
- package/dist/audit-UIPMTI5C.js.map +1 -0
- package/dist/audit-XGN2OFLN.js +151 -0
- package/dist/audit-XGN2OFLN.js.map +1 -0
- package/dist/autocomplete-LVPDV3JE.js +111 -0
- package/dist/autocomplete-LVPDV3JE.js.map +1 -0
- package/dist/avatars-S6NSLMJK.js +38 -0
- package/dist/avatars-S6NSLMJK.js.map +1 -0
- package/dist/bid-pricing-2LYULXU2.js +99 -0
- package/dist/bid-pricing-2LYULXU2.js.map +1 -0
- package/dist/brand-WWHUZ72R.js +22 -0
- package/dist/brand-WWHUZ72R.js.map +1 -0
- package/dist/brief-K3FILESK.js +492 -0
- package/dist/brief-K3FILESK.js.map +1 -0
- package/dist/businesses-J7OP7MSK.js +53 -0
- package/dist/businesses-J7OP7MSK.js.map +1 -0
- package/dist/campaign-groups-N4TZ2F3L.js +95 -0
- package/dist/campaign-groups-N4TZ2F3L.js.map +1 -0
- package/dist/campaign-writes-5XA727KI.js +170 -0
- package/dist/campaign-writes-5XA727KI.js.map +1 -0
- package/dist/campaign-writes-7YFRQIQT.js +165 -0
- package/dist/campaign-writes-7YFRQIQT.js.map +1 -0
- package/dist/campaigns-JPYNVFQI.js +76 -0
- package/dist/campaigns-JPYNVFQI.js.map +1 -0
- package/dist/campaigns-L43ZUKAI.js +107 -0
- package/dist/campaigns-L43ZUKAI.js.map +1 -0
- package/dist/campaigns-OD7Z332M.js +109 -0
- package/dist/campaigns-OD7Z332M.js.map +1 -0
- package/dist/campaigns-R4DXIR2Q.js +110 -0
- package/dist/campaigns-R4DXIR2Q.js.map +1 -0
- package/dist/canvas-57K7AGAP.js +46 -0
- package/dist/canvas-57K7AGAP.js.map +1 -0
- package/dist/capabilities-FVTZAFPV.js +144 -0
- package/dist/capabilities-FVTZAFPV.js.map +1 -0
- package/dist/cards-7H32TNMO.js +85 -0
- package/dist/cards-7H32TNMO.js.map +1 -0
- package/dist/catalog-OTICZPJA.js +64 -0
- package/dist/catalog-OTICZPJA.js.map +1 -0
- package/dist/catalogs-ABCQLCDU.js +128 -0
- package/dist/catalogs-ABCQLCDU.js.map +1 -0
- package/dist/changes-7ZIGNUW6.js +135 -0
- package/dist/changes-7ZIGNUW6.js.map +1 -0
- package/dist/chatgpt-B3NHRJUE.js +47 -0
- package/dist/chatgpt-B3NHRJUE.js.map +1 -0
- package/dist/chats-E7DBRHBF.js +262 -0
- package/dist/chats-E7DBRHBF.js.map +1 -0
- package/dist/chunk-2CV7LX23.js +474 -0
- package/dist/chunk-2CV7LX23.js.map +1 -0
- package/dist/chunk-2HCI5BXB.js +479 -0
- package/dist/chunk-2HCI5BXB.js.map +1 -0
- package/dist/chunk-2SQJL7ZN.js +56 -0
- package/dist/chunk-2SQJL7ZN.js.map +1 -0
- package/dist/chunk-2Y5V23PU.js +29 -0
- package/dist/chunk-2Y5V23PU.js.map +1 -0
- package/dist/chunk-32CPGJPL.js +149 -0
- package/dist/chunk-32CPGJPL.js.map +1 -0
- package/dist/chunk-3ACMDRSE.js +39 -0
- package/dist/chunk-3ACMDRSE.js.map +1 -0
- package/dist/chunk-3N4PZIIV.js +304 -0
- package/dist/chunk-3N4PZIIV.js.map +1 -0
- package/dist/chunk-3U7TDBIB.js +275 -0
- package/dist/chunk-3U7TDBIB.js.map +1 -0
- package/dist/chunk-3UDSYYND.js +42 -0
- package/dist/chunk-3UDSYYND.js.map +1 -0
- package/dist/chunk-3ZWWXAQZ.js +150 -0
- package/dist/chunk-3ZWWXAQZ.js.map +1 -0
- package/dist/chunk-4MH6LONO.js +274 -0
- package/dist/chunk-4MH6LONO.js.map +1 -0
- package/dist/chunk-4NZ47VXO.js +137 -0
- package/dist/chunk-4NZ47VXO.js.map +1 -0
- package/dist/chunk-564AEU2Q.js +541 -0
- package/dist/chunk-564AEU2Q.js.map +1 -0
- package/dist/chunk-5HYSKH77.js +315 -0
- package/dist/chunk-5HYSKH77.js.map +1 -0
- package/dist/chunk-5MBPIONY.js +29 -0
- package/dist/chunk-5MBPIONY.js.map +1 -0
- package/dist/chunk-5OVOLYY3.js +74 -0
- package/dist/chunk-5OVOLYY3.js.map +1 -0
- package/dist/chunk-5SJ3JNNY.js +6683 -0
- package/dist/chunk-5SJ3JNNY.js.map +1 -0
- package/dist/chunk-66USKCVY.js +4410 -0
- package/dist/chunk-66USKCVY.js.map +1 -0
- package/dist/chunk-6I7SYEYN.js +166 -0
- package/dist/chunk-6I7SYEYN.js.map +1 -0
- package/dist/chunk-6O7ISBC7.js +65 -0
- package/dist/chunk-6O7ISBC7.js.map +1 -0
- package/dist/chunk-752S7JF6.js +35 -0
- package/dist/chunk-752S7JF6.js.map +1 -0
- package/dist/chunk-77DN7R35.js +228 -0
- package/dist/chunk-77DN7R35.js.map +1 -0
- package/dist/chunk-7F7MFMLI.js +175 -0
- package/dist/chunk-7F7MFMLI.js.map +1 -0
- package/dist/chunk-7THBBTJJ.js +183 -0
- package/dist/chunk-7THBBTJJ.js.map +1 -0
- package/dist/chunk-7XU3HKMX.js +1599 -0
- package/dist/chunk-7XU3HKMX.js.map +1 -0
- package/dist/chunk-AEA5JV2X.js +92 -0
- package/dist/chunk-AEA5JV2X.js.map +1 -0
- package/dist/chunk-AFJGYJ7Z.js +45 -0
- package/dist/chunk-AFJGYJ7Z.js.map +1 -0
- package/dist/chunk-AR7PU7BB.js +76 -0
- package/dist/chunk-AR7PU7BB.js.map +1 -0
- package/dist/chunk-ASL7JFBD.js +96 -0
- package/dist/chunk-ASL7JFBD.js.map +1 -0
- package/dist/chunk-AUSKKFVH.js +84 -0
- package/dist/chunk-AUSKKFVH.js.map +1 -0
- package/dist/chunk-B52DCYL2.js +159 -0
- package/dist/chunk-B52DCYL2.js.map +1 -0
- package/dist/{chunk-XHC4LMK4.js → chunk-BVM5IRZW.js} +16 -8
- package/dist/chunk-BVM5IRZW.js.map +1 -0
- package/dist/chunk-CAMX6OHF.js +3182 -0
- package/dist/chunk-CAMX6OHF.js.map +1 -0
- package/dist/chunk-CYBLKMXQ.js +310 -0
- package/dist/chunk-CYBLKMXQ.js.map +1 -0
- package/dist/chunk-CZENWCBS.js +333 -0
- package/dist/chunk-CZENWCBS.js.map +1 -0
- package/dist/chunk-D5FY4FAK.js +24 -0
- package/dist/chunk-D5FY4FAK.js.map +1 -0
- package/dist/chunk-DGCUPJZD.js +39 -0
- package/dist/chunk-DGCUPJZD.js.map +1 -0
- package/dist/chunk-DNCLWSHO.js +41 -0
- package/dist/chunk-DNCLWSHO.js.map +1 -0
- package/dist/chunk-DX4GIDO7.js +296 -0
- package/dist/chunk-DX4GIDO7.js.map +1 -0
- package/dist/chunk-EDLZGTGN.js +216 -0
- package/dist/chunk-EDLZGTGN.js.map +1 -0
- package/dist/chunk-EDNX3AOS.js +76 -0
- package/dist/chunk-EDNX3AOS.js.map +1 -0
- package/dist/chunk-EF5DP6EB.js +52 -0
- package/dist/chunk-EF5DP6EB.js.map +1 -0
- package/dist/chunk-ERSX3MKH.js +34 -0
- package/dist/chunk-ERSX3MKH.js.map +1 -0
- package/dist/chunk-F3IJSR7O.js +346 -0
- package/dist/chunk-F3IJSR7O.js.map +1 -0
- package/dist/chunk-FKOECEVC.js +126 -0
- package/dist/chunk-FKOECEVC.js.map +1 -0
- package/dist/chunk-FYWWTMXP.js +2902 -0
- package/dist/chunk-FYWWTMXP.js.map +1 -0
- package/dist/chunk-G7AFVTUS.js +106 -0
- package/dist/chunk-G7AFVTUS.js.map +1 -0
- package/dist/chunk-GIW7ABMM.js +74 -0
- package/dist/chunk-GIW7ABMM.js.map +1 -0
- package/dist/chunk-GIWHHCD6.js +145 -0
- package/dist/chunk-GIWHHCD6.js.map +1 -0
- package/dist/chunk-GPZH5ASB.js +3151 -0
- package/dist/chunk-GPZH5ASB.js.map +1 -0
- package/dist/chunk-GRQ2AXDX.js +9 -0
- package/dist/chunk-GRQ2AXDX.js.map +1 -0
- package/dist/chunk-GXDLWBOY.js +73 -0
- package/dist/chunk-GXDLWBOY.js.map +1 -0
- package/dist/chunk-GYABNLWW.js +629 -0
- package/dist/chunk-GYABNLWW.js.map +1 -0
- package/dist/chunk-H7MLHG2I.js +94 -0
- package/dist/chunk-H7MLHG2I.js.map +1 -0
- package/dist/chunk-H7XVKLIY.js +206 -0
- package/dist/chunk-H7XVKLIY.js.map +1 -0
- package/dist/chunk-HAE4WWFQ.js +455 -0
- package/dist/chunk-HAE4WWFQ.js.map +1 -0
- package/dist/chunk-HDHWIEJJ.js +136 -0
- package/dist/chunk-HDHWIEJJ.js.map +1 -0
- package/dist/chunk-HJTIBTF7.js +98 -0
- package/dist/chunk-HJTIBTF7.js.map +1 -0
- package/dist/{chunk-VZEDAFAR.js → chunk-HLXWKMTK.js} +47 -8
- package/dist/chunk-HLXWKMTK.js.map +1 -0
- package/dist/{chunk-MF7YA62W.js → chunk-HREWXNTO.js} +10 -5
- package/dist/chunk-HREWXNTO.js.map +1 -0
- package/dist/chunk-HYXKRNRV.js +176 -0
- package/dist/chunk-HYXKRNRV.js.map +1 -0
- package/dist/chunk-I3DIZWN5.js +97 -0
- package/dist/chunk-I3DIZWN5.js.map +1 -0
- package/dist/chunk-IJMWEO4P.js +57 -0
- package/dist/chunk-IJMWEO4P.js.map +1 -0
- package/dist/chunk-IOCSDFF2.js +23992 -0
- package/dist/chunk-IOCSDFF2.js.map +1 -0
- package/dist/chunk-IVIJJXXT.js +62 -0
- package/dist/chunk-IVIJJXXT.js.map +1 -0
- package/dist/chunk-J57GWTPK.js +106 -0
- package/dist/chunk-J57GWTPK.js.map +1 -0
- package/dist/chunk-JPK34QPS.js +134 -0
- package/dist/chunk-JPK34QPS.js.map +1 -0
- package/dist/chunk-JRCFCIE3.js +188 -0
- package/dist/chunk-JRCFCIE3.js.map +1 -0
- package/dist/chunk-JUAIGJ2A.js +76 -0
- package/dist/chunk-JUAIGJ2A.js.map +1 -0
- package/dist/chunk-K5OQES4V.js +58 -0
- package/dist/chunk-K5OQES4V.js.map +1 -0
- package/dist/chunk-KBS5GH4T.js +1626 -0
- package/dist/chunk-KBS5GH4T.js.map +1 -0
- package/dist/chunk-KIGGMKAE.js +66 -0
- package/dist/chunk-KIGGMKAE.js.map +1 -0
- package/dist/chunk-KKJ4KJCW.js +29 -0
- package/dist/chunk-KKJ4KJCW.js.map +1 -0
- package/dist/chunk-KLK6KQLQ.js +55 -0
- package/dist/chunk-KLK6KQLQ.js.map +1 -0
- package/dist/chunk-KUZFWMJN.js +207 -0
- package/dist/chunk-KUZFWMJN.js.map +1 -0
- package/dist/chunk-KXGG6EQM.js +382 -0
- package/dist/chunk-KXGG6EQM.js.map +1 -0
- package/dist/chunk-KXRKPZZY.js +169 -0
- package/dist/chunk-KXRKPZZY.js.map +1 -0
- package/dist/chunk-KZUHRZ2C.js +5187 -0
- package/dist/chunk-KZUHRZ2C.js.map +1 -0
- package/dist/chunk-L45A3IYV.js +1079 -0
- package/dist/chunk-L45A3IYV.js.map +1 -0
- package/dist/chunk-LA6PPSNA.js +65 -0
- package/dist/chunk-LA6PPSNA.js.map +1 -0
- package/dist/chunk-LEIQAHWF.js +25 -0
- package/dist/chunk-LEIQAHWF.js.map +1 -0
- package/dist/chunk-LERWCRY5.js +297 -0
- package/dist/chunk-LERWCRY5.js.map +1 -0
- package/dist/chunk-M6UNISGO.js +66 -0
- package/dist/chunk-M6UNISGO.js.map +1 -0
- package/dist/chunk-MGKHFGLV.js +75 -0
- package/dist/chunk-MGKHFGLV.js.map +1 -0
- package/dist/chunk-MZWC6HHA.js +455 -0
- package/dist/chunk-MZWC6HHA.js.map +1 -0
- package/dist/chunk-N3XJ434P.js +197 -0
- package/dist/chunk-N3XJ434P.js.map +1 -0
- package/dist/chunk-NFSLRRIE.js +77 -0
- package/dist/chunk-NFSLRRIE.js.map +1 -0
- package/dist/chunk-NHU33T2S.js +60 -0
- package/dist/chunk-NHU33T2S.js.map +1 -0
- package/dist/chunk-NJEZM4OB.js +51 -0
- package/dist/chunk-NJEZM4OB.js.map +1 -0
- package/dist/chunk-O6QKCJE4.js +455 -0
- package/dist/chunk-O6QKCJE4.js.map +1 -0
- package/dist/chunk-OFFAMC5H.js +225 -0
- package/dist/chunk-OFFAMC5H.js.map +1 -0
- package/dist/chunk-OHGTCFFE.js +57 -0
- package/dist/chunk-OHGTCFFE.js.map +1 -0
- package/dist/chunk-P4NSJS54.js +20 -0
- package/dist/chunk-P4NSJS54.js.map +1 -0
- package/dist/chunk-P5T7OZKV.js +26 -0
- package/dist/chunk-P5T7OZKV.js.map +1 -0
- package/dist/chunk-PFBQERWX.js +10 -0
- package/dist/chunk-PFBQERWX.js.map +1 -0
- package/dist/chunk-PKTLHYH4.js +509 -0
- package/dist/chunk-PKTLHYH4.js.map +1 -0
- package/dist/chunk-PUPEGICD.js +103 -0
- package/dist/chunk-PUPEGICD.js.map +1 -0
- package/dist/chunk-Q6ULQMWG.js +41 -0
- package/dist/chunk-Q6ULQMWG.js.map +1 -0
- package/dist/chunk-QO23YHLK.js +84 -0
- package/dist/chunk-QO23YHLK.js.map +1 -0
- package/dist/chunk-QSGIWV4P.js +337 -0
- package/dist/chunk-QSGIWV4P.js.map +1 -0
- package/dist/chunk-R5OQM7FF.js +179 -0
- package/dist/chunk-R5OQM7FF.js.map +1 -0
- package/dist/chunk-RFB6RYKA.js +111 -0
- package/dist/chunk-RFB6RYKA.js.map +1 -0
- package/dist/chunk-RGIXQEGJ.js +502 -0
- package/dist/chunk-RGIXQEGJ.js.map +1 -0
- package/dist/chunk-RODLBWIR.js +592 -0
- package/dist/chunk-RODLBWIR.js.map +1 -0
- package/dist/chunk-S4LZ7KTG.js +160 -0
- package/dist/chunk-S4LZ7KTG.js.map +1 -0
- package/dist/chunk-SHTESUB6.js +1442 -0
- package/dist/chunk-SHTESUB6.js.map +1 -0
- package/dist/chunk-SJH4EOZH.js +23 -0
- package/dist/chunk-SJH4EOZH.js.map +1 -0
- package/dist/chunk-SLB46MSS.js +64 -0
- package/dist/chunk-SLB46MSS.js.map +1 -0
- package/dist/chunk-SMIENBNX.js +6212 -0
- package/dist/chunk-SMIENBNX.js.map +1 -0
- package/dist/chunk-T7GT22KA.js +494 -0
- package/dist/chunk-T7GT22KA.js.map +1 -0
- package/dist/chunk-T7M4WFNV.js +172 -0
- package/dist/chunk-T7M4WFNV.js.map +1 -0
- package/dist/chunk-TLQ23DDW.js +19 -0
- package/dist/chunk-TLQ23DDW.js.map +1 -0
- package/dist/chunk-TMIDUSOR.js +665 -0
- package/dist/chunk-TMIDUSOR.js.map +1 -0
- package/dist/{chunk-WLDM2TRF.js → chunk-TPXI2GCW.js} +4 -4
- package/dist/chunk-U6VRBDNQ.js +1830 -0
- package/dist/chunk-U6VRBDNQ.js.map +1 -0
- package/dist/chunk-U7BBXM67.js +1743 -0
- package/dist/chunk-U7BBXM67.js.map +1 -0
- package/dist/chunk-UI6BKYQD.js +225 -0
- package/dist/chunk-UI6BKYQD.js.map +1 -0
- package/dist/chunk-UOI5S62H.js +846 -0
- package/dist/chunk-UOI5S62H.js.map +1 -0
- package/dist/chunk-USL5ARRE.js +26 -0
- package/dist/chunk-USL5ARRE.js.map +1 -0
- package/dist/chunk-UYC45JNS.js +139 -0
- package/dist/chunk-UYC45JNS.js.map +1 -0
- package/dist/chunk-VNKVBY54.js +363 -0
- package/dist/chunk-VNKVBY54.js.map +1 -0
- package/dist/chunk-VS4C7VAR.js +533 -0
- package/dist/chunk-VS4C7VAR.js.map +1 -0
- package/dist/chunk-W4W4ZRBP.js +191 -0
- package/dist/chunk-W4W4ZRBP.js.map +1 -0
- package/dist/chunk-WN4KX7GE.js +25 -0
- package/dist/chunk-WN4KX7GE.js.map +1 -0
- package/dist/chunk-WNFTXSGR.js +111 -0
- package/dist/chunk-WNFTXSGR.js.map +1 -0
- package/dist/chunk-WOTDHRNF.js +2109 -0
- package/dist/chunk-WOTDHRNF.js.map +1 -0
- package/dist/chunk-XGWKTYXQ.js +67 -0
- package/dist/chunk-XGWKTYXQ.js.map +1 -0
- package/dist/chunk-XIGIJJSF.js +66 -0
- package/dist/chunk-XIGIJJSF.js.map +1 -0
- package/dist/chunk-XNUXB63I.js +817 -0
- package/dist/chunk-XNUXB63I.js.map +1 -0
- package/dist/chunk-XQ3CCNJD.js +610 -0
- package/dist/chunk-XQ3CCNJD.js.map +1 -0
- package/dist/chunk-XX6ZMCY5.js +4227 -0
- package/dist/chunk-XX6ZMCY5.js.map +1 -0
- package/dist/chunk-Y362QH54.js +98 -0
- package/dist/chunk-Y362QH54.js.map +1 -0
- package/dist/chunk-Y4T6ATDQ.js +74 -0
- package/dist/chunk-Y4T6ATDQ.js.map +1 -0
- package/dist/chunk-YQSBHWOI.js +41 -0
- package/dist/chunk-YU26SDNT.js +46 -0
- package/dist/chunk-YU26SDNT.js.map +1 -0
- package/dist/chunk-YULENNA7.js +501 -0
- package/dist/chunk-YULENNA7.js.map +1 -0
- package/dist/chunk-YYSZYSAG.js +150 -0
- package/dist/chunk-YYSZYSAG.js.map +1 -0
- package/dist/chunk-Z3ENMCFE.js +94 -0
- package/dist/chunk-Z3ENMCFE.js.map +1 -0
- package/dist/chunk-ZH7ZM3ZM.js +125 -0
- package/dist/chunk-ZH7ZM3ZM.js.map +1 -0
- package/dist/chunk-ZIXHS6AM.js +42 -0
- package/dist/chunk-ZIXHS6AM.js.map +1 -0
- package/dist/chunk-ZLLJKSNS.js +96 -0
- package/dist/chunk-ZLLJKSNS.js.map +1 -0
- package/dist/claim-LF6VQ7OR.js +197 -0
- package/dist/claim-LF6VQ7OR.js.map +1 -0
- package/dist/cli.js +104 -70026
- package/dist/cli.js.map +1 -1
- package/dist/client-26SAJ46D.js +19 -0
- package/dist/code-MOWYJMDH.js +76 -0
- package/dist/code-MOWYJMDH.js.map +1 -0
- package/dist/companies-6HSK5BLK.js +195 -0
- package/dist/companies-6HSK5BLK.js.map +1 -0
- package/dist/complete-2PUAFQEC.js +81 -0
- package/dist/complete-2PUAFQEC.js.map +1 -0
- package/dist/config-X6GKOVQ6.js +88 -0
- package/dist/config-X6GKOVQ6.js.map +1 -0
- package/dist/connect-RXPMAJQI.js +42 -0
- package/dist/content-UYZC4AKN.js +85 -0
- package/dist/content-UYZC4AKN.js.map +1 -0
- package/dist/conversation-Y3NB2VDI.js +93 -0
- package/dist/conversation-Y3NB2VDI.js.map +1 -0
- package/dist/conversion-report-R4GJWWTK.js +125 -0
- package/dist/conversion-report-R4GJWWTK.js.map +1 -0
- package/dist/conversion-upload-command-YP4DGTPP.js +438 -0
- package/dist/conversion-upload-command-YP4DGTPP.js.map +1 -0
- package/dist/conversion-writes-WHFFUWWL.js +120 -0
- package/dist/conversion-writes-WHFFUWWL.js.map +1 -0
- package/dist/conversions-K7C32DPW.js +135 -0
- package/dist/conversions-K7C32DPW.js.map +1 -0
- package/dist/conversions-OXJAX5GB.js +76 -0
- package/dist/conversions-OXJAX5GB.js.map +1 -0
- package/dist/countries-PBXNB3BR.js +82 -0
- package/dist/countries-PBXNB3BR.js.map +1 -0
- package/dist/create-AJ4KPSJ4.js +59 -0
- package/dist/create-AJ4KPSJ4.js.map +1 -0
- package/dist/create-ALKOAD5J.js +138 -0
- package/dist/create-ALKOAD5J.js.map +1 -0
- package/dist/create-HTKZMXKB.js +207 -0
- package/dist/create-HTKZMXKB.js.map +1 -0
- package/dist/create-TZMAOFBR.js +236 -0
- package/dist/create-TZMAOFBR.js.map +1 -0
- package/dist/creatives-BJYJFVXJ.js +51 -0
- package/dist/creatives-BJYJFVXJ.js.map +1 -0
- package/dist/creatives-OZHVU4WB.js +182 -0
- package/dist/creatives-OZHVU4WB.js.map +1 -0
- package/dist/creatives-VMGY5SU4.js +87 -0
- package/dist/creatives-VMGY5SU4.js.map +1 -0
- package/dist/credentials-FY4UH6TF.js +287 -0
- package/dist/credentials-FY4UH6TF.js.map +1 -0
- package/dist/critique-B3H7QFM2.js +1449 -0
- package/dist/critique-B3H7QFM2.js.map +1 -0
- package/dist/critique-YZBOA27H.js +216 -0
- package/dist/critique-YZBOA27H.js.map +1 -0
- package/dist/crm-2IBLUHDB.js +318 -0
- package/dist/crm-2IBLUHDB.js.map +1 -0
- package/dist/crm-YMYO4U53.js +224 -0
- package/dist/crm-YMYO4U53.js.map +1 -0
- package/dist/crop-U3AD4DDR.js +113 -0
- package/dist/crop-U3AD4DDR.js.map +1 -0
- package/dist/currency-S6KWZSZ6.js +88 -0
- package/dist/currency-S6KWZSZ6.js.map +1 -0
- package/dist/custom-conversions-FABS6YVT.js +125 -0
- package/dist/custom-conversions-FABS6YVT.js.map +1 -0
- package/dist/customers-P6LLLJHK.js +56 -0
- package/dist/decide-YTHCBKM6.js +199 -0
- package/dist/decide-YTHCBKM6.js.map +1 -0
- package/dist/delete-B2TDEW7H.js +63 -0
- package/dist/delete-B2TDEW7H.js.map +1 -0
- package/dist/delete-DZUDLYPC.js +69 -0
- package/dist/delete-DZUDLYPC.js.map +1 -0
- package/dist/delete-NZGZP4YP.js +71 -0
- package/dist/delete-NZGZP4YP.js.map +1 -0
- package/dist/delete-SDOZNDWQ.js +54 -0
- package/dist/delete-SDOZNDWQ.js.map +1 -0
- package/dist/delete-VQMU56OH.js +71 -0
- package/dist/delete-VQMU56OH.js.map +1 -0
- package/dist/delete-WKQPMVAM.js +66 -0
- package/dist/delete-WKQPMVAM.js.map +1 -0
- package/dist/demographics-Q3DCXULY.js +138 -0
- package/dist/demographics-Q3DCXULY.js.map +1 -0
- package/dist/describe-JNTCQZNL.js +97 -0
- package/dist/describe-JNTCQZNL.js.map +1 -0
- package/dist/describe-MT4334NG.js +97 -0
- package/dist/describe-MT4334NG.js.map +1 -0
- package/dist/dimensions-FEZUJRAG.js +101 -0
- package/dist/dimensions-FEZUJRAG.js.map +1 -0
- package/dist/discard-NEZM5CHF.js +66 -0
- package/dist/discard-NEZM5CHF.js.map +1 -0
- package/dist/discover-4GD7QSF5.js +93 -0
- package/dist/discover-4GD7QSF5.js.map +1 -0
- package/dist/discover-6K3IOYXR.js +172 -0
- package/dist/discover-6K3IOYXR.js.map +1 -0
- package/dist/domain-7Y256IDR.js +98 -0
- package/dist/domain-7Y256IDR.js.map +1 -0
- package/dist/download-L27HWEOE.js +299 -0
- package/dist/download-L27HWEOE.js.map +1 -0
- package/dist/draft-25G2P2TE.js +281 -0
- package/dist/draft-25G2P2TE.js.map +1 -0
- package/dist/draft-F6TUGXAY.js +307 -0
- package/dist/draft-F6TUGXAY.js.map +1 -0
- package/dist/draft-KLULNBWP.js +233 -0
- package/dist/draft-KLULNBWP.js.map +1 -0
- package/dist/draft-LY5ZPF73.js +217 -0
- package/dist/draft-LY5ZPF73.js.map +1 -0
- package/dist/draft-M4ZHDQ46.js +306 -0
- package/dist/draft-M4ZHDQ46.js.map +1 -0
- package/dist/draft-MI7RWY2K.js +100 -0
- package/dist/draft-MI7RWY2K.js.map +1 -0
- package/dist/draft-P4IVYTY3.js +103 -0
- package/dist/draft-P4IVYTY3.js.map +1 -0
- package/dist/draft-QQMCVDDS.js +328 -0
- package/dist/draft-QQMCVDDS.js.map +1 -0
- package/dist/engine/index.d.ts +213 -127
- package/dist/engine/index.js +18 -4
- package/dist/{env-4P5HOGNA.js → env-FBTHZKGN.js} +12 -2
- package/dist/env-FBTHZKGN.js.map +1 -0
- package/dist/experiment-HDYTJPUY.js +1397 -0
- package/dist/experiment-HDYTJPUY.js.map +1 -0
- package/dist/export-TS5GYEMA.js +168 -0
- package/dist/export-TS5GYEMA.js.map +1 -0
- package/dist/extract-QVQFUOIK.js +113 -0
- package/dist/extract-QVQFUOIK.js.map +1 -0
- package/dist/facets-7MBSM7BP.js +114 -0
- package/dist/facets-7MBSM7BP.js.map +1 -0
- package/dist/favorites-7QP7BY5K.js +178 -0
- package/dist/favorites-7QP7BY5K.js.map +1 -0
- package/dist/feed-EETRO2FG.js +177 -0
- package/dist/feed-EETRO2FG.js.map +1 -0
- package/dist/feedback-ZOUL22TP.js +66 -0
- package/dist/feedback-ZOUL22TP.js.map +1 -0
- package/dist/feedback-record-XFFJRKS6.js +177 -0
- package/dist/feedback-record-XFFJRKS6.js.map +1 -0
- package/dist/fetch-QE3EB756.js +176 -0
- package/dist/fetch-QE3EB756.js.map +1 -0
- package/dist/fetch-Z7O3ZL4D.js +139 -0
- package/dist/fetch-Z7O3ZL4D.js.map +1 -0
- package/dist/find-KAQ6JDMO.js +134 -0
- package/dist/find-KAQ6JDMO.js.map +1 -0
- package/dist/fit-MY5GVZZZ.js +45 -0
- package/dist/fit-MY5GVZZZ.js.map +1 -0
- package/dist/flows-C67KEMDU.js +247 -0
- package/dist/flows-C67KEMDU.js.map +1 -0
- package/dist/follow-IX4XVK5Y.js +94 -0
- package/dist/follow-IX4XVK5Y.js.map +1 -0
- package/dist/follow-competitors-UZBUOYTH.js +112 -0
- package/dist/follow-competitors-UZBUOYTH.js.map +1 -0
- package/dist/following-VGOIUCIZ.js +113 -0
- package/dist/following-VGOIUCIZ.js.map +1 -0
- package/dist/fonts-UR7XZ5XZ.js +34 -0
- package/dist/fonts-UR7XZ5XZ.js.map +1 -0
- package/dist/forecast-3F4SZNAK.js +104 -0
- package/dist/forecast-3F4SZNAK.js.map +1 -0
- package/dist/forecast-K5E7CTKX.js +168 -0
- package/dist/forecast-K5E7CTKX.js.map +1 -0
- package/dist/funding-H5YO37OW.js +85 -0
- package/dist/funding-H5YO37OW.js.map +1 -0
- package/dist/funnel-2PPEPAMY.js +394 -0
- package/dist/funnel-2PPEPAMY.js.map +1 -0
- package/dist/ga4-YHJ2XMLC.js +55 -0
- package/dist/ga4-YHJ2XMLC.js.map +1 -0
- package/dist/generate-M2ZX5DMI.js +262 -0
- package/dist/generate-M2ZX5DMI.js.map +1 -0
- package/dist/get-4EYKCZ6F.js +59 -0
- package/dist/get-4EYKCZ6F.js.map +1 -0
- package/dist/get-637GALM2.js +63 -0
- package/dist/get-637GALM2.js.map +1 -0
- package/dist/get-AZARFR6O.js +61 -0
- package/dist/get-AZARFR6O.js.map +1 -0
- package/dist/get-BPMEHRUG.js +56 -0
- package/dist/get-BPMEHRUG.js.map +1 -0
- package/dist/get-MQ6MMIZ7.js +78 -0
- package/dist/get-MQ6MMIZ7.js.map +1 -0
- package/dist/get-N4BPOQCB.js +63 -0
- package/dist/get-N4BPOQCB.js.map +1 -0
- package/dist/get-RPZHLQ56.js +92 -0
- package/dist/get-RPZHLQ56.js.map +1 -0
- package/dist/gif-6PRTB2VR.js +94 -0
- package/dist/gif-6PRTB2VR.js.map +1 -0
- package/dist/google-4XAYE4OI.js +3190 -0
- package/dist/google-4XAYE4OI.js.map +1 -0
- package/dist/google-52JRH7X3.js +136 -0
- package/dist/google-52JRH7X3.js.map +1 -0
- package/dist/google-ads-PWX7OF5Z.js +195 -0
- package/dist/google-ads-PWX7OF5Z.js.map +1 -0
- package/dist/group-AAZ5QKC3.js +43 -0
- package/dist/group-AAZ5QKC3.js.map +1 -0
- package/dist/group-GSYCZORC.js +43 -0
- package/dist/group-GSYCZORC.js.map +1 -0
- package/dist/gsc-TS5T7ML2.js +30 -0
- package/dist/gsc-TS5T7ML2.js.map +1 -0
- package/dist/history-EW6LFFCX.js +67 -0
- package/dist/history-EW6LFFCX.js.map +1 -0
- package/dist/history-XI5ABCFO.js +133 -0
- package/dist/history-XI5ABCFO.js.map +1 -0
- package/dist/hubspot-AVUOILRE.js +779 -0
- package/dist/hubspot-AVUOILRE.js.map +1 -0
- package/dist/icon-K75KI6BV.js +137 -0
- package/dist/icon-K75KI6BV.js.map +1 -0
- package/dist/ideas-UCPV3KTM.js +35 -0
- package/dist/ideas-UCPV3KTM.js.map +1 -0
- package/dist/images-CD53I2W5.js +90 -0
- package/dist/images-CD53I2W5.js.map +1 -0
- package/dist/improve-L3BW4EQG.js +86 -0
- package/dist/improve-L3BW4EQG.js.map +1 -0
- package/dist/ingest-KRJOYTCQ.js +107 -0
- package/dist/ingest-KRJOYTCQ.js.map +1 -0
- package/dist/ingest-WE3SPPND.js +23 -0
- package/dist/ingest-WE3SPPND.js.map +1 -0
- package/dist/insights-PELVD4RY.js +122 -0
- package/dist/insights-PELVD4RY.js.map +1 -0
- package/dist/insights-XCA4BUJW.js +423 -0
- package/dist/insights-XCA4BUJW.js.map +1 -0
- package/dist/inspect-QKETG5UJ.js +189 -0
- package/dist/inspect-QKETG5UJ.js.map +1 -0
- package/dist/inspiration-Y2J2PUPC.js +53 -0
- package/dist/inspiration-Y2J2PUPC.js.map +1 -0
- package/dist/intent-YJOJGNVJ.js +95 -0
- package/dist/intent-YJOJGNVJ.js.map +1 -0
- package/dist/job-E2U4FS5P.js +202 -0
- package/dist/job-E2U4FS5P.js.map +1 -0
- package/dist/job-create-DFYCHVQ7.js +109 -0
- package/dist/job-create-DFYCHVQ7.js.map +1 -0
- package/dist/job-status-FFPMTSHB.js +74 -0
- package/dist/job-status-FFPMTSHB.js.map +1 -0
- package/dist/keep-GYZS2UTL.js +78 -0
- package/dist/keep-GYZS2UTL.js.map +1 -0
- package/dist/keyword-gap-QU7O7UKC.js +130 -0
- package/dist/keyword-gap-QU7O7UKC.js.map +1 -0
- package/dist/keyword-metrics-HLCM3QU7.js +197 -0
- package/dist/keyword-metrics-HLCM3QU7.js.map +1 -0
- package/dist/keywords-for-site-BDKPQKWB.js +128 -0
- package/dist/keywords-for-site-BDKPQKWB.js.map +1 -0
- package/dist/landing-4K6XYNFM.js +28 -0
- package/dist/landing-4K6XYNFM.js.map +1 -0
- package/dist/landings-F7LOAEJE.js +151 -0
- package/dist/landings-F7LOAEJE.js.map +1 -0
- package/dist/languages-P3ZM6R2A.js +40 -0
- package/dist/languages-P3ZM6R2A.js.map +1 -0
- package/dist/languages-XEJKTIFP.js +55 -0
- package/dist/languages-XEJKTIFP.js.map +1 -0
- package/dist/launches-TCFAYUA5.js +19 -0
- package/dist/launches-TCFAYUA5.js.map +1 -0
- package/dist/layerize-ZSKFIPZA.js +190 -0
- package/dist/layerize-ZSKFIPZA.js.map +1 -0
- package/dist/leads-GDF4S2AM.js +90 -0
- package/dist/leads-GDF4S2AM.js.map +1 -0
- package/dist/leads-TPB5OFSQ.js +293 -0
- package/dist/leads-TPB5OFSQ.js.map +1 -0
- package/dist/learn-NMFEA5H5.js +203 -0
- package/dist/learn-NMFEA5H5.js.map +1 -0
- package/dist/library-IP2UKNRU.js +109 -0
- package/dist/library-IP2UKNRU.js.map +1 -0
- package/dist/lighthouse-57XBJRCO.js +75 -0
- package/dist/lighthouse-57XBJRCO.js.map +1 -0
- package/dist/line-item-writes-O6SSS5NQ.js +208 -0
- package/dist/line-item-writes-O6SSS5NQ.js.map +1 -0
- package/dist/line-items-ZZAKH3YZ.js +103 -0
- package/dist/line-items-ZZAKH3YZ.js.map +1 -0
- package/dist/link-CRY57R3E.js +64 -0
- package/dist/link-CRY57R3E.js.map +1 -0
- package/dist/linkedin-WC7LGYPP.js +1008 -0
- package/dist/linkedin-WC7LGYPP.js.map +1 -0
- package/dist/list-6IKPWQGG.js +57 -0
- package/dist/list-6IKPWQGG.js.map +1 -0
- package/dist/list-CAUH3BMG.js +65 -0
- package/dist/list-CAUH3BMG.js.map +1 -0
- package/dist/list-CWAKX5TH.js +63 -0
- package/dist/list-CWAKX5TH.js.map +1 -0
- package/dist/list-FJ5FSVL6.js +151 -0
- package/dist/list-FJ5FSVL6.js.map +1 -0
- package/dist/list-GTOSN7DP.js +50 -0
- package/dist/list-GTOSN7DP.js.map +1 -0
- package/dist/list-HLJP4NVE.js +51 -0
- package/dist/list-HLJP4NVE.js.map +1 -0
- package/dist/list-LCUPF7EF.js +76 -0
- package/dist/list-LCUPF7EF.js.map +1 -0
- package/dist/list-NH4ZRZTL.js +303 -0
- package/dist/list-NH4ZRZTL.js.map +1 -0
- package/dist/locations-2BYWKIYA.js +67 -0
- package/dist/locations-2BYWKIYA.js.map +1 -0
- package/dist/locations-LVVDOSXO.js +40 -0
- package/dist/locations-LVVDOSXO.js.map +1 -0
- package/dist/log-6JOWOY5G.js +92 -0
- package/dist/log-6JOWOY5G.js.map +1 -0
- package/dist/logo-AJK2TDQU.js +18 -0
- package/dist/logo-AJK2TDQU.js.map +1 -0
- package/dist/lookup-H5GEM77H.js +22 -0
- package/dist/lookup-H5GEM77H.js.map +1 -0
- package/dist/make-Q2AMLCWE.js +640 -0
- package/dist/make-Q2AMLCWE.js.map +1 -0
- package/dist/map-4KOYFHAN.js +404 -0
- package/dist/map-4KOYFHAN.js.map +1 -0
- package/dist/mcp-LSS2DHYL.js +463 -0
- package/dist/mcp-LSS2DHYL.js.map +1 -0
- package/dist/media-JBCN6V4X.js +15 -0
- package/dist/media-JBCN6V4X.js.map +1 -0
- package/dist/media-RAGEJTZX.js +89 -0
- package/dist/media-RAGEJTZX.js.map +1 -0
- package/dist/media-sources-GSPAV7HT.js +32 -0
- package/dist/media-sources-GSPAV7HT.js.map +1 -0
- package/dist/members-GUUVEK2Y.js +44 -0
- package/dist/members-GUUVEK2Y.js.map +1 -0
- package/dist/meta-Z37ZR3PJ.js +69 -0
- package/dist/meta-Z37ZR3PJ.js.map +1 -0
- package/dist/metrics-KW6SDULI.js +152 -0
- package/dist/metrics-KW6SDULI.js.map +1 -0
- package/dist/models-5J4WFUD3.js +155 -0
- package/dist/models-5J4WFUD3.js.map +1 -0
- package/dist/normalize-DSFVTRXN.js +806 -0
- package/dist/normalize-DSFVTRXN.js.map +1 -0
- package/dist/normalize-EUDI5HEM.js +141 -0
- package/dist/normalize-EUDI5HEM.js.map +1 -0
- package/dist/options-P4PPJQH4.js +121 -0
- package/dist/options-P4PPJQH4.js.map +1 -0
- package/dist/output-DTCLVPUF.js +24 -0
- package/dist/output-DTCLVPUF.js.map +1 -0
- package/dist/page-N2ZO3O7F.js +105 -0
- package/dist/page-N2ZO3O7F.js.map +1 -0
- package/dist/pages-FQ4CBAJ2.js +66 -0
- package/dist/pages-FQ4CBAJ2.js.map +1 -0
- package/dist/performance-A66LYIZX.js +24 -0
- package/dist/performance-A66LYIZX.js.map +1 -0
- package/dist/pinterest-NV5XTNJE.js +96 -0
- package/dist/pinterest-NV5XTNJE.js.map +1 -0
- package/dist/pixels-CTJ43FZ4.js +108 -0
- package/dist/pixels-CTJ43FZ4.js.map +1 -0
- package/dist/pixels-HKINGZCH.js +60 -0
- package/dist/pixels-HKINGZCH.js.map +1 -0
- package/dist/plan-ZYTWLGWK.js +207 -0
- package/dist/plan-ZYTWLGWK.js.map +1 -0
- package/dist/preview-5ROBOQG7.js +169 -0
- package/dist/preview-5ROBOQG7.js.map +1 -0
- package/dist/profile-Q3PHR6FU.js +159 -0
- package/dist/profile-Q3PHR6FU.js.map +1 -0
- package/dist/promoted-tweet-writes-AEOUK2LK.js +180 -0
- package/dist/promoted-tweet-writes-AEOUK2LK.js.map +1 -0
- package/dist/promoted-tweets-L2CEC2BJ.js +119 -0
- package/dist/promoted-tweets-L2CEC2BJ.js.map +1 -0
- package/dist/properties-WLL6M2P6.js +101 -0
- package/dist/properties-WLL6M2P6.js.map +1 -0
- package/dist/publish-KHNR5ARF.js +322 -0
- package/dist/publish-KHNR5ARF.js.map +1 -0
- package/dist/query-A34J7BGX.js +61 -0
- package/dist/query-A34J7BGX.js.map +1 -0
- package/dist/query-IYZN5KHO.js +236 -0
- package/dist/query-IYZN5KHO.js.map +1 -0
- package/dist/query-UN2P6DBA.js +247 -0
- package/dist/query-UN2P6DBA.js.map +1 -0
- package/dist/questionnaire-Z2ZIKNBV.js +93 -0
- package/dist/questionnaire-Z2ZIKNBV.js.map +1 -0
- package/dist/read-GM7PQYJA.js +141 -0
- package/dist/read-GM7PQYJA.js.map +1 -0
- package/dist/reddit-5NPFULGD.js +26 -0
- package/dist/reddit-5NPFULGD.js.map +1 -0
- package/dist/refresh-FGXW4Y4X.js +94 -0
- package/dist/refresh-FGXW4Y4X.js.map +1 -0
- package/dist/release-OKZMC73N.js +60 -0
- package/dist/release-OKZMC73N.js.map +1 -0
- package/dist/relevant-pages-J76ZKNKF.js +99 -0
- package/dist/relevant-pages-J76ZKNKF.js.map +1 -0
- package/dist/remove-CA2J6ACH.js +50 -0
- package/dist/remove-CA2J6ACH.js.map +1 -0
- package/dist/remove-GOYW2G4R.js +48 -0
- package/dist/remove-GOYW2G4R.js.map +1 -0
- package/dist/reopen-XPKSOE6O.js +63 -0
- package/dist/reopen-XPKSOE6O.js.map +1 -0
- package/dist/rerun-2ERJV4WC.js +86 -0
- package/dist/rerun-2ERJV4WC.js.map +1 -0
- package/dist/research-FZ63UZTE.js +62 -0
- package/dist/research-FZ63UZTE.js.map +1 -0
- package/dist/research-YGQQ6CNG.js +262 -0
- package/dist/research-YGQQ6CNG.js.map +1 -0
- package/dist/reset-BGPZ4HMA.js +54 -0
- package/dist/reset-BGPZ4HMA.js.map +1 -0
- package/dist/reset-HTD6LCIT.js +54 -0
- package/dist/reset-HTD6LCIT.js.map +1 -0
- package/dist/resolve-NRDZ6N2B.js +121 -0
- package/dist/resolve-NRDZ6N2B.js.map +1 -0
- package/dist/retry-PF4BGKJV.js +60 -0
- package/dist/retry-PF4BGKJV.js.map +1 -0
- package/dist/retry-XL26JDAV.js +62 -0
- package/dist/retry-XL26JDAV.js.map +1 -0
- package/dist/retry-failed-BEFWRV4Z.js +45 -0
- package/dist/retry-failed-BEFWRV4Z.js.map +1 -0
- package/dist/run-EMJLI7LR.js +65 -0
- package/dist/run-EMJLI7LR.js.map +1 -0
- package/dist/run-L5K44UEA.js +61 -0
- package/dist/run-L5K44UEA.js.map +1 -0
- package/dist/scaffold-ad-AY2OL7RI.js +1550 -0
- package/dist/scaffold-ad-AY2OL7RI.js.map +1 -0
- package/dist/scaffold-static-ad-FXYE46MT.js +973 -0
- package/dist/scaffold-static-ad-FXYE46MT.js.map +1 -0
- package/dist/scaffold-video-533BT6RX.js +874 -0
- package/dist/scaffold-video-533BT6RX.js.map +1 -0
- package/dist/schedule-KQ7UIR3N.js +66 -0
- package/dist/schedule-KQ7UIR3N.js.map +1 -0
- package/dist/schedule-PKPNSISL.js +61 -0
- package/dist/schedule-PKPNSISL.js.map +1 -0
- package/dist/scheduled-agents-LP5LITA3.js +49 -0
- package/dist/scheduled-agents-LP5LITA3.js.map +1 -0
- package/dist/schema-B6J6VPTO.js +132 -0
- package/dist/schema-B6J6VPTO.js.map +1 -0
- package/dist/schema-QXTDLZVC.js +63 -0
- package/dist/schema-QXTDLZVC.js.map +1 -0
- package/dist/scrape-7YKJWFZE.js +2241 -0
- package/dist/scrape-7YKJWFZE.js.map +1 -0
- package/dist/screenshot-ZHBSG3SI.js +102 -0
- package/dist/screenshot-ZHBSG3SI.js.map +1 -0
- package/dist/search-332KFYZ6.js +224 -0
- package/dist/search-332KFYZ6.js.map +1 -0
- package/dist/search-4PBMXXUY.js +91 -0
- package/dist/search-4PBMXXUY.js.map +1 -0
- package/dist/search-6WNUKCMP.js +174 -0
- package/dist/search-6WNUKCMP.js.map +1 -0
- package/dist/search-AVNUU6TJ.js +26 -0
- package/dist/search-AVNUU6TJ.js.map +1 -0
- package/dist/search-F5INRFFK.js +92 -0
- package/dist/search-F5INRFFK.js.map +1 -0
- package/dist/search-copy-DZVBYG2B.js +168 -0
- package/dist/search-copy-DZVBYG2B.js.map +1 -0
- package/dist/seeds-5JTQN5WI.js +101 -0
- package/dist/seeds-5JTQN5WI.js.map +1 -0
- package/dist/select-RSGLDQ5Z.js +96 -0
- package/dist/select-RSGLDQ5Z.js.map +1 -0
- package/dist/sends-3L6QBS46.js +309 -0
- package/dist/sends-3L6QBS46.js.map +1 -0
- package/dist/sequences-YKFV7BDH.js +146 -0
- package/dist/sequences-YKFV7BDH.js.map +1 -0
- package/dist/set-prompt-7WWJI6XW.js +188 -0
- package/dist/set-prompt-7WWJI6XW.js.map +1 -0
- package/dist/setup-links-6H5ONDCQ.js +141 -0
- package/dist/setup-links-6H5ONDCQ.js.map +1 -0
- package/dist/{shared-6762QE6R.js → shared-QAMP7FZV.js} +8 -6
- package/dist/shared-QAMP7FZV.js.map +1 -0
- package/dist/shopify-2OY3J3OY.js +3692 -0
- package/dist/shopify-2OY3J3OY.js.map +1 -0
- package/dist/site-TBPERLY3.js +177 -0
- package/dist/site-TBPERLY3.js.map +1 -0
- package/dist/sitemaps-XPGLW24S.js +87 -0
- package/dist/sitemaps-XPGLW24S.js.map +1 -0
- package/dist/sites-WMBY2HJV.js +101 -0
- package/dist/sites-WMBY2HJV.js.map +1 -0
- package/dist/skills-3HEILQCU.js +47 -0
- package/dist/skills-3HEILQCU.js.map +1 -0
- package/dist/sources-JFQKTK2L.js +421 -0
- package/dist/sources-JFQKTK2L.js.map +1 -0
- package/dist/sources-Q3I6DDV7.js +30 -0
- package/dist/sources-Q3I6DDV7.js.map +1 -0
- package/dist/stale-CAXBLZKJ.js +66 -0
- package/dist/stale-CAXBLZKJ.js.map +1 -0
- package/dist/stats-GNILHSKK.js +34 -0
- package/dist/stats-GNILHSKK.js.map +1 -0
- package/dist/status-LIZWJYS4.js +62 -0
- package/dist/status-LIZWJYS4.js.map +1 -0
- package/dist/sticker-KCV3VZHY.js +94 -0
- package/dist/sticker-KCV3VZHY.js.map +1 -0
- package/dist/stock-VTORKR4C.js +179 -0
- package/dist/stock-VTORKR4C.js.map +1 -0
- package/dist/studio-QCRA6BY5.js +49 -0
- package/dist/studio-QCRA6BY5.js.map +1 -0
- package/dist/sync-455DB46Y.js +54 -0
- package/dist/sync-455DB46Y.js.map +1 -0
- package/dist/sync-A4KKQ3B6.js +265 -0
- package/dist/sync-A4KKQ3B6.js.map +1 -0
- package/dist/sync-ULKWDFXM.js +54 -0
- package/dist/sync-ULKWDFXM.js.map +1 -0
- package/dist/sync-definition-P6QTHJJ6.js +55 -0
- package/dist/sync-definition-P6QTHJJ6.js.map +1 -0
- package/dist/tag-manager-E7QTXBWQ.js +43 -0
- package/dist/tag-manager-E7QTXBWQ.js.map +1 -0
- package/dist/tags-4Q4I5GQJ.js +20 -0
- package/dist/tags-4Q4I5GQJ.js.map +1 -0
- package/dist/tags-AMEVAQZ4.js +26 -0
- package/dist/tags-AMEVAQZ4.js.map +1 -0
- package/dist/tags-DPLOLH3E.js +20 -0
- package/dist/tags-DPLOLH3E.js.map +1 -0
- package/dist/tags-LDHXONR3.js +224 -0
- package/dist/tags-LDHXONR3.js.map +1 -0
- package/dist/tags-UW3WJTAQ.js +20 -0
- package/dist/tags-UW3WJTAQ.js.map +1 -0
- package/dist/targeting-constants-D64YO3E7.js +118 -0
- package/dist/targeting-constants-D64YO3E7.js.map +1 -0
- package/dist/targeting-criteria-BP6VJA7X.js +113 -0
- package/dist/targeting-criteria-BP6VJA7X.js.map +1 -0
- package/dist/targets-CQWO2UXD.js +102 -0
- package/dist/targets-CQWO2UXD.js.map +1 -0
- package/dist/templates-WZSTNRNZ.js +178 -0
- package/dist/templates-WZSTNRNZ.js.map +1 -0
- package/dist/testimonials-ETHSNWUH.js +32 -0
- package/dist/testimonials-ETHSNWUH.js.map +1 -0
- package/dist/themes-YU663LQH.js +94 -0
- package/dist/themes-YU663LQH.js.map +1 -0
- package/dist/top-companies-KTXHS472.js +108 -0
- package/dist/top-companies-KTXHS472.js.map +1 -0
- package/dist/translate-A7LYHUW3.js +600 -0
- package/dist/translate-A7LYHUW3.js.map +1 -0
- package/dist/triggers-4EDFLNGH.js +141 -0
- package/dist/triggers-4EDFLNGH.js.map +1 -0
- package/dist/tweets-ZUKQAAUQ.js +123 -0
- package/dist/tweets-ZUKQAAUQ.js.map +1 -0
- package/dist/unfollow-A4JVCJBF.js +46 -0
- package/dist/unfollow-A4JVCJBF.js.map +1 -0
- package/dist/unlink-KY2OEKMD.js +67 -0
- package/dist/unlink-KY2OEKMD.js.map +1 -0
- package/dist/unstage-FHUG67RI.js +84 -0
- package/dist/unstage-FHUG67RI.js.map +1 -0
- package/dist/unstage-ZRLLCSQF.js +95 -0
- package/dist/unstage-ZRLLCSQF.js.map +1 -0
- package/dist/update-27LGM65V.js +63 -0
- package/dist/update-27LGM65V.js.map +1 -0
- package/dist/update-AIY46I2Q.js +155 -0
- package/dist/update-AIY46I2Q.js.map +1 -0
- package/dist/update-QYD2XZFM.js +142 -0
- package/dist/update-QYD2XZFM.js.map +1 -0
- package/dist/update-W2OSRNFO.js +98 -0
- package/dist/update-W2OSRNFO.js.map +1 -0
- package/dist/upload-JGBTSKGH.js +126 -0
- package/dist/upload-JGBTSKGH.js.map +1 -0
- package/dist/upload-XEHWYMJG.js +150 -0
- package/dist/upload-XEHWYMJG.js.map +1 -0
- package/dist/upscale-I5P2OHTN.js +109 -0
- package/dist/upscale-I5P2OHTN.js.map +1 -0
- package/dist/url-options-QHGA42RP.js +130 -0
- package/dist/url-options-QHGA42RP.js.map +1 -0
- package/dist/url-params-NWSUHWRE.js +98 -0
- package/dist/url-params-NWSUHWRE.js.map +1 -0
- package/dist/use-U4HG2NF3.js +95 -0
- package/dist/use-U4HG2NF3.js.map +1 -0
- package/dist/validate-VKL3XKQ2.js +91 -0
- package/dist/validate-VKL3XKQ2.js.map +1 -0
- package/dist/variant-FOVE6URJ.js +338 -0
- package/dist/variant-FOVE6URJ.js.map +1 -0
- package/dist/videos-DP3VCSYG.js +39 -0
- package/dist/videos-DP3VCSYG.js.map +1 -0
- package/dist/view-HRI3FHCH.js +121 -0
- package/dist/view-HRI3FHCH.js.map +1 -0
- package/dist/viewer-check-JYUE24M6.js +68 -0
- package/dist/viewer-check-JYUE24M6.js.map +1 -0
- package/dist/web-AFUIWPFU.js +140 -0
- package/dist/web-AFUIWPFU.js.map +1 -0
- package/dist/winners-SMMDN6LW.js +113 -0
- package/dist/winners-SMMDN6LW.js.map +1 -0
- package/dist/winning-ads-PCIJUYVA.js +84 -0
- package/dist/winning-ads-PCIJUYVA.js.map +1 -0
- package/dist/write-commands-7Z34WG2J.js +206 -0
- package/dist/write-commands-7Z34WG2J.js.map +1 -0
- package/dist/write-commands-BLT2SEC4.js +713 -0
- package/dist/write-commands-BLT2SEC4.js.map +1 -0
- package/dist/write-commands-N4FSGRVQ.js +743 -0
- package/dist/write-commands-N4FSGRVQ.js.map +1 -0
- package/dist/write-commands-Q4MQ3BGM.js +1015 -0
- package/dist/write-commands-Q4MQ3BGM.js.map +1 -0
- package/dist/x-AUOZJNWE.js +47 -0
- package/dist/x-AUOZJNWE.js.map +1 -0
- package/package.json +9 -2
- package/dist/chunk-FGHMWBUD.js +0 -9989
- package/dist/chunk-FGHMWBUD.js.map +0 -1
- package/dist/chunk-HJEMOSPH.js +0 -1292
- package/dist/chunk-HJEMOSPH.js.map +0 -1
- package/dist/chunk-MF7YA62W.js.map +0 -1
- package/dist/chunk-VZEDAFAR.js.map +0 -1
- package/dist/chunk-XHC4LMK4.js.map +0 -1
- package/dist/client-GR6YL3YX.js +0 -17
- package/dist/output-NMQXZF3Z.js +0 -18
- /package/dist/{chunk-WLDM2TRF.js.map → chunk-TPXI2GCW.js.map} +0 -0
- /package/dist/{client-GR6YL3YX.js.map → chunk-YQSBHWOI.js.map} +0 -0
- /package/dist/{env-4P5HOGNA.js.map → client-26SAJ46D.js.map} +0 -0
- /package/dist/{output-NMQXZF3Z.js.map → connect-RXPMAJQI.js.map} +0 -0
- /package/dist/{shared-6762QE6R.js.map → customers-P6LLLJHK.js.map} +0 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import {
|
|
2
|
+
mediaTagsCreateRequestSchema,
|
|
3
|
+
mediaTagsDeleteRequestSchema,
|
|
4
|
+
mediaTagsUpdateRequestSchema
|
|
5
|
+
} from "./chunk-SMIENBNX.js";
|
|
6
|
+
import {
|
|
7
|
+
ApiError,
|
|
8
|
+
apiGet,
|
|
9
|
+
apiPost
|
|
10
|
+
} from "./chunk-HREWXNTO.js";
|
|
11
|
+
import {
|
|
12
|
+
registerSchema,
|
|
13
|
+
writeJson
|
|
14
|
+
} from "./chunk-WOTDHRNF.js";
|
|
15
|
+
|
|
16
|
+
// src/lib/tags-command.ts
|
|
17
|
+
import { defineCommand } from "citty";
|
|
18
|
+
var OUTPUT_ARG = {
|
|
19
|
+
output: { type: "string", description: "Output format: md|json", required: false, default: "md" }
|
|
20
|
+
};
|
|
21
|
+
var SHARED_POOL_HINT = "Custom tags are one pool shared by images, videos and testimonials \u2014 this change shows up in all three. Already applied: publishing or discarding this chat does not undo it.";
|
|
22
|
+
function fail(err) {
|
|
23
|
+
const code = err instanceof ApiError ? err.code : "INTERNAL_ERROR";
|
|
24
|
+
const message = err instanceof ApiError ? err.message : "Unexpected error";
|
|
25
|
+
writeJson({ ok: false, error: { code, message } });
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
function failInvalid(issue) {
|
|
29
|
+
writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message: issue?.message ?? "Invalid request" } });
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
function makeTagsCommand(command, label, endpoint) {
|
|
33
|
+
registerSchema({
|
|
34
|
+
command: `${command}.tags.list`,
|
|
35
|
+
description: `List the available ${label} tag taxonomy (built-in defaults + this company's custom tags).`,
|
|
36
|
+
args: OUTPUT_ARG
|
|
37
|
+
});
|
|
38
|
+
const listCommand = defineCommand({
|
|
39
|
+
meta: {
|
|
40
|
+
name: "list",
|
|
41
|
+
description: `List the available ${label} tag names (defaults + company custom tags). Use before filtering with --tags. Example: baker ${command} tags`
|
|
42
|
+
},
|
|
43
|
+
args: OUTPUT_ARG,
|
|
44
|
+
run: async ({ args }) => {
|
|
45
|
+
try {
|
|
46
|
+
const { markdown } = await apiGet(endpoint);
|
|
47
|
+
if (args.output === "json") {
|
|
48
|
+
writeJson({ ok: true, data: { markdown } });
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
process.stdout.write(`${markdown.trimEnd()}
|
|
52
|
+
`);
|
|
53
|
+
} catch (err) {
|
|
54
|
+
const code = err instanceof ApiError ? err.code : "INTERNAL_ERROR";
|
|
55
|
+
const message = err instanceof ApiError ? err.message : "Unexpected error";
|
|
56
|
+
if (args.output === "json") {
|
|
57
|
+
writeJson({ ok: false, error: { code, message } });
|
|
58
|
+
} else {
|
|
59
|
+
process.stderr.write(`Error: ${message}
|
|
60
|
+
`);
|
|
61
|
+
}
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const createArgs = {
|
|
67
|
+
name: { type: "positional", description: "Tag name (stored lowercased, spaces \u2192 hyphens)", required: true },
|
|
68
|
+
description: {
|
|
69
|
+
type: "string",
|
|
70
|
+
description: "What the tag means, so it gets applied consistently",
|
|
71
|
+
required: false
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
registerSchema({
|
|
75
|
+
command: `${command}.tags.create`,
|
|
76
|
+
description: "Create a custom media tag in the company's shared pool (images, videos and testimonials). Applies immediately. Use when no built-in or custom tag fits.",
|
|
77
|
+
args: {
|
|
78
|
+
name: { type: "string", description: "Tag name (stored lowercased, spaces \u2192 hyphens)", required: true },
|
|
79
|
+
description: createArgs.description
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
const createCommand = defineCommand({
|
|
83
|
+
meta: {
|
|
84
|
+
name: "create",
|
|
85
|
+
description: `Create a custom tag (shared by images, videos and testimonials). Applies immediately.
|
|
86
|
+
|
|
87
|
+
Example: baker ${command} tags create "summer sale" --description "Assets for the summer sale campaign"`
|
|
88
|
+
},
|
|
89
|
+
args: createArgs,
|
|
90
|
+
run: async ({ args }) => {
|
|
91
|
+
const parsed = mediaTagsCreateRequestSchema.safeParse({
|
|
92
|
+
name: String(args.name ?? ""),
|
|
93
|
+
...args.description ? { description: String(args.description) } : {}
|
|
94
|
+
});
|
|
95
|
+
if (!parsed.success) failInvalid(parsed.error.issues[0]);
|
|
96
|
+
try {
|
|
97
|
+
const data = await apiPost("/api/media-tags/create", parsed.data);
|
|
98
|
+
writeJson({
|
|
99
|
+
ok: true,
|
|
100
|
+
data,
|
|
101
|
+
hints: [
|
|
102
|
+
SHARED_POOL_HINT,
|
|
103
|
+
`Use it as \`--tags ${data.name}\`.`,
|
|
104
|
+
...data.description ? [] : ["MISSING --description: add one with `tags update` so the tag is applied consistently."]
|
|
105
|
+
]
|
|
106
|
+
});
|
|
107
|
+
} catch (err) {
|
|
108
|
+
fail(err);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
registerSchema({
|
|
113
|
+
command: `${command}.tags.update`,
|
|
114
|
+
description: "Change what a custom tag means (its description). Built-in tags cannot be changed. Applies immediately.",
|
|
115
|
+
args: {
|
|
116
|
+
slug: { type: "string", description: "Custom tag name, as `tags` lists it", required: true },
|
|
117
|
+
description: { type: "string", description: "New description", required: true }
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
const updateCommand = defineCommand({
|
|
121
|
+
meta: {
|
|
122
|
+
name: "update",
|
|
123
|
+
description: `Change a custom tag's description. Built-in tags cannot be changed. Applies immediately.
|
|
124
|
+
|
|
125
|
+
Example: baker ${command} tags update summer-sale --description "Assets for the 2026 summer sale"`
|
|
126
|
+
},
|
|
127
|
+
args: {
|
|
128
|
+
slug: { type: "positional", description: "Custom tag name, as `tags` lists it", required: true },
|
|
129
|
+
description: { type: "string", description: "New description", required: true }
|
|
130
|
+
},
|
|
131
|
+
run: async ({ args }) => {
|
|
132
|
+
const parsed = mediaTagsUpdateRequestSchema.safeParse({
|
|
133
|
+
slug: String(args.slug ?? ""),
|
|
134
|
+
description: String(args.description ?? "")
|
|
135
|
+
});
|
|
136
|
+
if (!parsed.success) failInvalid(parsed.error.issues[0]);
|
|
137
|
+
try {
|
|
138
|
+
const data = await apiPost("/api/media-tags/update", parsed.data);
|
|
139
|
+
writeJson({ ok: true, data, hints: [SHARED_POOL_HINT] });
|
|
140
|
+
} catch (err) {
|
|
141
|
+
fail(err);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
registerSchema({
|
|
146
|
+
command: `${command}.tags.delete`,
|
|
147
|
+
description: "Delete a custom tag from the company's shared pool. Built-in tags cannot be deleted. Applies immediately. Confirm with the user first.",
|
|
148
|
+
args: { slug: { type: "string", description: "Custom tag name, as `tags` lists it", required: true } }
|
|
149
|
+
});
|
|
150
|
+
const deleteCommand = defineCommand({
|
|
151
|
+
meta: {
|
|
152
|
+
name: "delete",
|
|
153
|
+
description: `Delete a custom tag (shared by images, videos and testimonials). Built-in tags cannot be deleted. Applies immediately \u2014 confirm with the user first.
|
|
154
|
+
|
|
155
|
+
Example: baker ${command} tags delete summer-sale`
|
|
156
|
+
},
|
|
157
|
+
args: { slug: { type: "positional", description: "Custom tag name, as `tags` lists it", required: true } },
|
|
158
|
+
run: async ({ args }) => {
|
|
159
|
+
const parsed = mediaTagsDeleteRequestSchema.safeParse({ slug: String(args.slug ?? "") });
|
|
160
|
+
if (!parsed.success) failInvalid(parsed.error.issues[0]);
|
|
161
|
+
try {
|
|
162
|
+
const data = await apiPost("/api/media-tags/delete", parsed.data);
|
|
163
|
+
writeJson({ ok: true, data, hints: [SHARED_POOL_HINT] });
|
|
164
|
+
} catch (err) {
|
|
165
|
+
fail(err);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
return defineCommand({
|
|
170
|
+
meta: {
|
|
171
|
+
name: "tags",
|
|
172
|
+
description: `The ${label} tag taxonomy: built-in defaults plus the company's custom tags (one pool shared by images, videos and testimonials). Subcommands: list (default), create, update, delete.
|
|
173
|
+
|
|
174
|
+
Examples:
|
|
175
|
+
baker ${command} tags # list available tags
|
|
176
|
+
baker ${command} tags create "summer sale" --description "\u2026"
|
|
177
|
+
baker ${command} tags update summer-sale --description "\u2026"
|
|
178
|
+
baker ${command} tags delete summer-sale`
|
|
179
|
+
},
|
|
180
|
+
// Declared on the parent too: `default: "list"` dispatches the bare `tags --output json`
|
|
181
|
+
// form, and citty reads an undeclared flag's value as a subcommand name.
|
|
182
|
+
args: OUTPUT_ARG,
|
|
183
|
+
subCommands: {
|
|
184
|
+
list: listCommand,
|
|
185
|
+
create: createCommand,
|
|
186
|
+
update: updateCommand,
|
|
187
|
+
delete: deleteCommand
|
|
188
|
+
},
|
|
189
|
+
// `default`, never `run`: citty falls through to the parent's `run` after a subcommand.
|
|
190
|
+
default: "list"
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export {
|
|
195
|
+
makeTagsCommand
|
|
196
|
+
};
|
|
197
|
+
//# sourceMappingURL=chunk-N3XJ434P.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/tags-command.ts"],"sourcesContent":["import type { MediaTagsCreateResponse, MediaTagsDeleteResponse, MediaTagsUpdateResponse } from \"@baker/api\";\nimport { mediaTagsCreateRequestSchema, mediaTagsDeleteRequestSchema, mediaTagsUpdateRequestSchema } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiGet, apiPost } from \"../client.ts\";\nimport { writeJson } from \"../output.ts\";\nimport { registerSchema } from \"../schemas.ts\";\n\nconst OUTPUT_ARG = {\n output: { type: \"string\", description: \"Output format: md|json\", required: false, default: \"md\" },\n} as const;\n\n/** The custom tags are one pool for the whole company, whichever family the agent reached them from. */\nconst SHARED_POOL_HINT =\n \"Custom tags are one pool shared by images, videos and testimonials — this change shows up in all three. Already applied: publishing or discarding this chat does not undo it.\";\n\nfunction fail(err: unknown): never {\n const code = err instanceof ApiError ? err.code : \"INTERNAL_ERROR\";\n const message = err instanceof ApiError ? err.message : \"Unexpected error\";\n writeJson({ ok: false, error: { code, message } });\n process.exit(1);\n}\n\nfunction failInvalid(issue: { message: string } | undefined): never {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: issue?.message ?? \"Invalid request\" } });\n process.exit(1);\n}\n\n/**\n * Builds `baker <command> tags` for one media type: `list` (the default, so the\n * bare `baker images tags` keeps printing the taxonomy) plus `create`, `update`\n * and `delete` for the company's custom tags.\n *\n * `command` is the plural CLI noun used for the schema id and example\n * (`images` → `images.tags.list`); `label` is the singular noun used in prose.\n *\n * Errors from `list` in the default markdown mode are written to STDERR, not\n * stdout. It is inlined into the library skills via `!`baker images tags``, so\n * a JSON error blob on stdout would be silently injected into the agent's skill\n * context as if it were the tag list. `--output json` keeps the machine-readable\n * envelope on stdout for programmatic callers.\n */\nexport function makeTagsCommand(command: string, label: string, endpoint: string) {\n registerSchema({\n command: `${command}.tags.list`,\n description: `List the available ${label} tag taxonomy (built-in defaults + this company's custom tags).`,\n args: OUTPUT_ARG,\n });\n\n const listCommand = defineCommand({\n meta: {\n name: \"list\",\n description: `List the available ${label} tag names (defaults + company custom tags). Use before filtering with --tags. Example: baker ${command} tags`,\n },\n args: OUTPUT_ARG,\n run: async ({ args }) => {\n try {\n const { markdown } = await apiGet<{ markdown: string }>(endpoint);\n if (args.output === \"json\") {\n writeJson({ ok: true, data: { markdown } });\n return;\n }\n process.stdout.write(`${markdown.trimEnd()}\\n`);\n } catch (err) {\n const code = err instanceof ApiError ? err.code : \"INTERNAL_ERROR\";\n const message = err instanceof ApiError ? err.message : \"Unexpected error\";\n if (args.output === \"json\") {\n writeJson({ ok: false, error: { code, message } });\n } else {\n process.stderr.write(`Error: ${message}\\n`);\n }\n process.exit(1);\n }\n },\n });\n\n const createArgs = {\n name: { type: \"positional\", description: \"Tag name (stored lowercased, spaces → hyphens)\", required: true },\n description: {\n type: \"string\",\n description: \"What the tag means, so it gets applied consistently\",\n required: false,\n },\n } as const;\n\n registerSchema({\n command: `${command}.tags.create`,\n description:\n \"Create a custom media tag in the company's shared pool (images, videos and testimonials). Applies immediately. Use when no built-in or custom tag fits.\",\n args: {\n name: { type: \"string\", description: \"Tag name (stored lowercased, spaces → hyphens)\", required: true },\n description: createArgs.description,\n },\n });\n\n const createCommand = defineCommand({\n meta: {\n name: \"create\",\n description: `Create a custom tag (shared by images, videos and testimonials). Applies immediately.\\n\\nExample: baker ${command} tags create \"summer sale\" --description \"Assets for the summer sale campaign\"`,\n },\n args: createArgs,\n run: async ({ args }) => {\n const parsed = mediaTagsCreateRequestSchema.safeParse({\n name: String(args.name ?? \"\"),\n ...(args.description ? { description: String(args.description) } : {}),\n });\n if (!parsed.success) failInvalid(parsed.error.issues[0]);\n try {\n const data = await apiPost<MediaTagsCreateResponse>(\"/api/media-tags/create\", parsed.data);\n writeJson({\n ok: true,\n data,\n hints: [\n SHARED_POOL_HINT,\n `Use it as \\`--tags ${data.name}\\`.`,\n ...(data.description\n ? []\n : [\"MISSING --description: add one with `tags update` so the tag is applied consistently.\"]),\n ],\n });\n } catch (err) {\n fail(err);\n }\n },\n });\n\n registerSchema({\n command: `${command}.tags.update`,\n description:\n \"Change what a custom tag means (its description). Built-in tags cannot be changed. Applies immediately.\",\n args: {\n slug: { type: \"string\", description: \"Custom tag name, as `tags` lists it\", required: true },\n description: { type: \"string\", description: \"New description\", required: true },\n },\n });\n\n const updateCommand = defineCommand({\n meta: {\n name: \"update\",\n description: `Change a custom tag's description. Built-in tags cannot be changed. Applies immediately.\\n\\nExample: baker ${command} tags update summer-sale --description \"Assets for the 2026 summer sale\"`,\n },\n args: {\n slug: { type: \"positional\", description: \"Custom tag name, as `tags` lists it\", required: true },\n description: { type: \"string\", description: \"New description\", required: true },\n },\n run: async ({ args }) => {\n const parsed = mediaTagsUpdateRequestSchema.safeParse({\n slug: String(args.slug ?? \"\"),\n description: String(args.description ?? \"\"),\n });\n if (!parsed.success) failInvalid(parsed.error.issues[0]);\n try {\n const data = await apiPost<MediaTagsUpdateResponse>(\"/api/media-tags/update\", parsed.data);\n writeJson({ ok: true, data, hints: [SHARED_POOL_HINT] });\n } catch (err) {\n fail(err);\n }\n },\n });\n\n registerSchema({\n command: `${command}.tags.delete`,\n description:\n \"Delete a custom tag from the company's shared pool. Built-in tags cannot be deleted. Applies immediately. Confirm with the user first.\",\n args: { slug: { type: \"string\", description: \"Custom tag name, as `tags` lists it\", required: true } },\n });\n\n const deleteCommand = defineCommand({\n meta: {\n name: \"delete\",\n description: `Delete a custom tag (shared by images, videos and testimonials). Built-in tags cannot be deleted. Applies immediately — confirm with the user first.\\n\\nExample: baker ${command} tags delete summer-sale`,\n },\n args: { slug: { type: \"positional\", description: \"Custom tag name, as `tags` lists it\", required: true } },\n run: async ({ args }) => {\n const parsed = mediaTagsDeleteRequestSchema.safeParse({ slug: String(args.slug ?? \"\") });\n if (!parsed.success) failInvalid(parsed.error.issues[0]);\n try {\n const data = await apiPost<MediaTagsDeleteResponse>(\"/api/media-tags/delete\", parsed.data);\n writeJson({ ok: true, data, hints: [SHARED_POOL_HINT] });\n } catch (err) {\n fail(err);\n }\n },\n });\n\n return defineCommand({\n meta: {\n name: \"tags\",\n description: `The ${label} tag taxonomy: built-in defaults plus the company's custom tags (one pool shared by images, videos and testimonials). Subcommands: list (default), create, update, delete.\n\nExamples:\n baker ${command} tags # list available tags\n baker ${command} tags create \"summer sale\" --description \"…\"\n baker ${command} tags update summer-sale --description \"…\"\n baker ${command} tags delete summer-sale`,\n },\n // Declared on the parent too: `default: \"list\"` dispatches the bare `tags --output json`\n // form, and citty reads an undeclared flag's value as a subcommand name.\n args: OUTPUT_ARG,\n subCommands: {\n list: listCommand,\n create: createCommand,\n update: updateCommand,\n delete: deleteCommand,\n },\n // `default`, never `run`: citty falls through to the parent's `run` after a subcommand.\n default: \"list\",\n });\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import {
|
|
2
|
+
classifyAudience
|
|
3
|
+
} from "./chunk-5HYSKH77.js";
|
|
4
|
+
|
|
5
|
+
// src/audience-names.ts
|
|
6
|
+
var BUYERS_QUESTION = `\`name\` is the name an advertiser gave a custom audience in their Meta ad account, in any language. Is it made of people who have already bought from the brand: purchasers, paying customers, clients, a customer list? People who only visited, engaged, signed up, started a checkout or are leads or prospects have not bought. A lookalike of buyers is not buyers.`;
|
|
7
|
+
var BUYERS_HELD = 0.42;
|
|
8
|
+
var LOOKALIKE_QUESTION = `\`name\` is the name an advertiser gave a custom audience in their Meta ad account, in any language. Is it a lookalike audience: new people Meta finds because they resemble a seed audience (often named "Lookalike (GB, 1%)", "LAL 3%", "Similar to\u2026")?`;
|
|
9
|
+
var LOOKALIKE_HELD = 0.4;
|
|
10
|
+
async function readAudienceNames(names, ask) {
|
|
11
|
+
const distinct = [...new Set(names.map((n) => n.trim()).filter(Boolean))];
|
|
12
|
+
if (distinct.length === 0) return () => void 0;
|
|
13
|
+
const answers = await ask(
|
|
14
|
+
distinct.flatMap((name) => [
|
|
15
|
+
{ instructions: { name, question: BUYERS_QUESTION } },
|
|
16
|
+
{ instructions: { name, question: LOOKALIKE_QUESTION } }
|
|
17
|
+
])
|
|
18
|
+
);
|
|
19
|
+
if (answers === null) return () => void 0;
|
|
20
|
+
const read = new Map(
|
|
21
|
+
distinct.map((name, i) => [
|
|
22
|
+
name,
|
|
23
|
+
{ buyers: (answers[2 * i] ?? 0) >= BUYERS_HELD, lookalike: (answers[2 * i + 1] ?? 0) >= LOOKALIKE_HELD }
|
|
24
|
+
])
|
|
25
|
+
);
|
|
26
|
+
return (name) => read.get(name.trim());
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// src/commands/ads/meta/adset-viewers.ts
|
|
30
|
+
function adSetViewerRows(adSets, audiences, campaigns, readName) {
|
|
31
|
+
const campaignById = new Map(campaigns.map((campaign) => [campaign.id, campaign]));
|
|
32
|
+
return adSets.map((adSet) => ({
|
|
33
|
+
id: adSet.id,
|
|
34
|
+
name: adSet.name,
|
|
35
|
+
campaign_id: adSet.campaign_id,
|
|
36
|
+
effective_status: adSet.effective_status,
|
|
37
|
+
viewer: classifyAudience(adSet, audiences, campaignById.get(adSet.campaign_id), readName)
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
var VIEWER_TABLE_COLUMNS = [
|
|
41
|
+
"id",
|
|
42
|
+
"name",
|
|
43
|
+
"effective_status",
|
|
44
|
+
"temperature",
|
|
45
|
+
"knows",
|
|
46
|
+
"placements",
|
|
47
|
+
"why"
|
|
48
|
+
];
|
|
49
|
+
function flattenViewerRows(rows) {
|
|
50
|
+
return rows.map(({ viewer, ...row }) => ({
|
|
51
|
+
id: row.id,
|
|
52
|
+
name: row.name,
|
|
53
|
+
effective_status: row.effective_status,
|
|
54
|
+
temperature: viewer.temperature,
|
|
55
|
+
knows: viewer.knows.length > 0 ? viewer.knows.join(", ") : "nothing yet",
|
|
56
|
+
placements: viewer.placements.join(", "),
|
|
57
|
+
why: viewer.reasons.join(" ")
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
function audienceNamesOf(adSets, audiences) {
|
|
61
|
+
const refs = adSets.flatMap((adSet) => {
|
|
62
|
+
const targeting = adSet.targeting ?? {};
|
|
63
|
+
return [targeting.custom_audiences, targeting.excluded_custom_audiences].flatMap(
|
|
64
|
+
(list) => Array.isArray(list) ? list.map((ref) => ref?.name) : []
|
|
65
|
+
);
|
|
66
|
+
});
|
|
67
|
+
return [...refs, ...audiences.map((a) => a.name)].filter((n) => typeof n === "string" && n.length > 0);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
readAudienceNames,
|
|
72
|
+
adSetViewerRows,
|
|
73
|
+
VIEWER_TABLE_COLUMNS,
|
|
74
|
+
flattenViewerRows,
|
|
75
|
+
audienceNamesOf
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=chunk-NFSLRRIE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/audience-names.ts","../src/commands/ads/meta/adset-viewers.ts"],"sourcesContent":["/**\n * What a Meta custom audience's name says its members are, read by the decision model (Jev) in\n * the advertiser's own language: buyers (\"Compradores 180d\", \"Kunden-Liste\", \"購入者\"), or a\n * lookalike of a seed. It replaced a regex of the words for \"buyer\" in five languages, which read\n * \"Clientes potenciales\" (leads) as buyers and missed every other language. Thresholds were\n * measured on scripts/audience-names-evals (docs/decision-model.md).\n */\nimport type { AskNouls } from \"./engine/lib/remembered-nouls.ts\";\nimport type { AudienceNameReading } from \"./viewer-profile.ts\";\n\nexport const BUYERS_QUESTION = `\\`name\\` is the name an advertiser gave a custom audience in their Meta ad account, in any language. Is it made of people who have already bought from the brand: purchasers, paying customers, clients, a customer list? People who only visited, engaged, signed up, started a checkout or are leads or prospects have not bought. A lookalike of buyers is not buyers.`;\nconst BUYERS_HELD = 0.42;\n\nexport const LOOKALIKE_QUESTION = `\\`name\\` is the name an advertiser gave a custom audience in their Meta ad account, in any language. Is it a lookalike audience: new people Meta finds because they resemble a seed audience (often named \"Lookalike (GB, 1%)\", \"LAL 3%\", \"Similar to…\")?`;\nconst LOOKALIKE_HELD = 0.4;\n\n/** Each name's reading, in one request; undefined for every name when the model could not answer. */\nexport async function readAudienceNames(names: readonly string[], ask: AskNouls): Promise<AudienceNameReading> {\n const distinct = [...new Set(names.map((n) => n.trim()).filter(Boolean))];\n if (distinct.length === 0) return () => undefined;\n const answers = await ask(\n distinct.flatMap((name) => [\n { instructions: { name, question: BUYERS_QUESTION } },\n { instructions: { name, question: LOOKALIKE_QUESTION } },\n ]),\n );\n if (answers === null) return () => undefined;\n const read = new Map(\n distinct.map((name, i) => [\n name,\n { buyers: (answers[2 * i] ?? 0) >= BUYERS_HELD, lookalike: (answers[2 * i + 1] ?? 0) >= LOOKALIKE_HELD },\n ]),\n );\n return (name) => read.get(name.trim());\n}\n","import {\n type AudienceNameReading,\n type CustomAudienceInput,\n classifyAudience,\n type ViewerProfile,\n} from \"../../../viewer-profile.ts\";\n\ntype MetaRow = Record<string, unknown>;\n\nexport interface AdSetViewerRow {\n id: unknown;\n name: unknown;\n campaign_id: unknown;\n effective_status: unknown;\n viewer: ViewerProfile;\n}\n\n/**\n * `baker ads meta adsets --audience`: who each ad set reaches, read off its own\n * targeting, the account's audience list (for each audience's subtype) and its\n * campaign's objective, and what each audience's name says its members are\n * (`readAudienceNames`; read by subtype alone without it). The row keeps only\n * what names the ad set, so the viewer is the one thing it adds.\n */\nexport function adSetViewerRows(\n adSets: readonly MetaRow[],\n audiences: readonly CustomAudienceInput[],\n campaigns: readonly MetaRow[],\n readName?: AudienceNameReading,\n): AdSetViewerRow[] {\n const campaignById = new Map(campaigns.map((campaign) => [campaign.id, campaign]));\n return adSets.map((adSet) => ({\n id: adSet.id,\n name: adSet.name,\n campaign_id: adSet.campaign_id,\n effective_status: adSet.effective_status,\n viewer: classifyAudience(adSet, audiences, campaignById.get(adSet.campaign_id), readName),\n }));\n}\n\nexport const VIEWER_TABLE_COLUMNS = [\n \"id\",\n \"name\",\n \"effective_status\",\n \"temperature\",\n \"knows\",\n \"placements\",\n \"why\",\n] as const;\n\n/** The table and csv writers print one scalar per cell, so the viewer is spelled out column by column. */\nexport function flattenViewerRows(rows: readonly AdSetViewerRow[]): Array<Record<string, unknown>> {\n return rows.map(({ viewer, ...row }) => ({\n id: row.id,\n name: row.name,\n effective_status: row.effective_status,\n temperature: viewer.temperature,\n knows: viewer.knows.length > 0 ? viewer.knows.join(\", \") : \"nothing yet\",\n placements: viewer.placements.join(\", \"),\n why: viewer.reasons.join(\" \"),\n }));\n}\n\n/** Every audience name an ad set includes or excludes, and every name in the account's list. Pure. */\nexport function audienceNamesOf(adSets: readonly MetaRow[], audiences: readonly CustomAudienceInput[]): string[] {\n const refs = adSets.flatMap((adSet) => {\n const targeting = (adSet.targeting ?? {}) as Record<string, unknown>;\n return [targeting.custom_audiences, targeting.excluded_custom_audiences].flatMap((list) =>\n Array.isArray(list) ? list.map((ref) => (ref as { name?: unknown })?.name) : [],\n );\n });\n return [...refs, ...audiences.map((a) => a.name)].filter((n): n is string => typeof n === \"string\" && n.length > 0);\n}\n"],"mappings":";;;;;AAUO,IAAM,kBAAkB;AAC/B,IAAM,cAAc;AAEb,IAAM,qBAAqB;AAClC,IAAM,iBAAiB;AAGvB,eAAsB,kBAAkB,OAA0B,KAA6C;AAC7G,QAAM,WAAW,CAAC,GAAG,IAAI,IAAI,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,OAAO,CAAC,CAAC;AACxE,MAAI,SAAS,WAAW,EAAG,QAAO,MAAM;AACxC,QAAM,UAAU,MAAM;AAAA,IACpB,SAAS,QAAQ,CAAC,SAAS;AAAA,MACzB,EAAE,cAAc,EAAE,MAAM,UAAU,gBAAgB,EAAE;AAAA,MACpD,EAAE,cAAc,EAAE,MAAM,UAAU,mBAAmB,EAAE;AAAA,IACzD,CAAC;AAAA,EACH;AACA,MAAI,YAAY,KAAM,QAAO,MAAM;AACnC,QAAM,OAAO,IAAI;AAAA,IACf,SAAS,IAAI,CAAC,MAAM,MAAM;AAAA,MACxB;AAAA,MACA,EAAE,SAAS,QAAQ,IAAI,CAAC,KAAK,MAAM,aAAa,YAAY,QAAQ,IAAI,IAAI,CAAC,KAAK,MAAM,eAAe;AAAA,IACzG,CAAC;AAAA,EACH;AACA,SAAO,CAAC,SAAS,KAAK,IAAI,KAAK,KAAK,CAAC;AACvC;;;ACVO,SAAS,gBACd,QACA,WACA,WACA,UACkB;AAClB,QAAM,eAAe,IAAI,IAAI,UAAU,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC;AACjF,SAAO,OAAO,IAAI,CAAC,WAAW;AAAA,IAC5B,IAAI,MAAM;AAAA,IACV,MAAM,MAAM;AAAA,IACZ,aAAa,MAAM;AAAA,IACnB,kBAAkB,MAAM;AAAA,IACxB,QAAQ,iBAAiB,OAAO,WAAW,aAAa,IAAI,MAAM,WAAW,GAAG,QAAQ;AAAA,EAC1F,EAAE;AACJ;AAEO,IAAM,uBAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,SAAS,kBAAkB,MAAiE;AACjG,SAAO,KAAK,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,OAAO;AAAA,IACvC,IAAI,IAAI;AAAA,IACR,MAAM,IAAI;AAAA,IACV,kBAAkB,IAAI;AAAA,IACtB,aAAa,OAAO;AAAA,IACpB,OAAO,OAAO,MAAM,SAAS,IAAI,OAAO,MAAM,KAAK,IAAI,IAAI;AAAA,IAC3D,YAAY,OAAO,WAAW,KAAK,IAAI;AAAA,IACvC,KAAK,OAAO,QAAQ,KAAK,GAAG;AAAA,EAC9B,EAAE;AACJ;AAGO,SAAS,gBAAgB,QAA4B,WAAqD;AAC/G,QAAM,OAAO,OAAO,QAAQ,CAAC,UAAU;AACrC,UAAM,YAAa,MAAM,aAAa,CAAC;AACvC,WAAO,CAAC,UAAU,kBAAkB,UAAU,yBAAyB,EAAE;AAAA,MAAQ,CAAC,SAChF,MAAM,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,QAAS,KAA4B,IAAI,IAAI,CAAC;AAAA,IAChF;AAAA,EACF,CAAC;AACD,SAAO,CAAC,GAAG,MAAM,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,MAAmB,OAAO,MAAM,YAAY,EAAE,SAAS,CAAC;AACpH;","names":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import {
|
|
2
|
+
REF_PREFIX
|
|
3
|
+
} from "./chunk-66USKCVY.js";
|
|
4
|
+
|
|
5
|
+
// src/commands/canvas/node-preview.ts
|
|
6
|
+
var MAX_PARAMS_PREVIEW_LENGTH = 4e3;
|
|
7
|
+
var SPEC_KEYS = [
|
|
8
|
+
"model",
|
|
9
|
+
"aspect_ratio",
|
|
10
|
+
"image_size",
|
|
11
|
+
"resolution",
|
|
12
|
+
"duration",
|
|
13
|
+
"subject_type",
|
|
14
|
+
"font_size",
|
|
15
|
+
"expect",
|
|
16
|
+
"source",
|
|
17
|
+
"path",
|
|
18
|
+
"url"
|
|
19
|
+
];
|
|
20
|
+
var BODY_KEYS = ["prompt", "text", "subject_description"];
|
|
21
|
+
function scalarField(params, key) {
|
|
22
|
+
const value = params[key];
|
|
23
|
+
if (typeof value === "number") return String(value);
|
|
24
|
+
if (typeof value !== "string") return void 0;
|
|
25
|
+
const trimmed = value.trim();
|
|
26
|
+
return trimmed && !trimmed.startsWith(REF_PREFIX) ? trimmed : void 0;
|
|
27
|
+
}
|
|
28
|
+
function compactJson(params) {
|
|
29
|
+
try {
|
|
30
|
+
const json = JSON.stringify(params);
|
|
31
|
+
return json && json !== "{}" ? json : void 0;
|
|
32
|
+
} catch {
|
|
33
|
+
return void 0;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function cap(text) {
|
|
37
|
+
return text.length > MAX_PARAMS_PREVIEW_LENGTH ? `${text.slice(0, MAX_PARAMS_PREVIEW_LENGTH - 1)}\u2026` : text;
|
|
38
|
+
}
|
|
39
|
+
function nodeParamsPreview(params, deps) {
|
|
40
|
+
const refsLine = deps && deps.length > 0 ? `refs: ${deps.join(", ")}` : void 0;
|
|
41
|
+
if (!params || typeof params !== "object") return refsLine;
|
|
42
|
+
const record = params;
|
|
43
|
+
const spec = [];
|
|
44
|
+
for (const key of SPEC_KEYS) {
|
|
45
|
+
const value = scalarField(record, key);
|
|
46
|
+
if (value !== void 0) spec.push(`${key}: ${value}`);
|
|
47
|
+
}
|
|
48
|
+
if (refsLine) spec.push(refsLine);
|
|
49
|
+
const body = BODY_KEYS.map((key) => scalarField(record, key)).find(Boolean);
|
|
50
|
+
const header = spec.join("\n");
|
|
51
|
+
const composed = header && body ? `${header}
|
|
52
|
+
|
|
53
|
+
${body}` : header || body || compactJson(record);
|
|
54
|
+
return composed ? cap(composed) : void 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export {
|
|
58
|
+
nodeParamsPreview
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=chunk-NHU33T2S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/canvas/node-preview.ts"],"sourcesContent":["import { REF_PREFIX } from \"../../engine/schema/canvas.ts\";\n\n// Mirrors the backend's runNodeSchema / definitionGraph paramsPreview cap — an\n// over-long preview would 400 the whole record.\nconst MAX_PARAMS_PREVIEW_LENGTH = 4000;\n\n// Scalar params worth showing as their own labeled line in a node's detail — the\n// \"what settings produced this\" a reviewer asks for: the model, the aspect ratio,\n// the image size, an ingest's expected format and where it pulls from. Ordered\n// most-identifying first so the graph card's 2-line clamp surfaces the model/format\n// and the inspector shows the full set.\nconst SPEC_KEYS = [\n \"model\",\n \"aspect_ratio\",\n \"image_size\",\n \"resolution\",\n \"duration\",\n \"subject_type\",\n \"font_size\",\n \"expect\",\n \"source\",\n \"path\",\n \"url\",\n] as const;\n\n// The longer free-text a node is recognized by, shown as the body under the spec\n// lines (a generator's prompt, a specimen's copy, a sheet's subject brief).\nconst BODY_KEYS = [\"prompt\", \"text\", \"subject_description\"] as const;\n\n/** A trimmed string or a number as text — never a `$ref:` wiring string (the deps line carries those). */\nfunction scalarField(params: Record<string, unknown>, key: string): string | undefined {\n const value = params[key];\n if (typeof value === \"number\") return String(value);\n if (typeof value !== \"string\") return undefined;\n const trimmed = value.trim();\n return trimmed && !trimmed.startsWith(REF_PREFIX) ? trimmed : undefined;\n}\n\nfunction compactJson(params: unknown): string | undefined {\n try {\n const json = JSON.stringify(params);\n return json && json !== \"{}\" ? json : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction cap(text: string): string {\n return text.length > MAX_PARAMS_PREVIEW_LENGTH ? `${text.slice(0, MAX_PARAMS_PREVIEW_LENGTH - 1)}…` : text;\n}\n\n/**\n * A structured, multi-line excerpt of a node's params for the graph card and its\n * inspector: labeled spec lines (model / aspect_ratio / image_size / expect / …),\n * a `refs:` line naming the upstream nodes it consumes (the \"props\" wired into a\n * generate, taken from the resolved `$ref` deps), then the free-text body (prompt,\n * specimen copy, subject brief). This is what surfaces \"the model, the aspect ratio,\n * the size, everything\" in the dashboard instead of just a bare prompt line. Falls\n * back to compact JSON for a node with no recognized field, or just the `refs:` line\n * when params are absent but deps exist.\n */\nexport function nodeParamsPreview(params: unknown, deps?: readonly string[]): string | undefined {\n const refsLine = deps && deps.length > 0 ? `refs: ${deps.join(\", \")}` : undefined;\n if (!params || typeof params !== \"object\") return refsLine;\n\n const record = params as Record<string, unknown>;\n const spec: string[] = [];\n for (const key of SPEC_KEYS) {\n const value = scalarField(record, key);\n if (value !== undefined) spec.push(`${key}: ${value}`);\n }\n if (refsLine) spec.push(refsLine);\n\n const body = BODY_KEYS.map((key) => scalarField(record, key)).find(Boolean);\n const header = spec.join(\"\\n\");\n const composed = header && body ? `${header}\\n\\n${body}` : header || body || compactJson(record);\n return composed ? cap(composed) : undefined;\n}\n"],"mappings":";;;;;AAIA,IAAM,4BAA4B;AAOlC,IAAM,YAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIA,IAAM,YAAY,CAAC,UAAU,QAAQ,qBAAqB;AAG1D,SAAS,YAAY,QAAiC,KAAiC;AACrF,QAAM,QAAQ,OAAO,GAAG;AACxB,MAAI,OAAO,UAAU,SAAU,QAAO,OAAO,KAAK;AAClD,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,UAAU,MAAM,KAAK;AAC3B,SAAO,WAAW,CAAC,QAAQ,WAAW,UAAU,IAAI,UAAU;AAChE;AAEA,SAAS,YAAY,QAAqC;AACxD,MAAI;AACF,UAAM,OAAO,KAAK,UAAU,MAAM;AAClC,WAAO,QAAQ,SAAS,OAAO,OAAO;AAAA,EACxC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,IAAI,MAAsB;AACjC,SAAO,KAAK,SAAS,4BAA4B,GAAG,KAAK,MAAM,GAAG,4BAA4B,CAAC,CAAC,WAAM;AACxG;AAYO,SAAS,kBAAkB,QAAiB,MAA8C;AAC/F,QAAM,WAAW,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,KAAK;AACxE,MAAI,CAAC,UAAU,OAAO,WAAW,SAAU,QAAO;AAElD,QAAM,SAAS;AACf,QAAM,OAAiB,CAAC;AACxB,aAAW,OAAO,WAAW;AAC3B,UAAM,QAAQ,YAAY,QAAQ,GAAG;AACrC,QAAI,UAAU,OAAW,MAAK,KAAK,GAAG,GAAG,KAAK,KAAK,EAAE;AAAA,EACvD;AACA,MAAI,SAAU,MAAK,KAAK,QAAQ;AAEhC,QAAM,OAAO,UAAU,IAAI,CAAC,QAAQ,YAAY,QAAQ,GAAG,CAAC,EAAE,KAAK,OAAO;AAC1E,QAAM,SAAS,KAAK,KAAK,IAAI;AAC7B,QAAM,WAAW,UAAU,OAAO,GAAG,MAAM;AAAA;AAAA,EAAO,IAAI,KAAK,UAAU,QAAQ,YAAY,MAAM;AAC/F,SAAO,WAAW,IAAI,QAAQ,IAAI;AACpC;","names":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import {
|
|
2
|
+
failApi
|
|
3
|
+
} from "./chunk-7THBBTJJ.js";
|
|
4
|
+
import {
|
|
5
|
+
HUBSPOT_MISSING_GRANT_MARKER,
|
|
6
|
+
HUBSPOT_NOT_CONNECTED_MESSAGE
|
|
7
|
+
} from "./chunk-SMIENBNX.js";
|
|
8
|
+
import {
|
|
9
|
+
ApiError
|
|
10
|
+
} from "./chunk-HREWXNTO.js";
|
|
11
|
+
import {
|
|
12
|
+
writeJson
|
|
13
|
+
} from "./chunk-WOTDHRNF.js";
|
|
14
|
+
|
|
15
|
+
// src/commands/hubspot/refusal.ts
|
|
16
|
+
var CONTINUE = "Keep going with the wider task: say which part you could not read, skip it, and finish everything else. If the `request_connection` call fails, say so plainly and give the exact route: dashboard \u2192 Brain \u2192 Integrations \u2192 Platforms \u2192 HubSpot.";
|
|
17
|
+
function hubspotRefusal(code, message, reason = "so I can count a contact becoming a customer") {
|
|
18
|
+
if (code === "NOT_FOUND" && message.includes(HUBSPOT_NOT_CONNECTED_MESSAGE)) {
|
|
19
|
+
return {
|
|
20
|
+
code: "NO_HUBSPOT_CONNECTION",
|
|
21
|
+
fix: {
|
|
22
|
+
action: "request_connection",
|
|
23
|
+
explanation: `AGENT INSTRUCTION: HubSpot is not connected, and only the user can connect it. Call the \`request_connection\` tool with { platform: "hubspot", reason } \u2014 reason in their words, e.g. "${reason}" \u2014 and they connect it inside the chat; then run this command again. ` + CONTINUE
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (code === "FORBIDDEN" && message.includes(HUBSPOT_MISSING_GRANT_MARKER)) {
|
|
28
|
+
return {
|
|
29
|
+
code: "HUBSPOT_RECONNECT_REQUIRED",
|
|
30
|
+
fix: {
|
|
31
|
+
action: "request_connection",
|
|
32
|
+
explanation: 'AGENT INSTRUCTION: HubSpot is connected \u2014 do not tell the user it is missing, and do not retry. Its access does not cover this read (it was connected before Baker asked for it, or the access was withdrawn), and only the user can widen it. Call the `request_connection` tool with { platform: "hubspot", reason } naming what you need to read; the card offers them a Reconnect button. Run this command again once they have. ' + CONTINUE
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
function failNotConnected(err, reason) {
|
|
39
|
+
const refusal = err instanceof ApiError ? hubspotRefusal(err.code, err.message, reason) : null;
|
|
40
|
+
if (err instanceof ApiError && refusal !== null) {
|
|
41
|
+
writeJson({ ok: false, error: { code: refusal.code, message: err.message, fix: refusal.fix } });
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
failApi(err);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export {
|
|
48
|
+
hubspotRefusal,
|
|
49
|
+
failNotConnected
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=chunk-NJEZM4OB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/hubspot/refusal.ts"],"sourcesContent":["import { HUBSPOT_MISSING_GRANT_MARKER, HUBSPOT_NOT_CONNECTED_MESSAGE } from \"@baker/api\";\nimport { ApiError } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { failApi } from \"../actions/shared.ts\";\n\nexport interface HubspotRefusal {\n code: \"NO_HUBSPOT_CONNECTION\" | \"HUBSPOT_RECONNECT_REQUIRED\";\n fix: { action: \"request_connection\"; explanation: string };\n}\n\nconst CONTINUE =\n \"Keep going with the wider task: say which part you could not read, skip it, and finish everything else. If the \" +\n \"`request_connection` call fails, say so plainly and give the exact route: dashboard → Brain → Integrations → \" +\n \"Platforms → HubSpot.\";\n\n/**\n * The two HubSpot refusals only the user can clear, as the fix the agent\n * relays: the in-chat connect card, which connects HubSpot when nothing is\n * connected and reconnects it when the connection does not allow the read.\n * Every command that reads HubSpot shares this, so `baker hubspot` and\n * `baker analytics sources` cannot answer the same refusal two ways. Null for\n * every other refusal. `reason` is the example the agent words its ask on —\n * pass one that fits the read that was refused.\n *\n * Matched on the backend's own sentences (shared from `@baker/api`), because\n * the status alone does not tell them apart: a 404 is also \"no such source\",\n * and a 403 also \"you cannot change this company\".\n */\nexport function hubspotRefusal(\n code: string,\n message: string,\n reason = \"so I can count a contact becoming a customer\",\n): HubspotRefusal | null {\n if (code === \"NOT_FOUND\" && message.includes(HUBSPOT_NOT_CONNECTED_MESSAGE)) {\n return {\n code: \"NO_HUBSPOT_CONNECTION\",\n fix: {\n action: \"request_connection\",\n explanation:\n \"AGENT INSTRUCTION: HubSpot is not connected, and only the user can connect it. Call the `request_connection` \" +\n `tool with { platform: \"hubspot\", reason } — reason in their words, e.g. \"${reason}\" — and they connect it ` +\n \"inside the chat; then run this command again. \" +\n CONTINUE,\n },\n };\n }\n if (code === \"FORBIDDEN\" && message.includes(HUBSPOT_MISSING_GRANT_MARKER)) {\n return {\n code: \"HUBSPOT_RECONNECT_REQUIRED\",\n fix: {\n action: \"request_connection\",\n explanation:\n \"AGENT INSTRUCTION: HubSpot is connected — do not tell the user it is missing, and do not retry. Its access does \" +\n \"not cover this read (it was connected before Baker asked for it, or the access was withdrawn), and only the user \" +\n 'can widen it. Call the `request_connection` tool with { platform: \"hubspot\", reason } naming what you need to ' +\n \"read; the card offers them a Reconnect button. Run this command again once they have. \" +\n CONTINUE,\n },\n };\n }\n return null;\n}\n\n/**\n * \"No HubSpot connected\" and \"connected, but not for this\" are the most common\n * reasons these commands can't answer, and the agent can fix neither — only the\n * user can. Turn them into the in-chat connect card instead of a bare error.\n */\nexport function failNotConnected(err: unknown, reason?: string): never {\n const refusal = err instanceof ApiError ? hubspotRefusal(err.code, err.message, reason) : null;\n if (err instanceof ApiError && refusal !== null) {\n writeJson({ ok: false, error: { code: refusal.code, message: err.message, fix: refusal.fix } });\n process.exit(1);\n }\n failApi(err);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAUA,IAAM,WACJ;AAiBK,SAAS,eACd,MACA,SACA,SAAS,gDACc;AACvB,MAAI,SAAS,eAAe,QAAQ,SAAS,6BAA6B,GAAG;AAC3E,WAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,aACE,gMAC4E,MAAM,gFAElF;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAS,eAAe,QAAQ,SAAS,4BAA4B,GAAG;AAC1E,WAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,aACE,+aAIA;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAOO,SAAS,iBAAiB,KAAc,QAAwB;AACrE,QAAM,UAAU,eAAe,WAAW,eAAe,IAAI,MAAM,IAAI,SAAS,MAAM,IAAI;AAC1F,MAAI,eAAe,YAAY,YAAY,MAAM;AAC/C,cAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,QAAQ,MAAM,SAAS,IAAI,SAAS,KAAK,QAAQ,IAAI,EAAE,CAAC;AAC9F,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,UAAQ,GAAG;AACb;","names":[]}
|