@koda-sl/baker-cli 0.496.0 → 0.497.0
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 +25 -4
- package/dist/account-ZKJFX2GK.js +80 -0
- package/dist/account-ZKJFX2GK.js.map +1 -0
- package/dist/account-users-SZCYHVBM.js +62 -0
- package/dist/account-users-SZCYHVBM.js.map +1 -0
- package/dist/accounts-5DFYKYSM.js +78 -0
- package/dist/accounts-5DFYKYSM.js.map +1 -0
- package/dist/accounts-OGAIQNE6.js +612 -0
- package/dist/accounts-OGAIQNE6.js.map +1 -0
- package/dist/actions-FMNJSOBA.js +55 -0
- package/dist/activecampaign-LYYYH6XD.js +936 -0
- package/dist/activecampaign-LYYYH6XD.js.map +1 -0
- package/dist/add-AOQLZRPC.js +80 -0
- package/dist/add-AOQLZRPC.js.map +1 -0
- package/dist/add-HWXEPSZF.js +105 -0
- package/dist/add-HWXEPSZF.js.map +1 -0
- package/dist/add-VDZPGZF5.js +148 -0
- package/dist/add-VDZPGZF5.js.map +1 -0
- package/dist/add-YYP3O536.js +303 -0
- package/dist/add-YYP3O536.js.map +1 -0
- package/dist/ads-OLXSDPD6.js +40 -0
- package/dist/advertisers-STYAIX72.js +121 -0
- package/dist/advertisers-STYAIX72.js.map +1 -0
- package/dist/analytics-6WBK4VFO.js +1977 -0
- package/dist/analytics-6WBK4VFO.js.map +1 -0
- package/dist/analytics-DHB325DM.js +434 -0
- package/dist/analytics-DHB325DM.js.map +1 -0
- package/dist/assign-BFXHYTMF.js +78 -0
- package/dist/assign-BFXHYTMF.js.map +1 -0
- package/dist/audience-size-XWHZV2GH.js +74 -0
- package/dist/audience-size-XWHZV2GH.js.map +1 -0
- package/dist/audit-IYGRU7LD.js +152 -0
- package/dist/audit-IYGRU7LD.js.map +1 -0
- package/dist/autocomplete-SDDSJTAF.js +112 -0
- package/dist/autocomplete-SDDSJTAF.js.map +1 -0
- package/dist/avatars-I4H3NMEJ.js +38 -0
- package/dist/bid-pricing-OVYBDRMV.js +101 -0
- package/dist/bid-pricing-OVYBDRMV.js.map +1 -0
- package/dist/brand-3V7ECY7D.js +22 -0
- package/dist/brief-U2W7KMFC.js +539 -0
- package/dist/brief-U2W7KMFC.js.map +1 -0
- package/dist/campaign-groups-FJHBVUA3.js +97 -0
- package/dist/campaign-groups-FJHBVUA3.js.map +1 -0
- package/dist/campaign-writes-XKYYMZML.js +166 -0
- package/dist/campaign-writes-XKYYMZML.js.map +1 -0
- package/dist/campaigns-E5UW4I3X.js +111 -0
- package/dist/campaigns-E5UW4I3X.js.map +1 -0
- package/dist/campaigns-MCB76NPQ.js +107 -0
- package/dist/canvas-JCNKMGCG.js +46 -0
- package/dist/capabilities-CLTZCXCZ.js +145 -0
- package/dist/capabilities-CLTZCXCZ.js.map +1 -0
- package/dist/chatgpt-XFZ42NXC.js +47 -0
- package/dist/chats-DTJSBDWO.js +277 -0
- package/dist/chats-DTJSBDWO.js.map +1 -0
- package/dist/check-CZTS64AW.js +105 -0
- package/dist/check-CZTS64AW.js.map +1 -0
- package/dist/chunk-2YTBPRRG.js +207 -0
- package/dist/chunk-3SNCMEJB.js +97 -0
- package/dist/chunk-7QGFO35A.js +23 -0
- package/dist/chunk-AV7ALENU.js +191 -0
- package/dist/chunk-BRLFQ4VX.js +604 -0
- package/dist/chunk-CAZGM2NX.js +92 -0
- package/dist/chunk-CAZGM2NX.js.map +1 -0
- package/dist/chunk-DJE7UXYT.js +831 -0
- package/dist/chunk-EFWXYUSK.js +139 -0
- package/dist/chunk-EONSZAZB.js +3868 -0
- package/dist/chunk-FALJQCWL.js +661 -0
- package/dist/chunk-FALJQCWL.js.map +1 -0
- package/dist/chunk-FG3MV2XM.js +89 -0
- package/dist/chunk-FKG476GH.js +392 -0
- package/dist/chunk-FUGQSIYG.js +297 -0
- package/dist/chunk-GZ4A2VYW.js +39 -0
- package/dist/chunk-GZ4A2VYW.js.map +1 -0
- package/dist/chunk-HPLHAHG5.js +275 -0
- package/dist/chunk-I24YT2KG.js +122 -0
- package/dist/chunk-IFDZZOUC.js +903 -0
- package/dist/chunk-JVVUI55M.js +455 -0
- package/dist/chunk-KKSHEPBY.js +363 -0
- package/dist/chunk-KQ7RCLGC.js +547 -0
- package/dist/chunk-L7WMS5PW.js +172 -0
- package/dist/chunk-LBRO4MTL.js +19 -0
- package/dist/chunk-LNRPOULW.js +224 -0
- package/dist/chunk-LX6WC2XZ.js +942 -0
- package/dist/chunk-MMGTJBM6.js +142 -0
- package/dist/chunk-NZS3KEQ2.js +97 -0
- package/dist/chunk-NZS3KEQ2.js.map +1 -0
- package/dist/chunk-O37VU7FG.js +6799 -0
- package/dist/chunk-O37VU7FG.js.map +1 -0
- package/dist/chunk-OEZYSL3U.js +51 -0
- package/dist/chunk-OOVHBMQB.js +103 -0
- package/dist/chunk-PTH7VWKK.js +159 -0
- package/dist/chunk-PYD6IGW6.js +401 -0
- package/dist/chunk-PYD6IGW6.js.map +1 -0
- package/dist/chunk-QE2E4EYJ.js +349 -0
- package/dist/chunk-QE2E4EYJ.js.map +1 -0
- package/dist/chunk-QZF4BVKL.js +66 -0
- package/dist/chunk-RITUSBYO.js +61 -0
- package/dist/chunk-SSTL3A7Z.js +206 -0
- package/dist/chunk-SZNGQ2GF.js +64 -0
- package/dist/chunk-SZNGQ2GF.js.map +1 -0
- package/dist/chunk-TD4SO6TR.js +169 -0
- package/dist/chunk-UZ4RTOFG.js +91 -0
- package/dist/chunk-VAX7PFQV.js +592 -0
- package/dist/chunk-VDRSZK4P.js +494 -0
- package/dist/chunk-VNU2EYD4.js +344 -0
- package/dist/chunk-WT4WDIXA.js +156 -0
- package/dist/chunk-XEX23CIB.js +160 -0
- package/dist/chunk-XXDF25BW.js +8939 -0
- package/dist/chunk-YJ3LSFMX.js +249 -0
- package/dist/chunk-YVK5RT3B.js +197 -0
- package/dist/chunk-YWWRLZUR.js +433 -0
- package/dist/chunk-Z4S5BCVZ.js +57 -0
- package/dist/chunk-ZYGK7GAK.js +1079 -0
- package/dist/claim-TSFPWTQY.js +198 -0
- package/dist/claim-TSFPWTQY.js.map +1 -0
- package/dist/cli.js +38 -37
- package/dist/cli.js.map +1 -1
- package/dist/companies-P7FZNJQV.js +196 -0
- package/dist/companies-P7FZNJQV.js.map +1 -0
- package/dist/complete-SYDIHMD5.js +82 -0
- package/dist/complete-SYDIHMD5.js.map +1 -0
- package/dist/connect-COS6G45S.js +43 -0
- package/dist/conversation-UJOWMJRH.js +94 -0
- package/dist/conversation-UJOWMJRH.js.map +1 -0
- package/dist/conversions-ONOIEILU.js +138 -0
- package/dist/conversions-ONOIEILU.js.map +1 -0
- package/dist/create-DPQRYQXK.js +208 -0
- package/dist/create-DPQRYQXK.js.map +1 -0
- package/dist/create-JD76Z4A4.js +60 -0
- package/dist/create-JD76Z4A4.js.map +1 -0
- package/dist/create-NOT3HGP2.js +133 -0
- package/dist/create-NOT3HGP2.js.map +1 -0
- package/dist/create-ZYEB7SHF.js +236 -0
- package/dist/create-ZYEB7SHF.js.map +1 -0
- package/dist/creatives-LRSELC7Y.js +221 -0
- package/dist/creatives-LRSELC7Y.js.map +1 -0
- package/dist/creatives-SEQHJD2M.js +58 -0
- package/dist/credentials-LHPTUVVA.js +288 -0
- package/dist/credentials-LHPTUVVA.js.map +1 -0
- package/dist/critique-Q7GSZ5RP.js +1459 -0
- package/dist/critique-Q7GSZ5RP.js.map +1 -0
- package/dist/critique-RR2XOQCE.js +228 -0
- package/dist/critique-RR2XOQCE.js.map +1 -0
- package/dist/crm-J7EU32PL.js +319 -0
- package/dist/crm-J7EU32PL.js.map +1 -0
- package/dist/crm-MC444ZVU.js +225 -0
- package/dist/crm-MC444ZVU.js.map +1 -0
- package/dist/customers-LMSX33FO.js +57 -0
- package/dist/delete-BQBVATMF.js +55 -0
- package/dist/delete-BQBVATMF.js.map +1 -0
- package/dist/delete-K7A3AUPH.js +65 -0
- package/dist/delete-K7A3AUPH.js.map +1 -0
- package/dist/delete-VV2ICIHF.js +67 -0
- package/dist/delete-VV2ICIHF.js.map +1 -0
- package/dist/demographics-7GWUXXS6.js +139 -0
- package/dist/demographics-7GWUXXS6.js.map +1 -0
- package/dist/discard-3CLZ4DPD.js +67 -0
- package/dist/discard-3CLZ4DPD.js.map +1 -0
- package/dist/domain-ZS74BSE6.js +99 -0
- package/dist/domain-ZS74BSE6.js.map +1 -0
- package/dist/draft-J3B33RAZ.js +308 -0
- package/dist/draft-J3B33RAZ.js.map +1 -0
- package/dist/draft-MZLWVX3D.js +218 -0
- package/dist/draft-MZLWVX3D.js.map +1 -0
- package/dist/draft-R56PIXCV.js +333 -0
- package/dist/draft-R56PIXCV.js.map +1 -0
- package/dist/experiment-7RJ5X2LL.js +1397 -0
- package/dist/experiments-NOSJJMYI.js +234 -0
- package/dist/experiments-NOSJJMYI.js.map +1 -0
- package/dist/facets-E6SHYUAI.js +115 -0
- package/dist/facets-E6SHYUAI.js.map +1 -0
- package/dist/feedback-HXCQBV7S.js +107 -0
- package/dist/feedback-HXCQBV7S.js.map +1 -0
- package/dist/feedback-record-GXPYXNT6.js +261 -0
- package/dist/feedback-record-GXPYXNT6.js.map +1 -0
- package/dist/fetch-HMUGSRE4.js +177 -0
- package/dist/fetch-HMUGSRE4.js.map +1 -0
- package/dist/find-2EPXK5RF.js +134 -0
- package/dist/fit-W7UNFZT5.js +63 -0
- package/dist/flows-SO5J3M3X.js +248 -0
- package/dist/flows-SO5J3M3X.js.map +1 -0
- package/dist/fonts-N42UYWTX.js +37 -0
- package/dist/forecast-24LGJVLC.js +119 -0
- package/dist/forecast-24LGJVLC.js.map +1 -0
- package/dist/funnel-NYT36B3C.js +395 -0
- package/dist/funnel-NYT36B3C.js.map +1 -0
- package/dist/ga4-6EIQC2TG.js +55 -0
- package/dist/get-KAGO4EC5.js +80 -0
- package/dist/get-KAGO4EC5.js.map +1 -0
- package/dist/get-PZX27LQY.js +38 -0
- package/dist/get-PZX27LQY.js.map +1 -0
- package/dist/get-R5JAFHTH.js +57 -0
- package/dist/get-R5JAFHTH.js.map +1 -0
- package/dist/google-O5OI6QFU.js +136 -0
- package/dist/google-ads-6X4BHGUR.js +196 -0
- package/dist/google-ads-6X4BHGUR.js.map +1 -0
- package/dist/gsc-BM3T2GDL.js +30 -0
- package/dist/history-LGOWYLBE.js +134 -0
- package/dist/history-LGOWYLBE.js.map +1 -0
- package/dist/hubspot-LJB3ETUT.js +780 -0
- package/dist/hubspot-LJB3ETUT.js.map +1 -0
- package/dist/icon-B7DG53S5.js +137 -0
- package/dist/ideas-DYN2DMFN.js +41 -0
- package/dist/images-EQCUXEHF.js +92 -0
- package/dist/ingest-B46AY3QU.js +24 -0
- package/dist/ingest-T7ZS2R4U.js +108 -0
- package/dist/ingest-T7ZS2R4U.js.map +1 -0
- package/dist/inspect-BSNGAT2S.js +190 -0
- package/dist/inspect-BSNGAT2S.js.map +1 -0
- package/dist/inspiration-TCCKM4R7.js +53 -0
- package/dist/keyword-metrics-KNTIN4ZK.js +198 -0
- package/dist/keyword-metrics-KNTIN4ZK.js.map +1 -0
- package/dist/keywords-for-site-S4MXGXWR.js +129 -0
- package/dist/keywords-for-site-S4MXGXWR.js.map +1 -0
- package/dist/landing-WVPA7NBR.js +28 -0
- package/dist/leads-EINV5FK3.js +113 -0
- package/dist/leads-EINV5FK3.js.map +1 -0
- package/dist/learn-7Z2VR6MS.js +205 -0
- package/dist/learn-7Z2VR6MS.js.map +1 -0
- package/dist/line-item-writes-Z3TIB5KZ.js +209 -0
- package/dist/line-item-writes-Z3TIB5KZ.js.map +1 -0
- package/dist/line-items-OEWYOPFP.js +103 -0
- package/dist/link-KYHUIPJE.js +65 -0
- package/dist/link-KYHUIPJE.js.map +1 -0
- package/dist/linkedin-JVB4HXJC.js +1314 -0
- package/dist/linkedin-JVB4HXJC.js.map +1 -0
- package/dist/list-EORTO73V.js +93 -0
- package/dist/list-EORTO73V.js.map +1 -0
- package/dist/list-QQVLURKH.js +152 -0
- package/dist/list-QQVLURKH.js.map +1 -0
- package/dist/list-QWGKRUSM.js +65 -0
- package/dist/list-QWGKRUSM.js.map +1 -0
- package/dist/list-WRBWQASJ.js +50 -0
- package/dist/list-Z6NMNK3T.js +304 -0
- package/dist/list-Z6NMNK3T.js.map +1 -0
- package/dist/log-RUMKYPYK.js +93 -0
- package/dist/log-RUMKYPYK.js.map +1 -0
- package/dist/logo-QTSBKP2J.js +18 -0
- package/dist/make-IJGCQA7C.js +1354 -0
- package/dist/make-IJGCQA7C.js.map +1 -0
- package/dist/map-QZHIJFQT.js +434 -0
- package/dist/map-QZHIJFQT.js.map +1 -0
- package/dist/mcp-ZH2XDV5P.js +715 -0
- package/dist/mcp-ZH2XDV5P.js.map +1 -0
- package/dist/media-sources-SQ2RPDBO.js +35 -0
- package/dist/media-sources-SQ2RPDBO.js.map +1 -0
- package/dist/members-4YX7JEZM.js +45 -0
- package/dist/members-4YX7JEZM.js.map +1 -0
- package/dist/normalize-ABIWLRIT.js +142 -0
- package/dist/normalize-ABIWLRIT.js.map +1 -0
- package/dist/options-SVCQVTNE.js +123 -0
- package/dist/options-SVCQVTNE.js.map +1 -0
- package/dist/organization-FNKDC742.js +947 -0
- package/dist/organization-FNKDC742.js.map +1 -0
- package/dist/performance-HTU5FR2K.js +25 -0
- package/dist/posts-3DAPTBH2.js +34 -0
- package/dist/posts-3DAPTBH2.js.map +1 -0
- package/dist/promoted-tweet-writes-DD3CJNWW.js +181 -0
- package/dist/promoted-tweet-writes-DD3CJNWW.js.map +1 -0
- package/dist/promoted-tweets-TTWN5OMW.js +119 -0
- package/dist/publish-Z62KGDJ2.js +342 -0
- package/dist/publish-Z62KGDJ2.js.map +1 -0
- package/dist/reddit-6C3PT5CT.js +27 -0
- package/dist/refresh-HCQXVFVR.js +95 -0
- package/dist/refresh-HCQXVFVR.js.map +1 -0
- package/dist/refresh-ZCGH64OZ.js +42 -0
- package/dist/refresh-ZCGH64OZ.js.map +1 -0
- package/dist/release-FIHW2HCH.js +61 -0
- package/dist/release-FIHW2HCH.js.map +1 -0
- package/dist/remove-CBR7NVMI.js +51 -0
- package/dist/remove-CBR7NVMI.js.map +1 -0
- package/dist/remove-PUZP5GWN.js +49 -0
- package/dist/remove-PUZP5GWN.js.map +1 -0
- package/dist/reopen-EJGLRQWR.js +64 -0
- package/dist/reopen-EJGLRQWR.js.map +1 -0
- package/dist/rerun-TVBZXASH.js +91 -0
- package/dist/rerun-TVBZXASH.js.map +1 -0
- package/dist/research-L25D4WHQ.js +263 -0
- package/dist/research-L25D4WHQ.js.map +1 -0
- package/dist/research-YCMMQVK6.js +62 -0
- package/dist/reset-HKKCWKZ7.js +55 -0
- package/dist/reset-HKKCWKZ7.js.map +1 -0
- package/dist/reset-SRL6I6GP.js +55 -0
- package/dist/reset-SRL6I6GP.js.map +1 -0
- package/dist/resolve-POMTTAFR.js +122 -0
- package/dist/resolve-POMTTAFR.js.map +1 -0
- package/dist/retry-MEPTOAV2.js +61 -0
- package/dist/retry-MEPTOAV2.js.map +1 -0
- package/dist/retry-RNGM3KKA.js +63 -0
- package/dist/retry-RNGM3KKA.js.map +1 -0
- package/dist/revenue-X4KPTSAM.js +89 -0
- package/dist/revenue-X4KPTSAM.js.map +1 -0
- package/dist/rules-VK7YA23Q.js +97 -0
- package/dist/rules-VK7YA23Q.js.map +1 -0
- package/dist/rules-add-VG7AT6EG.js +463 -0
- package/dist/rules-add-VG7AT6EG.js.map +1 -0
- package/dist/run-DIDQSZU7.js +67 -0
- package/dist/run-DIDQSZU7.js.map +1 -0
- package/dist/run-SR7DJ7M5.js +66 -0
- package/dist/scaffold-ad-46GTFUMP.js +1512 -0
- package/dist/scaffold-ad-46GTFUMP.js.map +1 -0
- package/dist/scaffold-static-ad-U63V4UHR.js +1006 -0
- package/dist/scaffold-static-ad-U63V4UHR.js.map +1 -0
- package/dist/scaffold-video-4DNTURH6.js +884 -0
- package/dist/scaffold-video-4DNTURH6.js.map +1 -0
- package/dist/schedule-JO66N7XO.js +62 -0
- package/dist/schedule-JO66N7XO.js.map +1 -0
- package/dist/schedule-JZBIX6LH.js +67 -0
- package/dist/schedule-JZBIX6LH.js.map +1 -0
- package/dist/scheduled-agents-N63EZNY6.js +50 -0
- package/dist/schema-B2XANMEY.js +133 -0
- package/dist/schema-B2XANMEY.js.map +1 -0
- package/dist/schema-C6SGBNA6.js +69 -0
- package/dist/search-7GHS3OUZ.js +51 -0
- package/dist/search-7GHS3OUZ.js.map +1 -0
- package/dist/search-W5HZUJA2.js +175 -0
- package/dist/search-W5HZUJA2.js.map +1 -0
- package/dist/select-LMGLNFWB.js +102 -0
- package/dist/select-LMGLNFWB.js.map +1 -0
- package/dist/set-prompt-M5E3UZDM.js +194 -0
- package/dist/set-prompt-M5E3UZDM.js.map +1 -0
- package/dist/setup-links-ERBQSKAB.js +142 -0
- package/dist/setup-links-ERBQSKAB.js.map +1 -0
- package/dist/site-PNVFJRYK.js +178 -0
- package/dist/site-PNVFJRYK.js.map +1 -0
- package/dist/sources-DMZJPLKC.js +455 -0
- package/dist/sources-DMZJPLKC.js.map +1 -0
- package/dist/sources-HN3GCEDX.js +30 -0
- package/dist/stale-VWN25WTL.js +72 -0
- package/dist/stale-VWN25WTL.js.map +1 -0
- package/dist/stats-CVF6AC7R.js +34 -0
- package/dist/status-SF7DTPCJ.js +63 -0
- package/dist/status-SF7DTPCJ.js.map +1 -0
- package/dist/stock-4LPQ6SM7.js +179 -0
- package/dist/studio-NZ6WQ7OE.js +49 -0
- package/dist/suggest-WMMEQCUH.js +66 -0
- package/dist/suggest-WMMEQCUH.js.map +1 -0
- package/dist/sync-F7VNZLWY.js +55 -0
- package/dist/sync-F7VNZLWY.js.map +1 -0
- package/dist/sync-HVNDPBOD.js +55 -0
- package/dist/sync-HVNDPBOD.js.map +1 -0
- package/dist/sync-definition-CKEUYKWN.js +65 -0
- package/dist/tag-KTQ2FV5C.js +57 -0
- package/dist/tag-KTQ2FV5C.js.map +1 -0
- package/dist/tag-manager-FLXXLNKP.js +43 -0
- package/dist/tags-EUOOSAKN.js +26 -0
- package/dist/tags-KOMAP2G5.js +21 -0
- package/dist/tags-KOMAP2G5.js.map +1 -0
- package/dist/tags-TKXJGTR3.js +21 -0
- package/dist/tags-TKXJGTR3.js.map +1 -0
- package/dist/tags-VWIPDCUA.js +225 -0
- package/dist/tags-VWIPDCUA.js.map +1 -0
- package/dist/tags-XAB4HWGW.js +21 -0
- package/dist/tags-XAB4HWGW.js.map +1 -0
- package/dist/targeting-criteria-HE7K52WN.js +113 -0
- package/dist/targets-NA4XPDBF.js +104 -0
- package/dist/targets-NA4XPDBF.js.map +1 -0
- package/dist/testimonials-3Q5XM7JD.js +32 -0
- package/dist/top-companies-TKO4QGPJ.js +109 -0
- package/dist/top-companies-TKO4QGPJ.js.map +1 -0
- package/dist/translate-YVIZ5T44.js +605 -0
- package/dist/translate-YVIZ5T44.js.map +1 -0
- package/dist/triggers-QX7VW7UO.js +143 -0
- package/dist/triggers-QX7VW7UO.js.map +1 -0
- package/dist/unlink-64SRPUNG.js +68 -0
- package/dist/unlink-64SRPUNG.js.map +1 -0
- package/dist/unstage-5X2MOUMF.js +86 -0
- package/dist/unstage-5X2MOUMF.js.map +1 -0
- package/dist/update-22ZBHURE.js +81 -0
- package/dist/update-22ZBHURE.js.map +1 -0
- package/dist/update-2LTPSGWT.js +99 -0
- package/dist/update-2LTPSGWT.js.map +1 -0
- package/dist/update-DOKS7ATM.js +189 -0
- package/dist/update-DOKS7ATM.js.map +1 -0
- package/dist/update-FB6X463M.js +64 -0
- package/dist/update-FB6X463M.js.map +1 -0
- package/dist/update-QIZ7XFAM.js +153 -0
- package/dist/update-QIZ7XFAM.js.map +1 -0
- package/dist/upload-XJ7TUVIK.js +127 -0
- package/dist/upload-XJ7TUVIK.js.map +1 -0
- package/dist/url-params-KLQOLNPS.js +99 -0
- package/dist/url-params-KLQOLNPS.js.map +1 -0
- package/dist/validate-YTBJBG44.js +118 -0
- package/dist/validate-YTBJBG44.js.map +1 -0
- package/dist/videos-WAPUPJVT.js +39 -0
- package/dist/viewer-check-GHQA3UY2.js +81 -0
- package/dist/web-6JMWERTT.js +141 -0
- package/dist/web-6JMWERTT.js.map +1 -0
- package/dist/winning-ads-XCVUAIOU.js +86 -0
- package/dist/write-commands-N74CDMQM.js +1493 -0
- package/dist/write-commands-N74CDMQM.js.map +1 -0
- package/dist/x-SI4KYDEY.js +47 -0
- package/package.json +1 -1
- package/dist/account-UHNR5KTE.js +0 -79
- package/dist/account-UHNR5KTE.js.map +0 -1
- package/dist/accounts-KMLXHADA.js +0 -77
- package/dist/accounts-KMLXHADA.js.map +0 -1
- package/dist/accounts-QDGNTSTV.js +0 -611
- package/dist/accounts-QDGNTSTV.js.map +0 -1
- package/dist/actions-QL5UD2W4.js +0 -55
- package/dist/activecampaign-5OD45ROS.js +0 -935
- package/dist/activecampaign-5OD45ROS.js.map +0 -1
- package/dist/add-2F7BEVYD.js +0 -105
- package/dist/add-2F7BEVYD.js.map +0 -1
- package/dist/add-6K6LO7CM.js +0 -104
- package/dist/add-6K6LO7CM.js.map +0 -1
- package/dist/add-LYDJZDGO.js +0 -302
- package/dist/add-LYDJZDGO.js.map +0 -1
- package/dist/ads-DHPJFU52.js +0 -40
- package/dist/advertisers-23LU7GTV.js +0 -120
- package/dist/advertisers-23LU7GTV.js.map +0 -1
- package/dist/analytics-HO2SLL4W.js +0 -433
- package/dist/analytics-HO2SLL4W.js.map +0 -1
- package/dist/analytics-LD3D7ISK.js +0 -1976
- package/dist/analytics-LD3D7ISK.js.map +0 -1
- package/dist/assign-CLKJKH2B.js +0 -77
- package/dist/assign-CLKJKH2B.js.map +0 -1
- package/dist/audience-size-NNYYXODL.js +0 -73
- package/dist/audience-size-NNYYXODL.js.map +0 -1
- package/dist/audit-KB4P2XGS.js +0 -151
- package/dist/audit-KB4P2XGS.js.map +0 -1
- package/dist/autocomplete-VZD2SMTE.js +0 -111
- package/dist/autocomplete-VZD2SMTE.js.map +0 -1
- package/dist/avatars-FKOO6VZ2.js +0 -38
- package/dist/bid-pricing-6LLXOLLI.js +0 -100
- package/dist/bid-pricing-6LLXOLLI.js.map +0 -1
- package/dist/brand-NNWHBIAX.js +0 -22
- package/dist/brief-CPJQWT6W.js +0 -538
- package/dist/brief-CPJQWT6W.js.map +0 -1
- package/dist/campaign-groups-YPYNXOWU.js +0 -95
- package/dist/campaign-groups-YPYNXOWU.js.map +0 -1
- package/dist/campaign-writes-UJ4L2O6G.js +0 -165
- package/dist/campaign-writes-UJ4L2O6G.js.map +0 -1
- package/dist/campaigns-HLBZRH5A.js +0 -107
- package/dist/campaigns-N44ZDGB5.js +0 -109
- package/dist/campaigns-N44ZDGB5.js.map +0 -1
- package/dist/canvas-D64GLWUO.js +0 -46
- package/dist/capabilities-LWXCWMIY.js +0 -144
- package/dist/capabilities-LWXCWMIY.js.map +0 -1
- package/dist/chatgpt-YI6YNACI.js +0 -47
- package/dist/chats-7WGC2CVW.js +0 -276
- package/dist/chats-7WGC2CVW.js.map +0 -1
- package/dist/check-EH6BXWWL.js +0 -104
- package/dist/check-EH6BXWWL.js.map +0 -1
- package/dist/chunk-2B772ZEA.js +0 -169
- package/dist/chunk-2KRK667G.js +0 -51
- package/dist/chunk-2TVXJPGR.js +0 -103
- package/dist/chunk-3AMLOCXY.js +0 -392
- package/dist/chunk-3B5LPK6D.js +0 -658
- package/dist/chunk-3B5LPK6D.js.map +0 -1
- package/dist/chunk-3N5A44NQ.js +0 -122
- package/dist/chunk-3WAYZQNV.js +0 -61
- package/dist/chunk-5A257KJA.js +0 -160
- package/dist/chunk-6QGS3RQP.js +0 -363
- package/dist/chunk-AFD32O4A.js +0 -494
- package/dist/chunk-AW2GKIGS.js +0 -433
- package/dist/chunk-CYSBNCPX.js +0 -55
- package/dist/chunk-CYSBNCPX.js.map +0 -1
- package/dist/chunk-DAO63OOP.js +0 -6352
- package/dist/chunk-DAO63OOP.js.map +0 -1
- package/dist/chunk-EMQUW6JB.js +0 -942
- package/dist/chunk-EW3JEKIV.js +0 -139
- package/dist/chunk-FBFWMTOP.js +0 -19
- package/dist/chunk-GXDLWBOY.js +0 -73
- package/dist/chunk-GXDLWBOY.js.map +0 -1
- package/dist/chunk-GXGYTFZA.js +0 -8939
- package/dist/chunk-I7J7YQXZ.js +0 -142
- package/dist/chunk-IBY44U2M.js +0 -1079
- package/dist/chunk-IFXGCI33.js +0 -297
- package/dist/chunk-IKLHXGMF.js +0 -91
- package/dist/chunk-IYTPWAN3.js +0 -604
- package/dist/chunk-J3CWAERS.js +0 -3868
- package/dist/chunk-JH2L5CQD.js +0 -206
- package/dist/chunk-JUVVCA7B.js +0 -97
- package/dist/chunk-MK6XJUCQ.js +0 -197
- package/dist/chunk-N3I6ZXR7.js +0 -66
- package/dist/chunk-NBO2NSAW.js +0 -592
- package/dist/chunk-NEU5QD2C.js +0 -249
- package/dist/chunk-NKIBXOHT.js +0 -344
- package/dist/chunk-OE3MIV4F.js +0 -547
- package/dist/chunk-P2MFWJR3.js +0 -903
- package/dist/chunk-PHCIFBP3.js +0 -89
- package/dist/chunk-PTUXBO5O.js +0 -224
- package/dist/chunk-Q3LXLWZY.js +0 -275
- package/dist/chunk-Q5WBTVA7.js +0 -455
- package/dist/chunk-RDEAVCMF.js +0 -399
- package/dist/chunk-RDEAVCMF.js.map +0 -1
- package/dist/chunk-RGMKXNQP.js +0 -23
- package/dist/chunk-RZTKCCUL.js +0 -831
- package/dist/chunk-TTKBNBQF.js +0 -156
- package/dist/chunk-VB3XUR6A.js +0 -207
- package/dist/chunk-XCKINS7K.js +0 -57
- package/dist/chunk-Y6GKV7CU.js +0 -346
- package/dist/chunk-Y6GKV7CU.js.map +0 -1
- package/dist/chunk-Z2GQREJY.js +0 -159
- package/dist/chunk-ZDAVSTEE.js +0 -172
- package/dist/chunk-ZXCSOVS5.js +0 -191
- package/dist/claim-SVDCQ2AI.js +0 -197
- package/dist/claim-SVDCQ2AI.js.map +0 -1
- package/dist/companies-BYMYQK6A.js +0 -195
- package/dist/companies-BYMYQK6A.js.map +0 -1
- package/dist/complete-NEH3MWRI.js +0 -81
- package/dist/complete-NEH3MWRI.js.map +0 -1
- package/dist/connect-5PGL7ZOM.js +0 -42
- package/dist/conversation-CSOKJXDW.js +0 -93
- package/dist/conversation-CSOKJXDW.js.map +0 -1
- package/dist/conversions-4JOTTFEH.js +0 -135
- package/dist/conversions-4JOTTFEH.js.map +0 -1
- package/dist/create-2XYMBULY.js +0 -207
- package/dist/create-2XYMBULY.js.map +0 -1
- package/dist/create-56PTZABQ.js +0 -235
- package/dist/create-56PTZABQ.js.map +0 -1
- package/dist/create-D6S6TGWY.js +0 -59
- package/dist/create-D6S6TGWY.js.map +0 -1
- package/dist/create-SMW4O5PC.js +0 -132
- package/dist/create-SMW4O5PC.js.map +0 -1
- package/dist/creatives-OO76DAFS.js +0 -58
- package/dist/creatives-VJUYWJL6.js +0 -182
- package/dist/creatives-VJUYWJL6.js.map +0 -1
- package/dist/credentials-2ONYUJW6.js +0 -287
- package/dist/credentials-2ONYUJW6.js.map +0 -1
- package/dist/critique-NDDFSGPE.js +0 -1458
- package/dist/critique-NDDFSGPE.js.map +0 -1
- package/dist/critique-YXZVMLZ4.js +0 -227
- package/dist/critique-YXZVMLZ4.js.map +0 -1
- package/dist/crm-Q6CEP5XV.js +0 -224
- package/dist/crm-Q6CEP5XV.js.map +0 -1
- package/dist/crm-WRONZYDH.js +0 -318
- package/dist/crm-WRONZYDH.js.map +0 -1
- package/dist/customers-2EFYSCU2.js +0 -56
- package/dist/delete-7WEVC3FS.js +0 -66
- package/dist/delete-7WEVC3FS.js.map +0 -1
- package/dist/delete-RBWK255M.js +0 -54
- package/dist/delete-RBWK255M.js.map +0 -1
- package/dist/delete-VN4WWMQF.js +0 -64
- package/dist/delete-VN4WWMQF.js.map +0 -1
- package/dist/demographics-I5XZ435C.js +0 -138
- package/dist/demographics-I5XZ435C.js.map +0 -1
- package/dist/discard-XJLIXTNM.js +0 -66
- package/dist/discard-XJLIXTNM.js.map +0 -1
- package/dist/domain-M7AEGAYI.js +0 -98
- package/dist/domain-M7AEGAYI.js.map +0 -1
- package/dist/draft-5DQI4W5F.js +0 -306
- package/dist/draft-5DQI4W5F.js.map +0 -1
- package/dist/draft-7IIYHSY2.js +0 -332
- package/dist/draft-7IIYHSY2.js.map +0 -1
- package/dist/draft-CN6GKVBF.js +0 -217
- package/dist/draft-CN6GKVBF.js.map +0 -1
- package/dist/experiment-IDDWRCJ7.js +0 -1397
- package/dist/facets-ZLZ6LIHN.js +0 -114
- package/dist/facets-ZLZ6LIHN.js.map +0 -1
- package/dist/feedback-7LEX2P5Q.js +0 -106
- package/dist/feedback-7LEX2P5Q.js.map +0 -1
- package/dist/feedback-record-P4JJ63KA.js +0 -260
- package/dist/feedback-record-P4JJ63KA.js.map +0 -1
- package/dist/fetch-MIVCEHXZ.js +0 -176
- package/dist/fetch-MIVCEHXZ.js.map +0 -1
- package/dist/find-VHN34MWL.js +0 -134
- package/dist/fit-SS6HSZPU.js +0 -62
- package/dist/flows-UTIIHDNE.js +0 -247
- package/dist/flows-UTIIHDNE.js.map +0 -1
- package/dist/fonts-YPNN7ZJP.js +0 -36
- package/dist/forecast-OBSHG2GJ.js +0 -118
- package/dist/forecast-OBSHG2GJ.js.map +0 -1
- package/dist/funnel-A4MXQYBA.js +0 -394
- package/dist/funnel-A4MXQYBA.js.map +0 -1
- package/dist/ga4-ZPAEF2G2.js +0 -55
- package/dist/get-MDAO6I7T.js +0 -56
- package/dist/get-MDAO6I7T.js.map +0 -1
- package/dist/get-ZB553BSH.js +0 -79
- package/dist/get-ZB553BSH.js.map +0 -1
- package/dist/google-C3X7O2UO.js +0 -136
- package/dist/google-ads-FTWL772L.js +0 -195
- package/dist/google-ads-FTWL772L.js.map +0 -1
- package/dist/gsc-SDDHGTZK.js +0 -30
- package/dist/history-WKJYKDMG.js +0 -133
- package/dist/history-WKJYKDMG.js.map +0 -1
- package/dist/hubspot-EPHVEPOO.js +0 -779
- package/dist/hubspot-EPHVEPOO.js.map +0 -1
- package/dist/icon-MYPDC6FM.js +0 -137
- package/dist/ideas-3PBH7VEX.js +0 -40
- package/dist/images-J35C3WG4.js +0 -92
- package/dist/ingest-5QOPUKFE.js +0 -107
- package/dist/ingest-5QOPUKFE.js.map +0 -1
- package/dist/ingest-OKUYP632.js +0 -23
- package/dist/inspect-PMNCP6MV.js +0 -189
- package/dist/inspect-PMNCP6MV.js.map +0 -1
- package/dist/inspiration-QAL7NS7G.js +0 -53
- package/dist/keyword-metrics-R752SJIT.js +0 -197
- package/dist/keyword-metrics-R752SJIT.js.map +0 -1
- package/dist/keywords-for-site-7UWPJYQF.js +0 -128
- package/dist/keywords-for-site-7UWPJYQF.js.map +0 -1
- package/dist/landing-CBVIOGJ5.js +0 -28
- package/dist/leads-LIJS6Y5W.js +0 -90
- package/dist/leads-LIJS6Y5W.js.map +0 -1
- package/dist/learn-N6QV7GXA.js +0 -204
- package/dist/learn-N6QV7GXA.js.map +0 -1
- package/dist/line-item-writes-3WPJXKIL.js +0 -208
- package/dist/line-item-writes-3WPJXKIL.js.map +0 -1
- package/dist/line-items-ZOFKOGAA.js +0 -103
- package/dist/link-DDRQKOUL.js +0 -64
- package/dist/link-DDRQKOUL.js.map +0 -1
- package/dist/linkedin-UWZCF66X.js +0 -1057
- package/dist/linkedin-UWZCF66X.js.map +0 -1
- package/dist/list-5PLXVPLB.js +0 -151
- package/dist/list-5PLXVPLB.js.map +0 -1
- package/dist/list-RC2NX6AX.js +0 -50
- package/dist/list-VSJISE7U.js +0 -303
- package/dist/list-VSJISE7U.js.map +0 -1
- package/dist/list-WTVOBQYX.js +0 -64
- package/dist/list-WTVOBQYX.js.map +0 -1
- package/dist/log-YKKPROLZ.js +0 -92
- package/dist/log-YKKPROLZ.js.map +0 -1
- package/dist/logo-WE2UELX6.js +0 -18
- package/dist/make-RNOWBLZQ.js +0 -1353
- package/dist/make-RNOWBLZQ.js.map +0 -1
- package/dist/map-WTDPQLVO.js +0 -433
- package/dist/map-WTDPQLVO.js.map +0 -1
- package/dist/mcp-XJNSCPP3.js +0 -714
- package/dist/mcp-XJNSCPP3.js.map +0 -1
- package/dist/media-sources-JGBDDXZ5.js +0 -32
- package/dist/media-sources-JGBDDXZ5.js.map +0 -1
- package/dist/members-O3BTMRXX.js +0 -44
- package/dist/members-O3BTMRXX.js.map +0 -1
- package/dist/normalize-R5AYLA2J.js +0 -141
- package/dist/normalize-R5AYLA2J.js.map +0 -1
- package/dist/options-AILRY7JY.js +0 -122
- package/dist/options-AILRY7JY.js.map +0 -1
- package/dist/organization-KJJXZLVK.js +0 -946
- package/dist/organization-KJJXZLVK.js.map +0 -1
- package/dist/performance-7YU4HOGH.js +0 -24
- package/dist/promoted-tweet-writes-TNELWPVG.js +0 -180
- package/dist/promoted-tweet-writes-TNELWPVG.js.map +0 -1
- package/dist/promoted-tweets-76WKUFJQ.js +0 -119
- package/dist/publish-BKLHCKHB.js +0 -341
- package/dist/publish-BKLHCKHB.js.map +0 -1
- package/dist/reddit-YK3YUZEI.js +0 -26
- package/dist/refresh-WIII7KXB.js +0 -94
- package/dist/refresh-WIII7KXB.js.map +0 -1
- package/dist/release-ZHXYQI7G.js +0 -60
- package/dist/release-ZHXYQI7G.js.map +0 -1
- package/dist/remove-NOX4BXWK.js +0 -50
- package/dist/remove-NOX4BXWK.js.map +0 -1
- package/dist/remove-VLWRCOEZ.js +0 -48
- package/dist/remove-VLWRCOEZ.js.map +0 -1
- package/dist/reopen-NLWKK5HB.js +0 -63
- package/dist/reopen-NLWKK5HB.js.map +0 -1
- package/dist/rerun-DZWQNMZQ.js +0 -90
- package/dist/rerun-DZWQNMZQ.js.map +0 -1
- package/dist/research-Q3P76RHN.js +0 -62
- package/dist/research-UDZBCDNX.js +0 -262
- package/dist/research-UDZBCDNX.js.map +0 -1
- package/dist/reset-5UHFX7QY.js +0 -54
- package/dist/reset-5UHFX7QY.js.map +0 -1
- package/dist/reset-MTRJQUP7.js +0 -54
- package/dist/reset-MTRJQUP7.js.map +0 -1
- package/dist/resolve-DA72VT7Q.js +0 -121
- package/dist/resolve-DA72VT7Q.js.map +0 -1
- package/dist/retry-LQUBX5TK.js +0 -62
- package/dist/retry-LQUBX5TK.js.map +0 -1
- package/dist/retry-U6F4CS6O.js +0 -60
- package/dist/retry-U6F4CS6O.js.map +0 -1
- package/dist/rules-VS5PZ7VO.js +0 -96
- package/dist/rules-VS5PZ7VO.js.map +0 -1
- package/dist/rules-add-LMVZYDXE.js +0 -462
- package/dist/rules-add-LMVZYDXE.js.map +0 -1
- package/dist/run-6PRA2YSD.js +0 -65
- package/dist/run-R6COFNOR.js +0 -66
- package/dist/run-R6COFNOR.js.map +0 -1
- package/dist/scaffold-ad-3OVJ7VZQ.js +0 -1511
- package/dist/scaffold-ad-3OVJ7VZQ.js.map +0 -1
- package/dist/scaffold-static-ad-DDRA3Q5I.js +0 -1005
- package/dist/scaffold-static-ad-DDRA3Q5I.js.map +0 -1
- package/dist/scaffold-video-3JZYFYFU.js +0 -883
- package/dist/scaffold-video-3JZYFYFU.js.map +0 -1
- package/dist/schedule-BRSYHMKR.js +0 -66
- package/dist/schedule-BRSYHMKR.js.map +0 -1
- package/dist/schedule-ED2YDUPY.js +0 -61
- package/dist/schedule-ED2YDUPY.js.map +0 -1
- package/dist/scheduled-agents-5P67MVGX.js +0 -50
- package/dist/schema-4XVKERSA.js +0 -132
- package/dist/schema-4XVKERSA.js.map +0 -1
- package/dist/schema-RRAQW3OS.js +0 -69
- package/dist/search-Y2UMIQ57.js +0 -174
- package/dist/search-Y2UMIQ57.js.map +0 -1
- package/dist/select-OZ4E6VLF.js +0 -101
- package/dist/select-OZ4E6VLF.js.map +0 -1
- package/dist/set-prompt-O4YAE4CE.js +0 -193
- package/dist/set-prompt-O4YAE4CE.js.map +0 -1
- package/dist/setup-links-2GJYCV2A.js +0 -141
- package/dist/setup-links-2GJYCV2A.js.map +0 -1
- package/dist/site-47B6V2UX.js +0 -177
- package/dist/site-47B6V2UX.js.map +0 -1
- package/dist/sources-DXPZAPQ7.js +0 -454
- package/dist/sources-DXPZAPQ7.js.map +0 -1
- package/dist/sources-NDXYTASG.js +0 -30
- package/dist/stale-VLVBO2L6.js +0 -71
- package/dist/stale-VLVBO2L6.js.map +0 -1
- package/dist/stats-37OFAMPW.js +0 -34
- package/dist/status-4ODD46XY.js +0 -62
- package/dist/status-4ODD46XY.js.map +0 -1
- package/dist/stock-6R5E7MJX.js +0 -179
- package/dist/studio-LEIGL3Q7.js +0 -49
- package/dist/sync-EKGEWE53.js +0 -54
- package/dist/sync-EKGEWE53.js.map +0 -1
- package/dist/sync-TKNVBUDM.js +0 -54
- package/dist/sync-TKNVBUDM.js.map +0 -1
- package/dist/sync-definition-M5R3H3TP.js +0 -64
- package/dist/tag-manager-3Q55PBEW.js +0 -43
- package/dist/tags-4N5UUUN6.js +0 -26
- package/dist/tags-5NHIAD5A.js +0 -20
- package/dist/tags-5NHIAD5A.js.map +0 -1
- package/dist/tags-UUKWSWCN.js +0 -20
- package/dist/tags-UUKWSWCN.js.map +0 -1
- package/dist/tags-VK7B5DJF.js +0 -20
- package/dist/tags-VK7B5DJF.js.map +0 -1
- package/dist/tags-XAHIB3WA.js +0 -224
- package/dist/tags-XAHIB3WA.js.map +0 -1
- package/dist/targeting-criteria-AVARWV2G.js +0 -113
- package/dist/targets-6RYLQRID.js +0 -103
- package/dist/targets-6RYLQRID.js.map +0 -1
- package/dist/testimonials-6TF6BOFN.js +0 -32
- package/dist/top-companies-45EHRCJD.js +0 -108
- package/dist/top-companies-45EHRCJD.js.map +0 -1
- package/dist/translate-VHLBACCE.js +0 -604
- package/dist/translate-VHLBACCE.js.map +0 -1
- package/dist/triggers-ERQONJNO.js +0 -142
- package/dist/triggers-ERQONJNO.js.map +0 -1
- package/dist/unlink-TPDO6JNF.js +0 -67
- package/dist/unlink-TPDO6JNF.js.map +0 -1
- package/dist/unstage-YKKQQ7LW.js +0 -85
- package/dist/unstage-YKKQQ7LW.js.map +0 -1
- package/dist/update-43WU6X7R.js +0 -63
- package/dist/update-43WU6X7R.js.map +0 -1
- package/dist/update-CAHLAXWO.js +0 -98
- package/dist/update-CAHLAXWO.js.map +0 -1
- package/dist/update-NGH6YADN.js +0 -152
- package/dist/update-NGH6YADN.js.map +0 -1
- package/dist/update-SPJIHHLE.js +0 -188
- package/dist/update-SPJIHHLE.js.map +0 -1
- package/dist/upload-ACESIZIZ.js +0 -126
- package/dist/upload-ACESIZIZ.js.map +0 -1
- package/dist/url-params-MIXEDBF7.js +0 -98
- package/dist/url-params-MIXEDBF7.js.map +0 -1
- package/dist/validate-XJJA7ULE.js +0 -117
- package/dist/validate-XJJA7ULE.js.map +0 -1
- package/dist/videos-LBXPG7WC.js +0 -39
- package/dist/viewer-check-7VJ3GUZX.js +0 -80
- package/dist/web-EWQJC2SD.js +0 -140
- package/dist/web-EWQJC2SD.js.map +0 -1
- package/dist/winning-ads-SAOJAKEQ.js +0 -86
- package/dist/write-commands-QPDE4GWW.js +0 -1024
- package/dist/write-commands-QPDE4GWW.js.map +0 -1
- package/dist/x-LXOJPCRF.js +0 -47
- /package/dist/{actions-QL5UD2W4.js.map → actions-FMNJSOBA.js.map} +0 -0
- /package/dist/{ads-DHPJFU52.js.map → ads-OLXSDPD6.js.map} +0 -0
- /package/dist/{avatars-FKOO6VZ2.js.map → avatars-I4H3NMEJ.js.map} +0 -0
- /package/dist/{brand-NNWHBIAX.js.map → brand-3V7ECY7D.js.map} +0 -0
- /package/dist/{campaigns-HLBZRH5A.js.map → campaigns-MCB76NPQ.js.map} +0 -0
- /package/dist/{canvas-D64GLWUO.js.map → canvas-JCNKMGCG.js.map} +0 -0
- /package/dist/{chatgpt-YI6YNACI.js.map → chatgpt-XFZ42NXC.js.map} +0 -0
- /package/dist/{chunk-VB3XUR6A.js.map → chunk-2YTBPRRG.js.map} +0 -0
- /package/dist/{chunk-JUVVCA7B.js.map → chunk-3SNCMEJB.js.map} +0 -0
- /package/dist/{chunk-RGMKXNQP.js.map → chunk-7QGFO35A.js.map} +0 -0
- /package/dist/{chunk-ZXCSOVS5.js.map → chunk-AV7ALENU.js.map} +0 -0
- /package/dist/{chunk-IYTPWAN3.js.map → chunk-BRLFQ4VX.js.map} +0 -0
- /package/dist/{chunk-RZTKCCUL.js.map → chunk-DJE7UXYT.js.map} +0 -0
- /package/dist/{chunk-EW3JEKIV.js.map → chunk-EFWXYUSK.js.map} +0 -0
- /package/dist/{chunk-J3CWAERS.js.map → chunk-EONSZAZB.js.map} +0 -0
- /package/dist/{chunk-PHCIFBP3.js.map → chunk-FG3MV2XM.js.map} +0 -0
- /package/dist/{chunk-3AMLOCXY.js.map → chunk-FKG476GH.js.map} +0 -0
- /package/dist/{chunk-IFXGCI33.js.map → chunk-FUGQSIYG.js.map} +0 -0
- /package/dist/{chunk-Q3LXLWZY.js.map → chunk-HPLHAHG5.js.map} +0 -0
- /package/dist/{chunk-3N5A44NQ.js.map → chunk-I24YT2KG.js.map} +0 -0
- /package/dist/{chunk-P2MFWJR3.js.map → chunk-IFDZZOUC.js.map} +0 -0
- /package/dist/{chunk-Q5WBTVA7.js.map → chunk-JVVUI55M.js.map} +0 -0
- /package/dist/{chunk-6QGS3RQP.js.map → chunk-KKSHEPBY.js.map} +0 -0
- /package/dist/{chunk-OE3MIV4F.js.map → chunk-KQ7RCLGC.js.map} +0 -0
- /package/dist/{chunk-ZDAVSTEE.js.map → chunk-L7WMS5PW.js.map} +0 -0
- /package/dist/{chunk-FBFWMTOP.js.map → chunk-LBRO4MTL.js.map} +0 -0
- /package/dist/{chunk-PTUXBO5O.js.map → chunk-LNRPOULW.js.map} +0 -0
- /package/dist/{chunk-EMQUW6JB.js.map → chunk-LX6WC2XZ.js.map} +0 -0
- /package/dist/{chunk-I7J7YQXZ.js.map → chunk-MMGTJBM6.js.map} +0 -0
- /package/dist/{chunk-2KRK667G.js.map → chunk-OEZYSL3U.js.map} +0 -0
- /package/dist/{chunk-2TVXJPGR.js.map → chunk-OOVHBMQB.js.map} +0 -0
- /package/dist/{chunk-Z2GQREJY.js.map → chunk-PTH7VWKK.js.map} +0 -0
- /package/dist/{chunk-N3I6ZXR7.js.map → chunk-QZF4BVKL.js.map} +0 -0
- /package/dist/{chunk-3WAYZQNV.js.map → chunk-RITUSBYO.js.map} +0 -0
- /package/dist/{chunk-JH2L5CQD.js.map → chunk-SSTL3A7Z.js.map} +0 -0
- /package/dist/{chunk-2B772ZEA.js.map → chunk-TD4SO6TR.js.map} +0 -0
- /package/dist/{chunk-IKLHXGMF.js.map → chunk-UZ4RTOFG.js.map} +0 -0
- /package/dist/{chunk-NBO2NSAW.js.map → chunk-VAX7PFQV.js.map} +0 -0
- /package/dist/{chunk-AFD32O4A.js.map → chunk-VDRSZK4P.js.map} +0 -0
- /package/dist/{chunk-NKIBXOHT.js.map → chunk-VNU2EYD4.js.map} +0 -0
- /package/dist/{chunk-TTKBNBQF.js.map → chunk-WT4WDIXA.js.map} +0 -0
- /package/dist/{chunk-5A257KJA.js.map → chunk-XEX23CIB.js.map} +0 -0
- /package/dist/{chunk-GXGYTFZA.js.map → chunk-XXDF25BW.js.map} +0 -0
- /package/dist/{chunk-NEU5QD2C.js.map → chunk-YJ3LSFMX.js.map} +0 -0
- /package/dist/{chunk-MK6XJUCQ.js.map → chunk-YVK5RT3B.js.map} +0 -0
- /package/dist/{chunk-AW2GKIGS.js.map → chunk-YWWRLZUR.js.map} +0 -0
- /package/dist/{chunk-XCKINS7K.js.map → chunk-Z4S5BCVZ.js.map} +0 -0
- /package/dist/{chunk-IBY44U2M.js.map → chunk-ZYGK7GAK.js.map} +0 -0
- /package/dist/{connect-5PGL7ZOM.js.map → connect-COS6G45S.js.map} +0 -0
- /package/dist/{creatives-OO76DAFS.js.map → creatives-SEQHJD2M.js.map} +0 -0
- /package/dist/{customers-2EFYSCU2.js.map → customers-LMSX33FO.js.map} +0 -0
- /package/dist/{experiment-IDDWRCJ7.js.map → experiment-7RJ5X2LL.js.map} +0 -0
- /package/dist/{find-VHN34MWL.js.map → find-2EPXK5RF.js.map} +0 -0
- /package/dist/{fit-SS6HSZPU.js.map → fit-W7UNFZT5.js.map} +0 -0
- /package/dist/{fonts-YPNN7ZJP.js.map → fonts-N42UYWTX.js.map} +0 -0
- /package/dist/{ga4-ZPAEF2G2.js.map → ga4-6EIQC2TG.js.map} +0 -0
- /package/dist/{google-C3X7O2UO.js.map → google-O5OI6QFU.js.map} +0 -0
- /package/dist/{gsc-SDDHGTZK.js.map → gsc-BM3T2GDL.js.map} +0 -0
- /package/dist/{icon-MYPDC6FM.js.map → icon-B7DG53S5.js.map} +0 -0
- /package/dist/{ideas-3PBH7VEX.js.map → ideas-DYN2DMFN.js.map} +0 -0
- /package/dist/{images-J35C3WG4.js.map → images-EQCUXEHF.js.map} +0 -0
- /package/dist/{ingest-OKUYP632.js.map → ingest-B46AY3QU.js.map} +0 -0
- /package/dist/{inspiration-QAL7NS7G.js.map → inspiration-TCCKM4R7.js.map} +0 -0
- /package/dist/{landing-CBVIOGJ5.js.map → landing-WVPA7NBR.js.map} +0 -0
- /package/dist/{line-items-ZOFKOGAA.js.map → line-items-OEWYOPFP.js.map} +0 -0
- /package/dist/{list-RC2NX6AX.js.map → list-WRBWQASJ.js.map} +0 -0
- /package/dist/{logo-WE2UELX6.js.map → logo-QTSBKP2J.js.map} +0 -0
- /package/dist/{performance-7YU4HOGH.js.map → performance-HTU5FR2K.js.map} +0 -0
- /package/dist/{promoted-tweets-76WKUFJQ.js.map → promoted-tweets-TTWN5OMW.js.map} +0 -0
- /package/dist/{reddit-YK3YUZEI.js.map → reddit-6C3PT5CT.js.map} +0 -0
- /package/dist/{research-Q3P76RHN.js.map → research-YCMMQVK6.js.map} +0 -0
- /package/dist/{run-6PRA2YSD.js.map → run-SR7DJ7M5.js.map} +0 -0
- /package/dist/{scheduled-agents-5P67MVGX.js.map → scheduled-agents-N63EZNY6.js.map} +0 -0
- /package/dist/{schema-RRAQW3OS.js.map → schema-C6SGBNA6.js.map} +0 -0
- /package/dist/{sources-NDXYTASG.js.map → sources-HN3GCEDX.js.map} +0 -0
- /package/dist/{stats-37OFAMPW.js.map → stats-CVF6AC7R.js.map} +0 -0
- /package/dist/{stock-6R5E7MJX.js.map → stock-4LPQ6SM7.js.map} +0 -0
- /package/dist/{studio-LEIGL3Q7.js.map → studio-NZ6WQ7OE.js.map} +0 -0
- /package/dist/{sync-definition-M5R3H3TP.js.map → sync-definition-CKEUYKWN.js.map} +0 -0
- /package/dist/{tag-manager-3Q55PBEW.js.map → tag-manager-FLXXLNKP.js.map} +0 -0
- /package/dist/{tags-4N5UUUN6.js.map → tags-EUOOSAKN.js.map} +0 -0
- /package/dist/{targeting-criteria-AVARWV2G.js.map → targeting-criteria-HE7K52WN.js.map} +0 -0
- /package/dist/{testimonials-6TF6BOFN.js.map → testimonials-3Q5XM7JD.js.map} +0 -0
- /package/dist/{videos-LBXPG7WC.js.map → videos-WAPUPJVT.js.map} +0 -0
- /package/dist/{viewer-check-7VJ3GUZX.js.map → viewer-check-GHQA3UY2.js.map} +0 -0
- /package/dist/{winning-ads-SAOJAKEQ.js.map → winning-ads-XCVUAIOU.js.map} +0 -0
- /package/dist/{x-LXOJPCRF.js.map → x-SI4KYDEY.js.map} +0 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import {
|
|
2
|
+
runVideoIngest
|
|
3
|
+
} from "./chunk-KKSHEPBY.js";
|
|
4
|
+
import "./chunk-FKOECEVC.js";
|
|
5
|
+
import {
|
|
6
|
+
detectVideoContentType,
|
|
7
|
+
uploadLocalVideo
|
|
8
|
+
} from "./chunk-QNJVRI3E.js";
|
|
9
|
+
import "./chunk-VI5YQQ63.js";
|
|
10
|
+
import "./chunk-O37VU7FG.js";
|
|
11
|
+
import "./chunk-CAZGM2NX.js";
|
|
12
|
+
import "./chunk-NZS3KEQ2.js";
|
|
13
|
+
import "./chunk-GIWHHCD6.js";
|
|
14
|
+
import "./chunk-XQIOCIDO.js";
|
|
15
|
+
import "./chunk-WTJSMYY2.js";
|
|
16
|
+
import {
|
|
17
|
+
ApiError
|
|
18
|
+
} from "./chunk-6YLNY6CK.js";
|
|
19
|
+
import "./chunk-D5NEIESR.js";
|
|
20
|
+
import "./chunk-57KKVDDR.js";
|
|
21
|
+
import {
|
|
22
|
+
registerSchema,
|
|
23
|
+
writeJson
|
|
24
|
+
} from "./chunk-QANGHND7.js";
|
|
25
|
+
import "./chunk-YQSBHWOI.js";
|
|
26
|
+
|
|
27
|
+
// src/commands/videos/upload.ts
|
|
28
|
+
import { stat } from "fs/promises";
|
|
29
|
+
import { basename } from "path";
|
|
30
|
+
import { defineCommand } from "citty";
|
|
31
|
+
registerSchema({
|
|
32
|
+
command: "videos.upload",
|
|
33
|
+
description: "Upload a video to Baker \u2014 a local file (via Mux direct upload) or a remote http(s) URL.",
|
|
34
|
+
args: {
|
|
35
|
+
file: { type: "string", description: "Local video file path, or a remote http(s) URL", required: true },
|
|
36
|
+
"content-type": {
|
|
37
|
+
type: "string",
|
|
38
|
+
description: "MIME type (auto-detected from extension if omitted)",
|
|
39
|
+
required: false
|
|
40
|
+
},
|
|
41
|
+
context: {
|
|
42
|
+
type: "string",
|
|
43
|
+
description: "What this clip is and what it is for. Feeds the analysis, so it is the single highest-leverage flag here. Example: --context 'Customer testimonial from Maria, shot on her phone for the Q3 retargeting push'",
|
|
44
|
+
required: false
|
|
45
|
+
},
|
|
46
|
+
"dry-run": {
|
|
47
|
+
type: "boolean",
|
|
48
|
+
description: "Preview the operation without executing",
|
|
49
|
+
required: false,
|
|
50
|
+
default: false
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
function isRemoteUrl(value) {
|
|
55
|
+
return /^https?:\/\//i.test(value);
|
|
56
|
+
}
|
|
57
|
+
var uploadCommand = defineCommand({
|
|
58
|
+
meta: {
|
|
59
|
+
name: "upload",
|
|
60
|
+
description: "Upload a video to Baker \u2014 accepts a local file path OR a remote http(s) URL.\n\nLocal: auto-detects content type and uploads via Mux direct upload.\nRemote: hands off to `videos ingest` (direct fetch, or download-then-upload for a YouTube/TikTok/Vimeo page).\n\nExamples:\n baker videos upload ./demo.mp4\n baker videos upload https://www.youtube.com/watch?v=abc123"
|
|
61
|
+
},
|
|
62
|
+
args: {
|
|
63
|
+
file: { type: "positional", description: "Local video file path or remote http(s) URL", required: false },
|
|
64
|
+
"content-type": { type: "string", description: "MIME type (local only \u2014 auto-detected)", required: false },
|
|
65
|
+
context: {
|
|
66
|
+
type: "string",
|
|
67
|
+
description: "What this clip is and what it is for \u2014 who is on camera, which campaign, how it was shot. Start here: the analysis reads it, so it is what makes the clip findable later.",
|
|
68
|
+
required: false
|
|
69
|
+
},
|
|
70
|
+
source: { type: "string", description: "Provenance (URL mode only): url | youtube", required: false },
|
|
71
|
+
"external-id": { type: "string", description: "Provider asset id (URL mode only)", required: false },
|
|
72
|
+
"external-url": { type: "string", description: "Canonical page URL (URL mode only)", required: false },
|
|
73
|
+
"dry-run": { type: "boolean", description: "Preview without executing", required: false, default: false }
|
|
74
|
+
},
|
|
75
|
+
run: async ({ args }) => {
|
|
76
|
+
try {
|
|
77
|
+
const filePath = args.file;
|
|
78
|
+
if (!filePath) {
|
|
79
|
+
writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message: "File path or URL is required" } });
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
if (isRemoteUrl(filePath)) {
|
|
83
|
+
await runVideoIngest({
|
|
84
|
+
url: filePath,
|
|
85
|
+
source: args.source,
|
|
86
|
+
externalId: args["external-id"],
|
|
87
|
+
externalUrl: args["external-url"],
|
|
88
|
+
context: args.context,
|
|
89
|
+
dryRun: args["dry-run"] === true
|
|
90
|
+
});
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const contentType = args["content-type"] || detectVideoContentType(filePath);
|
|
94
|
+
const descriptionContext = args.context;
|
|
95
|
+
if (args["dry-run"]) {
|
|
96
|
+
const fileStats = await stat(filePath);
|
|
97
|
+
const originalFilename = basename(filePath);
|
|
98
|
+
writeJson({
|
|
99
|
+
ok: true,
|
|
100
|
+
dryRun: true,
|
|
101
|
+
operation: "videos.upload",
|
|
102
|
+
params: { file: filePath, contentType, sizeBytes: fileStats.size, originalFilename, descriptionContext }
|
|
103
|
+
});
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const { videoId } = await uploadLocalVideo({ file: filePath, contentType, descriptionContext });
|
|
107
|
+
writeJson({
|
|
108
|
+
ok: true,
|
|
109
|
+
data: { videoId },
|
|
110
|
+
hints: descriptionContext ? void 0 : [
|
|
111
|
+
"No --context given. Analysis runs on the frames and audio alone, so who is on camera and which campaign this belongs to will be guessed. Pass --context next time."
|
|
112
|
+
]
|
|
113
|
+
});
|
|
114
|
+
} catch (err) {
|
|
115
|
+
if (err instanceof ApiError) {
|
|
116
|
+
writeJson({ ok: false, error: { code: err.code, message: err.message } });
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: "Unexpected error" } });
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
export {
|
|
125
|
+
uploadCommand
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=upload-XJ7TUVIK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/videos/upload.ts"],"sourcesContent":["import { stat } from \"node:fs/promises\";\nimport { basename } from \"node:path\";\nimport { defineCommand } from \"citty\";\nimport { ApiError } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { detectVideoContentType, uploadLocalVideo } from \"./api.ts\";\nimport { runVideoIngest } from \"./ingest.ts\";\n\nregisterSchema({\n command: \"videos.upload\",\n description: \"Upload a video to Baker — a local file (via Mux direct upload) or a remote http(s) URL.\",\n args: {\n file: { type: \"string\", description: \"Local video file path, or a remote http(s) URL\", required: true },\n \"content-type\": {\n type: \"string\",\n description: \"MIME type (auto-detected from extension if omitted)\",\n required: false,\n },\n context: {\n type: \"string\",\n description:\n \"What this clip is and what it is for. Feeds the analysis, so it is the single highest-leverage flag here. Example: --context 'Customer testimonial from Maria, shot on her phone for the Q3 retargeting push'\",\n required: false,\n },\n \"dry-run\": {\n type: \"boolean\",\n description: \"Preview the operation without executing\",\n required: false,\n default: false,\n },\n },\n});\n\nfunction isRemoteUrl(value: string): boolean {\n return /^https?:\\/\\//i.test(value);\n}\n\nexport const uploadCommand = defineCommand({\n meta: {\n name: \"upload\",\n description:\n \"Upload a video to Baker — accepts a local file path OR a remote http(s) URL.\\n\\nLocal: auto-detects content type and uploads via Mux direct upload.\\nRemote: hands off to `videos ingest` (direct fetch, or download-then-upload for a YouTube/TikTok/Vimeo page).\\n\\nExamples:\\n baker videos upload ./demo.mp4\\n baker videos upload https://www.youtube.com/watch?v=abc123\",\n },\n args: {\n file: { type: \"positional\", description: \"Local video file path or remote http(s) URL\", required: false },\n \"content-type\": { type: \"string\", description: \"MIME type (local only — auto-detected)\", required: false },\n context: {\n type: \"string\",\n description:\n \"What this clip is and what it is for — who is on camera, which campaign, how it was shot. Start here: the analysis reads it, so it is what makes the clip findable later.\",\n required: false,\n },\n source: { type: \"string\", description: \"Provenance (URL mode only): url | youtube\", required: false },\n \"external-id\": { type: \"string\", description: \"Provider asset id (URL mode only)\", required: false },\n \"external-url\": { type: \"string\", description: \"Canonical page URL (URL mode only)\", required: false },\n \"dry-run\": { type: \"boolean\", description: \"Preview without executing\", required: false, default: false },\n },\n run: async ({ args }) => {\n try {\n const filePath = args.file as string | undefined;\n if (!filePath) {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: \"File path or URL is required\" } });\n process.exit(1);\n }\n\n // A URL is the ingest command's job — same routing `images upload` does, so\n // one verb covers both and a pasted link never fails with ENOENT.\n if (isRemoteUrl(filePath)) {\n // Every option this verb shares with `ingest` is forwarded. `--context`\n // in particular: both commands call it the highest-leverage flag, and\n // dropping it here meant a pasted link was analysed with strictly less\n // to go on than the same file uploaded by hand — silently, since no\n // error fired and the \"no context given\" hint did not either.\n await runVideoIngest({\n url: filePath,\n source: args.source as string | undefined,\n externalId: args[\"external-id\"] as string | undefined,\n externalUrl: args[\"external-url\"] as string | undefined,\n context: args.context as string | undefined,\n dryRun: args[\"dry-run\"] === true,\n });\n return;\n }\n\n const contentType = (args[\"content-type\"] as string | undefined) || detectVideoContentType(filePath);\n const descriptionContext = args.context as string | undefined;\n\n if (args[\"dry-run\"]) {\n const fileStats = await stat(filePath);\n const originalFilename = basename(filePath);\n writeJson({\n ok: true,\n dryRun: true,\n operation: \"videos.upload\",\n params: { file: filePath, contentType, sizeBytes: fileStats.size, originalFilename, descriptionContext },\n });\n return;\n }\n\n const { videoId } = await uploadLocalVideo({ file: filePath, contentType, descriptionContext });\n\n writeJson({\n ok: true,\n data: { videoId },\n hints: descriptionContext\n ? undefined\n : [\n \"No --context given. Analysis runs on the frames and audio alone, so who is on camera and which campaign this belongs to will be guessed. Pass --context next time.\",\n ],\n });\n } catch (err) {\n if (err instanceof ApiError) {\n writeJson({ ok: false, error: { code: err.code, message: err.message } });\n process.exit(1);\n }\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAO9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aAAa;AAAA,EACb,MAAM;AAAA,IACJ,MAAM,EAAE,MAAM,UAAU,aAAa,kDAAkD,UAAU,KAAK;AAAA,IACtG,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AAAA,EACF;AACF,CAAC;AAED,SAAS,YAAY,OAAwB;AAC3C,SAAO,gBAAgB,KAAK,KAAK;AACnC;AAEO,IAAM,gBAAgB,cAAc;AAAA,EACzC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,MAAM,EAAE,MAAM,cAAc,aAAa,+CAA+C,UAAU,MAAM;AAAA,IACxG,gBAAgB,EAAE,MAAM,UAAU,aAAa,+CAA0C,UAAU,MAAM;AAAA,IACzG,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ,EAAE,MAAM,UAAU,aAAa,6CAA6C,UAAU,MAAM;AAAA,IACpG,eAAe,EAAE,MAAM,UAAU,aAAa,qCAAqC,UAAU,MAAM;AAAA,IACnG,gBAAgB,EAAE,MAAM,UAAU,aAAa,sCAAsC,UAAU,MAAM;AAAA,IACrG,WAAW,EAAE,MAAM,WAAW,aAAa,6BAA6B,UAAU,OAAO,SAAS,MAAM;AAAA,EAC1G;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,WAAW,KAAK;AACtB,UAAI,CAAC,UAAU;AACb,kBAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,oBAAoB,SAAS,+BAA+B,EAAE,CAAC;AACrG,gBAAQ,KAAK,CAAC;AAAA,MAChB;AAIA,UAAI,YAAY,QAAQ,GAAG;AAMzB,cAAM,eAAe;AAAA,UACnB,KAAK;AAAA,UACL,QAAQ,KAAK;AAAA,UACb,YAAY,KAAK,aAAa;AAAA,UAC9B,aAAa,KAAK,cAAc;AAAA,UAChC,SAAS,KAAK;AAAA,UACd,QAAQ,KAAK,SAAS,MAAM;AAAA,QAC9B,CAAC;AACD;AAAA,MACF;AAEA,YAAM,cAAe,KAAK,cAAc,KAA4B,uBAAuB,QAAQ;AACnG,YAAM,qBAAqB,KAAK;AAEhC,UAAI,KAAK,SAAS,GAAG;AACnB,cAAM,YAAY,MAAM,KAAK,QAAQ;AACrC,cAAM,mBAAmB,SAAS,QAAQ;AAC1C,kBAAU;AAAA,UACR,IAAI;AAAA,UACJ,QAAQ;AAAA,UACR,WAAW;AAAA,UACX,QAAQ,EAAE,MAAM,UAAU,aAAa,WAAW,UAAU,MAAM,kBAAkB,mBAAmB;AAAA,QACzG,CAAC;AACD;AAAA,MACF;AAEA,YAAM,EAAE,QAAQ,IAAI,MAAM,iBAAiB,EAAE,MAAM,UAAU,aAAa,mBAAmB,CAAC;AAE9F,gBAAU;AAAA,QACR,IAAI;AAAA,QACJ,MAAM,EAAE,QAAQ;AAAA,QAChB,OAAO,qBACH,SACA;AAAA,UACE;AAAA,QACF;AAAA,MACN,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,UAAI,eAAe,UAAU;AAC3B,kBAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,IAAI,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;AACxE,gBAAQ,KAAK,CAAC;AAAA,MAChB;AACA,gBAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,SAAS,mBAAmB,EAAE,CAAC;AACvF,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF,CAAC;","names":[]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import {
|
|
2
|
+
handleLinkedinError,
|
|
3
|
+
resolveAccountIdArg
|
|
4
|
+
} from "./chunk-2YTBPRRG.js";
|
|
5
|
+
import {
|
|
6
|
+
writeAdsJson
|
|
7
|
+
} from "./chunk-2VIZ4UUZ.js";
|
|
8
|
+
import {
|
|
9
|
+
LINKEDIN_TRACKING_PARAMS_AD_SET_MAX
|
|
10
|
+
} from "./chunk-O37VU7FG.js";
|
|
11
|
+
import "./chunk-CAZGM2NX.js";
|
|
12
|
+
import "./chunk-NZS3KEQ2.js";
|
|
13
|
+
import "./chunk-GIWHHCD6.js";
|
|
14
|
+
import "./chunk-XQIOCIDO.js";
|
|
15
|
+
import "./chunk-WTJSMYY2.js";
|
|
16
|
+
import {
|
|
17
|
+
apiGet
|
|
18
|
+
} from "./chunk-6YLNY6CK.js";
|
|
19
|
+
import "./chunk-D5NEIESR.js";
|
|
20
|
+
import "./chunk-57KKVDDR.js";
|
|
21
|
+
import "./chunk-QANGHND7.js";
|
|
22
|
+
import "./chunk-YQSBHWOI.js";
|
|
23
|
+
|
|
24
|
+
// src/commands/ads/linkedin/url-params.ts
|
|
25
|
+
import { defineCommand } from "citty";
|
|
26
|
+
var urlParamsCommand = defineCommand({
|
|
27
|
+
meta: {
|
|
28
|
+
name: "url-params",
|
|
29
|
+
description: `Read the URL tracking parameters in effect \u2014 the ad account's, optionally every ad set's, and the keys set at BOTH (which LinkedIn appends twice).
|
|
30
|
+
|
|
31
|
+
Start here before setting UTMs on an ad set: whatever the account already carries is appended on top of it.
|
|
32
|
+
|
|
33
|
+
Examples:
|
|
34
|
+
baker ads linkedin url-params \u2014 the ad account's parameters
|
|
35
|
+
baker ads linkedin url-params --ad-sets \u2014 plus every ad set's, and the collisions
|
|
36
|
+
baker ads linkedin url-params --campaign-ids 123456,789012 \u2014 plus just those ad sets'
|
|
37
|
+
baker ads linkedin url-params --ad-sets --collisions-only \u2014 just what would land twice`
|
|
38
|
+
},
|
|
39
|
+
args: {
|
|
40
|
+
"account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
|
|
41
|
+
"account-urn": { type: "string", description: "Alias for --account-id" },
|
|
42
|
+
"ad-sets": {
|
|
43
|
+
type: "boolean",
|
|
44
|
+
description: `Also read every ad set's parameters (one call each, first ${LINKEDIN_TRACKING_PARAMS_AD_SET_MAX})`
|
|
45
|
+
},
|
|
46
|
+
"campaign-ids": { type: "string", description: "Comma-separated ad set ids to read instead of all of them" },
|
|
47
|
+
"collisions-only": { type: "boolean", description: "Report only the keys set at more than one level" }
|
|
48
|
+
},
|
|
49
|
+
run: async ({ args }) => {
|
|
50
|
+
const accountId = resolveAccountIdArg(args);
|
|
51
|
+
try {
|
|
52
|
+
const params = { "account-id": accountId };
|
|
53
|
+
if (args["campaign-ids"]) params["campaign-ids"] = String(args["campaign-ids"]);
|
|
54
|
+
if (args["ad-sets"]) params["all-ad-sets"] = "true";
|
|
55
|
+
const data = await apiGet("/api/ads/linkedin/url-params", params);
|
|
56
|
+
const examinedAdSets = Boolean(args["ad-sets"] || args["campaign-ids"]);
|
|
57
|
+
const notes = hints(data, examinedAdSets);
|
|
58
|
+
writeAdsJson({
|
|
59
|
+
ok: true,
|
|
60
|
+
data: args["collisions-only"] ? { collisions: data.collisions, adSetCoverage: data.adSetCoverage } : data,
|
|
61
|
+
...notes.length > 0 ? { hints: notes } : {}
|
|
62
|
+
});
|
|
63
|
+
} catch (err) {
|
|
64
|
+
handleLinkedinError(err);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
function hints(data, examinedAdSets) {
|
|
69
|
+
const out = [];
|
|
70
|
+
if (data.unreadable.length > 0) {
|
|
71
|
+
out.push(
|
|
72
|
+
`could NOT read ${data.unreadable.map((entry) => entry.level === "account" ? "the ad account" : `ad set ${entry.id}`).join(", ")} \u2014 treat that as unknown, not as empty. Do not stage url-params against it: either it does not exist, or it holds parameters this write would replace unseen. First reason: ${data.unreadable[0]?.reason ?? "unknown"}`
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
if (data.collisions.length > 0) {
|
|
76
|
+
out.push(
|
|
77
|
+
`${data.collisions.map((c) => c.key).join(", ")} set at BOTH the account and an ad set \u2014 LinkedIn appends both, so each lands twice in the served URL. Clear it at one level with \`account url-params\` or \`campaigns url-params --clear\`.`
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
if (data.adSetCoverage?.capped) {
|
|
81
|
+
out.push(
|
|
82
|
+
`only ${data.adSetCoverage.examined} of ${data.adSetCoverage.total} ad sets were read \u2014 the collisions above cover those, not the rest. Narrow with --campaign-ids to check the others.`
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
if (!examinedAdSets) {
|
|
86
|
+
out.push("only the ad account was read \u2014 pass --ad-sets to find keys an ad set sets on top of these");
|
|
87
|
+
}
|
|
88
|
+
const allAnswered = data.unreadable.length === 0;
|
|
89
|
+
const nothingSet = data.account.state === "not_set" && data.adSets.every((adSet) => adSet.state === "not_set");
|
|
90
|
+
if (allAnswered && nothingSet) {
|
|
91
|
+
out.push("nothing is tagged \u2014 set the constants once with `baker ads linkedin account url-params`");
|
|
92
|
+
}
|
|
93
|
+
return out;
|
|
94
|
+
}
|
|
95
|
+
export {
|
|
96
|
+
hints,
|
|
97
|
+
urlParamsCommand
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=url-params-KLQOLNPS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/ads/linkedin/url-params.ts"],"sourcesContent":["import { LINKEDIN_TRACKING_PARAMS_AD_SET_MAX, type LinkedinTrackingParametersResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiGet } from \"../../../client.ts\";\nimport { writeAdsJson } from \"../output.ts\";\nimport { handleLinkedinError, resolveAccountIdArg } from \"./shared.ts\";\n\n/**\n * Reads what is set today, at both levels. Its reason to exist is the one thing\n * the write commands cannot tell you: LinkedIn CONCATENATES the ad account's\n * tracking parameters with each ad set's, so a key set at both lands in the\n * served URL twice — and nothing surfaces that until a report comes back split\n * across two values of the same parameter.\n *\n * Account-only by default: there is no batch read for `adTrackingParameters`,\n * so every ad set costs its own call against the same rate limit the staged\n * writes use. `--ad-sets` opts into the sweep.\n */\nexport const urlParamsCommand = defineCommand({\n meta: {\n name: \"url-params\",\n description: `Read the URL tracking parameters in effect — the ad account's, optionally every ad set's, and the keys set at BOTH (which LinkedIn appends twice).\n\nStart here before setting UTMs on an ad set: whatever the account already carries is appended on top of it.\n\nExamples:\n baker ads linkedin url-params — the ad account's parameters\n baker ads linkedin url-params --ad-sets — plus every ad set's, and the collisions\n baker ads linkedin url-params --campaign-ids 123456,789012 — plus just those ad sets'\n baker ads linkedin url-params --ad-sets --collisions-only — just what would land twice`,\n },\n args: {\n \"account-id\": { type: \"string\", description: \"Numeric account ID or urn:li:sponsoredAccount:N\" },\n \"account-urn\": { type: \"string\", description: \"Alias for --account-id\" },\n \"ad-sets\": {\n type: \"boolean\",\n description: `Also read every ad set's parameters (one call each, first ${LINKEDIN_TRACKING_PARAMS_AD_SET_MAX})`,\n },\n \"campaign-ids\": { type: \"string\", description: \"Comma-separated ad set ids to read instead of all of them\" },\n \"collisions-only\": { type: \"boolean\", description: \"Report only the keys set at more than one level\" },\n },\n run: async ({ args }) => {\n const accountId = resolveAccountIdArg(args);\n try {\n const params: Record<string, string> = { \"account-id\": accountId };\n if (args[\"campaign-ids\"]) params[\"campaign-ids\"] = String(args[\"campaign-ids\"]);\n if (args[\"ad-sets\"]) params[\"all-ad-sets\"] = \"true\";\n const data = await apiGet<LinkedinTrackingParametersResponse>(\"/api/ads/linkedin/url-params\", params);\n const examinedAdSets = Boolean(args[\"ad-sets\"] || args[\"campaign-ids\"]);\n const notes = hints(data, examinedAdSets);\n writeAdsJson({\n ok: true,\n data: args[\"collisions-only\"] ? { collisions: data.collisions, adSetCoverage: data.adSetCoverage } : data,\n ...(notes.length > 0 ? { hints: notes } : {}),\n });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\n/**\n * A partial sweep reporting no collisions is the failure this guards: it reads\n * identically to a clean account, so say which of the two it is.\n */\nexport function hints(data: LinkedinTrackingParametersResponse, examinedAdSets: boolean): string[] {\n const out: string[] = [];\n // First, and before anything that could be read as a fact about the account:\n // a level that could not be read carries no information, and every other\n // line below would otherwise describe it as empty. The wording covers both\n // reasons a level lands here — the read failed, or the id names nothing —\n // because the conclusion is the same and only one of them is knowable here.\n if (data.unreadable.length > 0) {\n out.push(\n `could NOT read ${data.unreadable.map((entry) => (entry.level === \"account\" ? \"the ad account\" : `ad set ${entry.id}`)).join(\", \")} — treat that as unknown, not as empty. Do not stage url-params against it: either it does not exist, or it holds parameters this write would replace unseen. First reason: ${data.unreadable[0]?.reason ?? \"unknown\"}`,\n );\n }\n if (data.collisions.length > 0) {\n out.push(\n `${data.collisions.map((c) => c.key).join(\", \")} set at BOTH the account and an ad set — LinkedIn appends both, so each lands twice in the served URL. Clear it at one level with \\`account url-params\\` or \\`campaigns url-params --clear\\`.`,\n );\n }\n if (data.adSetCoverage?.capped) {\n out.push(\n `only ${data.adSetCoverage.examined} of ${data.adSetCoverage.total} ad sets were read — the collisions above cover those, not the rest. Narrow with --campaign-ids to check the others.`,\n );\n }\n if (!examinedAdSets) {\n out.push(\"only the ad account was read — pass --ad-sets to find keys an ad set sets on top of these\");\n }\n // \"Nothing is tagged\" is a claim about the account, so it may only be made\n // when every level examined actually answered.\n const allAnswered = data.unreadable.length === 0;\n const nothingSet = data.account.state === \"not_set\" && data.adSets.every((adSet) => adSet.state === \"not_set\");\n if (allAnswered && nothingSet) {\n out.push(\"nothing is tagged — set the constants once with `baker ads linkedin account url-params`\");\n }\n return out;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAgBvB,IAAM,mBAAmB,cAAc;AAAA,EAC5C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASf;AAAA,EACA,MAAM;AAAA,IACJ,cAAc,EAAE,MAAM,UAAU,aAAa,kDAAkD;AAAA,IAC/F,eAAe,EAAE,MAAM,UAAU,aAAa,yBAAyB;AAAA,IACvE,WAAW;AAAA,MACT,MAAM;AAAA,MACN,aAAa,6DAA6D,mCAAmC;AAAA,IAC/G;AAAA,IACA,gBAAgB,EAAE,MAAM,UAAU,aAAa,4DAA4D;AAAA,IAC3G,mBAAmB,EAAE,MAAM,WAAW,aAAa,kDAAkD;AAAA,EACvG;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,YAAY,oBAAoB,IAAI;AAC1C,QAAI;AACF,YAAM,SAAiC,EAAE,cAAc,UAAU;AACjE,UAAI,KAAK,cAAc,EAAG,QAAO,cAAc,IAAI,OAAO,KAAK,cAAc,CAAC;AAC9E,UAAI,KAAK,SAAS,EAAG,QAAO,aAAa,IAAI;AAC7C,YAAM,OAAO,MAAM,OAA2C,gCAAgC,MAAM;AACpG,YAAM,iBAAiB,QAAQ,KAAK,SAAS,KAAK,KAAK,cAAc,CAAC;AACtE,YAAM,QAAQ,MAAM,MAAM,cAAc;AACxC,mBAAa;AAAA,QACX,IAAI;AAAA,QACJ,MAAM,KAAK,iBAAiB,IAAI,EAAE,YAAY,KAAK,YAAY,eAAe,KAAK,cAAc,IAAI;AAAA,QACrG,GAAI,MAAM,SAAS,IAAI,EAAE,OAAO,MAAM,IAAI,CAAC;AAAA,MAC7C,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAMM,SAAS,MAAM,MAA0C,gBAAmC;AACjG,QAAM,MAAgB,CAAC;AAMvB,MAAI,KAAK,WAAW,SAAS,GAAG;AAC9B,QAAI;AAAA,MACF,kBAAkB,KAAK,WAAW,IAAI,CAAC,UAAW,MAAM,UAAU,YAAY,mBAAmB,UAAU,MAAM,EAAE,EAAG,EAAE,KAAK,IAAI,CAAC,oLAA+K,KAAK,WAAW,CAAC,GAAG,UAAU,SAAS;AAAA,IAC1V;AAAA,EACF;AACA,MAAI,KAAK,WAAW,SAAS,GAAG;AAC9B,QAAI;AAAA,MACF,GAAG,KAAK,WAAW,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAAA,IACjD;AAAA,EACF;AACA,MAAI,KAAK,eAAe,QAAQ;AAC9B,QAAI;AAAA,MACF,QAAQ,KAAK,cAAc,QAAQ,OAAO,KAAK,cAAc,KAAK;AAAA,IACpE;AAAA,EACF;AACA,MAAI,CAAC,gBAAgB;AACnB,QAAI,KAAK,gGAA2F;AAAA,EACtG;AAGA,QAAM,cAAc,KAAK,WAAW,WAAW;AAC/C,QAAM,aAAa,KAAK,QAAQ,UAAU,aAAa,KAAK,OAAO,MAAM,CAAC,UAAU,MAAM,UAAU,SAAS;AAC7G,MAAI,eAAe,YAAY;AAC7B,QAAI,KAAK,8FAAyF;AAAA,EACpG;AACA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import {
|
|
2
|
+
outputRatioWarningsFor,
|
|
3
|
+
shownBaseline
|
|
4
|
+
} from "./chunk-AV7ALENU.js";
|
|
5
|
+
import {
|
|
6
|
+
creativeSlugFromCanvasPath
|
|
7
|
+
} from "./chunk-QRLTVJ6F.js";
|
|
8
|
+
import "./chunk-I24YT2KG.js";
|
|
9
|
+
import {
|
|
10
|
+
exitOnPrepareError,
|
|
11
|
+
prepareCanvas
|
|
12
|
+
} from "./chunk-XXDF25BW.js";
|
|
13
|
+
import "./chunk-MOFMOYUA.js";
|
|
14
|
+
import "./chunk-MMGTJBM6.js";
|
|
15
|
+
import "./chunk-FG3MV2XM.js";
|
|
16
|
+
import "./chunk-QG4MW2V4.js";
|
|
17
|
+
import "./chunk-VNU2EYD4.js";
|
|
18
|
+
import "./chunk-Y46FE75E.js";
|
|
19
|
+
import "./chunk-JVVUI55M.js";
|
|
20
|
+
import "./chunk-YJ3LSFMX.js";
|
|
21
|
+
import "./chunk-3S274625.js";
|
|
22
|
+
import "./chunk-6UNOK7WV.js";
|
|
23
|
+
import "./chunk-UFKO626N.js";
|
|
24
|
+
import {
|
|
25
|
+
canvasOutputsRoot
|
|
26
|
+
} from "./chunk-XRIM7NYV.js";
|
|
27
|
+
import {
|
|
28
|
+
defaultRegistry,
|
|
29
|
+
validateCanvasDeep
|
|
30
|
+
} from "./chunk-B7GF34FU.js";
|
|
31
|
+
import "./chunk-OL7JS4NG.js";
|
|
32
|
+
import "./chunk-7KHTJQGV.js";
|
|
33
|
+
import "./chunk-DGCUPJZD.js";
|
|
34
|
+
import "./chunk-QMOYQJIN.js";
|
|
35
|
+
import "./chunk-FKYPAGKK.js";
|
|
36
|
+
import "./chunk-S4VLLGTW.js";
|
|
37
|
+
import "./chunk-MCJ5I5LR.js";
|
|
38
|
+
import "./chunk-2WZI36D3.js";
|
|
39
|
+
import "./chunk-65Y3RCWP.js";
|
|
40
|
+
import "./chunk-A6WKCV3V.js";
|
|
41
|
+
import "./chunk-U7YR5CZL.js";
|
|
42
|
+
import "./chunk-VI5YQQ63.js";
|
|
43
|
+
import "./chunk-JX7BX2NB.js";
|
|
44
|
+
import "./chunk-O37VU7FG.js";
|
|
45
|
+
import "./chunk-CAZGM2NX.js";
|
|
46
|
+
import "./chunk-NZS3KEQ2.js";
|
|
47
|
+
import "./chunk-GIWHHCD6.js";
|
|
48
|
+
import "./chunk-XQIOCIDO.js";
|
|
49
|
+
import "./chunk-WTJSMYY2.js";
|
|
50
|
+
import "./chunk-6YLNY6CK.js";
|
|
51
|
+
import "./chunk-D5NEIESR.js";
|
|
52
|
+
import {
|
|
53
|
+
optionalTurnId
|
|
54
|
+
} from "./chunk-57KKVDDR.js";
|
|
55
|
+
import "./chunk-QANGHND7.js";
|
|
56
|
+
import "./chunk-YQSBHWOI.js";
|
|
57
|
+
|
|
58
|
+
// src/commands/canvas/validate.ts
|
|
59
|
+
import path from "path";
|
|
60
|
+
import { defineCommand } from "citty";
|
|
61
|
+
var validateCommand = defineCommand({
|
|
62
|
+
meta: {
|
|
63
|
+
name: "validate",
|
|
64
|
+
description: "Validate a canvas JSON file (no execution). Brings the canvas up to date with its prompt.json first (prompt.json and, for a video, scenes/*.json edits are written into the canvas, exactly as `run` does), then checks it: a per-node cost preview, each node's deep validators (composition meta checks for hyperframe_render/_snapshot), and each generator prompt measured with its {{slots}} filled against the model's character cap (PROMPT_OVER_MODEL_LIMIT)."
|
|
65
|
+
},
|
|
66
|
+
args: { file: { type: "positional", required: true, description: "Path to canvas JSON" } },
|
|
67
|
+
async run({ args }) {
|
|
68
|
+
const filePath = path.resolve(String(args.file));
|
|
69
|
+
const slug = creativeSlugFromCanvasPath(filePath) ?? void 0;
|
|
70
|
+
const baseline = slug ? (await shownBaseline({
|
|
71
|
+
canvasRoot: canvasOutputsRoot(filePath),
|
|
72
|
+
slug,
|
|
73
|
+
creativeDir: path.dirname(filePath),
|
|
74
|
+
turnId: optionalTurnId(),
|
|
75
|
+
record: false
|
|
76
|
+
})).baseline : void 0;
|
|
77
|
+
let prepared;
|
|
78
|
+
try {
|
|
79
|
+
prepared = await prepareCanvas(filePath, {
|
|
80
|
+
gate: true,
|
|
81
|
+
log: (line) => process.stderr.write(`${line}
|
|
82
|
+
`),
|
|
83
|
+
...baseline ? { baseline } : {}
|
|
84
|
+
});
|
|
85
|
+
} catch (e) {
|
|
86
|
+
exitOnPrepareError(e);
|
|
87
|
+
}
|
|
88
|
+
const result = await validateCanvasDeep(prepared.canvas, defaultRegistry());
|
|
89
|
+
if (!result.ok) {
|
|
90
|
+
process.stderr.write(`${JSON.stringify({ ok: false, error: { code: "validation", issues: result.issues } }, null, 2)}
|
|
91
|
+
`);
|
|
92
|
+
process.exit(2);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
process.stdout.write(
|
|
96
|
+
`${JSON.stringify(
|
|
97
|
+
{
|
|
98
|
+
ok: true,
|
|
99
|
+
total_nodes: result.canvas.nodes.length,
|
|
100
|
+
estimated_credits: result.estimatedCredits,
|
|
101
|
+
cost_preview: result.perNodeCredits ?? [],
|
|
102
|
+
style_projection: prepared.projections.style,
|
|
103
|
+
scene_projection: prepared.projections.scenes,
|
|
104
|
+
canvas_updated: prepared.written,
|
|
105
|
+
normalized_paths: prepared.rewrites,
|
|
106
|
+
warnings: [...result.warnings ?? [], ...await outputRatioWarningsFor(prepared.canvas, filePath)]
|
|
107
|
+
},
|
|
108
|
+
null,
|
|
109
|
+
2
|
|
110
|
+
)}
|
|
111
|
+
`
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
export {
|
|
116
|
+
validateCommand
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=validate-YTBJBG44.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/canvas/validate.ts"],"sourcesContent":["import path from \"node:path\";\nimport { defineCommand } from \"citty\";\nimport { defaultRegistry, validateCanvasDeep } from \"../../engine/index.ts\";\nimport { optionalTurnId } from \"../../env.ts\";\nimport { outputRatioWarningsFor } from \"./output-ratio.ts\";\nimport { canvasOutputsRoot } from \"./normalize-paths.ts\";\nimport { creativeSlugFromCanvasPath } from \"./run-record.ts\";\nimport { shownBaseline } from \"./shown-anchor.ts\";\nimport { exitOnPrepareError, type PreparedCanvas, prepareCanvas } from \"./prepare-canvas.ts\";\n\nexport const validateCommand = defineCommand({\n meta: {\n name: \"validate\",\n description:\n \"Validate a canvas JSON file (no execution). Brings the canvas up to date with its prompt.json first (prompt.json and, for a video, scenes/*.json edits are written into the canvas, exactly as `run` does), then checks it: a per-node cost preview, each node's deep validators (composition meta checks for hyperframe_render/_snapshot), and each generator prompt measured with its {{slots}} filled against the model's character cap (PROMPT_OVER_MODEL_LIMIT).\",\n },\n args: { file: { type: \"positional\", required: true, description: \"Path to canvas JSON\" } },\n async run({ args }) {\n const filePath = path.resolve(String(args.file));\n // The idea the person saw, as a run would hold it: validate is the free proof of that gate (it records nothing).\n const slug = creativeSlugFromCanvasPath(filePath) ?? undefined;\n const baseline = slug\n ? (\n await shownBaseline({\n canvasRoot: canvasOutputsRoot(filePath),\n slug,\n creativeDir: path.dirname(filePath),\n turnId: optionalTurnId(),\n record: false,\n })\n ).baseline\n : undefined;\n let prepared: PreparedCanvas;\n try {\n prepared = await prepareCanvas(filePath, {\n gate: true,\n log: (line) => process.stderr.write(`${line}\\n`),\n ...(baseline ? { baseline } : {}),\n });\n } catch (e) {\n exitOnPrepareError(e);\n }\n\n const result = await validateCanvasDeep(prepared.canvas, defaultRegistry());\n if (!result.ok) {\n process.stderr.write(`${JSON.stringify({ ok: false, error: { code: \"validation\", issues: result.issues } }, null, 2)}\\n`);\n process.exit(2);\n return;\n }\n\n // Warnings are advisory: the canvas is valid and runnable, so exit 0. They flag\n // likely-wrong-but-legal config (a missing element reference, a scene span past the\n // assigned model's cap) the operator should review before billing.\n process.stdout.write(\n `${JSON.stringify(\n {\n ok: true,\n total_nodes: result.canvas.nodes.length,\n estimated_credits: result.estimatedCredits,\n cost_preview: result.perNodeCredits ?? [],\n style_projection: prepared.projections.style,\n scene_projection: prepared.projections.scenes,\n canvas_updated: prepared.written,\n normalized_paths: prepared.rewrites,\n warnings: [...(result.warnings ?? []), ...(await outputRatioWarningsFor(prepared.canvas, filePath))],\n },\n null,\n 2,\n )}\\n`,\n );\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AASvB,IAAM,kBAAkB,cAAc;AAAA,EAC3C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,UAAU,MAAM,aAAa,sBAAsB,EAAE;AAAA,EACzF,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,UAAM,WAAW,KAAK,QAAQ,OAAO,KAAK,IAAI,CAAC;AAE/C,UAAM,OAAO,2BAA2B,QAAQ,KAAK;AACrD,UAAM,WAAW,QAEX,MAAM,cAAc;AAAA,MAClB,YAAY,kBAAkB,QAAQ;AAAA,MACtC;AAAA,MACA,aAAa,KAAK,QAAQ,QAAQ;AAAA,MAClC,QAAQ,eAAe;AAAA,MACvB,QAAQ;AAAA,IACV,CAAC,GACD,WACF;AACJ,QAAI;AACJ,QAAI;AACF,iBAAW,MAAM,cAAc,UAAU;AAAA,QACvC,MAAM;AAAA,QACN,KAAK,CAAC,SAAS,QAAQ,OAAO,MAAM,GAAG,IAAI;AAAA,CAAI;AAAA,QAC/C,GAAI,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,MACjC,CAAC;AAAA,IACH,SAAS,GAAG;AACV,yBAAmB,CAAC;AAAA,IACtB;AAEA,UAAM,SAAS,MAAM,mBAAmB,SAAS,QAAQ,gBAAgB,CAAC;AAC1E,QAAI,CAAC,OAAO,IAAI;AACd,cAAQ,OAAO,MAAM,GAAG,KAAK,UAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,cAAc,QAAQ,OAAO,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;AAAA,CAAI;AACxH,cAAQ,KAAK,CAAC;AACd;AAAA,IACF;AAKA,YAAQ,OAAO;AAAA,MACb,GAAG,KAAK;AAAA,QACN;AAAA,UACE,IAAI;AAAA,UACJ,aAAa,OAAO,OAAO,MAAM;AAAA,UACjC,mBAAmB,OAAO;AAAA,UAC1B,cAAc,OAAO,kBAAkB,CAAC;AAAA,UACxC,kBAAkB,SAAS,YAAY;AAAA,UACvC,kBAAkB,SAAS,YAAY;AAAA,UACvC,gBAAgB,SAAS;AAAA,UACzB,kBAAkB,SAAS;AAAA,UAC3B,UAAU,CAAC,GAAI,OAAO,YAAY,CAAC,GAAI,GAAI,MAAM,uBAAuB,SAAS,QAAQ,QAAQ,CAAE;AAAA,QACrG;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA;AAAA,IACH;AAAA,EACF;AACF,CAAC;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import "./chunk-YQSBHWOI.js";
|
|
2
|
+
|
|
3
|
+
// src/commands/videos/index.ts
|
|
4
|
+
import { defineCommand } from "citty";
|
|
5
|
+
var videosCommand = defineCommand({
|
|
6
|
+
meta: {
|
|
7
|
+
name: "videos",
|
|
8
|
+
description: `Find and manage videos in Baker. Subcommands: search, get, upload, ingest, fetch, describe, delete, retry, tags.
|
|
9
|
+
|
|
10
|
+
Examples:
|
|
11
|
+
baker videos search "product demo" --limit 5
|
|
12
|
+
baker videos search "tutorial" --tags explainer
|
|
13
|
+
baker videos get <video-id>
|
|
14
|
+
baker videos upload ./demo.mp4
|
|
15
|
+
baker videos ingest https://www.youtube.com/watch?v=abc123
|
|
16
|
+
baker videos fetch https://www.youtube.com/watch?v=abc123 --out ./clips
|
|
17
|
+
baker videos describe <video-id> --description "Customer testimonial, 30s"
|
|
18
|
+
baker videos delete <video-id> --dry-run
|
|
19
|
+
baker videos retry <video-id> # process a failed video again
|
|
20
|
+
baker videos tags # list; tags create|update|delete for custom tags
|
|
21
|
+
Full guide: __tooling__/docs/tools/baker/videos.md`
|
|
22
|
+
},
|
|
23
|
+
subCommands: {
|
|
24
|
+
get: () => import("./get-23L2AVTV.js").then((m) => m.getCommand),
|
|
25
|
+
group: () => import("./group-HNRZJMZX.js").then((m) => m.groupCommand),
|
|
26
|
+
search: () => import("./search-HS7OHTFH.js").then((m) => m.searchCommand),
|
|
27
|
+
upload: () => import("./upload-XJ7TUVIK.js").then((m) => m.uploadCommand),
|
|
28
|
+
ingest: () => import("./ingest-B46AY3QU.js").then((m) => m.ingestCommand),
|
|
29
|
+
fetch: () => import("./fetch-RYS6DEJH.js").then((m) => m.fetchCommand),
|
|
30
|
+
describe: () => import("./describe-HOMUJ4T4.js").then((m) => m.describeCommand),
|
|
31
|
+
delete: () => import("./delete-THR72JIR.js").then((m) => m.deleteCommand),
|
|
32
|
+
retry: () => import("./retry-RNGM3KKA.js").then((m) => m.retryCommand),
|
|
33
|
+
tags: () => import("./tags-XAB4HWGW.js").then((m) => m.tagsCommand)
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
export {
|
|
37
|
+
videosCommand
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=videos-WAPUPJVT.js.map
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import {
|
|
2
|
+
OFFER_READ,
|
|
3
|
+
VIEWER_CLARITY,
|
|
4
|
+
VIEWER_QUESTIONS,
|
|
5
|
+
VIEWER_REQUIRED_CLARITY,
|
|
6
|
+
ViewerAnswerSchema,
|
|
7
|
+
buildViewerPrompt,
|
|
8
|
+
checkViewer,
|
|
9
|
+
describeViewer,
|
|
10
|
+
gatewayViewerModel,
|
|
11
|
+
jevReadJudge,
|
|
12
|
+
judgeViewerAnswer,
|
|
13
|
+
liveViewerLookups,
|
|
14
|
+
misreadings,
|
|
15
|
+
personaSegments,
|
|
16
|
+
readCreativeForViewerCheck,
|
|
17
|
+
readPersonas,
|
|
18
|
+
resolveViewer,
|
|
19
|
+
sureEnough,
|
|
20
|
+
viewerCheckBeforeRender,
|
|
21
|
+
viewerCheckCacheKey,
|
|
22
|
+
viewerCheckCommand,
|
|
23
|
+
viewerCheckFailure,
|
|
24
|
+
viewerCheckSkip
|
|
25
|
+
} from "./chunk-DJE7UXYT.js";
|
|
26
|
+
import "./chunk-MMGTJBM6.js";
|
|
27
|
+
import "./chunk-FG3MV2XM.js";
|
|
28
|
+
import "./chunk-QG4MW2V4.js";
|
|
29
|
+
import "./chunk-VNU2EYD4.js";
|
|
30
|
+
import "./chunk-Y46FE75E.js";
|
|
31
|
+
import "./chunk-3S274625.js";
|
|
32
|
+
import "./chunk-G6XKD7QE.js";
|
|
33
|
+
import "./chunk-6UNOK7WV.js";
|
|
34
|
+
import "./chunk-UFKO626N.js";
|
|
35
|
+
import "./chunk-XRIM7NYV.js";
|
|
36
|
+
import "./chunk-FKYPAGKK.js";
|
|
37
|
+
import "./chunk-S4VLLGTW.js";
|
|
38
|
+
import "./chunk-MCJ5I5LR.js";
|
|
39
|
+
import "./chunk-2WZI36D3.js";
|
|
40
|
+
import "./chunk-65Y3RCWP.js";
|
|
41
|
+
import "./chunk-A6WKCV3V.js";
|
|
42
|
+
import "./chunk-U7YR5CZL.js";
|
|
43
|
+
import "./chunk-VI5YQQ63.js";
|
|
44
|
+
import "./chunk-JX7BX2NB.js";
|
|
45
|
+
import "./chunk-O37VU7FG.js";
|
|
46
|
+
import "./chunk-CAZGM2NX.js";
|
|
47
|
+
import "./chunk-NZS3KEQ2.js";
|
|
48
|
+
import "./chunk-GIWHHCD6.js";
|
|
49
|
+
import "./chunk-XQIOCIDO.js";
|
|
50
|
+
import "./chunk-WTJSMYY2.js";
|
|
51
|
+
import "./chunk-6YLNY6CK.js";
|
|
52
|
+
import "./chunk-D5NEIESR.js";
|
|
53
|
+
import "./chunk-57KKVDDR.js";
|
|
54
|
+
import "./chunk-QANGHND7.js";
|
|
55
|
+
import "./chunk-YQSBHWOI.js";
|
|
56
|
+
export {
|
|
57
|
+
OFFER_READ,
|
|
58
|
+
VIEWER_CLARITY,
|
|
59
|
+
VIEWER_QUESTIONS,
|
|
60
|
+
VIEWER_REQUIRED_CLARITY,
|
|
61
|
+
ViewerAnswerSchema,
|
|
62
|
+
buildViewerPrompt,
|
|
63
|
+
checkViewer,
|
|
64
|
+
describeViewer,
|
|
65
|
+
gatewayViewerModel,
|
|
66
|
+
jevReadJudge,
|
|
67
|
+
judgeViewerAnswer,
|
|
68
|
+
liveViewerLookups,
|
|
69
|
+
misreadings,
|
|
70
|
+
personaSegments,
|
|
71
|
+
readCreativeForViewerCheck,
|
|
72
|
+
readPersonas,
|
|
73
|
+
resolveViewer,
|
|
74
|
+
sureEnough,
|
|
75
|
+
viewerCheckBeforeRender,
|
|
76
|
+
viewerCheckCacheKey,
|
|
77
|
+
viewerCheckCommand,
|
|
78
|
+
viewerCheckFailure,
|
|
79
|
+
viewerCheckSkip
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=viewer-check-GHQA3UY2.js.map
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import {
|
|
2
|
+
webDepthHints
|
|
3
|
+
} from "./chunk-SSTL3A7Z.js";
|
|
4
|
+
import {
|
|
5
|
+
handleResearchError,
|
|
6
|
+
writeResearchHints,
|
|
7
|
+
writeResearchJson
|
|
8
|
+
} from "./chunk-EGPYWJGZ.js";
|
|
9
|
+
import "./chunk-O37VU7FG.js";
|
|
10
|
+
import "./chunk-CAZGM2NX.js";
|
|
11
|
+
import "./chunk-NZS3KEQ2.js";
|
|
12
|
+
import "./chunk-GIWHHCD6.js";
|
|
13
|
+
import "./chunk-XQIOCIDO.js";
|
|
14
|
+
import "./chunk-WTJSMYY2.js";
|
|
15
|
+
import {
|
|
16
|
+
apiGet,
|
|
17
|
+
apiPost
|
|
18
|
+
} from "./chunk-6YLNY6CK.js";
|
|
19
|
+
import "./chunk-D5NEIESR.js";
|
|
20
|
+
import "./chunk-57KKVDDR.js";
|
|
21
|
+
import {
|
|
22
|
+
registerSchema
|
|
23
|
+
} from "./chunk-QANGHND7.js";
|
|
24
|
+
import "./chunk-YQSBHWOI.js";
|
|
25
|
+
|
|
26
|
+
// src/commands/research/web.ts
|
|
27
|
+
import { defineCommand } from "citty";
|
|
28
|
+
registerSchema({
|
|
29
|
+
command: "research.web",
|
|
30
|
+
description: "Search the web with AI to answer marketing questions \u2014 competitors, ICP, pricing, pain points, market trends. Three depth levels: medium (quick, default), high (thorough), xhigh (exhaustive deep research).",
|
|
31
|
+
args: {
|
|
32
|
+
question: {
|
|
33
|
+
type: "string",
|
|
34
|
+
description: "The research question to answer using live web data",
|
|
35
|
+
required: true
|
|
36
|
+
},
|
|
37
|
+
depth: {
|
|
38
|
+
type: "string",
|
|
39
|
+
description: "Research depth: medium (quick), high (thorough), xhigh (exhaustive). Default: medium",
|
|
40
|
+
required: false,
|
|
41
|
+
enum: ["medium", "high", "xhigh"]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
var TIMEOUT_MS = {
|
|
46
|
+
medium: 18e4,
|
|
47
|
+
high: 36e4,
|
|
48
|
+
xhigh: 9e5
|
|
49
|
+
};
|
|
50
|
+
var FIELDS = {
|
|
51
|
+
answer: "AI-generated research answer (markdown)",
|
|
52
|
+
sources: "Array of {title, url} sources used for grounding"
|
|
53
|
+
};
|
|
54
|
+
function sleep(ms) {
|
|
55
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
56
|
+
}
|
|
57
|
+
async function runDeepResearch(question) {
|
|
58
|
+
const { interactionId } = await apiPost("/api/research/deep-research/start", { question });
|
|
59
|
+
process.stderr.write(`Deep research started (${interactionId}). Polling...
|
|
60
|
+
`);
|
|
61
|
+
const deadline = Date.now() + TIMEOUT_MS.xhigh;
|
|
62
|
+
while (Date.now() < deadline) {
|
|
63
|
+
await sleep(1e4);
|
|
64
|
+
const poll = await apiGet("/api/research/deep-research/poll", {
|
|
65
|
+
id: interactionId
|
|
66
|
+
});
|
|
67
|
+
if (poll.status === "completed" && poll.result) {
|
|
68
|
+
return poll.result;
|
|
69
|
+
}
|
|
70
|
+
if (poll.status === "failed" || poll.status === "cancelled") {
|
|
71
|
+
throw new Error(`Deep research ${poll.status}`);
|
|
72
|
+
}
|
|
73
|
+
process.stderr.write(` status: ${poll.status}
|
|
74
|
+
`);
|
|
75
|
+
}
|
|
76
|
+
throw new Error("Deep research timed out");
|
|
77
|
+
}
|
|
78
|
+
var webCommand = defineCommand({
|
|
79
|
+
meta: {
|
|
80
|
+
name: "web",
|
|
81
|
+
description: `Search the web with AI to answer any open-ended marketing question. Uses live internet data via Google Search.
|
|
82
|
+
|
|
83
|
+
Depth levels:
|
|
84
|
+
medium \u2014 Quick lookup using Gemini Flash with minimal thinking (default)
|
|
85
|
+
high \u2014 Thorough answer using Gemini Flash with deep thinking
|
|
86
|
+
xhigh \u2014 Exhaustive deep research using Gemini Deep Research (slow, use sparingly)
|
|
87
|
+
|
|
88
|
+
Examples:
|
|
89
|
+
baker research web "Who are the main competitors of HubSpot CRM?"
|
|
90
|
+
baker research web "What are the top pain points for SMB CRM buyers?" --depth high
|
|
91
|
+
baker research web "Full competitive analysis of project management SaaS" --depth xhigh`
|
|
92
|
+
},
|
|
93
|
+
args: {
|
|
94
|
+
question: { type: "positional", description: "The research question", required: true },
|
|
95
|
+
depth: { type: "string", description: "Research depth: medium|high|xhigh (default: medium)", required: false },
|
|
96
|
+
output: { type: "string", description: "Format: json|md (default: json)", required: false, default: "json" }
|
|
97
|
+
},
|
|
98
|
+
run: async ({ args }) => {
|
|
99
|
+
const question = args.question;
|
|
100
|
+
if (question.length < 5) {
|
|
101
|
+
writeResearchJson({
|
|
102
|
+
ok: false,
|
|
103
|
+
error: { code: "VALIDATION_ERROR", message: "Question must be at least 5 characters" }
|
|
104
|
+
});
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
107
|
+
const depth = args.depth || "medium";
|
|
108
|
+
if (!["medium", "high", "xhigh"].includes(depth)) {
|
|
109
|
+
writeResearchJson({
|
|
110
|
+
ok: false,
|
|
111
|
+
error: { code: "VALIDATION_ERROR", message: "Depth must be one of: medium, high, xhigh" }
|
|
112
|
+
});
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
const data = depth === "xhigh" ? await runDeepResearch(question) : await apiPost("/api/research/explore", { question, depth }, { timeoutMs: TIMEOUT_MS[depth] });
|
|
117
|
+
const format = args.output || "json";
|
|
118
|
+
const hints = webDepthHints({ answer: data.answer, sourceCount: data.sources.length, depth });
|
|
119
|
+
if (format === "md") {
|
|
120
|
+
process.stdout.write(`${data.answer}
|
|
121
|
+
`);
|
|
122
|
+
if (data.sources.length > 0) {
|
|
123
|
+
process.stdout.write("\n## Sources\n");
|
|
124
|
+
for (const s of data.sources) {
|
|
125
|
+
process.stdout.write(`- [${s.title}](${s.url})
|
|
126
|
+
`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
writeResearchHints(hints, format);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
writeResearchJson({ ok: true, data, fields: FIELDS, hints });
|
|
133
|
+
} catch (err) {
|
|
134
|
+
handleResearchError(err);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
export {
|
|
139
|
+
webCommand
|
|
140
|
+
};
|
|
141
|
+
//# sourceMappingURL=web-6JMWERTT.js.map
|