@koda-sl/baker-cli 0.385.0-dev.ec7b0e42b → 0.385.0-dev.f7ef4c7e1
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 +1082 -210
- package/canvas/tiktok-captions-composition/index.html +5 -6
- package/canvas/tiktok-captions-composition/meta.json +5 -0
- package/dist/account-4UEZAY5T.js +49 -0
- package/dist/account-4UEZAY5T.js.map +1 -0
- package/dist/account-G6QK2VXQ.js +79 -0
- package/dist/account-G6QK2VXQ.js.map +1 -0
- package/dist/account-OINZG6UP.js +80 -0
- package/dist/account-OINZG6UP.js.map +1 -0
- package/dist/account-reads-ZKKDYHK5.js +218 -0
- package/dist/account-reads-ZKKDYHK5.js.map +1 -0
- package/dist/account-writes-N4JDIDRB.js +66 -0
- package/dist/account-writes-N4JDIDRB.js.map +1 -0
- package/dist/accounts-7KRRRVLB.js +611 -0
- package/dist/accounts-7KRRRVLB.js.map +1 -0
- package/dist/accounts-AEBQFCNH.js +114 -0
- package/dist/accounts-AEBQFCNH.js.map +1 -0
- package/dist/accounts-CNTOHRQ2.js +77 -0
- package/dist/accounts-CNTOHRQ2.js.map +1 -0
- package/dist/accounts-HP4BLKK5.js +75 -0
- package/dist/accounts-HP4BLKK5.js.map +1 -0
- package/dist/accounts-Z4CLGQXJ.js +115 -0
- package/dist/accounts-Z4CLGQXJ.js.map +1 -0
- package/dist/actions-QO7VQ6UV.js +55 -0
- package/dist/actions-QO7VQ6UV.js.map +1 -0
- package/dist/active-entities-YB46ADQN.js +103 -0
- package/dist/active-entities-YB46ADQN.js.map +1 -0
- package/dist/activities-DUAIQJLN.js +74 -0
- package/dist/activities-DUAIQJLN.js.map +1 -0
- package/dist/ad-group-writes-HL3EZ3BT.js +170 -0
- package/dist/ad-group-writes-HL3EZ3BT.js.map +1 -0
- package/dist/ad-groups-FGS5JJGN.js +68 -0
- package/dist/ad-groups-FGS5JJGN.js.map +1 -0
- package/dist/ad-writes-LX4ACUHB.js +174 -0
- package/dist/ad-writes-LX4ACUHB.js.map +1 -0
- package/dist/add-5CUXNOUM.js +97 -0
- package/dist/add-5CUXNOUM.js.map +1 -0
- package/dist/add-5JBMJHNW.js +302 -0
- package/dist/add-5JBMJHNW.js.map +1 -0
- package/dist/add-E66HBIZV.js +105 -0
- package/dist/add-E66HBIZV.js.map +1 -0
- package/dist/add-O76R2SPE.js +104 -0
- package/dist/add-O76R2SPE.js.map +1 -0
- package/dist/add-accounts-YME5SCXD.js +91 -0
- package/dist/add-accounts-YME5SCXD.js.map +1 -0
- package/dist/ads-65R3WMDU.js +128 -0
- package/dist/ads-65R3WMDU.js.map +1 -0
- package/dist/ads-O63J7BDF.js +113 -0
- package/dist/ads-O63J7BDF.js.map +1 -0
- package/dist/ads-T5JWNFSA.js +40 -0
- package/dist/ads-T5JWNFSA.js.map +1 -0
- package/dist/ads-TFZ5PXKS.js +77 -0
- package/dist/ads-TFZ5PXKS.js.map +1 -0
- package/dist/adsets-Y62JOOTV.js +176 -0
- package/dist/adsets-Y62JOOTV.js.map +1 -0
- package/dist/advertisers-LJ2HKJ4W.js +125 -0
- package/dist/advertisers-LJ2HKJ4W.js.map +1 -0
- package/dist/advertisers-WJW5DK3Q.js +120 -0
- package/dist/advertisers-WJW5DK3Q.js.map +1 -0
- package/dist/analytics-HIOC3TUK.js +1976 -0
- package/dist/analytics-HIOC3TUK.js.map +1 -0
- package/dist/analytics-U2NLDV2V.js +433 -0
- package/dist/analytics-U2NLDV2V.js.map +1 -0
- package/dist/animate-E3SKQ6SI.js +480 -0
- package/dist/animate-E3SKQ6SI.js.map +1 -0
- package/dist/assign-V7EAR7VD.js +77 -0
- package/dist/assign-V7EAR7VD.js.map +1 -0
- package/dist/audience-size-GS7EDBDP.js +94 -0
- package/dist/audience-size-GS7EDBDP.js.map +1 -0
- package/dist/audiences-5A6BCWSA.js +268 -0
- package/dist/audiences-5A6BCWSA.js.map +1 -0
- package/dist/audiences-6QOCASVV.js +78 -0
- package/dist/audiences-6QOCASVV.js.map +1 -0
- package/dist/audiences-O67NGIP5.js +85 -0
- package/dist/audiences-O67NGIP5.js.map +1 -0
- package/dist/audit-HWK24VXI.js +88 -0
- package/dist/audit-HWK24VXI.js.map +1 -0
- package/dist/audit-WMZERUAA.js +151 -0
- package/dist/audit-WMZERUAA.js.map +1 -0
- package/dist/autocomplete-KQSTLQFS.js +111 -0
- package/dist/autocomplete-KQSTLQFS.js.map +1 -0
- package/dist/avatars-HAFQZD63.js +38 -0
- package/dist/avatars-HAFQZD63.js.map +1 -0
- package/dist/bid-pricing-5SORFAPE.js +99 -0
- package/dist/bid-pricing-5SORFAPE.js.map +1 -0
- package/dist/brand-EBG436YV.js +22 -0
- package/dist/brand-EBG436YV.js.map +1 -0
- package/dist/brief-AYXXPTHC.js +490 -0
- package/dist/brief-AYXXPTHC.js.map +1 -0
- package/dist/businesses-65EWTK5E.js +53 -0
- package/dist/businesses-65EWTK5E.js.map +1 -0
- package/dist/campaign-groups-U7723BBE.js +95 -0
- package/dist/campaign-groups-U7723BBE.js.map +1 -0
- package/dist/campaign-writes-CXS4KYB5.js +165 -0
- package/dist/campaign-writes-CXS4KYB5.js.map +1 -0
- package/dist/campaign-writes-M6JLF5AC.js +170 -0
- package/dist/campaign-writes-M6JLF5AC.js.map +1 -0
- package/dist/campaigns-6SM2ZSIH.js +76 -0
- package/dist/campaigns-6SM2ZSIH.js.map +1 -0
- package/dist/campaigns-7DWD2A5U.js +109 -0
- package/dist/campaigns-7DWD2A5U.js.map +1 -0
- package/dist/campaigns-F66OYA6N.js +107 -0
- package/dist/campaigns-F66OYA6N.js.map +1 -0
- package/dist/campaigns-TD7ZB5DG.js +110 -0
- package/dist/campaigns-TD7ZB5DG.js.map +1 -0
- package/dist/canvas-3NYM5Y7G.js +46 -0
- package/dist/canvas-3NYM5Y7G.js.map +1 -0
- package/dist/capabilities-JNFYSGRD.js +144 -0
- package/dist/capabilities-JNFYSGRD.js.map +1 -0
- package/dist/cards-7HRC4UQQ.js +85 -0
- package/dist/cards-7HRC4UQQ.js.map +1 -0
- package/dist/catalog-N6MDMIVL.js +64 -0
- package/dist/catalog-N6MDMIVL.js.map +1 -0
- package/dist/catalogs-PB46L7FH.js +128 -0
- package/dist/catalogs-PB46L7FH.js.map +1 -0
- package/dist/changes-SASUQK62.js +135 -0
- package/dist/changes-SASUQK62.js.map +1 -0
- package/dist/chatgpt-JKBSAG25.js +47 -0
- package/dist/chatgpt-JKBSAG25.js.map +1 -0
- package/dist/chats-TUZANLQH.js +262 -0
- package/dist/chats-TUZANLQH.js.map +1 -0
- package/dist/chunk-25E6SC3F.js +363 -0
- package/dist/chunk-25E6SC3F.js.map +1 -0
- package/dist/chunk-2GVXNKAE.js +42 -0
- package/dist/chunk-2GVXNKAE.js.map +1 -0
- package/dist/{chunk-WLDM2TRF.js → chunk-2UFRHW3T.js} +4 -4
- package/dist/chunk-2Y5V23PU.js +29 -0
- package/dist/chunk-2Y5V23PU.js.map +1 -0
- package/dist/chunk-35NYNRRB.js +111 -0
- package/dist/chunk-35NYNRRB.js.map +1 -0
- package/dist/chunk-3ACMDRSE.js +39 -0
- package/dist/chunk-3ACMDRSE.js.map +1 -0
- package/dist/chunk-3M6RNCDD.js +26 -0
- package/dist/chunk-3M6RNCDD.js.map +1 -0
- package/dist/chunk-3VXQYDJN.js +1743 -0
- package/dist/chunk-3VXQYDJN.js.map +1 -0
- package/dist/chunk-42DF5DF3.js +304 -0
- package/dist/chunk-42DF5DF3.js.map +1 -0
- package/dist/chunk-44VXKO65.js +106 -0
- package/dist/chunk-44VXKO65.js.map +1 -0
- package/dist/chunk-4NZ47VXO.js +137 -0
- package/dist/chunk-4NZ47VXO.js.map +1 -0
- package/dist/chunk-4X3UR372.js +225 -0
- package/dist/chunk-4X3UR372.js.map +1 -0
- package/dist/chunk-5FEBUCJU.js +25 -0
- package/dist/chunk-5FEBUCJU.js.map +1 -0
- package/dist/chunk-5HYSKH77.js +315 -0
- package/dist/chunk-5HYSKH77.js.map +1 -0
- package/dist/chunk-5LBGFQWF.js +310 -0
- package/dist/chunk-5LBGFQWF.js.map +1 -0
- package/dist/chunk-5MBPIONY.js +29 -0
- package/dist/chunk-5MBPIONY.js.map +1 -0
- package/dist/chunk-6YMHGIHP.js +346 -0
- package/dist/chunk-6YMHGIHP.js.map +1 -0
- package/dist/{chunk-VZEDAFAR.js → chunk-6YYSUISH.js} +47 -8
- package/dist/chunk-6YYSUISH.js.map +1 -0
- package/dist/chunk-7GNU3P7X.js +175 -0
- package/dist/chunk-7GNU3P7X.js.map +1 -0
- package/dist/chunk-7OHWEF3I.js +98 -0
- package/dist/chunk-7OHWEF3I.js.map +1 -0
- package/dist/chunk-7TR3QVWM.js +57 -0
- package/dist/chunk-7TR3QVWM.js.map +1 -0
- package/dist/chunk-AADVCEL4.js +817 -0
- package/dist/chunk-AADVCEL4.js.map +1 -0
- package/dist/chunk-AG62YO7C.js +96 -0
- package/dist/chunk-AG62YO7C.js.map +1 -0
- package/dist/chunk-AIRIT4GF.js +75 -0
- package/dist/chunk-AIRIT4GF.js.map +1 -0
- package/dist/chunk-AP3TP6VG.js +139 -0
- package/dist/chunk-AP3TP6VG.js.map +1 -0
- package/dist/chunk-APP475IQ.js +474 -0
- package/dist/chunk-APP475IQ.js.map +1 -0
- package/dist/chunk-AR7PU7BB.js +76 -0
- package/dist/chunk-AR7PU7BB.js.map +1 -0
- package/dist/chunk-B4S72KSS.js +172 -0
- package/dist/chunk-B4S72KSS.js.map +1 -0
- package/dist/chunk-BIPIL4QA.js +486 -0
- package/dist/chunk-BIPIL4QA.js.map +1 -0
- package/dist/chunk-BPUSL5Y2.js +58 -0
- package/dist/chunk-BPUSL5Y2.js.map +1 -0
- package/dist/chunk-BR32GHYD.js +65 -0
- package/dist/chunk-BR32GHYD.js.map +1 -0
- package/dist/chunk-CAMX6OHF.js +3182 -0
- package/dist/chunk-CAMX6OHF.js.map +1 -0
- package/dist/chunk-CE7RTOX6.js +494 -0
- package/dist/chunk-CE7RTOX6.js.map +1 -0
- package/dist/{chunk-MF7YA62W.js → chunk-CUL3VB4L.js} +10 -5
- package/dist/chunk-CUL3VB4L.js.map +1 -0
- package/dist/chunk-CVEY353K.js +66 -0
- package/dist/chunk-CVEY353K.js.map +1 -0
- package/dist/chunk-CWXADUKL.js +1599 -0
- package/dist/chunk-CWXADUKL.js.map +1 -0
- package/dist/chunk-D46NOXRY.js +6212 -0
- package/dist/chunk-D46NOXRY.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-DUPURL26.js +97 -0
- package/dist/chunk-DUPURL26.js.map +1 -0
- package/dist/chunk-DXJYQ5P2.js +625 -0
- package/dist/chunk-DXJYQ5P2.js.map +1 -0
- package/dist/chunk-E2ZOSNF5.js +96 -0
- package/dist/chunk-E2ZOSNF5.js.map +1 -0
- package/dist/chunk-E3HYHT7C.js +274 -0
- package/dist/chunk-E3HYHT7C.js.map +1 -0
- package/dist/chunk-EDLZGTGN.js +216 -0
- package/dist/chunk-EDLZGTGN.js.map +1 -0
- package/dist/{chunk-XHC4LMK4.js → chunk-EIGXX6KI.js} +16 -8
- package/dist/chunk-EIGXX6KI.js.map +1 -0
- package/dist/chunk-EPDE7ZRU.js +174 -0
- package/dist/chunk-EPDE7ZRU.js.map +1 -0
- package/dist/chunk-ERSX3MKH.js +34 -0
- package/dist/chunk-ERSX3MKH.js.map +1 -0
- package/dist/chunk-F7HRLPR5.js +67 -0
- package/dist/chunk-F7HRLPR5.js.map +1 -0
- package/dist/chunk-FEG6MN4H.js +84 -0
- package/dist/chunk-FEG6MN4H.js.map +1 -0
- package/dist/chunk-FKOECEVC.js +126 -0
- package/dist/chunk-FKOECEVC.js.map +1 -0
- package/dist/chunk-FMGW2NZI.js +106 -0
- package/dist/chunk-FMGW2NZI.js.map +1 -0
- package/dist/chunk-FPZKKNDK.js +98 -0
- package/dist/chunk-FPZKKNDK.js.map +1 -0
- package/dist/chunk-G3ZDLPNZ.js +206 -0
- package/dist/chunk-G3ZDLPNZ.js.map +1 -0
- package/dist/chunk-GIWHHCD6.js +145 -0
- package/dist/chunk-GIWHHCD6.js.map +1 -0
- package/dist/chunk-GOJXKIFQ.js +1605 -0
- package/dist/chunk-GOJXKIFQ.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-HAE4WWFQ.js +455 -0
- package/dist/chunk-HAE4WWFQ.js.map +1 -0
- package/dist/chunk-HEEAC2YG.js +541 -0
- package/dist/chunk-HEEAC2YG.js.map +1 -0
- package/dist/chunk-I2DNBEV6.js +4227 -0
- package/dist/chunk-I2DNBEV6.js.map +1 -0
- package/dist/chunk-I4FTS5EE.js +455 -0
- package/dist/chunk-I4FTS5EE.js.map +1 -0
- package/dist/chunk-IA4KJU7O.js +3151 -0
- package/dist/chunk-IA4KJU7O.js.map +1 -0
- package/dist/chunk-IELPT4K2.js +74 -0
- package/dist/chunk-IELPT4K2.js.map +1 -0
- package/dist/chunk-IJMWEO4P.js +57 -0
- package/dist/chunk-IJMWEO4P.js.map +1 -0
- package/dist/chunk-IVIJJXXT.js +62 -0
- package/dist/chunk-IVIJJXXT.js.map +1 -0
- package/dist/chunk-JAU6OAFK.js +455 -0
- package/dist/chunk-JAU6OAFK.js.map +1 -0
- package/dist/chunk-JD3W3ON7.js +188 -0
- package/dist/chunk-JD3W3ON7.js.map +1 -0
- package/dist/chunk-JLWBK3VC.js +5187 -0
- package/dist/chunk-JLWBK3VC.js.map +1 -0
- package/dist/chunk-JPK34QPS.js +134 -0
- package/dist/chunk-JPK34QPS.js.map +1 -0
- package/dist/chunk-JXJD6RC5.js +169 -0
- package/dist/chunk-JXJD6RC5.js.map +1 -0
- package/dist/chunk-JXMZEOHV.js +333 -0
- package/dist/chunk-JXMZEOHV.js.map +1 -0
- package/dist/chunk-K6TDB2KV.js +1442 -0
- package/dist/chunk-K6TDB2KV.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-KONA5PSR.js +55 -0
- package/dist/chunk-KONA5PSR.js.map +1 -0
- package/dist/chunk-KVHRW7KO.js +60 -0
- package/dist/chunk-KVHRW7KO.js.map +1 -0
- package/dist/chunk-LA6PPSNA.js +65 -0
- package/dist/chunk-LA6PPSNA.js.map +1 -0
- package/dist/chunk-LKPJADL2.js +74 -0
- package/dist/chunk-LKPJADL2.js.map +1 -0
- package/dist/chunk-LM7N7IQR.js +297 -0
- package/dist/chunk-LM7N7IQR.js.map +1 -0
- package/dist/chunk-LWAEHLKV.js +74 -0
- package/dist/chunk-LWAEHLKV.js.map +1 -0
- package/dist/chunk-M6UNISGO.js +66 -0
- package/dist/chunk-M6UNISGO.js.map +1 -0
- package/dist/chunk-MFSIACRB.js +207 -0
- package/dist/chunk-MFSIACRB.js.map +1 -0
- package/dist/chunk-MIJAGBEP.js +23992 -0
- package/dist/chunk-MIJAGBEP.js.map +1 -0
- package/dist/chunk-MYTDK3AL.js +2102 -0
- package/dist/chunk-MYTDK3AL.js.map +1 -0
- package/dist/chunk-MYURCD23.js +6667 -0
- package/dist/chunk-MYURCD23.js.map +1 -0
- package/dist/chunk-MZQ5DX6S.js +125 -0
- package/dist/chunk-MZQ5DX6S.js.map +1 -0
- package/dist/chunk-NFSLRRIE.js +77 -0
- package/dist/chunk-NFSLRRIE.js.map +1 -0
- package/dist/chunk-NMDP7FZP.js +479 -0
- package/dist/chunk-NMDP7FZP.js.map +1 -0
- package/dist/chunk-NMGELUIA.js +183 -0
- package/dist/chunk-NMGELUIA.js.map +1 -0
- package/dist/chunk-NOK7MSVJ.js +533 -0
- package/dist/chunk-NOK7MSVJ.js.map +1 -0
- package/dist/chunk-O2EVJALZ.js +133 -0
- package/dist/chunk-O2EVJALZ.js.map +1 -0
- package/dist/chunk-OIL6PU5W.js +35 -0
- package/dist/chunk-OIL6PU5W.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-PSWVSLJU.js +56 -0
- package/dist/chunk-PSWVSLJU.js.map +1 -0
- package/dist/chunk-PY2NJ6XZ.js +191 -0
- package/dist/chunk-PY2NJ6XZ.js.map +1 -0
- package/dist/chunk-PZ4OM2LK.js +45 -0
- package/dist/chunk-PZ4OM2LK.js.map +1 -0
- package/dist/chunk-Q2EKN7NI.js +1079 -0
- package/dist/chunk-Q2EKN7NI.js.map +1 -0
- package/dist/chunk-Q6ULQMWG.js +41 -0
- package/dist/chunk-Q6ULQMWG.js.map +1 -0
- package/dist/chunk-QMLGJ5OW.js +2891 -0
- package/dist/chunk-QMLGJ5OW.js.map +1 -0
- package/dist/chunk-R7QV5N2S.js +846 -0
- package/dist/chunk-R7QV5N2S.js.map +1 -0
- package/dist/chunk-RCS4JKUD.js +23 -0
- package/dist/chunk-RCS4JKUD.js.map +1 -0
- package/dist/chunk-RR3KT2E7.js +665 -0
- package/dist/chunk-RR3KT2E7.js.map +1 -0
- package/dist/chunk-SEPPFM5S.js +228 -0
- package/dist/chunk-SEPPFM5S.js.map +1 -0
- package/dist/chunk-SQ7DRYCC.js +150 -0
- package/dist/chunk-SQ7DRYCC.js.map +1 -0
- package/dist/chunk-SYULM665.js +610 -0
- package/dist/chunk-SYULM665.js.map +1 -0
- package/dist/chunk-TKT3OHZ6.js +170 -0
- package/dist/chunk-TKT3OHZ6.js.map +1 -0
- package/dist/chunk-TNOSX3PJ.js +136 -0
- package/dist/chunk-TNOSX3PJ.js.map +1 -0
- package/dist/chunk-TTVKI54A.js +160 -0
- package/dist/chunk-TTVKI54A.js.map +1 -0
- package/dist/chunk-U55UZRIB.js +592 -0
- package/dist/chunk-U55UZRIB.js.map +1 -0
- package/dist/chunk-UI6BKYQD.js +225 -0
- package/dist/chunk-UI6BKYQD.js.map +1 -0
- package/dist/chunk-UKE4IZSA.js +337 -0
- package/dist/chunk-UKE4IZSA.js.map +1 -0
- package/dist/chunk-UKLDW4UW.js +46 -0
- package/dist/chunk-UKLDW4UW.js.map +1 -0
- package/dist/chunk-V6XXXEXZ.js +76 -0
- package/dist/chunk-V6XXXEXZ.js.map +1 -0
- package/dist/chunk-VCZSZCXY.js +197 -0
- package/dist/chunk-VCZSZCXY.js.map +1 -0
- package/dist/chunk-VJQWUF66.js +92 -0
- package/dist/chunk-VJQWUF66.js.map +1 -0
- package/dist/chunk-VSU5R34H.js +76 -0
- package/dist/chunk-VSU5R34H.js.map +1 -0
- package/dist/chunk-W4SA4CMR.js +296 -0
- package/dist/chunk-W4SA4CMR.js.map +1 -0
- package/dist/chunk-WFUMNDCE.js +111 -0
- package/dist/chunk-WFUMNDCE.js.map +1 -0
- package/dist/chunk-WGCGKU3M.js +51 -0
- package/dist/chunk-WGCGKU3M.js.map +1 -0
- package/dist/chunk-WHWNXLTD.js +166 -0
- package/dist/chunk-WHWNXLTD.js.map +1 -0
- package/dist/chunk-WN42X2OE.js +509 -0
- package/dist/chunk-WN42X2OE.js.map +1 -0
- package/dist/chunk-WN4KX7GE.js +25 -0
- package/dist/chunk-WN4KX7GE.js.map +1 -0
- package/dist/chunk-XIY7P54H.js +84 -0
- package/dist/chunk-XIY7P54H.js.map +1 -0
- package/dist/chunk-XPLTWUMN.js +103 -0
- package/dist/chunk-XPLTWUMN.js.map +1 -0
- package/dist/chunk-Y6T5ZKBK.js +19 -0
- package/dist/chunk-Y6T5ZKBK.js.map +1 -0
- package/dist/chunk-YGGRQXDP.js +382 -0
- package/dist/chunk-YGGRQXDP.js.map +1 -0
- package/dist/chunk-YMBB4JBD.js +1830 -0
- package/dist/chunk-YMBB4JBD.js.map +1 -0
- package/dist/chunk-YNWM426O.js +159 -0
- package/dist/chunk-YNWM426O.js.map +1 -0
- package/dist/chunk-YQSBHWOI.js +41 -0
- package/dist/chunk-YTF3IVMF.js +149 -0
- package/dist/chunk-YTF3IVMF.js.map +1 -0
- package/dist/chunk-Z3ENMCFE.js +94 -0
- package/dist/chunk-Z3ENMCFE.js.map +1 -0
- package/dist/chunk-Z7MWSXLG.js +94 -0
- package/dist/chunk-Z7MWSXLG.js.map +1 -0
- package/dist/chunk-ZIXHS6AM.js +42 -0
- package/dist/chunk-ZIXHS6AM.js.map +1 -0
- package/dist/chunk-ZJ7TQUCU.js +4410 -0
- package/dist/chunk-ZJ7TQUCU.js.map +1 -0
- package/dist/chunk-ZNQRDLSS.js +52 -0
- package/dist/chunk-ZNQRDLSS.js.map +1 -0
- package/dist/chunk-ZPGGSXU3.js +275 -0
- package/dist/chunk-ZPGGSXU3.js.map +1 -0
- package/dist/claim-NXYQZEMC.js +197 -0
- package/dist/claim-NXYQZEMC.js.map +1 -0
- package/dist/cli.js +104 -70061
- package/dist/cli.js.map +1 -1
- package/dist/client-EURRWXPW.js +19 -0
- package/dist/code-FKQW7V7N.js +76 -0
- package/dist/code-FKQW7V7N.js.map +1 -0
- package/dist/companies-5ZH47E4H.js +195 -0
- package/dist/companies-5ZH47E4H.js.map +1 -0
- package/dist/complete-62OQPRHW.js +81 -0
- package/dist/complete-62OQPRHW.js.map +1 -0
- package/dist/config-OZOHIAOJ.js +88 -0
- package/dist/config-OZOHIAOJ.js.map +1 -0
- package/dist/connect-6DQFYKGN.js +42 -0
- package/dist/content-PCGSX2QU.js +85 -0
- package/dist/content-PCGSX2QU.js.map +1 -0
- package/dist/conversation-NS7JHTPK.js +93 -0
- package/dist/conversation-NS7JHTPK.js.map +1 -0
- package/dist/conversion-report-7QSWB2FY.js +125 -0
- package/dist/conversion-report-7QSWB2FY.js.map +1 -0
- package/dist/conversion-upload-command-XESIAQPU.js +438 -0
- package/dist/conversion-upload-command-XESIAQPU.js.map +1 -0
- package/dist/conversion-writes-BGOVLBS5.js +120 -0
- package/dist/conversion-writes-BGOVLBS5.js.map +1 -0
- package/dist/conversions-46MI57VC.js +135 -0
- package/dist/conversions-46MI57VC.js.map +1 -0
- package/dist/conversions-IYIWW4O7.js +76 -0
- package/dist/conversions-IYIWW4O7.js.map +1 -0
- package/dist/countries-5OBUVLLD.js +82 -0
- package/dist/countries-5OBUVLLD.js.map +1 -0
- package/dist/create-BEDPXUB7.js +236 -0
- package/dist/create-BEDPXUB7.js.map +1 -0
- package/dist/create-LLTMBBGV.js +207 -0
- package/dist/create-LLTMBBGV.js.map +1 -0
- package/dist/create-VNJ2VH3A.js +59 -0
- package/dist/create-VNJ2VH3A.js.map +1 -0
- package/dist/create-ZYKG2XOP.js +138 -0
- package/dist/create-ZYKG2XOP.js.map +1 -0
- package/dist/creatives-2LL66X4E.js +51 -0
- package/dist/creatives-2LL66X4E.js.map +1 -0
- package/dist/creatives-3MEMSUKJ.js +182 -0
- package/dist/creatives-3MEMSUKJ.js.map +1 -0
- package/dist/creatives-XI2DGQUZ.js +87 -0
- package/dist/creatives-XI2DGQUZ.js.map +1 -0
- package/dist/credentials-63PRTM3K.js +287 -0
- package/dist/credentials-63PRTM3K.js.map +1 -0
- package/dist/critique-IQI7CCTT.js +213 -0
- package/dist/critique-IQI7CCTT.js.map +1 -0
- package/dist/critique-UV7FPG45.js +1449 -0
- package/dist/critique-UV7FPG45.js.map +1 -0
- package/dist/crm-OERYUOBS.js +224 -0
- package/dist/crm-OERYUOBS.js.map +1 -0
- package/dist/crm-VNO3QTQG.js +318 -0
- package/dist/crm-VNO3QTQG.js.map +1 -0
- package/dist/crop-B52KIQ4O.js +113 -0
- package/dist/crop-B52KIQ4O.js.map +1 -0
- package/dist/currency-GGWF5DMU.js +88 -0
- package/dist/currency-GGWF5DMU.js.map +1 -0
- package/dist/custom-conversions-7WDBTC4X.js +125 -0
- package/dist/custom-conversions-7WDBTC4X.js.map +1 -0
- package/dist/customers-FOPXEGCB.js +56 -0
- package/dist/decide-PK7WNSQ2.js +199 -0
- package/dist/decide-PK7WNSQ2.js.map +1 -0
- package/dist/delete-56LKNEGA.js +71 -0
- package/dist/delete-56LKNEGA.js.map +1 -0
- package/dist/delete-EZ7HHOOD.js +69 -0
- package/dist/delete-EZ7HHOOD.js.map +1 -0
- package/dist/delete-JSYM7QKN.js +54 -0
- package/dist/delete-JSYM7QKN.js.map +1 -0
- package/dist/delete-NOUWBNZM.js +66 -0
- package/dist/delete-NOUWBNZM.js.map +1 -0
- package/dist/delete-T33AWV63.js +63 -0
- package/dist/delete-T33AWV63.js.map +1 -0
- package/dist/delete-YSYVFL6W.js +71 -0
- package/dist/delete-YSYVFL6W.js.map +1 -0
- package/dist/demographics-LQGFUS4F.js +138 -0
- package/dist/demographics-LQGFUS4F.js.map +1 -0
- package/dist/describe-AAVYIFE3.js +97 -0
- package/dist/describe-AAVYIFE3.js.map +1 -0
- package/dist/describe-UQFLWVFR.js +97 -0
- package/dist/describe-UQFLWVFR.js.map +1 -0
- package/dist/dimensions-QDXBG2XC.js +101 -0
- package/dist/dimensions-QDXBG2XC.js.map +1 -0
- package/dist/discard-V4LQ7ZGA.js +66 -0
- package/dist/discard-V4LQ7ZGA.js.map +1 -0
- package/dist/discover-6TEBPVNC.js +93 -0
- package/dist/discover-6TEBPVNC.js.map +1 -0
- package/dist/discover-SBZPB7T2.js +172 -0
- package/dist/discover-SBZPB7T2.js.map +1 -0
- package/dist/domain-65J2DEDB.js +98 -0
- package/dist/domain-65J2DEDB.js.map +1 -0
- package/dist/download-LV3GPOWV.js +299 -0
- package/dist/download-LV3GPOWV.js.map +1 -0
- package/dist/draft-DDFFTZ43.js +233 -0
- package/dist/draft-DDFFTZ43.js.map +1 -0
- package/dist/draft-FIKJXNIQ.js +281 -0
- package/dist/draft-FIKJXNIQ.js.map +1 -0
- package/dist/draft-GYGWTMBU.js +307 -0
- package/dist/draft-GYGWTMBU.js.map +1 -0
- package/dist/draft-KNXVZAZV.js +217 -0
- package/dist/draft-KNXVZAZV.js.map +1 -0
- package/dist/draft-N4LFPKTA.js +100 -0
- package/dist/draft-N4LFPKTA.js.map +1 -0
- package/dist/draft-NG2DPL2X.js +306 -0
- package/dist/draft-NG2DPL2X.js.map +1 -0
- package/dist/draft-QILZ7M7N.js +328 -0
- package/dist/draft-QILZ7M7N.js.map +1 -0
- package/dist/draft-XPO5RWST.js +103 -0
- package/dist/draft-XPO5RWST.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-TQ2XS2KY.js} +12 -2
- package/dist/env-TQ2XS2KY.js.map +1 -0
- package/dist/experiment-FQNKMORZ.js +1397 -0
- package/dist/experiment-FQNKMORZ.js.map +1 -0
- package/dist/export-4IZQZAPF.js +168 -0
- package/dist/export-4IZQZAPF.js.map +1 -0
- package/dist/extract-DZMGVQ7D.js +113 -0
- package/dist/extract-DZMGVQ7D.js.map +1 -0
- package/dist/facets-FAAOFHBF.js +114 -0
- package/dist/facets-FAAOFHBF.js.map +1 -0
- package/dist/favorites-DD2LNSTG.js +178 -0
- package/dist/favorites-DD2LNSTG.js.map +1 -0
- package/dist/feed-TUVFNX2U.js +177 -0
- package/dist/feed-TUVFNX2U.js.map +1 -0
- package/dist/feedback-NWOOZOFW.js +66 -0
- package/dist/feedback-NWOOZOFW.js.map +1 -0
- package/dist/feedback-record-CFPUKLMY.js +175 -0
- package/dist/feedback-record-CFPUKLMY.js.map +1 -0
- package/dist/fetch-LEY77E7V.js +176 -0
- package/dist/fetch-LEY77E7V.js.map +1 -0
- package/dist/fetch-O6UHNXWB.js +139 -0
- package/dist/fetch-O6UHNXWB.js.map +1 -0
- package/dist/find-4XKIBF4D.js +134 -0
- package/dist/find-4XKIBF4D.js.map +1 -0
- package/dist/fit-ODVVXV2Q.js +45 -0
- package/dist/fit-ODVVXV2Q.js.map +1 -0
- package/dist/flows-QKPC63AF.js +247 -0
- package/dist/flows-QKPC63AF.js.map +1 -0
- package/dist/follow-RCOXTZGY.js +94 -0
- package/dist/follow-RCOXTZGY.js.map +1 -0
- package/dist/follow-competitors-SQ5XBFTK.js +112 -0
- package/dist/follow-competitors-SQ5XBFTK.js.map +1 -0
- package/dist/following-VDU3BHC4.js +113 -0
- package/dist/following-VDU3BHC4.js.map +1 -0
- package/dist/fonts-WM2MJDVJ.js +34 -0
- package/dist/fonts-WM2MJDVJ.js.map +1 -0
- package/dist/forecast-2GJKBNBM.js +168 -0
- package/dist/forecast-2GJKBNBM.js.map +1 -0
- package/dist/forecast-7K3TAHDL.js +104 -0
- package/dist/forecast-7K3TAHDL.js.map +1 -0
- package/dist/funding-HTFVZLLG.js +85 -0
- package/dist/funding-HTFVZLLG.js.map +1 -0
- package/dist/funnel-CSPK5SPZ.js +394 -0
- package/dist/funnel-CSPK5SPZ.js.map +1 -0
- package/dist/ga4-2RC4EH7V.js +55 -0
- package/dist/ga4-2RC4EH7V.js.map +1 -0
- package/dist/generate-TPDOBCKQ.js +262 -0
- package/dist/generate-TPDOBCKQ.js.map +1 -0
- package/dist/get-4YZ4PI3B.js +56 -0
- package/dist/get-4YZ4PI3B.js.map +1 -0
- package/dist/get-FH2LIEYL.js +63 -0
- package/dist/get-FH2LIEYL.js.map +1 -0
- package/dist/get-GZLCDXXW.js +61 -0
- package/dist/get-GZLCDXXW.js.map +1 -0
- package/dist/get-HFU6ZJPX.js +78 -0
- package/dist/get-HFU6ZJPX.js.map +1 -0
- package/dist/get-TSPQYEKC.js +59 -0
- package/dist/get-TSPQYEKC.js.map +1 -0
- package/dist/get-TY3RXYNZ.js +63 -0
- package/dist/get-TY3RXYNZ.js.map +1 -0
- package/dist/get-VPW33XTN.js +92 -0
- package/dist/get-VPW33XTN.js.map +1 -0
- package/dist/gif-JFEYPFFI.js +94 -0
- package/dist/gif-JFEYPFFI.js.map +1 -0
- package/dist/google-R6RD4L6Z.js +136 -0
- package/dist/google-R6RD4L6Z.js.map +1 -0
- package/dist/google-VPQNRVIB.js +3190 -0
- package/dist/google-VPQNRVIB.js.map +1 -0
- package/dist/google-ads-WWM5KIRS.js +195 -0
- package/dist/google-ads-WWM5KIRS.js.map +1 -0
- package/dist/group-7AV6UL26.js +43 -0
- package/dist/group-7AV6UL26.js.map +1 -0
- package/dist/group-BVQZEZIC.js +43 -0
- package/dist/group-BVQZEZIC.js.map +1 -0
- package/dist/gsc-SQ42WAQE.js +30 -0
- package/dist/gsc-SQ42WAQE.js.map +1 -0
- package/dist/history-BNNHFURR.js +67 -0
- package/dist/history-BNNHFURR.js.map +1 -0
- package/dist/history-KBK5TP65.js +133 -0
- package/dist/history-KBK5TP65.js.map +1 -0
- package/dist/hubspot-GAAWWVLL.js +779 -0
- package/dist/hubspot-GAAWWVLL.js.map +1 -0
- package/dist/icon-OYTTSNSL.js +137 -0
- package/dist/icon-OYTTSNSL.js.map +1 -0
- package/dist/ideas-CELMD3BL.js +32 -0
- package/dist/ideas-CELMD3BL.js.map +1 -0
- package/dist/images-QHV4ECAP.js +90 -0
- package/dist/images-QHV4ECAP.js.map +1 -0
- package/dist/improve-W6GZNT2A.js +86 -0
- package/dist/improve-W6GZNT2A.js.map +1 -0
- package/dist/ingest-SH35YX6X.js +23 -0
- package/dist/ingest-SH35YX6X.js.map +1 -0
- package/dist/ingest-UWCGJZXV.js +107 -0
- package/dist/ingest-UWCGJZXV.js.map +1 -0
- package/dist/insights-IW7LGAWU.js +423 -0
- package/dist/insights-IW7LGAWU.js.map +1 -0
- package/dist/insights-QH54F56A.js +122 -0
- package/dist/insights-QH54F56A.js.map +1 -0
- package/dist/inspect-6Z6HEMBI.js +189 -0
- package/dist/inspect-6Z6HEMBI.js.map +1 -0
- package/dist/inspiration-RDQ3Y3N3.js +53 -0
- package/dist/inspiration-RDQ3Y3N3.js.map +1 -0
- package/dist/intent-5GSSCFZ2.js +95 -0
- package/dist/intent-5GSSCFZ2.js.map +1 -0
- package/dist/job-URVXJP75.js +202 -0
- package/dist/job-URVXJP75.js.map +1 -0
- package/dist/job-create-S4SECUVF.js +109 -0
- package/dist/job-create-S4SECUVF.js.map +1 -0
- package/dist/job-status-253SUCTJ.js +74 -0
- package/dist/job-status-253SUCTJ.js.map +1 -0
- package/dist/keep-GPSYDIGJ.js +78 -0
- package/dist/keep-GPSYDIGJ.js.map +1 -0
- package/dist/keyword-gap-NTFDX43B.js +130 -0
- package/dist/keyword-gap-NTFDX43B.js.map +1 -0
- package/dist/keyword-metrics-NKZRCF4L.js +197 -0
- package/dist/keyword-metrics-NKZRCF4L.js.map +1 -0
- package/dist/keywords-for-site-NQUPJNUR.js +128 -0
- package/dist/keywords-for-site-NQUPJNUR.js.map +1 -0
- package/dist/landing-AHNZSZHY.js +28 -0
- package/dist/landing-AHNZSZHY.js.map +1 -0
- package/dist/landings-NEF4PQL2.js +151 -0
- package/dist/landings-NEF4PQL2.js.map +1 -0
- package/dist/languages-3RDPPPTE.js +55 -0
- package/dist/languages-3RDPPPTE.js.map +1 -0
- package/dist/languages-CQX3YOIT.js +40 -0
- package/dist/languages-CQX3YOIT.js.map +1 -0
- package/dist/launches-GBHLJH5S.js +19 -0
- package/dist/launches-GBHLJH5S.js.map +1 -0
- package/dist/layerize-Q56C6LFG.js +190 -0
- package/dist/layerize-Q56C6LFG.js.map +1 -0
- package/dist/leads-5MUVPXA2.js +90 -0
- package/dist/leads-5MUVPXA2.js.map +1 -0
- package/dist/leads-JHUM6FYR.js +293 -0
- package/dist/leads-JHUM6FYR.js.map +1 -0
- package/dist/learn-EMV7RWTB.js +203 -0
- package/dist/learn-EMV7RWTB.js.map +1 -0
- package/dist/library-6VUFHTEK.js +109 -0
- package/dist/library-6VUFHTEK.js.map +1 -0
- package/dist/lighthouse-57U2GMPV.js +75 -0
- package/dist/lighthouse-57U2GMPV.js.map +1 -0
- package/dist/line-item-writes-GMIZYHLB.js +208 -0
- package/dist/line-item-writes-GMIZYHLB.js.map +1 -0
- package/dist/line-items-B5HAC47U.js +103 -0
- package/dist/line-items-B5HAC47U.js.map +1 -0
- package/dist/link-B6ZJFGFE.js +64 -0
- package/dist/link-B6ZJFGFE.js.map +1 -0
- package/dist/linkedin-FJ3OUYT2.js +1008 -0
- package/dist/linkedin-FJ3OUYT2.js.map +1 -0
- package/dist/list-2MBSU4ZX.js +63 -0
- package/dist/list-2MBSU4ZX.js.map +1 -0
- package/dist/list-EFUPHLG3.js +303 -0
- package/dist/list-EFUPHLG3.js.map +1 -0
- package/dist/list-G57ZO4PG.js +50 -0
- package/dist/list-G57ZO4PG.js.map +1 -0
- package/dist/list-JCSWZWDI.js +57 -0
- package/dist/list-JCSWZWDI.js.map +1 -0
- package/dist/list-QOSPRCH4.js +151 -0
- package/dist/list-QOSPRCH4.js.map +1 -0
- package/dist/list-RINCJOAC.js +76 -0
- package/dist/list-RINCJOAC.js.map +1 -0
- package/dist/list-SRNXHS6L.js +51 -0
- package/dist/list-SRNXHS6L.js.map +1 -0
- package/dist/list-YJSO4M5Q.js +65 -0
- package/dist/list-YJSO4M5Q.js.map +1 -0
- package/dist/locations-HW2Y5OJO.js +67 -0
- package/dist/locations-HW2Y5OJO.js.map +1 -0
- package/dist/locations-XOHI3VWI.js +40 -0
- package/dist/locations-XOHI3VWI.js.map +1 -0
- package/dist/log-SZDYUMM3.js +92 -0
- package/dist/log-SZDYUMM3.js.map +1 -0
- package/dist/logo-KXTGIYBI.js +18 -0
- package/dist/logo-KXTGIYBI.js.map +1 -0
- package/dist/lookup-X6O5UNJH.js +22 -0
- package/dist/lookup-X6O5UNJH.js.map +1 -0
- package/dist/make-SGCBJTRR.js +633 -0
- package/dist/make-SGCBJTRR.js.map +1 -0
- package/dist/map-ZK46VVL3.js +404 -0
- package/dist/map-ZK46VVL3.js.map +1 -0
- package/dist/mcp-NCM5TQUG.js +463 -0
- package/dist/mcp-NCM5TQUG.js.map +1 -0
- package/dist/media-MI4EE7L4.js +89 -0
- package/dist/media-MI4EE7L4.js.map +1 -0
- package/dist/media-QUTQOBA7.js +15 -0
- package/dist/media-QUTQOBA7.js.map +1 -0
- package/dist/media-sources-MS3RMQ6A.js +32 -0
- package/dist/media-sources-MS3RMQ6A.js.map +1 -0
- package/dist/members-IGHLTQKW.js +44 -0
- package/dist/members-IGHLTQKW.js.map +1 -0
- package/dist/meta-E3JOUOSS.js +69 -0
- package/dist/meta-E3JOUOSS.js.map +1 -0
- package/dist/metrics-HQ7XJAYQ.js +152 -0
- package/dist/metrics-HQ7XJAYQ.js.map +1 -0
- package/dist/models-PGX3FBHU.js +155 -0
- package/dist/models-PGX3FBHU.js.map +1 -0
- package/dist/normalize-FPJ6GSOY.js +806 -0
- package/dist/normalize-FPJ6GSOY.js.map +1 -0
- package/dist/normalize-LHD5LVFK.js +141 -0
- package/dist/normalize-LHD5LVFK.js.map +1 -0
- package/dist/options-CPHN3RMO.js +121 -0
- package/dist/options-CPHN3RMO.js.map +1 -0
- package/dist/output-GQFJ2T5B.js +24 -0
- package/dist/output-GQFJ2T5B.js.map +1 -0
- package/dist/page-VTTSBC6Y.js +105 -0
- package/dist/page-VTTSBC6Y.js.map +1 -0
- package/dist/pages-PMZVNVQM.js +66 -0
- package/dist/pages-PMZVNVQM.js.map +1 -0
- package/dist/performance-ECIJJEFV.js +24 -0
- package/dist/performance-ECIJJEFV.js.map +1 -0
- package/dist/pinterest-UDNGOWDM.js +96 -0
- package/dist/pinterest-UDNGOWDM.js.map +1 -0
- package/dist/pixels-OYZDGCH3.js +108 -0
- package/dist/pixels-OYZDGCH3.js.map +1 -0
- package/dist/pixels-XKGNTCFX.js +60 -0
- package/dist/pixels-XKGNTCFX.js.map +1 -0
- package/dist/plan-DZS3TVIJ.js +207 -0
- package/dist/plan-DZS3TVIJ.js.map +1 -0
- package/dist/preview-DR6MXOGI.js +169 -0
- package/dist/preview-DR6MXOGI.js.map +1 -0
- package/dist/profile-VOVZG44G.js +159 -0
- package/dist/profile-VOVZG44G.js.map +1 -0
- package/dist/promoted-tweet-writes-UJJI5SQL.js +180 -0
- package/dist/promoted-tweet-writes-UJJI5SQL.js.map +1 -0
- package/dist/promoted-tweets-O5RCETPX.js +119 -0
- package/dist/promoted-tweets-O5RCETPX.js.map +1 -0
- package/dist/properties-MKVF7MUK.js +101 -0
- package/dist/properties-MKVF7MUK.js.map +1 -0
- package/dist/publish-RRYU3NNX.js +322 -0
- package/dist/publish-RRYU3NNX.js.map +1 -0
- package/dist/query-CNWQ6STR.js +61 -0
- package/dist/query-CNWQ6STR.js.map +1 -0
- package/dist/query-DBSBZ73C.js +247 -0
- package/dist/query-DBSBZ73C.js.map +1 -0
- package/dist/query-QK4U4TEL.js +236 -0
- package/dist/query-QK4U4TEL.js.map +1 -0
- package/dist/questionnaire-OVJWNUVV.js +93 -0
- package/dist/questionnaire-OVJWNUVV.js.map +1 -0
- package/dist/read-L2QIVJTL.js +141 -0
- package/dist/read-L2QIVJTL.js.map +1 -0
- package/dist/reddit-K6CKJZRF.js +26 -0
- package/dist/reddit-K6CKJZRF.js.map +1 -0
- package/dist/refresh-IF4P57JJ.js +94 -0
- package/dist/refresh-IF4P57JJ.js.map +1 -0
- package/dist/release-H4EL3J6R.js +60 -0
- package/dist/release-H4EL3J6R.js.map +1 -0
- package/dist/relevant-pages-CRI2NLWG.js +99 -0
- package/dist/relevant-pages-CRI2NLWG.js.map +1 -0
- package/dist/remove-DKSHQRNS.js +50 -0
- package/dist/remove-DKSHQRNS.js.map +1 -0
- package/dist/remove-JKSCGKQG.js +48 -0
- package/dist/remove-JKSCGKQG.js.map +1 -0
- package/dist/reopen-B26V2GEJ.js +63 -0
- package/dist/reopen-B26V2GEJ.js.map +1 -0
- package/dist/rerun-6WKE4MPY.js +84 -0
- package/dist/rerun-6WKE4MPY.js.map +1 -0
- package/dist/research-O3IVF3MM.js +62 -0
- package/dist/research-O3IVF3MM.js.map +1 -0
- package/dist/research-SC7S6IPV.js +262 -0
- package/dist/research-SC7S6IPV.js.map +1 -0
- package/dist/reset-7HMOB2KE.js +54 -0
- package/dist/reset-7HMOB2KE.js.map +1 -0
- package/dist/reset-THPEXZDK.js +54 -0
- package/dist/reset-THPEXZDK.js.map +1 -0
- package/dist/resolve-HX5R52A3.js +121 -0
- package/dist/resolve-HX5R52A3.js.map +1 -0
- package/dist/retry-4ENRUJOJ.js +62 -0
- package/dist/retry-4ENRUJOJ.js.map +1 -0
- package/dist/retry-ELIMI7U5.js +60 -0
- package/dist/retry-ELIMI7U5.js.map +1 -0
- package/dist/retry-failed-2OYMCB55.js +45 -0
- package/dist/retry-failed-2OYMCB55.js.map +1 -0
- package/dist/run-CY4BAIQI.js +65 -0
- package/dist/run-CY4BAIQI.js.map +1 -0
- package/dist/run-GXPPPDGI.js +59 -0
- package/dist/run-GXPPPDGI.js.map +1 -0
- package/dist/scaffold-ad-X6VPBVTB.js +1548 -0
- package/dist/scaffold-ad-X6VPBVTB.js.map +1 -0
- package/dist/scaffold-static-ad-LKOOZSDP.js +971 -0
- package/dist/scaffold-static-ad-LKOOZSDP.js.map +1 -0
- package/dist/scaffold-video-NAOIFIM4.js +872 -0
- package/dist/scaffold-video-NAOIFIM4.js.map +1 -0
- package/dist/schedule-TLYT5UXM.js +66 -0
- package/dist/schedule-TLYT5UXM.js.map +1 -0
- package/dist/schedule-V654LLZ2.js +61 -0
- package/dist/schedule-V654LLZ2.js.map +1 -0
- package/dist/scheduled-agents-MJNUZYEK.js +49 -0
- package/dist/scheduled-agents-MJNUZYEK.js.map +1 -0
- package/dist/schema-DN4WKWUM.js +132 -0
- package/dist/schema-DN4WKWUM.js.map +1 -0
- package/dist/schema-MZTVCNP4.js +63 -0
- package/dist/schema-MZTVCNP4.js.map +1 -0
- package/dist/scrape-T3DA7ER7.js +2241 -0
- package/dist/scrape-T3DA7ER7.js.map +1 -0
- package/dist/screenshot-EIGC6SZB.js +102 -0
- package/dist/screenshot-EIGC6SZB.js.map +1 -0
- package/dist/search-2SVUDZIX.js +224 -0
- package/dist/search-2SVUDZIX.js.map +1 -0
- package/dist/search-34NFJ5F6.js +26 -0
- package/dist/search-34NFJ5F6.js.map +1 -0
- package/dist/search-BWE3OPOY.js +91 -0
- package/dist/search-BWE3OPOY.js.map +1 -0
- package/dist/search-EYYAOZND.js +92 -0
- package/dist/search-EYYAOZND.js.map +1 -0
- package/dist/search-EZZMYU4Y.js +174 -0
- package/dist/search-EZZMYU4Y.js.map +1 -0
- package/dist/search-copy-VKQ2OOBM.js +168 -0
- package/dist/search-copy-VKQ2OOBM.js.map +1 -0
- package/dist/seeds-HQYSVFIX.js +101 -0
- package/dist/seeds-HQYSVFIX.js.map +1 -0
- package/dist/select-3SIBANY6.js +94 -0
- package/dist/select-3SIBANY6.js.map +1 -0
- package/dist/sends-I7VQFE4S.js +309 -0
- package/dist/sends-I7VQFE4S.js.map +1 -0
- package/dist/sequences-JHSEJJGN.js +146 -0
- package/dist/sequences-JHSEJJGN.js.map +1 -0
- package/dist/set-prompt-RAG7RJOD.js +185 -0
- package/dist/set-prompt-RAG7RJOD.js.map +1 -0
- package/dist/setup-links-TNRBFS5Z.js +141 -0
- package/dist/setup-links-TNRBFS5Z.js.map +1 -0
- package/dist/{shared-6762QE6R.js → shared-AT3FXPAG.js} +8 -6
- package/dist/shared-AT3FXPAG.js.map +1 -0
- package/dist/shopify-LUETQ5NT.js +3819 -0
- package/dist/shopify-LUETQ5NT.js.map +1 -0
- package/dist/site-SDL6LF6D.js +177 -0
- package/dist/site-SDL6LF6D.js.map +1 -0
- package/dist/sitemaps-FG37N5EB.js +87 -0
- package/dist/sitemaps-FG37N5EB.js.map +1 -0
- package/dist/sites-FIXK4Y3O.js +101 -0
- package/dist/sites-FIXK4Y3O.js.map +1 -0
- package/dist/skills-OKVCVQVD.js +47 -0
- package/dist/skills-OKVCVQVD.js.map +1 -0
- package/dist/sources-ISAUZFRN.js +30 -0
- package/dist/sources-ISAUZFRN.js.map +1 -0
- package/dist/sources-LQTJXAJG.js +421 -0
- package/dist/sources-LQTJXAJG.js.map +1 -0
- package/dist/stale-2L7NTLC6.js +63 -0
- package/dist/stale-2L7NTLC6.js.map +1 -0
- package/dist/stats-ZWZ7BAHV.js +34 -0
- package/dist/stats-ZWZ7BAHV.js.map +1 -0
- package/dist/status-4QBSIHO7.js +62 -0
- package/dist/status-4QBSIHO7.js.map +1 -0
- package/dist/sticker-FLRZM3BI.js +94 -0
- package/dist/sticker-FLRZM3BI.js.map +1 -0
- package/dist/stock-2CSMWRWV.js +179 -0
- package/dist/stock-2CSMWRWV.js.map +1 -0
- package/dist/studio-TTTR6N7D.js +49 -0
- package/dist/studio-TTTR6N7D.js.map +1 -0
- package/dist/sync-DH7FTPGG.js +54 -0
- package/dist/sync-DH7FTPGG.js.map +1 -0
- package/dist/sync-G5CS2RYV.js +54 -0
- package/dist/sync-G5CS2RYV.js.map +1 -0
- package/dist/sync-UADA6M33.js +265 -0
- package/dist/sync-UADA6M33.js.map +1 -0
- package/dist/sync-definition-ATMMOJ37.js +52 -0
- package/dist/sync-definition-ATMMOJ37.js.map +1 -0
- package/dist/tag-manager-NK3ZHSJB.js +43 -0
- package/dist/tag-manager-NK3ZHSJB.js.map +1 -0
- package/dist/tags-4RBZWDHS.js +20 -0
- package/dist/tags-4RBZWDHS.js.map +1 -0
- package/dist/tags-M7ATU2R7.js +26 -0
- package/dist/tags-M7ATU2R7.js.map +1 -0
- package/dist/tags-MXJKIBL4.js +20 -0
- package/dist/tags-MXJKIBL4.js.map +1 -0
- package/dist/tags-YG5EGPBW.js +20 -0
- package/dist/tags-YG5EGPBW.js.map +1 -0
- package/dist/tags-ZP4O3I2F.js +224 -0
- package/dist/tags-ZP4O3I2F.js.map +1 -0
- package/dist/targeting-constants-ZGBX3VWU.js +118 -0
- package/dist/targeting-constants-ZGBX3VWU.js.map +1 -0
- package/dist/targeting-criteria-BTB2RVI4.js +113 -0
- package/dist/targeting-criteria-BTB2RVI4.js.map +1 -0
- package/dist/targets-DEGJD2N6.js +102 -0
- package/dist/targets-DEGJD2N6.js.map +1 -0
- package/dist/templates-FZDWQSTV.js +178 -0
- package/dist/templates-FZDWQSTV.js.map +1 -0
- package/dist/testimonials-TI5EDABS.js +32 -0
- package/dist/testimonials-TI5EDABS.js.map +1 -0
- package/dist/themes-3RV3HNNE.js +94 -0
- package/dist/themes-3RV3HNNE.js.map +1 -0
- package/dist/top-companies-OKH7UNKX.js +108 -0
- package/dist/top-companies-OKH7UNKX.js.map +1 -0
- package/dist/translate-IUQBBVE6.js +598 -0
- package/dist/translate-IUQBBVE6.js.map +1 -0
- package/dist/triggers-2NWMXQ5P.js +141 -0
- package/dist/triggers-2NWMXQ5P.js.map +1 -0
- package/dist/tweets-X64YDEAA.js +123 -0
- package/dist/tweets-X64YDEAA.js.map +1 -0
- package/dist/unfollow-PIONCSBL.js +46 -0
- package/dist/unfollow-PIONCSBL.js.map +1 -0
- package/dist/unlink-UAPLQMK6.js +67 -0
- package/dist/unlink-UAPLQMK6.js.map +1 -0
- package/dist/unstage-BJJ5M7MK.js +95 -0
- package/dist/unstage-BJJ5M7MK.js.map +1 -0
- package/dist/unstage-X2BYGH2S.js +84 -0
- package/dist/unstage-X2BYGH2S.js.map +1 -0
- package/dist/update-7YK3VSOK.js +142 -0
- package/dist/update-7YK3VSOK.js.map +1 -0
- package/dist/update-BHG7BTK3.js +155 -0
- package/dist/update-BHG7BTK3.js.map +1 -0
- package/dist/update-CDJXKEVA.js +63 -0
- package/dist/update-CDJXKEVA.js.map +1 -0
- package/dist/update-RZXDAMAG.js +98 -0
- package/dist/update-RZXDAMAG.js.map +1 -0
- package/dist/upload-DSZEXNHH.js +126 -0
- package/dist/upload-DSZEXNHH.js.map +1 -0
- package/dist/upload-IWFYKD7A.js +150 -0
- package/dist/upload-IWFYKD7A.js.map +1 -0
- package/dist/upscale-EYCEYRWE.js +109 -0
- package/dist/upscale-EYCEYRWE.js.map +1 -0
- package/dist/url-options-RA3XISLN.js +130 -0
- package/dist/url-options-RA3XISLN.js.map +1 -0
- package/dist/url-params-OGZXF6MT.js +98 -0
- package/dist/url-params-OGZXF6MT.js.map +1 -0
- package/dist/use-E2TA2K6J.js +95 -0
- package/dist/use-E2TA2K6J.js.map +1 -0
- package/dist/validate-C6HWDI6K.js +88 -0
- package/dist/validate-C6HWDI6K.js.map +1 -0
- package/dist/variant-ETHB6XUM.js +338 -0
- package/dist/variant-ETHB6XUM.js.map +1 -0
- package/dist/videos-A2X5AARB.js +39 -0
- package/dist/videos-A2X5AARB.js.map +1 -0
- package/dist/view-BVEZRRV2.js +121 -0
- package/dist/view-BVEZRRV2.js.map +1 -0
- package/dist/viewer-check-W4ICSBHO.js +68 -0
- package/dist/viewer-check-W4ICSBHO.js.map +1 -0
- package/dist/web-GJSFDBBE.js +140 -0
- package/dist/web-GJSFDBBE.js.map +1 -0
- package/dist/winners-MJDKCGEZ.js +113 -0
- package/dist/winners-MJDKCGEZ.js.map +1 -0
- package/dist/winning-ads-NNU5MM75.js +84 -0
- package/dist/winning-ads-NNU5MM75.js.map +1 -0
- package/dist/write-commands-5I5KY6ZS.js +1015 -0
- package/dist/write-commands-5I5KY6ZS.js.map +1 -0
- package/dist/write-commands-DA6FIFAO.js +737 -0
- package/dist/write-commands-DA6FIFAO.js.map +1 -0
- package/dist/write-commands-KTPISQRE.js +206 -0
- package/dist/write-commands-KTPISQRE.js.map +1 -0
- package/dist/write-commands-QBGIWU27.js +713 -0
- package/dist/write-commands-QBGIWU27.js.map +1 -0
- package/dist/x-VCL5VRXC.js +47 -0
- package/dist/x-VCL5VRXC.js.map +1 -0
- package/package.json +9 -2
- package/dist/chunk-HJEMOSPH.js +0 -1292
- package/dist/chunk-HJEMOSPH.js.map +0 -1
- package/dist/chunk-JHKW6IDX.js +0 -9989
- package/dist/chunk-JHKW6IDX.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-2UFRHW3T.js.map} +0 -0
- /package/dist/{client-GR6YL3YX.js.map → chunk-YQSBHWOI.js.map} +0 -0
- /package/dist/{env-4P5HOGNA.js.map → client-EURRWXPW.js.map} +0 -0
- /package/dist/{output-NMQXZF3Z.js.map → connect-6DQFYKGN.js.map} +0 -0
- /package/dist/{shared-6762QE6R.js.map → customers-FOPXEGCB.js.map} +0 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import {
|
|
2
|
+
failApi
|
|
3
|
+
} from "./chunk-NMGELUIA.js";
|
|
4
|
+
import "./chunk-D46NOXRY.js";
|
|
5
|
+
import "./chunk-GXDLWBOY.js";
|
|
6
|
+
import "./chunk-GIWHHCD6.js";
|
|
7
|
+
import "./chunk-UI6BKYQD.js";
|
|
8
|
+
import "./chunk-I2DNBEV6.js";
|
|
9
|
+
import {
|
|
10
|
+
apiPost
|
|
11
|
+
} from "./chunk-CUL3VB4L.js";
|
|
12
|
+
import "./chunk-6YYSUISH.js";
|
|
13
|
+
import {
|
|
14
|
+
getEnv
|
|
15
|
+
} from "./chunk-I4FTS5EE.js";
|
|
16
|
+
import {
|
|
17
|
+
registerSchema,
|
|
18
|
+
writeJson
|
|
19
|
+
} from "./chunk-MYTDK3AL.js";
|
|
20
|
+
import "./chunk-YQSBHWOI.js";
|
|
21
|
+
|
|
22
|
+
// src/commands/chats/index.ts
|
|
23
|
+
import { defineCommand } from "citty";
|
|
24
|
+
var STATUS_GROUPS = ["active", "archived", "all"];
|
|
25
|
+
var REPO_SURFACES = ["knowledge", "company", "brand", "landings", "flows", "creatives"];
|
|
26
|
+
function parseBoundedInt(raw, name, min, max) {
|
|
27
|
+
if (raw === void 0) {
|
|
28
|
+
return void 0;
|
|
29
|
+
}
|
|
30
|
+
const value = Number.parseInt(raw, 10);
|
|
31
|
+
if (Number.isNaN(value) || value < min || value > max) {
|
|
32
|
+
throw new Error(`--${name} must be an integer between ${min} and ${max}`);
|
|
33
|
+
}
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
registerSchema({
|
|
37
|
+
command: "chats.list",
|
|
38
|
+
description: "Start here: list other Sessions on this account (newest first) so you can reuse what was done before. Each row shows the Session id, title, status, and a count of what it produced (creatives, landings, actions, flows, reports\u2026). Then drill in with `baker chats view <id>`, `baker chats transcript <id>`, or `baker chats diff <id>`. Read-only.",
|
|
39
|
+
args: {
|
|
40
|
+
status: { type: "string", description: "Filter: active|archived|all (default: all)", required: false },
|
|
41
|
+
limit: { type: "string", description: "Max Sessions to return, 1-100 (default: 20)", required: false },
|
|
42
|
+
full: { type: "boolean", description: "Include each Session's full change list", required: false, default: false }
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
var listCommand = defineCommand({
|
|
46
|
+
meta: { name: "list", description: "List other Sessions on this account, newest first." },
|
|
47
|
+
args: {
|
|
48
|
+
status: { type: "string", description: "Filter: active|archived|all (default: all)", required: false },
|
|
49
|
+
limit: { type: "string", description: "Max Sessions (1-100, default 20)", required: false },
|
|
50
|
+
full: { type: "boolean", description: "Include each Session's full change list", required: false, default: false }
|
|
51
|
+
},
|
|
52
|
+
run: async ({ args }) => {
|
|
53
|
+
try {
|
|
54
|
+
const body = {};
|
|
55
|
+
if (args.status) {
|
|
56
|
+
if (!STATUS_GROUPS.includes(args.status)) {
|
|
57
|
+
throw new Error(`--status must be one of: ${STATUS_GROUPS.join("|")}`);
|
|
58
|
+
}
|
|
59
|
+
body.status = args.status;
|
|
60
|
+
}
|
|
61
|
+
const limit = parseBoundedInt(args.limit, "limit", 1, 100);
|
|
62
|
+
if (limit !== void 0) {
|
|
63
|
+
body.limit = limit;
|
|
64
|
+
}
|
|
65
|
+
if (args.full) {
|
|
66
|
+
body.full = true;
|
|
67
|
+
}
|
|
68
|
+
const selfChatId = getEnv().BAKER_CHAT_ID;
|
|
69
|
+
if (selfChatId) {
|
|
70
|
+
body.excludeChatId = selfChatId;
|
|
71
|
+
}
|
|
72
|
+
const response = await apiPost("/api/chats/list", body);
|
|
73
|
+
writeJson({
|
|
74
|
+
...response,
|
|
75
|
+
meta: { count: response.data.chats.length },
|
|
76
|
+
...response.data.chats.length === 0 ? { hints: ["No Sessions matched. Widen with --status all or a larger --limit."] } : {
|
|
77
|
+
hints: [
|
|
78
|
+
"Drill in: `baker chats view <id>` for outputs, `chats transcript <id>` for the conversation, `chats diff <id>` for the real file changes."
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
} catch (err) {
|
|
83
|
+
failApi(err);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
registerSchema({
|
|
88
|
+
command: "chats.view",
|
|
89
|
+
description: "Inspect one Session's FULL picture of what it changed \u2014 the unified `effects`: git content (landings, creatives, flows, knowledge, brand), plus DB-only effects that never touch the repo \u2014 Actions, Scheduled agents, Tags, Tag Manager, Google Analytics, ad-platform writes, the funnel (`funnel`: which steps it added, changed or removed, and which ways in it added or removed in `triggersAdded`/`triggersRemoved`), what counts as a conversion (`conversions`), conversion sends, event sources, and every other staged or already-applied change (`otherChanges`: A/B tests, recipes, library images) \u2014 each resolved to real detail (names, descriptions, priorities, tag types, ad operations) and, once published, its `outcome`. Also `publish` (what each external surface actually did, with the provider's own error), `activity` (the chat's own timeline: status changes, publish start/fail, workspace recoveries, timeouts), `usage` (per-thread cost and the Session's token totals), the kickoff (how it was asked), threads, and commits. Effects are `staged` (in-progress draft) or applied. A completed Session is NOT proof its external changes landed \u2014 read `publish`. Use after `baker chats list` to decide whether to reuse it. Read-only.",
|
|
90
|
+
args: {
|
|
91
|
+
id: { type: "positional", description: "The Session id (from `baker chats list`)", required: true },
|
|
92
|
+
full: {
|
|
93
|
+
type: "boolean",
|
|
94
|
+
description: "Untruncated effect lists and full activity metadata (compact caps each list at 25)",
|
|
95
|
+
required: false,
|
|
96
|
+
default: false
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
var viewCommand = defineCommand({
|
|
101
|
+
meta: {
|
|
102
|
+
name: "view",
|
|
103
|
+
description: "Inspect one Session's full effects \u2014 git content + actions/tags/ads, kickoff, commits."
|
|
104
|
+
},
|
|
105
|
+
args: {
|
|
106
|
+
id: { type: "positional", description: "The Session id", required: true },
|
|
107
|
+
full: { type: "boolean", description: "Include full detail", required: false, default: false }
|
|
108
|
+
},
|
|
109
|
+
run: async ({ args }) => {
|
|
110
|
+
try {
|
|
111
|
+
const response = await apiPost("/api/chats/view", {
|
|
112
|
+
chatId: args.id,
|
|
113
|
+
...args.full ? { full: true } : {}
|
|
114
|
+
});
|
|
115
|
+
const hints = [];
|
|
116
|
+
if (response.data.publish && !response.data.publish.complete) {
|
|
117
|
+
const failed = response.data.publish.failedTotal;
|
|
118
|
+
hints.push(
|
|
119
|
+
`This Session's publish left ${failed} change${failed === 1 ? "" : "s"} behind \u2014 see \`publish.surfaces\` for the platform's own words. Do not report those changes as live.`
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
if (response.data.diffAvailable) {
|
|
123
|
+
hints.push("See the real file-level diff of the git content with `baker chats diff <id> --full`.");
|
|
124
|
+
} else if (response.data.status === "in_progress" || response.data.status === "publishing") {
|
|
125
|
+
hints.push(
|
|
126
|
+
"This Session is still in progress \u2014 read its current file changes with `baker chats diff <id> --live`."
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
hints.push("Read the conversation with `baker chats transcript <id>`.");
|
|
130
|
+
writeJson({ ...response, hints });
|
|
131
|
+
} catch (err) {
|
|
132
|
+
failApi(err);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
registerSchema({
|
|
137
|
+
command: "chats.transcript",
|
|
138
|
+
description: "Read another Session's conversation (user + agent turns), most-recent first-capped. Use to see exactly how a past request was phrased and iterated before replaying it for a new goal. Compact truncates long messages; add --full for verbatim text. Read-only.",
|
|
139
|
+
args: {
|
|
140
|
+
id: { type: "positional", description: "The Session id", required: true },
|
|
141
|
+
limit: { type: "string", description: "Max messages to return, 1-1000 (default: 100)", required: false },
|
|
142
|
+
full: {
|
|
143
|
+
type: "boolean",
|
|
144
|
+
description: "Return verbatim (untruncated) message text",
|
|
145
|
+
required: false,
|
|
146
|
+
default: false
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
var transcriptCommand = defineCommand({
|
|
151
|
+
meta: { name: "transcript", description: "Read another Session's conversation." },
|
|
152
|
+
args: {
|
|
153
|
+
id: { type: "positional", description: "The Session id", required: true },
|
|
154
|
+
limit: { type: "string", description: "Max messages (1-1000, default 100)", required: false },
|
|
155
|
+
full: { type: "boolean", description: "Verbatim message text", required: false, default: false }
|
|
156
|
+
},
|
|
157
|
+
run: async ({ args }) => {
|
|
158
|
+
try {
|
|
159
|
+
const body = { chatId: args.id };
|
|
160
|
+
const limit = parseBoundedInt(args.limit, "limit", 1, 1e3);
|
|
161
|
+
if (limit !== void 0) {
|
|
162
|
+
body.limit = limit;
|
|
163
|
+
}
|
|
164
|
+
if (args.full) {
|
|
165
|
+
body.full = true;
|
|
166
|
+
}
|
|
167
|
+
const response = await apiPost("/api/chats/transcript", body);
|
|
168
|
+
writeJson({
|
|
169
|
+
...response,
|
|
170
|
+
meta: { count: response.data.entries.length },
|
|
171
|
+
...response.data.truncated ? { hints: ["Older messages were dropped to fit --limit. Raise --limit to see more."] } : {}
|
|
172
|
+
});
|
|
173
|
+
} catch (err) {
|
|
174
|
+
failApi(err);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
registerSchema({
|
|
179
|
+
command: "chats.diff",
|
|
180
|
+
description: "See the real file-level changes a Session made (landings, creatives, brand, flows, knowledge). Published Sessions read from git; for an in-progress (unpublished) Session pass --live to read its changes straight from its running workspace. Without --live, an unpublished Session returns available:false \u2014 use `baker chats view` for the staged summary. Compact lists changed files with +/- counts; add --full for the actual diff text. Read-only.",
|
|
181
|
+
args: {
|
|
182
|
+
id: { type: "positional", description: "The Session id", required: true },
|
|
183
|
+
surface: {
|
|
184
|
+
type: "string",
|
|
185
|
+
description: "Filter to one surface: knowledge|company|brand|landings|flows|creatives",
|
|
186
|
+
required: false
|
|
187
|
+
},
|
|
188
|
+
full: {
|
|
189
|
+
type: "boolean",
|
|
190
|
+
description: "Include the unified-diff patch text per file",
|
|
191
|
+
required: false,
|
|
192
|
+
default: false
|
|
193
|
+
},
|
|
194
|
+
live: {
|
|
195
|
+
type: "boolean",
|
|
196
|
+
description: "For an in-progress Session, read its changes from the live workspace (slower; resumes the paused Runtime). Ignored for published Sessions.",
|
|
197
|
+
required: false,
|
|
198
|
+
default: false
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
var diffCommand = defineCommand({
|
|
203
|
+
meta: { name: "diff", description: "See a published Session's real file-level changes." },
|
|
204
|
+
args: {
|
|
205
|
+
id: { type: "positional", description: "The Session id", required: true },
|
|
206
|
+
surface: {
|
|
207
|
+
type: "string",
|
|
208
|
+
description: "Filter: knowledge|company|brand|landings|flows|creatives",
|
|
209
|
+
required: false
|
|
210
|
+
},
|
|
211
|
+
full: { type: "boolean", description: "Include the diff patch text per file", required: false, default: false },
|
|
212
|
+
live: {
|
|
213
|
+
type: "boolean",
|
|
214
|
+
description: "Read an in-progress Session's changes from its live workspace (slower)",
|
|
215
|
+
required: false,
|
|
216
|
+
default: false
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
run: async ({ args }) => {
|
|
220
|
+
try {
|
|
221
|
+
const body = { chatId: args.id };
|
|
222
|
+
if (args.surface) {
|
|
223
|
+
if (!REPO_SURFACES.includes(args.surface)) {
|
|
224
|
+
throw new Error(`--surface must be one of: ${REPO_SURFACES.join("|")}`);
|
|
225
|
+
}
|
|
226
|
+
body.surface = args.surface;
|
|
227
|
+
}
|
|
228
|
+
if (args.full) {
|
|
229
|
+
body.full = true;
|
|
230
|
+
}
|
|
231
|
+
if (args.live) {
|
|
232
|
+
body.live = true;
|
|
233
|
+
}
|
|
234
|
+
const response = await apiPost("/api/chats/diff", body);
|
|
235
|
+
writeJson({
|
|
236
|
+
...response,
|
|
237
|
+
meta: { count: response.data.files.length },
|
|
238
|
+
...!response.data.available && response.data.reason ? { hints: [response.data.reason] } : {},
|
|
239
|
+
...response.data.available && !args.full && response.data.files.length > 0 ? { hints: ["Add --full to read the actual diff text for each file."] } : {}
|
|
240
|
+
});
|
|
241
|
+
} catch (err) {
|
|
242
|
+
failApi(err);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
var chatsCommand = defineCommand({
|
|
247
|
+
meta: {
|
|
248
|
+
name: "chats",
|
|
249
|
+
description: `Inspect other Sessions on this account (read-only): list them, view what they produced, read their conversation, and see their real file changes \u2014 so you can reuse past work for a new goal.
|
|
250
|
+
Full guide: __tooling__/docs/tools/baker/chats.md`
|
|
251
|
+
},
|
|
252
|
+
subCommands: {
|
|
253
|
+
list: listCommand,
|
|
254
|
+
view: viewCommand,
|
|
255
|
+
transcript: transcriptCommand,
|
|
256
|
+
diff: diffCommand
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
export {
|
|
260
|
+
chatsCommand
|
|
261
|
+
};
|
|
262
|
+
//# sourceMappingURL=chats-TUZANLQH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/chats/index.ts"],"sourcesContent":["import type { ChatsDiffResponse, ChatsListResponse, ChatsTranscriptResponse, ChatsViewResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { getEnv } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi } from \"../actions/shared.ts\";\n\nconst STATUS_GROUPS = [\"active\", \"archived\", \"all\"] as const;\nconst REPO_SURFACES = [\"knowledge\", \"company\", \"brand\", \"landings\", \"flows\", \"creatives\"] as const;\n\nfunction parseBoundedInt(raw: string | undefined, name: string, min: number, max: number): number | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const value = Number.parseInt(raw, 10);\n if (Number.isNaN(value) || value < min || value > max) {\n throw new Error(`--${name} must be an integer between ${min} and ${max}`);\n }\n return value;\n}\n\nregisterSchema({\n command: \"chats.list\",\n description:\n \"Start here: list other Sessions on this account (newest first) so you can reuse what was done before. Each row shows the Session id, title, status, and a count of what it produced (creatives, landings, actions, flows, reports…). Then drill in with `baker chats view <id>`, `baker chats transcript <id>`, or `baker chats diff <id>`. Read-only.\",\n args: {\n status: { type: \"string\", description: \"Filter: active|archived|all (default: all)\", required: false },\n limit: { type: \"string\", description: \"Max Sessions to return, 1-100 (default: 20)\", required: false },\n full: { type: \"boolean\", description: \"Include each Session's full change list\", required: false, default: false },\n },\n});\n\nconst listCommand = defineCommand({\n meta: { name: \"list\", description: \"List other Sessions on this account, newest first.\" },\n args: {\n status: { type: \"string\", description: \"Filter: active|archived|all (default: all)\", required: false },\n limit: { type: \"string\", description: \"Max Sessions (1-100, default 20)\", required: false },\n full: { type: \"boolean\", description: \"Include each Session's full change list\", required: false, default: false },\n },\n run: async ({ args }) => {\n try {\n const body: Record<string, unknown> = {};\n if (args.status) {\n if (!(STATUS_GROUPS as readonly string[]).includes(args.status)) {\n throw new Error(`--status must be one of: ${STATUS_GROUPS.join(\"|\")}`);\n }\n body.status = args.status;\n }\n const limit = parseBoundedInt(args.limit, \"limit\", 1, 100);\n if (limit !== undefined) {\n body.limit = limit;\n }\n if (args.full) {\n body.full = true;\n }\n // Exclude our own Session so we never list ourselves as a reusable \"other\".\n const selfChatId = getEnv().BAKER_CHAT_ID;\n if (selfChatId) {\n body.excludeChatId = selfChatId;\n }\n const response = await apiPost<ChatsListResponse>(\"/api/chats/list\", body);\n writeJson({\n ...response,\n meta: { count: response.data.chats.length },\n ...(response.data.chats.length === 0\n ? { hints: [\"No Sessions matched. Widen with --status all or a larger --limit.\"] }\n : {\n hints: [\n \"Drill in: `baker chats view <id>` for outputs, `chats transcript <id>` for the conversation, `chats diff <id>` for the real file changes.\",\n ],\n }),\n });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nregisterSchema({\n command: \"chats.view\",\n description:\n \"Inspect one Session's FULL picture of what it changed — the unified `effects`: git content (landings, creatives, flows, knowledge, brand), plus DB-only effects that never touch the repo — Actions, Scheduled agents, Tags, Tag Manager, Google Analytics, ad-platform writes, the funnel (`funnel`: which steps it added, changed or removed, and which ways in it added or removed in `triggersAdded`/`triggersRemoved`), what counts as a conversion (`conversions`), conversion sends, event sources, and every other staged or already-applied change (`otherChanges`: A/B tests, recipes, library images) — each resolved to real detail (names, descriptions, priorities, tag types, ad operations) and, once published, its `outcome`. Also `publish` (what each external surface actually did, with the provider's own error), `activity` (the chat's own timeline: status changes, publish start/fail, workspace recoveries, timeouts), `usage` (per-thread cost and the Session's token totals), the kickoff (how it was asked), threads, and commits. Effects are `staged` (in-progress draft) or applied. A completed Session is NOT proof its external changes landed — read `publish`. Use after `baker chats list` to decide whether to reuse it. Read-only.\",\n args: {\n id: { type: \"positional\", description: \"The Session id (from `baker chats list`)\", required: true },\n full: {\n type: \"boolean\",\n description: \"Untruncated effect lists and full activity metadata (compact caps each list at 25)\",\n required: false,\n default: false,\n },\n },\n});\n\nconst viewCommand = defineCommand({\n meta: {\n name: \"view\",\n description: \"Inspect one Session's full effects — git content + actions/tags/ads, kickoff, commits.\",\n },\n args: {\n id: { type: \"positional\", description: \"The Session id\", required: true },\n full: { type: \"boolean\", description: \"Include full detail\", required: false, default: false },\n },\n run: async ({ args }) => {\n try {\n const response = await apiPost<ChatsViewResponse>(\"/api/chats/view\", {\n chatId: args.id,\n ...(args.full ? { full: true } : {}),\n });\n const hints: string[] = [];\n // The most dangerous thing a reader can conclude from this command is\n // that a completed Session published everything it staged. It usually\n // did; better than one published draft in three did not.\n if (response.data.publish && !response.data.publish.complete) {\n const failed = response.data.publish.failedTotal;\n hints.push(\n `This Session's publish left ${failed} change${failed === 1 ? \"\" : \"s\"} behind — see \\`publish.surfaces\\` for the platform's own words. Do not report those changes as live.`,\n );\n }\n if (response.data.diffAvailable) {\n hints.push(\"See the real file-level diff of the git content with `baker chats diff <id> --full`.\");\n } else if (response.data.status === \"in_progress\" || response.data.status === \"publishing\") {\n hints.push(\n \"This Session is still in progress — read its current file changes with `baker chats diff <id> --live`.\",\n );\n }\n hints.push(\"Read the conversation with `baker chats transcript <id>`.\");\n writeJson({ ...response, hints });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nregisterSchema({\n command: \"chats.transcript\",\n description:\n \"Read another Session's conversation (user + agent turns), most-recent first-capped. Use to see exactly how a past request was phrased and iterated before replaying it for a new goal. Compact truncates long messages; add --full for verbatim text. Read-only.\",\n args: {\n id: { type: \"positional\", description: \"The Session id\", required: true },\n limit: { type: \"string\", description: \"Max messages to return, 1-1000 (default: 100)\", required: false },\n full: {\n type: \"boolean\",\n description: \"Return verbatim (untruncated) message text\",\n required: false,\n default: false,\n },\n },\n});\n\nconst transcriptCommand = defineCommand({\n meta: { name: \"transcript\", description: \"Read another Session's conversation.\" },\n args: {\n id: { type: \"positional\", description: \"The Session id\", required: true },\n limit: { type: \"string\", description: \"Max messages (1-1000, default 100)\", required: false },\n full: { type: \"boolean\", description: \"Verbatim message text\", required: false, default: false },\n },\n run: async ({ args }) => {\n try {\n const body: Record<string, unknown> = { chatId: args.id };\n const limit = parseBoundedInt(args.limit, \"limit\", 1, 1000);\n if (limit !== undefined) {\n body.limit = limit;\n }\n if (args.full) {\n body.full = true;\n }\n const response = await apiPost<ChatsTranscriptResponse>(\"/api/chats/transcript\", body);\n writeJson({\n ...response,\n meta: { count: response.data.entries.length },\n ...(response.data.truncated\n ? { hints: [\"Older messages were dropped to fit --limit. Raise --limit to see more.\"] }\n : {}),\n });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nregisterSchema({\n command: \"chats.diff\",\n description:\n \"See the real file-level changes a Session made (landings, creatives, brand, flows, knowledge). Published Sessions read from git; for an in-progress (unpublished) Session pass --live to read its changes straight from its running workspace. Without --live, an unpublished Session returns available:false — use `baker chats view` for the staged summary. Compact lists changed files with +/- counts; add --full for the actual diff text. Read-only.\",\n args: {\n id: { type: \"positional\", description: \"The Session id\", required: true },\n surface: {\n type: \"string\",\n description: \"Filter to one surface: knowledge|company|brand|landings|flows|creatives\",\n required: false,\n },\n full: {\n type: \"boolean\",\n description: \"Include the unified-diff patch text per file\",\n required: false,\n default: false,\n },\n live: {\n type: \"boolean\",\n description:\n \"For an in-progress Session, read its changes from the live workspace (slower; resumes the paused Runtime). Ignored for published Sessions.\",\n required: false,\n default: false,\n },\n },\n});\n\nconst diffCommand = defineCommand({\n meta: { name: \"diff\", description: \"See a published Session's real file-level changes.\" },\n args: {\n id: { type: \"positional\", description: \"The Session id\", required: true },\n surface: {\n type: \"string\",\n description: \"Filter: knowledge|company|brand|landings|flows|creatives\",\n required: false,\n },\n full: { type: \"boolean\", description: \"Include the diff patch text per file\", required: false, default: false },\n live: {\n type: \"boolean\",\n description: \"Read an in-progress Session's changes from its live workspace (slower)\",\n required: false,\n default: false,\n },\n },\n run: async ({ args }) => {\n try {\n const body: Record<string, unknown> = { chatId: args.id };\n if (args.surface) {\n if (!(REPO_SURFACES as readonly string[]).includes(args.surface)) {\n throw new Error(`--surface must be one of: ${REPO_SURFACES.join(\"|\")}`);\n }\n body.surface = args.surface;\n }\n if (args.full) {\n body.full = true;\n }\n if (args.live) {\n body.live = true;\n }\n const response = await apiPost<ChatsDiffResponse>(\"/api/chats/diff\", body);\n writeJson({\n ...response,\n meta: { count: response.data.files.length },\n ...(!response.data.available && response.data.reason ? { hints: [response.data.reason] } : {}),\n ...(response.data.available && !args.full && response.data.files.length > 0\n ? { hints: [\"Add --full to read the actual diff text for each file.\"] }\n : {}),\n });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nexport const chatsCommand = defineCommand({\n meta: {\n name: \"chats\",\n description: `Inspect other Sessions on this account (read-only): list them, view what they produced, read their conversation, and see their real file changes — so you can reuse past work for a new goal.\nFull guide: __tooling__/docs/tools/baker/chats.md`,\n },\n subCommands: {\n list: listCommand,\n view: viewCommand,\n transcript: transcriptCommand,\n diff: diffCommand,\n },\n});\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MAX_VIDEO_INGEST_BYTES,
|
|
3
|
+
MAX_VIDEO_INGEST_SECONDS,
|
|
4
|
+
directDedupeKey,
|
|
5
|
+
downloadTimeoutMs,
|
|
6
|
+
isDirectMediaUrl,
|
|
7
|
+
isDrmProtected,
|
|
8
|
+
isRegionBlocked,
|
|
9
|
+
isToolingOrBlockFailure,
|
|
10
|
+
refuseByDuration,
|
|
11
|
+
resolveIngestSource,
|
|
12
|
+
worthDownloadingInstead
|
|
13
|
+
} from "./chunk-FKOECEVC.js";
|
|
14
|
+
import {
|
|
15
|
+
YtDlpError,
|
|
16
|
+
canonicalUrl,
|
|
17
|
+
durationSeconds,
|
|
18
|
+
isAudioOnly,
|
|
19
|
+
isVimeoAuthFailure,
|
|
20
|
+
probeYtDlp,
|
|
21
|
+
runYtDlp,
|
|
22
|
+
ytDlpBlockSignal
|
|
23
|
+
} from "./chunk-W4SA4CMR.js";
|
|
24
|
+
import {
|
|
25
|
+
videosIngestRequestSchema
|
|
26
|
+
} from "./chunk-D46NOXRY.js";
|
|
27
|
+
import {
|
|
28
|
+
ApiError,
|
|
29
|
+
apiPost
|
|
30
|
+
} from "./chunk-CUL3VB4L.js";
|
|
31
|
+
import {
|
|
32
|
+
captureVimeoCookie,
|
|
33
|
+
isProxyFailure
|
|
34
|
+
} from "./chunk-I4FTS5EE.js";
|
|
35
|
+
import {
|
|
36
|
+
registerSchema,
|
|
37
|
+
writeJson
|
|
38
|
+
} from "./chunk-MYTDK3AL.js";
|
|
39
|
+
|
|
40
|
+
// src/commands/videos/ingest.ts
|
|
41
|
+
import { mkdtemp, rm, stat } from "fs/promises";
|
|
42
|
+
import { tmpdir } from "os";
|
|
43
|
+
import path from "path";
|
|
44
|
+
import { defineCommand } from "citty";
|
|
45
|
+
|
|
46
|
+
// src/lib/streamUpload.ts
|
|
47
|
+
import { createHash } from "crypto";
|
|
48
|
+
import { createReadStream } from "fs";
|
|
49
|
+
import { Readable } from "stream";
|
|
50
|
+
import { pipeline } from "stream/promises";
|
|
51
|
+
async function hashFile(filePath) {
|
|
52
|
+
const hash = createHash("sha256");
|
|
53
|
+
await pipeline(createReadStream(filePath), hash);
|
|
54
|
+
return hash.digest("hex");
|
|
55
|
+
}
|
|
56
|
+
async function putFileStreamed(args) {
|
|
57
|
+
const body = Readable.toWeb(createReadStream(args.filePath));
|
|
58
|
+
return await fetch(args.putUrl, {
|
|
59
|
+
method: "PUT",
|
|
60
|
+
body,
|
|
61
|
+
headers: {
|
|
62
|
+
"Content-Type": args.contentType,
|
|
63
|
+
"Content-Length": String(args.sizeBytes)
|
|
64
|
+
},
|
|
65
|
+
duplex: "half"
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// src/commands/videos/ingest.ts
|
|
70
|
+
registerSchema({
|
|
71
|
+
command: "videos.ingest",
|
|
72
|
+
description: "Add a video to the library from a URL \u2014 a direct file, or a YouTube/TikTok/Vimeo page.",
|
|
73
|
+
args: {
|
|
74
|
+
url: { type: "string", description: "Video URL (direct file or a watch/post page)", required: true },
|
|
75
|
+
source: { type: "string", description: "Provenance: url | youtube", required: false },
|
|
76
|
+
"external-id": { type: "string", description: "Provider asset id (deduped on)", required: false },
|
|
77
|
+
"external-url": { type: "string", description: "Canonical page URL", required: false },
|
|
78
|
+
download: {
|
|
79
|
+
type: "boolean",
|
|
80
|
+
description: "Force the download path instead of letting Baker fetch the URL directly",
|
|
81
|
+
required: false,
|
|
82
|
+
default: false
|
|
83
|
+
},
|
|
84
|
+
country: {
|
|
85
|
+
type: "string",
|
|
86
|
+
description: "Two-letter country to fetch from (e.g. US, DE, JP) \u2014 use when a video is blocked in your region",
|
|
87
|
+
required: false
|
|
88
|
+
},
|
|
89
|
+
context: {
|
|
90
|
+
type: "string",
|
|
91
|
+
description: "What you know that the video cannot show \u2014 the campaign, whether the person on camera is a real customer, what it is for. Highest-leverage flag here: it is what makes the clip findable later.",
|
|
92
|
+
required: false
|
|
93
|
+
},
|
|
94
|
+
"dry-run": { type: "boolean", description: "Preview the operation without executing", required: false }
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
var ingestCommand = defineCommand({
|
|
98
|
+
meta: {
|
|
99
|
+
name: "ingest",
|
|
100
|
+
description: "Add a video to the library from a URL. A direct file URL is handed straight to Baker, which fetches it. A page URL (YouTube, TikTok, Vimeo, Instagram) is downloaded here first, then uploaded \u2014 and a direct URL that Baker cannot fetch falls back to that same path automatically.\n\nExample: baker videos ingest https://www.youtube.com/watch?v=abc123"
|
|
101
|
+
},
|
|
102
|
+
args: {
|
|
103
|
+
url: { type: "positional", description: "Video URL", required: false },
|
|
104
|
+
source: { type: "string", description: "Provenance: url | youtube", required: false },
|
|
105
|
+
"external-id": { type: "string", description: "Provider asset id", required: false },
|
|
106
|
+
"external-url": { type: "string", description: "Canonical page URL", required: false },
|
|
107
|
+
download: { type: "boolean", description: "Force the download path", required: false, default: false },
|
|
108
|
+
country: { type: "string", description: "Two-letter country to fetch from, e.g. US", required: false },
|
|
109
|
+
context: {
|
|
110
|
+
type: "string",
|
|
111
|
+
description: "Context for the analysis \u2014 campaign, who is on camera, intended use",
|
|
112
|
+
required: false
|
|
113
|
+
},
|
|
114
|
+
"dry-run": { type: "boolean", description: "Preview without executing", required: false, default: false }
|
|
115
|
+
},
|
|
116
|
+
run: ({ args }) => runVideoIngest({
|
|
117
|
+
url: args.url,
|
|
118
|
+
source: args.source,
|
|
119
|
+
externalId: args["external-id"],
|
|
120
|
+
externalUrl: args["external-url"],
|
|
121
|
+
forceDownload: args.download === true,
|
|
122
|
+
country: args.country,
|
|
123
|
+
context: args.context,
|
|
124
|
+
dryRun: args["dry-run"] === true
|
|
125
|
+
})
|
|
126
|
+
});
|
|
127
|
+
async function runVideoIngest(opts) {
|
|
128
|
+
const url = opts.url;
|
|
129
|
+
if (!url) {
|
|
130
|
+
writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message: "URL is required" } });
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
const direct = !opts.forceDownload && isDirectMediaUrl(url);
|
|
134
|
+
const country = opts.country?.trim() || void 0;
|
|
135
|
+
const args = {
|
|
136
|
+
url,
|
|
137
|
+
source: resolveIngestSource(opts.source, url),
|
|
138
|
+
externalId: opts.externalId,
|
|
139
|
+
// Deliberately NOT pre-filled with the pasted URL. Doing so shadowed the
|
|
140
|
+
// canonical URL the probe resolves (`?? canonicalUrl(...)` below could never
|
|
141
|
+
// run), so the same video filed under a different `externalUrl` depending on
|
|
142
|
+
// whether the link was copied from a share sheet, a shorts page or the
|
|
143
|
+
// address bar. `downloadThenIngest` falls back to `args.url` when the probe
|
|
144
|
+
// resolves nothing, which is the value this used to hard-code.
|
|
145
|
+
externalUrl: opts.externalUrl,
|
|
146
|
+
descriptionContext: opts.context?.trim() || void 0
|
|
147
|
+
};
|
|
148
|
+
const validation = videosIngestRequestSchema.safeParse({ ...args, url });
|
|
149
|
+
if (!validation.success) {
|
|
150
|
+
const problem = validation.error.issues[0];
|
|
151
|
+
writeJson({
|
|
152
|
+
ok: false,
|
|
153
|
+
error: {
|
|
154
|
+
code: "VALIDATION_ERROR",
|
|
155
|
+
message: problem ? `${problem.path.join(".") || "request"}: ${problem.message}` : "Invalid request"
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
if (opts.dryRun) {
|
|
161
|
+
reportDryRun(args, direct, country);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
try {
|
|
165
|
+
const data = await ingestByRoute(args, direct, country);
|
|
166
|
+
writeJson({ ok: true, data, hints: ingestHints(data) });
|
|
167
|
+
} catch (err) {
|
|
168
|
+
reportIngestFailure(err);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function ingestHints(data) {
|
|
172
|
+
if (data.reducedQuality !== true) return void 0;
|
|
173
|
+
return [
|
|
174
|
+
"Added, but at standard quality (360p): the site refused to release the full-quality file and this was the best it would hand over. Tell the user \u2014 the clip is in the library and usable, it is just not high-resolution. If they need the crisp version, ask them for the original file and use `baker videos upload <file>`."
|
|
175
|
+
];
|
|
176
|
+
}
|
|
177
|
+
function reportDryRun(args, direct, country) {
|
|
178
|
+
writeJson({
|
|
179
|
+
ok: true,
|
|
180
|
+
dryRun: true,
|
|
181
|
+
operation: "videos.ingest",
|
|
182
|
+
params: {
|
|
183
|
+
url: args.url,
|
|
184
|
+
source: args.source,
|
|
185
|
+
// Known up front on the direct route, because it is derived from the URL
|
|
186
|
+
// alone. The download route's key comes from the probe, which a dry run
|
|
187
|
+
// does not perform, so there it stays null rather than becoming a guess.
|
|
188
|
+
externalId: args.externalId ?? (direct ? directDedupeKey(args.source, args.url) : null),
|
|
189
|
+
// A page URL's canonical form is only known after the probe, which a dry
|
|
190
|
+
// run does not perform — so this is null rather than a guess.
|
|
191
|
+
externalUrl: args.externalUrl ?? null,
|
|
192
|
+
direct,
|
|
193
|
+
country: country ?? null,
|
|
194
|
+
descriptionContext: args.descriptionContext ?? null
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
async function ingestByRoute(args, direct, country) {
|
|
199
|
+
if (!direct) {
|
|
200
|
+
return { ...await downloadThenIngest(args, country), via: "download" };
|
|
201
|
+
}
|
|
202
|
+
try {
|
|
203
|
+
const externalId = args.externalId ?? directDedupeKey(args.source, args.url);
|
|
204
|
+
return { ...await ingestUrl({ ...args, externalId }), via: "direct" };
|
|
205
|
+
} catch (err) {
|
|
206
|
+
if (!(err instanceof ApiError) || !worthDownloadingInstead(err.code)) throw err;
|
|
207
|
+
return { ...await downloadThenIngest(args, country), via: "download", fallbackFrom: err.message };
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
function reportYtDlpFailure(err) {
|
|
211
|
+
const detail = `${err.stderrTail} ${err.message}`;
|
|
212
|
+
if (isProxyFailure(ytDlpBlockSignal(detail))) {
|
|
213
|
+
fail(
|
|
214
|
+
"Couldn't download that video: our connection to the internet was refused.",
|
|
215
|
+
"This is Baker's egress proxy, not the link \u2014 its credentials look wrong or expired. The link is probably fine. Report it; retrying won't help until the proxy is fixed."
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
if (isDrmProtected(detail)) {
|
|
219
|
+
fail(
|
|
220
|
+
"That video is copy-protected, so it can't be added to the library.",
|
|
221
|
+
"The publisher encrypted this one against downloading. Nothing will change that \u2014 not retrying, not a different region. Ask whoever owns the video for the original file and add it with `baker videos upload <file>`."
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
if (isVimeoAuthFailure(detail)) {
|
|
225
|
+
fail(
|
|
226
|
+
"Vimeo wouldn't hand over that video \u2014 Baker isn't signed in to Vimeo.",
|
|
227
|
+
"Vimeo now refuses anonymous downloads entirely, so this needs a signed-in session and the one Baker holds has either expired or was never set. Nothing is wrong with the link. Report it so the Vimeo cookie can be refreshed; meanwhile download the file and use `baker videos upload <file>`."
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
if (isRegionBlocked(detail)) {
|
|
231
|
+
fail(
|
|
232
|
+
`That video isn't available in the region we're fetching from. ${err.stderrTail || err.message}`,
|
|
233
|
+
"Re-run with `--country <two-letter code>` for a country where the video plays \u2014 e.g. `--country US`. Pick the one the video belongs to (the uploader's country is the usual answer); each attempt costs a paid connection, so choose rather than work through the list."
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
fail(
|
|
237
|
+
`Couldn't download that video. ${err.stderrTail || err.message}`,
|
|
238
|
+
isToolingOrBlockFailure(detail) ? "The site wouldn't hand over the video \u2014 usually the downloader being out of date against a site that changed, or the request being blocked. Retrying won't help, and the link is probably fine. Report it so the tool can be updated; meanwhile download the file and use `baker videos upload <file>`." : "Check the link is public and playable. Private or age-restricted videos can't be downloaded \u2014 download the file yourself and use `baker videos upload <file>`."
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
function fail(message, fix, code = "INGEST_FAILED") {
|
|
242
|
+
writeJson({ ok: false, error: { code, message, fix } });
|
|
243
|
+
process.exit(1);
|
|
244
|
+
}
|
|
245
|
+
function reportIngestFailure(err) {
|
|
246
|
+
if (err instanceof ApiError) {
|
|
247
|
+
writeJson({ ok: false, error: { code: err.code, message: err.message } });
|
|
248
|
+
process.exit(1);
|
|
249
|
+
}
|
|
250
|
+
if (err instanceof YtDlpError) reportYtDlpFailure(err);
|
|
251
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
252
|
+
if (detail.includes("timed out after")) {
|
|
253
|
+
fail(
|
|
254
|
+
"That video took too long to download and was stopped part-way.",
|
|
255
|
+
"Long or slow-serving videos can outrun the download window. Try a shorter clip, or download this one yourself and use `baker videos upload <file>`.",
|
|
256
|
+
"INTERNAL_ERROR"
|
|
257
|
+
);
|
|
258
|
+
}
|
|
259
|
+
fail(
|
|
260
|
+
`Couldn't add that video. ${detail}`,
|
|
261
|
+
"This is a fault on Baker's side, not a problem with the link. Report it.",
|
|
262
|
+
"INTERNAL_ERROR"
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
function dedupeKey(args, info) {
|
|
266
|
+
const id = typeof info.id === "string" ? info.id : void 0;
|
|
267
|
+
if (!id) return void 0;
|
|
268
|
+
if (info.extractor === "generic") return `${args.source}:${canonicalUrl(info) ?? args.url}`;
|
|
269
|
+
return `${args.source}:${id}`;
|
|
270
|
+
}
|
|
271
|
+
function ingestUrl(args) {
|
|
272
|
+
const body = {
|
|
273
|
+
url: args.url,
|
|
274
|
+
source: args.source
|
|
275
|
+
};
|
|
276
|
+
if (args.externalId) body.externalId = args.externalId;
|
|
277
|
+
if (args.externalUrl) body.externalUrl = args.externalUrl;
|
|
278
|
+
if (args.descriptionContext) body.descriptionContext = args.descriptionContext;
|
|
279
|
+
return apiPost("/api/videos/ingest", body);
|
|
280
|
+
}
|
|
281
|
+
async function downloadThenIngest(args, country) {
|
|
282
|
+
const vimeoCookie = captureVimeoCookie();
|
|
283
|
+
const workDir = await mkdtemp(path.join(tmpdir(), "videos-ingest-"));
|
|
284
|
+
try {
|
|
285
|
+
const probe = await probeYtDlp({ url: args.url, country, vimeoCookie, cookieDir: workDir });
|
|
286
|
+
if (isAudioOnly(probe.info)) {
|
|
287
|
+
throw new ApiError(
|
|
288
|
+
"VALIDATION_ERROR",
|
|
289
|
+
"That link is audio, not video, so it can't go in the video library. Music and podcast links have no picture to store."
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
const tooLong = refuseByDuration(durationSeconds(probe.info), MAX_VIDEO_INGEST_SECONDS);
|
|
293
|
+
if (tooLong) {
|
|
294
|
+
throw new ApiError("VALIDATION_ERROR", tooLong);
|
|
295
|
+
}
|
|
296
|
+
const externalId = args.externalId ?? dedupeKey(args, probe.info);
|
|
297
|
+
const { filePath, tier, reducedQuality } = await runYtDlp({
|
|
298
|
+
url: args.url,
|
|
299
|
+
audioOnly: false,
|
|
300
|
+
workDir,
|
|
301
|
+
// Deliberately uncapped: take the best the site will release and let Mux
|
|
302
|
+
// decide what to serve. The 1080p ceiling this replaces was reasoning
|
|
303
|
+
// about the wrong cost — it saved download bytes by throwing away source
|
|
304
|
+
// pixels *before* the one system that can make renditions from them ever
|
|
305
|
+
// saw them, so a 4K master became a 1080p master permanently, for
|
|
306
|
+
// everything the library is ever asked to do with that clip afterwards.
|
|
307
|
+
// Downscaling is Mux's job and it is cheap; re-acquiring a master is not.
|
|
308
|
+
country,
|
|
309
|
+
vimeoCookie,
|
|
310
|
+
// Budgeted from the probed length, so the duration we accept and the time
|
|
311
|
+
// we allow to fetch it cannot drift apart.
|
|
312
|
+
timeoutMs: downloadTimeoutMs(durationSeconds(probe.info))
|
|
313
|
+
});
|
|
314
|
+
const stats = await stat(filePath);
|
|
315
|
+
if (stats.size > MAX_VIDEO_INGEST_BYTES) {
|
|
316
|
+
throw new ApiError(
|
|
317
|
+
"VALIDATION_ERROR",
|
|
318
|
+
`That video is ${(stats.size / 1024 ** 3).toFixed(1)} GB, over the ${Math.round(MAX_VIDEO_INGEST_BYTES / 1024 ** 3)} GB limit for this route.`
|
|
319
|
+
);
|
|
320
|
+
}
|
|
321
|
+
const publicUrl = await uploadToAssetStore(filePath, stats.size);
|
|
322
|
+
return {
|
|
323
|
+
...await ingestUrl({
|
|
324
|
+
...args,
|
|
325
|
+
url: publicUrl,
|
|
326
|
+
externalId,
|
|
327
|
+
externalUrl: args.externalUrl ?? canonicalUrl(probe.info) ?? args.url
|
|
328
|
+
}),
|
|
329
|
+
egress: tier,
|
|
330
|
+
// Named in the result for the same reason `egress` is: a geo-targeted exit
|
|
331
|
+
// is a deliberate, billable choice and must not be invisible afterwards.
|
|
332
|
+
...country ? { country } : {},
|
|
333
|
+
// Third member of the same family. The site refused the good formats and
|
|
334
|
+
// the download quietly took the one it would release, which is the right
|
|
335
|
+
// call — but a clip that is 360p because of that must say so here, or the
|
|
336
|
+
// only way to find out is to watch it.
|
|
337
|
+
...reducedQuality ? { reducedQuality: true } : {}
|
|
338
|
+
};
|
|
339
|
+
} finally {
|
|
340
|
+
await rm(workDir, { recursive: true, force: true }).catch(() => {
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
async function uploadToAssetStore(filePath, sizeBytes) {
|
|
345
|
+
const sha256 = await hashFile(filePath);
|
|
346
|
+
const { putUrl, publicUrl } = await apiPost("/api/canvas/assets/presign", {
|
|
347
|
+
sha256,
|
|
348
|
+
mime: "video/mp4",
|
|
349
|
+
purpose: "source"
|
|
350
|
+
});
|
|
351
|
+
const putRes = await putFileStreamed({ putUrl, filePath, contentType: "video/mp4", sizeBytes });
|
|
352
|
+
if (!putRes.ok) {
|
|
353
|
+
throw new ApiError("INTERNAL_ERROR", `Storing the downloaded video failed: HTTP ${putRes.status}`);
|
|
354
|
+
}
|
|
355
|
+
return publicUrl;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
export {
|
|
359
|
+
ingestCommand,
|
|
360
|
+
runVideoIngest,
|
|
361
|
+
ingestHints
|
|
362
|
+
};
|
|
363
|
+
//# sourceMappingURL=chunk-25E6SC3F.js.map
|