@koda-sl/baker-cli 0.558.0 → 0.560.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 +3 -1
- package/dist/{account-ICRVGRGT.js → account-DUGYQJEM.js} +4 -4
- package/dist/{account-users-ENRQBEV4.js → account-users-BXJQ4XZV.js} +4 -4
- package/dist/{accounts-MQXVRASU.js → accounts-DXQ3DHMB.js} +3 -3
- package/dist/{accounts-4ZSFTWKA.js → accounts-KXQY6WKR.js} +5 -5
- package/dist/{accounts-ZFQYZT3J.js → accounts-RRCALMPX.js} +2 -2
- package/dist/{actions-B2GTON6O.js → actions-LI43PTFN.js} +18 -18
- package/dist/{activecampaign-DCED2LJF.js → activecampaign-5A6YHDJW.js} +3 -3
- package/dist/{add-CSRB6GVJ.js → add-TJHGYZYH.js} +7 -2
- package/dist/add-TJHGYZYH.js.map +1 -0
- package/dist/{add-JCNXNGDP.js → add-W4HEMTFL.js} +2 -2
- package/dist/{add-SAPHQL5P.js → add-ZSKEB3CI.js} +3 -3
- package/dist/{ads-VYMFRGAC.js → ads-OC3ENYUC.js} +5 -5
- package/dist/{advertisers-A3Q53R2S.js → advertisers-KPVUVXZZ.js} +3 -3
- package/dist/{analytics-5P5DSD5U.js → analytics-4WBRNSUC.js} +3 -3
- package/dist/{analytics-XQ3X4EAF.js → analytics-XT4ANMLP.js} +6 -6
- package/dist/{assign-7UGEPUCD.js → assign-SQK4UF3I.js} +3 -3
- package/dist/{audience-size-VMGWVYVR.js → audience-size-5Y5Q6UVA.js} +3 -3
- package/dist/{audit-XG6BYA2E.js → audit-GOZNIXNM.js} +3 -3
- package/dist/{autocomplete-OOLUPUIJ.js → autocomplete-36S76BGA.js} +3 -3
- package/dist/{avatars-3GVMDI7P.js → avatars-SDQ5LCNG.js} +4 -4
- package/dist/{bid-pricing-TRQUA2RV.js → bid-pricing-6DFGC6YC.js} +4 -4
- package/dist/{brand-E3SSWHCN.js → brand-OISTKMY4.js} +2 -2
- package/dist/{brief-WLOO3Q5L.js → brief-2UXKUTFC.js} +12 -12
- package/dist/{campaign-groups-3475EWTI.js → campaign-groups-32LDB42N.js} +9 -9
- package/dist/{campaign-writes-UIS7E2DP.js → campaign-writes-62V55CNW.js} +3 -3
- package/dist/{campaigns-OQ6IQKGX.js → campaigns-I5GSGZDJ.js} +5 -5
- package/dist/{campaigns-LKE7G3YG.js → campaigns-OGNE4XHM.js} +12 -12
- package/dist/{canvas-W3RF6NGC.js → canvas-HGU7FJ34.js} +13 -13
- package/dist/{capabilities-HNCOIM5X.js → capabilities-EDXVGZXC.js} +3 -3
- package/dist/{changes-MVCX3GLE.js → changes-AEAVFB3M.js} +29 -10
- package/dist/changes-AEAVFB3M.js.map +1 -0
- package/dist/{chats-X6C6DUDX.js → chats-HFKSZWZD.js} +3 -3
- package/dist/{check-4J2ROARK.js → check-GRVUI3LI.js} +5 -5
- package/dist/{chunk-WDJIGWL2.js → chunk-26UW2GMK.js} +5 -5
- package/dist/{chunk-ZGLRYMIR.js → chunk-2LGDWOD7.js} +2 -2
- package/dist/{chunk-NPBF3YJO.js → chunk-37QHT7J4.js} +2 -2
- package/dist/{chunk-GN623LEL.js → chunk-4ICSKDI7.js} +22 -6
- package/dist/chunk-4ICSKDI7.js.map +1 -0
- package/dist/{chunk-2UGMSILE.js → chunk-5NJQXV4K.js} +3 -3
- package/dist/{chunk-PYS733U7.js → chunk-724E32DM.js} +3 -3
- package/dist/{chunk-SMZRJYV7.js → chunk-72JEATZ5.js} +3 -3
- package/dist/{chunk-AX5BGR4R.js → chunk-72VH4FPY.js} +2 -2
- package/dist/{chunk-YUXVZGGB.js → chunk-AHZIGJXD.js} +2 -2
- package/dist/{chunk-7QRHJJR5.js → chunk-AQ6LJ7EI.js} +2 -2
- package/dist/{chunk-UGRL642V.js → chunk-BS4PRGEJ.js} +2 -2
- package/dist/{chunk-UGRL642V.js.map → chunk-BS4PRGEJ.js.map} +1 -1
- package/dist/{chunk-2NHWXWPB.js → chunk-CZTKRP6M.js} +2 -2
- package/dist/{chunk-LLBTSJGC.js → chunk-DYWKYP7Z.js} +2 -2
- package/dist/{chunk-QIMTC2IW.js → chunk-EDWW3THE.js} +2 -2
- package/dist/{chunk-DZJREPT2.js → chunk-G3ZUMNLG.js} +3 -3
- package/dist/{chunk-BKLWKZCX.js → chunk-GTYVWDCC.js} +2 -2
- package/dist/{chunk-2KFN5CS7.js → chunk-HHMBHLX6.js} +2 -2
- package/dist/chunk-I7OJZ7QE.js +10 -0
- package/dist/chunk-I7OJZ7QE.js.map +1 -0
- package/dist/{chunk-GQEU6IKZ.js → chunk-J6KCVW6N.js} +2 -2
- package/dist/{chunk-2L24FULD.js → chunk-JQDYH5XP.js} +24 -2
- package/dist/chunk-JQDYH5XP.js.map +1 -0
- package/dist/{chunk-SDDEECV2.js → chunk-KDTSXLY7.js} +2 -2
- package/dist/{chunk-6G4CVXIL.js → chunk-KE5TI23P.js} +2 -2
- package/dist/{chunk-IAZKXDWV.js → chunk-KNA3OWJC.js} +16 -2
- package/dist/{chunk-IAZKXDWV.js.map → chunk-KNA3OWJC.js.map} +1 -1
- package/dist/{chunk-XNGJVOXZ.js → chunk-KV4E4KGE.js} +3 -3
- package/dist/{chunk-ST5PZM7I.js → chunk-KY6Q4WLC.js} +2 -2
- package/dist/{chunk-KAOUWSXH.js → chunk-LIBSSGE4.js} +2 -2
- package/dist/{chunk-DG34CPA6.js → chunk-LWN3ZNZU.js} +2 -2
- package/dist/{chunk-B5K6KXV2.js → chunk-N34A56X7.js} +2 -2
- package/dist/{chunk-PU5UKJ33.js → chunk-N472TRB4.js} +2 -2
- package/dist/{chunk-HNELOMY2.js → chunk-NKZDYXEN.js} +12 -5
- package/dist/chunk-NKZDYXEN.js.map +1 -0
- package/dist/{chunk-G4MXOYLJ.js → chunk-NPDZ4EO6.js} +3 -3
- package/dist/{chunk-OJMALBCI.js → chunk-OEH7ANJJ.js} +2 -2
- package/dist/{chunk-WP5YCX3O.js → chunk-PBKUESJD.js} +3 -3
- package/dist/{chunk-GQTSGD5D.js → chunk-PZSOJYER.js} +3 -3
- package/dist/{chunk-SL2BRBIJ.js → chunk-QBCZLD3A.js} +9 -9
- package/dist/{chunk-VRTRMQM2.js → chunk-QKHH7YNN.js} +2 -2
- package/dist/{chunk-ZEK6D6SS.js → chunk-SKVQRTDO.js} +2 -2
- package/dist/{chunk-MVTPNWRQ.js → chunk-TK7VRZKM.js} +4 -2
- package/dist/{chunk-MVTPNWRQ.js.map → chunk-TK7VRZKM.js.map} +1 -1
- package/dist/{chunk-CP2A4P2P.js → chunk-TXWKDDF6.js} +2 -2
- package/dist/{chunk-TS2F2FXW.js → chunk-UB34H4VD.js} +5 -5
- package/dist/{chunk-WWTTPOVW.js → chunk-UZEKIMLY.js} +3 -3
- package/dist/{chunk-KPNMSZOM.js → chunk-V6N6UBOT.js} +2 -2
- package/dist/{chunk-P7ZLJLQH.js → chunk-VKYDHIBT.js} +2 -2
- package/dist/{chunk-NPGPRZW2.js → chunk-VR6XCLY6.js} +10 -3
- package/dist/chunk-VR6XCLY6.js.map +1 -0
- package/dist/{chunk-KSQXQMDS.js → chunk-WLD443MX.js} +2 -2
- package/dist/{chunk-RSLVIXW3.js → chunk-WQIHLJAO.js} +6 -6
- package/dist/{chunk-BBW7DZPO.js → chunk-X2OVFCRC.js} +2 -2
- package/dist/{chunk-V3RYJ4K2.js → chunk-XGN3BGSL.js} +4 -4
- package/dist/{chunk-MDC36LWD.js → chunk-YS7T735Q.js} +2 -2
- package/dist/{chunk-FHN4QXZN.js → chunk-YXUIVOUL.js} +2 -2
- package/dist/{claim-RRSGEH6S.js → claim-NUUED375.js} +3 -3
- package/dist/cli.js +32 -32
- package/dist/{companies-L2CN7FG6.js → companies-3EKQ6PBV.js} +3 -3
- package/dist/{company-JFVUTAVA.js → company-35ZI77NI.js} +3 -3
- package/dist/{complete-AHUP2SHE.js → complete-V2HNULPO.js} +3 -3
- package/dist/{connect-HJO52PQR.js → connect-77K3A6WK.js} +6 -6
- package/dist/{conversation-Q27J7M75.js → conversation-MWBPIT4W.js} +3 -3
- package/dist/{conversions-6N2OWE6G.js → conversions-RXNIACU5.js} +8 -8
- package/dist/{create-KQUMF4HV.js → create-AE52ZZMG.js} +3 -3
- package/dist/{create-H6U75562.js → create-K2EUYE54.js} +11 -3
- package/dist/{create-H6U75562.js.map → create-K2EUYE54.js.map} +1 -1
- package/dist/{create-FWH3WEUW.js → create-L53KW6GN.js} +3 -3
- package/dist/{create-NJS7I2JX.js → create-RJHGT2S4.js} +3 -3
- package/dist/{creatives-U4YGQLOG.js → creatives-2JP24JNL.js} +9 -9
- package/dist/{creatives-4ODU5S2G.js → creatives-UPZU7BLY.js} +12 -12
- package/dist/{credentials-EJE4L5WS.js → credentials-WRC7ERSS.js} +3 -3
- package/dist/{critique-6FULD2C7.js → critique-CYV7JQAY.js} +3 -3
- package/dist/{critique-EALNNGJ3.js → critique-VTNN6A5I.js} +8 -8
- package/dist/{crm-ONS4PUP5.js → crm-2MZLMSEV.js} +4 -4
- package/dist/{crm-MSVXNPKM.js → crm-VO6ZBW64.js} +4 -4
- package/dist/{currency-XFY2EX72.js → currency-GLHXNSHY.js} +2 -2
- package/dist/{customers-DXOLSUXV.js → customers-MHQ72YBY.js} +5 -5
- package/dist/{delete-XWD37C4T.js → delete-5NEAIDA4.js} +2 -2
- package/dist/{delete-U7B4N7UA.js → delete-6WKVGKRF.js} +3 -3
- package/dist/{delete-ELTUNRSD.js → delete-QFASUSVU.js} +3 -3
- package/dist/{delete-TN47CJK7.js → delete-ULI3MVAD.js} +2 -2
- package/dist/{demographics-NGWLHRNF.js → demographics-5SXTDRFU.js} +3 -3
- package/dist/{discard-SBYNAHJX.js → discard-P4PGGYYO.js} +3 -3
- package/dist/{domain-UGVD7HIA.js → domain-RINRCQ5G.js} +3 -3
- package/dist/{download-VQCUPJA2.js → download-HPYGPNHN.js} +2 -2
- package/dist/{draft-3TZYIB5J.js → draft-4WPWILSX.js} +3 -3
- package/dist/{draft-OA35VOHO.js → draft-FWCF4Y6P.js} +4 -4
- package/dist/{draft-6V73CF5P.js → draft-M7XINDQU.js} +3 -3
- package/dist/{experiments-32DRJBJB.js → experiments-NULZPBF2.js} +4 -4
- package/dist/{extract-WEEJ6FTG.js → extract-Y3OZG5DZ.js} +4 -3
- package/dist/{extract-WEEJ6FTG.js.map → extract-Y3OZG5DZ.js.map} +1 -1
- package/dist/{facets-462KAZH7.js → facets-HIADYZQQ.js} +3 -3
- package/dist/{feedback-AWWQN2MR.js → feedback-WEZEKTCH.js} +12 -12
- package/dist/{feedback-ME5HYWT5.js → feedback-Y4AXR354.js} +3 -3
- package/dist/{feedback-record-G6N3MFMC.js → feedback-record-YZNGRSNR.js} +13 -13
- package/dist/{fetch-HVBXROZY.js → fetch-T6WPGAWP.js} +3 -3
- package/dist/{find-UB4JSORZ.js → find-TTJH5NVJ.js} +3 -2
- package/dist/{find-UB4JSORZ.js.map → find-TTJH5NVJ.js.map} +1 -1
- package/dist/{fit-XNWSY3ZM.js → fit-MLDFA4ZK.js} +5 -5
- package/dist/{flows-AX4LSQYT.js → flows-XWU2XNYP.js} +10 -10
- package/dist/{fonts-AZCIRKB4.js → fonts-RV5KUGFE.js} +5 -5
- package/dist/{forecast-ALJGK6RQ.js → forecast-E5QXQFKQ.js} +4 -4
- package/dist/{funnel-HLYGJU64.js → funnel-NMC3JWTF.js} +4 -4
- package/dist/{get-KQ46JY6B.js → get-AKTMYS57.js} +3 -3
- package/dist/{get-ZLCZOCUH.js → get-JQE7XWKL.js} +3 -3
- package/dist/{get-4NDYA3G6.js → get-MK6M4DKF.js} +2 -2
- package/dist/{get-JX5JVWH7.js → get-QS2A6YVM.js} +2 -2
- package/dist/{get-KNP2EQRI.js → get-UFCNLDE2.js} +2 -2
- package/dist/{gif-6244RM75.js → gif-TBKH7VSP.js} +3 -2
- package/dist/{gif-6244RM75.js.map → gif-TBKH7VSP.js.map} +1 -1
- package/dist/{google-TOO3FDZ6.js → google-TKRS4CGR.js} +27 -12
- package/dist/google-TKRS4CGR.js.map +1 -0
- package/dist/{google-CLX7IUEE.js → google-YDGZ2Q3M.js} +4 -3
- package/dist/{google-CLX7IUEE.js.map → google-YDGZ2Q3M.js.map} +1 -1
- package/dist/{google-ads-DYGNJEIT.js → google-ads-AFJV5ZJO.js} +3 -3
- package/dist/{history-H2MGZGPB.js → history-6RCRBB4Q.js} +3 -3
- package/dist/{history-W25VPQ57.js → history-T6Y5IR4V.js} +3 -3
- package/dist/{hubspot-D3TFC24J.js → hubspot-SNLOCDPF.js} +7 -7
- package/dist/{icon-2237C4LP.js → icon-CYUIAFTE.js} +3 -2
- package/dist/{icon-2237C4LP.js.map → icon-CYUIAFTE.js.map} +1 -1
- package/dist/{ideas-5AEA2RPO.js → ideas-VTBVERCN.js} +4 -4
- package/dist/{images-WL3KB35N.js → images-36DGQZMH.js} +20 -20
- package/dist/{ingest-3O4C75SL.js → ingest-MLIOEHL3.js} +11 -3
- package/dist/{ingest-3O4C75SL.js.map → ingest-MLIOEHL3.js.map} +1 -1
- package/dist/{ingest-5EFT6PCW.js → ingest-OJV3CYYK.js} +5 -4
- package/dist/{inspect-4NWXVI4R.js → inspect-6P2WNFAC.js} +3 -3
- package/dist/{keyword-metrics-CXGNLERO.js → keyword-metrics-IDMR3ES2.js} +3 -3
- package/dist/{keywords-for-site-OYMDRMMX.js → keywords-for-site-V3SGYZDW.js} +3 -3
- package/dist/{landing-PECCKQSW.js → landing-7PZPYD3M.js} +2 -2
- package/dist/{leads-GUA2XYPF.js → leads-TWABHSJH.js} +3 -3
- package/dist/{learn-ZRVONGFT.js → learn-MXJSGDVI.js} +4 -4
- package/dist/{library-RZI7QHRV.js → library-F4GB5X6G.js} +3 -2
- package/dist/{library-RZI7QHRV.js.map → library-F4GB5X6G.js.map} +1 -1
- package/dist/{line-item-writes-4FGW42W4.js → line-item-writes-2R7VSOWO.js} +3 -3
- package/dist/{line-items-BX2D3T6S.js → line-items-MY6JP2W6.js} +5 -5
- package/dist/{link-JUNNBOUE.js → link-LR5LSFTA.js} +3 -3
- package/dist/{linkedin-6NRMXGBT.js → linkedin-UJEBBO7G.js} +30 -30
- package/dist/{linkedin-person-QJ7BREUI.js → linkedin-person-5LJEMW54.js} +3 -3
- package/dist/{list-DPQMPO2N.js → list-5O5NB56G.js} +3 -3
- package/dist/{list-4PB3SUMX.js → list-6AAKH6UV.js} +3 -3
- package/dist/{list-QPTOZWLH.js → list-UYQOLFPN.js} +2 -2
- package/dist/{log-O3ABCKXB.js → log-LPY5KYGP.js} +3 -3
- package/dist/{logo-R34AWI4C.js → logo-SBIDRBA2.js} +4 -3
- package/dist/{make-DS2JT5N4.js → make-UK2OYKCZ.js} +15 -15
- package/dist/{map-3RDR7QYX.js → map-XEJOI63E.js} +4 -4
- package/dist/{mcp-G52VGFAY.js → mcp-Y43SKNHV.js} +2 -2
- package/dist/{media-sources-GJHD737X.js → media-sources-POL5DMD4.js} +2 -2
- package/dist/{members-ICR3O2XP.js → members-5EJVXTE7.js} +3 -3
- package/dist/{meme-NH4DAORT.js → meme-VR3IHBRW.js} +9 -1
- package/dist/meme-VR3IHBRW.js.map +1 -0
- package/dist/{normalize-WLP2AYUD.js → normalize-IOW2V6E7.js} +3 -3
- package/dist/{options-G35EJLMF.js → options-YD6XFRZV.js} +6 -6
- package/dist/{organization-N5XUAYZQ.js → organization-KORFOK7Q.js} +3 -3
- package/dist/{performance-YT2MD4R6.js → performance-BXSNPNC3.js} +4 -4
- package/dist/{performance-KHP7T3X7.js → performance-Z353JXHB.js} +3 -3
- package/dist/{pinterest-KZ7RIHRS.js → pinterest-42NLOZW4.js} +3 -2
- package/dist/{pinterest-KZ7RIHRS.js.map → pinterest-42NLOZW4.js.map} +1 -1
- package/dist/{posts-F7NFSUHV.js → posts-K3QTBX2B.js} +2 -2
- package/dist/{preview-YXDLYCIA.js → preview-3UGPTK44.js} +3 -3
- package/dist/{promoted-tweet-writes-JTGHVR6D.js → promoted-tweet-writes-3D6GG6K4.js} +3 -3
- package/dist/{promoted-tweets-HFUAOQLB.js → promoted-tweets-BGQJDEQ2.js} +3 -3
- package/dist/{publish-PTVM5UFZ.js → publish-DBUBFV5R.js} +11 -5
- package/dist/{publish-PTVM5UFZ.js.map → publish-DBUBFV5R.js.map} +1 -1
- package/dist/{query-ZYG5RCCW.js → query-YWDUKFS7.js} +4 -4
- package/dist/{reddit-3KAMZIPT.js → reddit-GPSRX4TI.js} +4 -4
- package/dist/{refresh-7EH4WBYS.js → refresh-3X45Q6ZM.js} +2 -2
- package/dist/{release-JLKYLTRG.js → release-PE7KBFGK.js} +3 -3
- package/dist/{remove-UW5W5FOH.js → remove-2A3XDOKA.js} +2 -2
- package/dist/{reopen-JULIHAMN.js → reopen-LHMLXG6G.js} +3 -3
- package/dist/{rerun-5JXFPGQO.js → rerun-S4VWOIKE.js} +17 -16
- package/dist/{rerun-5JXFPGQO.js.map → rerun-S4VWOIKE.js.map} +1 -1
- package/dist/{research-IZSCSXTD.js → research-55XA4Z2O.js} +2 -2
- package/dist/{research-3BWJCS7N.js → research-JN3JGEEL.js} +13 -13
- package/dist/{reset-QHZ3OIS6.js → reset-C5SDRQTX.js} +2 -2
- package/dist/{reset-WAH4GQSV.js → reset-IY7GNRLF.js} +2 -2
- package/dist/{resolve-AOZWSUYD.js → resolve-PCN7BR7U.js} +3 -3
- package/dist/{retry-UQ4OOYEZ.js → retry-2KYMH2IV.js} +2 -2
- package/dist/{retry-XASANWPI.js → retry-KUWJ4GGA.js} +2 -2
- package/dist/{revenue-YGPP7K6U.js → revenue-CRZRJJ7H.js} +4 -4
- package/dist/{rules-V4I5BVKB.js → rules-EKOXAK2O.js} +5 -5
- package/dist/{rules-add-U2Z56SMZ.js → rules-add-IC3SXNYW.js} +5 -5
- package/dist/{run-YNVT5DYJ.js → run-WUD5U5GY.js} +17 -16
- package/dist/{run-M5FRUIAM.js → run-Y4SEFETX.js} +3 -3
- package/dist/{scaffold-ad-HGI3JCBY.js → scaffold-ad-OJ4WOJM6.js} +10 -10
- package/dist/{scaffold-static-ad-LHVGQ5PM.js → scaffold-static-ad-EXUKKYSD.js} +21 -20
- package/dist/{scaffold-static-ad-LHVGQ5PM.js.map → scaffold-static-ad-EXUKKYSD.js.map} +1 -1
- package/dist/{scaffold-video-WEHH3SO6.js → scaffold-video-7PDZZSKD.js} +9 -9
- package/dist/{schedule-7T2DKJZ3.js → schedule-VCL2OPIL.js} +2 -2
- package/dist/{scheduled-agents-MKKHCNI6.js → scheduled-agents-YAHYCFDA.js} +11 -11
- package/dist/{schema-ID4NETCM.js → schema-L6DGAUB5.js} +4 -4
- package/dist/{screenshot-YRYAOP5E.js → screenshot-RR6RA6CN.js} +3 -2
- package/dist/{screenshot-YRYAOP5E.js.map → screenshot-RR6RA6CN.js.map} +1 -1
- package/dist/{search-XYENZFAC.js → search-OUJUEORX.js} +2 -2
- package/dist/{select-7E6J2FDA.js → select-R3NT7OI4.js} +11 -11
- package/dist/{set-prompt-BNKY5NSE.js → set-prompt-F3SYRT22.js} +8 -8
- package/dist/{setup-links-QV3LBVGK.js → setup-links-AHWFGUAO.js} +3 -3
- package/dist/{shopify-C5I3XHPR.js → shopify-BPQCUFFX.js} +3 -3
- package/dist/{site-NUQ5DHOQ.js → site-KYB2EL72.js} +4 -4
- package/dist/{sources-KS44MMM7.js → sources-JYOOLCOU.js} +6 -6
- package/dist/{sources-IVSFKLP6.js → sources-X4URMRLY.js} +6 -6
- package/dist/{stale-E32VHTTJ.js → stale-KFVY7LSB.js} +10 -10
- package/dist/{status-PPTYL45B.js → status-YVRZBK56.js} +3 -3
- package/dist/{sticker-GXCI4WL5.js → sticker-HMHR7QM7.js} +3 -2
- package/dist/{sticker-GXCI4WL5.js.map → sticker-HMHR7QM7.js.map} +1 -1
- package/dist/{stock-3FZPID6C.js → stock-IAQBUPGQ.js} +4 -3
- package/dist/{stock-3FZPID6C.js.map → stock-IAQBUPGQ.js.map} +1 -1
- package/dist/{sync-G3LSQL6F.js → sync-KJEXXD3P.js} +2 -2
- package/dist/{sync-definition-DR6BUB5O.js → sync-definition-BQUVWLCC.js} +9 -9
- package/dist/{tags-O6LGADB6.js → tags-7CEVWFEZ.js} +3 -3
- package/dist/{tags-BYLXFP34.js → tags-BU4KLB37.js} +4 -4
- package/dist/{tags-FMX7R65M.js → tags-HKR2GWXV.js} +2 -2
- package/dist/{tags-PXAPGDQB.js → tags-SKGPECNG.js} +3 -3
- package/dist/{tags-DHQQ3IWD.js → tags-ZLPLHP2G.js} +3 -3
- package/dist/{targeting-criteria-KJMRWCLU.js → targeting-criteria-4C4M3XLJ.js} +3 -3
- package/dist/{targets-2H2YUI2I.js → targets-C5K2OH3B.js} +3 -3
- package/dist/{testimonials-G6Z327H6.js → testimonials-OJV7EFGS.js} +7 -7
- package/dist/{top-companies-QY6HO4NF.js → top-companies-IZQOKMBU.js} +3 -3
- package/dist/{transcript-LWREF7CB.js → transcript-K6W7VRA5.js} +3 -3
- package/dist/{translate-UUDDDYOQ.js → translate-M6W6KZZS.js} +13 -13
- package/dist/{triggers-RXUVP5CL.js → triggers-CQFQSODZ.js} +3 -3
- package/dist/{unlink-6JN54ATU.js → unlink-ITGOP2YH.js} +3 -3
- package/dist/{unstage-WPBGIMDW.js → unstage-EAUF74PI.js} +3 -3
- package/dist/{update-KKNDQ6FN.js → update-GX26VDM4.js} +3 -3
- package/dist/{update-DCXG3L3J.js → update-HOFM27UT.js} +2 -2
- package/dist/{update-OV6PIXJT.js → update-N5NA3JTW.js} +3 -3
- package/dist/{update-F6JNU2S2.js → update-PCVDM7HO.js} +3 -3
- package/dist/{upload-LSEV74SF.js → upload-3ZGL4WHA.js} +8 -3
- package/dist/{upload-LSEV74SF.js.map → upload-3ZGL4WHA.js.map} +1 -1
- package/dist/{upload-YY74XE3T.js → upload-SPCZNAUN.js} +13 -6
- package/dist/{upload-YY74XE3T.js.map → upload-SPCZNAUN.js.map} +1 -1
- package/dist/{url-options-C3ZOWN2L.js → url-options-5PUWQKWS.js} +2 -2
- package/dist/{url-params-PFZVEDAM.js → url-params-H4LQAYXG.js} +3 -3
- package/dist/{use-D3SKAKUU.js → use-HYK67YKZ.js} +2 -2
- package/dist/{validate-PL73C4PD.js → validate-XHQ4MIW5.js} +11 -11
- package/dist/{videos-DSHCIXAI.js → videos-GY6YCGFH.js} +7 -7
- package/dist/{viewer-check-2XOG5HZT.js → viewer-check-UCNIAY7X.js} +6 -6
- package/dist/{web-GA6S2AAG.js → web-E7XDCTVJ.js} +3 -3
- package/dist/{winning-ads-F6UPR6IO.js → winning-ads-L7FHCD75.js} +3 -3
- package/dist/{write-commands-GBMOJMMW.js → write-commands-JESAYUEQ.js} +4 -4
- package/dist/{x-QX4JZDM4.js → x-ROAUMBHA.js} +6 -6
- package/package.json +1 -1
- package/dist/add-CSRB6GVJ.js.map +0 -1
- package/dist/changes-MVCX3GLE.js.map +0 -1
- package/dist/chunk-2L24FULD.js.map +0 -1
- package/dist/chunk-GN623LEL.js.map +0 -1
- package/dist/chunk-HNELOMY2.js.map +0 -1
- package/dist/chunk-NPGPRZW2.js.map +0 -1
- package/dist/google-TOO3FDZ6.js.map +0 -1
- package/dist/meme-NH4DAORT.js.map +0 -1
- /package/dist/{account-ICRVGRGT.js.map → account-DUGYQJEM.js.map} +0 -0
- /package/dist/{account-users-ENRQBEV4.js.map → account-users-BXJQ4XZV.js.map} +0 -0
- /package/dist/{accounts-MQXVRASU.js.map → accounts-DXQ3DHMB.js.map} +0 -0
- /package/dist/{accounts-4ZSFTWKA.js.map → accounts-KXQY6WKR.js.map} +0 -0
- /package/dist/{accounts-ZFQYZT3J.js.map → accounts-RRCALMPX.js.map} +0 -0
- /package/dist/{actions-B2GTON6O.js.map → actions-LI43PTFN.js.map} +0 -0
- /package/dist/{activecampaign-DCED2LJF.js.map → activecampaign-5A6YHDJW.js.map} +0 -0
- /package/dist/{add-JCNXNGDP.js.map → add-W4HEMTFL.js.map} +0 -0
- /package/dist/{add-SAPHQL5P.js.map → add-ZSKEB3CI.js.map} +0 -0
- /package/dist/{ads-VYMFRGAC.js.map → ads-OC3ENYUC.js.map} +0 -0
- /package/dist/{advertisers-A3Q53R2S.js.map → advertisers-KPVUVXZZ.js.map} +0 -0
- /package/dist/{analytics-5P5DSD5U.js.map → analytics-4WBRNSUC.js.map} +0 -0
- /package/dist/{analytics-XQ3X4EAF.js.map → analytics-XT4ANMLP.js.map} +0 -0
- /package/dist/{assign-7UGEPUCD.js.map → assign-SQK4UF3I.js.map} +0 -0
- /package/dist/{audience-size-VMGWVYVR.js.map → audience-size-5Y5Q6UVA.js.map} +0 -0
- /package/dist/{audit-XG6BYA2E.js.map → audit-GOZNIXNM.js.map} +0 -0
- /package/dist/{autocomplete-OOLUPUIJ.js.map → autocomplete-36S76BGA.js.map} +0 -0
- /package/dist/{avatars-3GVMDI7P.js.map → avatars-SDQ5LCNG.js.map} +0 -0
- /package/dist/{bid-pricing-TRQUA2RV.js.map → bid-pricing-6DFGC6YC.js.map} +0 -0
- /package/dist/{brand-E3SSWHCN.js.map → brand-OISTKMY4.js.map} +0 -0
- /package/dist/{brief-WLOO3Q5L.js.map → brief-2UXKUTFC.js.map} +0 -0
- /package/dist/{campaign-groups-3475EWTI.js.map → campaign-groups-32LDB42N.js.map} +0 -0
- /package/dist/{campaign-writes-UIS7E2DP.js.map → campaign-writes-62V55CNW.js.map} +0 -0
- /package/dist/{campaigns-OQ6IQKGX.js.map → campaigns-I5GSGZDJ.js.map} +0 -0
- /package/dist/{campaigns-LKE7G3YG.js.map → campaigns-OGNE4XHM.js.map} +0 -0
- /package/dist/{canvas-W3RF6NGC.js.map → canvas-HGU7FJ34.js.map} +0 -0
- /package/dist/{capabilities-HNCOIM5X.js.map → capabilities-EDXVGZXC.js.map} +0 -0
- /package/dist/{chats-X6C6DUDX.js.map → chats-HFKSZWZD.js.map} +0 -0
- /package/dist/{check-4J2ROARK.js.map → check-GRVUI3LI.js.map} +0 -0
- /package/dist/{chunk-WDJIGWL2.js.map → chunk-26UW2GMK.js.map} +0 -0
- /package/dist/{chunk-ZGLRYMIR.js.map → chunk-2LGDWOD7.js.map} +0 -0
- /package/dist/{chunk-NPBF3YJO.js.map → chunk-37QHT7J4.js.map} +0 -0
- /package/dist/{chunk-2UGMSILE.js.map → chunk-5NJQXV4K.js.map} +0 -0
- /package/dist/{chunk-PYS733U7.js.map → chunk-724E32DM.js.map} +0 -0
- /package/dist/{chunk-SMZRJYV7.js.map → chunk-72JEATZ5.js.map} +0 -0
- /package/dist/{chunk-AX5BGR4R.js.map → chunk-72VH4FPY.js.map} +0 -0
- /package/dist/{chunk-YUXVZGGB.js.map → chunk-AHZIGJXD.js.map} +0 -0
- /package/dist/{chunk-7QRHJJR5.js.map → chunk-AQ6LJ7EI.js.map} +0 -0
- /package/dist/{chunk-2NHWXWPB.js.map → chunk-CZTKRP6M.js.map} +0 -0
- /package/dist/{chunk-LLBTSJGC.js.map → chunk-DYWKYP7Z.js.map} +0 -0
- /package/dist/{chunk-QIMTC2IW.js.map → chunk-EDWW3THE.js.map} +0 -0
- /package/dist/{chunk-DZJREPT2.js.map → chunk-G3ZUMNLG.js.map} +0 -0
- /package/dist/{chunk-BKLWKZCX.js.map → chunk-GTYVWDCC.js.map} +0 -0
- /package/dist/{chunk-2KFN5CS7.js.map → chunk-HHMBHLX6.js.map} +0 -0
- /package/dist/{chunk-GQEU6IKZ.js.map → chunk-J6KCVW6N.js.map} +0 -0
- /package/dist/{chunk-SDDEECV2.js.map → chunk-KDTSXLY7.js.map} +0 -0
- /package/dist/{chunk-6G4CVXIL.js.map → chunk-KE5TI23P.js.map} +0 -0
- /package/dist/{chunk-XNGJVOXZ.js.map → chunk-KV4E4KGE.js.map} +0 -0
- /package/dist/{chunk-ST5PZM7I.js.map → chunk-KY6Q4WLC.js.map} +0 -0
- /package/dist/{chunk-KAOUWSXH.js.map → chunk-LIBSSGE4.js.map} +0 -0
- /package/dist/{chunk-DG34CPA6.js.map → chunk-LWN3ZNZU.js.map} +0 -0
- /package/dist/{chunk-B5K6KXV2.js.map → chunk-N34A56X7.js.map} +0 -0
- /package/dist/{chunk-PU5UKJ33.js.map → chunk-N472TRB4.js.map} +0 -0
- /package/dist/{chunk-G4MXOYLJ.js.map → chunk-NPDZ4EO6.js.map} +0 -0
- /package/dist/{chunk-OJMALBCI.js.map → chunk-OEH7ANJJ.js.map} +0 -0
- /package/dist/{chunk-WP5YCX3O.js.map → chunk-PBKUESJD.js.map} +0 -0
- /package/dist/{chunk-GQTSGD5D.js.map → chunk-PZSOJYER.js.map} +0 -0
- /package/dist/{chunk-SL2BRBIJ.js.map → chunk-QBCZLD3A.js.map} +0 -0
- /package/dist/{chunk-VRTRMQM2.js.map → chunk-QKHH7YNN.js.map} +0 -0
- /package/dist/{chunk-ZEK6D6SS.js.map → chunk-SKVQRTDO.js.map} +0 -0
- /package/dist/{chunk-CP2A4P2P.js.map → chunk-TXWKDDF6.js.map} +0 -0
- /package/dist/{chunk-TS2F2FXW.js.map → chunk-UB34H4VD.js.map} +0 -0
- /package/dist/{chunk-WWTTPOVW.js.map → chunk-UZEKIMLY.js.map} +0 -0
- /package/dist/{chunk-KPNMSZOM.js.map → chunk-V6N6UBOT.js.map} +0 -0
- /package/dist/{chunk-P7ZLJLQH.js.map → chunk-VKYDHIBT.js.map} +0 -0
- /package/dist/{chunk-KSQXQMDS.js.map → chunk-WLD443MX.js.map} +0 -0
- /package/dist/{chunk-RSLVIXW3.js.map → chunk-WQIHLJAO.js.map} +0 -0
- /package/dist/{chunk-BBW7DZPO.js.map → chunk-X2OVFCRC.js.map} +0 -0
- /package/dist/{chunk-V3RYJ4K2.js.map → chunk-XGN3BGSL.js.map} +0 -0
- /package/dist/{chunk-MDC36LWD.js.map → chunk-YS7T735Q.js.map} +0 -0
- /package/dist/{chunk-FHN4QXZN.js.map → chunk-YXUIVOUL.js.map} +0 -0
- /package/dist/{claim-RRSGEH6S.js.map → claim-NUUED375.js.map} +0 -0
- /package/dist/{companies-L2CN7FG6.js.map → companies-3EKQ6PBV.js.map} +0 -0
- /package/dist/{company-JFVUTAVA.js.map → company-35ZI77NI.js.map} +0 -0
- /package/dist/{complete-AHUP2SHE.js.map → complete-V2HNULPO.js.map} +0 -0
- /package/dist/{connect-HJO52PQR.js.map → connect-77K3A6WK.js.map} +0 -0
- /package/dist/{conversation-Q27J7M75.js.map → conversation-MWBPIT4W.js.map} +0 -0
- /package/dist/{conversions-6N2OWE6G.js.map → conversions-RXNIACU5.js.map} +0 -0
- /package/dist/{create-KQUMF4HV.js.map → create-AE52ZZMG.js.map} +0 -0
- /package/dist/{create-FWH3WEUW.js.map → create-L53KW6GN.js.map} +0 -0
- /package/dist/{create-NJS7I2JX.js.map → create-RJHGT2S4.js.map} +0 -0
- /package/dist/{creatives-U4YGQLOG.js.map → creatives-2JP24JNL.js.map} +0 -0
- /package/dist/{creatives-4ODU5S2G.js.map → creatives-UPZU7BLY.js.map} +0 -0
- /package/dist/{credentials-EJE4L5WS.js.map → credentials-WRC7ERSS.js.map} +0 -0
- /package/dist/{critique-6FULD2C7.js.map → critique-CYV7JQAY.js.map} +0 -0
- /package/dist/{critique-EALNNGJ3.js.map → critique-VTNN6A5I.js.map} +0 -0
- /package/dist/{crm-ONS4PUP5.js.map → crm-2MZLMSEV.js.map} +0 -0
- /package/dist/{crm-MSVXNPKM.js.map → crm-VO6ZBW64.js.map} +0 -0
- /package/dist/{currency-XFY2EX72.js.map → currency-GLHXNSHY.js.map} +0 -0
- /package/dist/{customers-DXOLSUXV.js.map → customers-MHQ72YBY.js.map} +0 -0
- /package/dist/{delete-XWD37C4T.js.map → delete-5NEAIDA4.js.map} +0 -0
- /package/dist/{delete-U7B4N7UA.js.map → delete-6WKVGKRF.js.map} +0 -0
- /package/dist/{delete-ELTUNRSD.js.map → delete-QFASUSVU.js.map} +0 -0
- /package/dist/{delete-TN47CJK7.js.map → delete-ULI3MVAD.js.map} +0 -0
- /package/dist/{demographics-NGWLHRNF.js.map → demographics-5SXTDRFU.js.map} +0 -0
- /package/dist/{discard-SBYNAHJX.js.map → discard-P4PGGYYO.js.map} +0 -0
- /package/dist/{domain-UGVD7HIA.js.map → domain-RINRCQ5G.js.map} +0 -0
- /package/dist/{download-VQCUPJA2.js.map → download-HPYGPNHN.js.map} +0 -0
- /package/dist/{draft-3TZYIB5J.js.map → draft-4WPWILSX.js.map} +0 -0
- /package/dist/{draft-OA35VOHO.js.map → draft-FWCF4Y6P.js.map} +0 -0
- /package/dist/{draft-6V73CF5P.js.map → draft-M7XINDQU.js.map} +0 -0
- /package/dist/{experiments-32DRJBJB.js.map → experiments-NULZPBF2.js.map} +0 -0
- /package/dist/{facets-462KAZH7.js.map → facets-HIADYZQQ.js.map} +0 -0
- /package/dist/{feedback-AWWQN2MR.js.map → feedback-WEZEKTCH.js.map} +0 -0
- /package/dist/{feedback-ME5HYWT5.js.map → feedback-Y4AXR354.js.map} +0 -0
- /package/dist/{feedback-record-G6N3MFMC.js.map → feedback-record-YZNGRSNR.js.map} +0 -0
- /package/dist/{fetch-HVBXROZY.js.map → fetch-T6WPGAWP.js.map} +0 -0
- /package/dist/{fit-XNWSY3ZM.js.map → fit-MLDFA4ZK.js.map} +0 -0
- /package/dist/{flows-AX4LSQYT.js.map → flows-XWU2XNYP.js.map} +0 -0
- /package/dist/{fonts-AZCIRKB4.js.map → fonts-RV5KUGFE.js.map} +0 -0
- /package/dist/{forecast-ALJGK6RQ.js.map → forecast-E5QXQFKQ.js.map} +0 -0
- /package/dist/{funnel-HLYGJU64.js.map → funnel-NMC3JWTF.js.map} +0 -0
- /package/dist/{get-KQ46JY6B.js.map → get-AKTMYS57.js.map} +0 -0
- /package/dist/{get-ZLCZOCUH.js.map → get-JQE7XWKL.js.map} +0 -0
- /package/dist/{get-4NDYA3G6.js.map → get-MK6M4DKF.js.map} +0 -0
- /package/dist/{get-JX5JVWH7.js.map → get-QS2A6YVM.js.map} +0 -0
- /package/dist/{get-KNP2EQRI.js.map → get-UFCNLDE2.js.map} +0 -0
- /package/dist/{google-ads-DYGNJEIT.js.map → google-ads-AFJV5ZJO.js.map} +0 -0
- /package/dist/{history-H2MGZGPB.js.map → history-6RCRBB4Q.js.map} +0 -0
- /package/dist/{history-W25VPQ57.js.map → history-T6Y5IR4V.js.map} +0 -0
- /package/dist/{hubspot-D3TFC24J.js.map → hubspot-SNLOCDPF.js.map} +0 -0
- /package/dist/{ideas-5AEA2RPO.js.map → ideas-VTBVERCN.js.map} +0 -0
- /package/dist/{images-WL3KB35N.js.map → images-36DGQZMH.js.map} +0 -0
- /package/dist/{ingest-5EFT6PCW.js.map → ingest-OJV3CYYK.js.map} +0 -0
- /package/dist/{inspect-4NWXVI4R.js.map → inspect-6P2WNFAC.js.map} +0 -0
- /package/dist/{keyword-metrics-CXGNLERO.js.map → keyword-metrics-IDMR3ES2.js.map} +0 -0
- /package/dist/{keywords-for-site-OYMDRMMX.js.map → keywords-for-site-V3SGYZDW.js.map} +0 -0
- /package/dist/{landing-PECCKQSW.js.map → landing-7PZPYD3M.js.map} +0 -0
- /package/dist/{leads-GUA2XYPF.js.map → leads-TWABHSJH.js.map} +0 -0
- /package/dist/{learn-ZRVONGFT.js.map → learn-MXJSGDVI.js.map} +0 -0
- /package/dist/{line-item-writes-4FGW42W4.js.map → line-item-writes-2R7VSOWO.js.map} +0 -0
- /package/dist/{line-items-BX2D3T6S.js.map → line-items-MY6JP2W6.js.map} +0 -0
- /package/dist/{link-JUNNBOUE.js.map → link-LR5LSFTA.js.map} +0 -0
- /package/dist/{linkedin-6NRMXGBT.js.map → linkedin-UJEBBO7G.js.map} +0 -0
- /package/dist/{linkedin-person-QJ7BREUI.js.map → linkedin-person-5LJEMW54.js.map} +0 -0
- /package/dist/{list-DPQMPO2N.js.map → list-5O5NB56G.js.map} +0 -0
- /package/dist/{list-4PB3SUMX.js.map → list-6AAKH6UV.js.map} +0 -0
- /package/dist/{list-QPTOZWLH.js.map → list-UYQOLFPN.js.map} +0 -0
- /package/dist/{log-O3ABCKXB.js.map → log-LPY5KYGP.js.map} +0 -0
- /package/dist/{logo-R34AWI4C.js.map → logo-SBIDRBA2.js.map} +0 -0
- /package/dist/{make-DS2JT5N4.js.map → make-UK2OYKCZ.js.map} +0 -0
- /package/dist/{map-3RDR7QYX.js.map → map-XEJOI63E.js.map} +0 -0
- /package/dist/{mcp-G52VGFAY.js.map → mcp-Y43SKNHV.js.map} +0 -0
- /package/dist/{media-sources-GJHD737X.js.map → media-sources-POL5DMD4.js.map} +0 -0
- /package/dist/{members-ICR3O2XP.js.map → members-5EJVXTE7.js.map} +0 -0
- /package/dist/{normalize-WLP2AYUD.js.map → normalize-IOW2V6E7.js.map} +0 -0
- /package/dist/{options-G35EJLMF.js.map → options-YD6XFRZV.js.map} +0 -0
- /package/dist/{organization-N5XUAYZQ.js.map → organization-KORFOK7Q.js.map} +0 -0
- /package/dist/{performance-YT2MD4R6.js.map → performance-BXSNPNC3.js.map} +0 -0
- /package/dist/{performance-KHP7T3X7.js.map → performance-Z353JXHB.js.map} +0 -0
- /package/dist/{posts-F7NFSUHV.js.map → posts-K3QTBX2B.js.map} +0 -0
- /package/dist/{preview-YXDLYCIA.js.map → preview-3UGPTK44.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-JTGHVR6D.js.map → promoted-tweet-writes-3D6GG6K4.js.map} +0 -0
- /package/dist/{promoted-tweets-HFUAOQLB.js.map → promoted-tweets-BGQJDEQ2.js.map} +0 -0
- /package/dist/{query-ZYG5RCCW.js.map → query-YWDUKFS7.js.map} +0 -0
- /package/dist/{reddit-3KAMZIPT.js.map → reddit-GPSRX4TI.js.map} +0 -0
- /package/dist/{refresh-7EH4WBYS.js.map → refresh-3X45Q6ZM.js.map} +0 -0
- /package/dist/{release-JLKYLTRG.js.map → release-PE7KBFGK.js.map} +0 -0
- /package/dist/{remove-UW5W5FOH.js.map → remove-2A3XDOKA.js.map} +0 -0
- /package/dist/{reopen-JULIHAMN.js.map → reopen-LHMLXG6G.js.map} +0 -0
- /package/dist/{research-IZSCSXTD.js.map → research-55XA4Z2O.js.map} +0 -0
- /package/dist/{research-3BWJCS7N.js.map → research-JN3JGEEL.js.map} +0 -0
- /package/dist/{reset-QHZ3OIS6.js.map → reset-C5SDRQTX.js.map} +0 -0
- /package/dist/{reset-WAH4GQSV.js.map → reset-IY7GNRLF.js.map} +0 -0
- /package/dist/{resolve-AOZWSUYD.js.map → resolve-PCN7BR7U.js.map} +0 -0
- /package/dist/{retry-UQ4OOYEZ.js.map → retry-2KYMH2IV.js.map} +0 -0
- /package/dist/{retry-XASANWPI.js.map → retry-KUWJ4GGA.js.map} +0 -0
- /package/dist/{revenue-YGPP7K6U.js.map → revenue-CRZRJJ7H.js.map} +0 -0
- /package/dist/{rules-V4I5BVKB.js.map → rules-EKOXAK2O.js.map} +0 -0
- /package/dist/{rules-add-U2Z56SMZ.js.map → rules-add-IC3SXNYW.js.map} +0 -0
- /package/dist/{run-YNVT5DYJ.js.map → run-WUD5U5GY.js.map} +0 -0
- /package/dist/{run-M5FRUIAM.js.map → run-Y4SEFETX.js.map} +0 -0
- /package/dist/{scaffold-ad-HGI3JCBY.js.map → scaffold-ad-OJ4WOJM6.js.map} +0 -0
- /package/dist/{scaffold-video-WEHH3SO6.js.map → scaffold-video-7PDZZSKD.js.map} +0 -0
- /package/dist/{schedule-7T2DKJZ3.js.map → schedule-VCL2OPIL.js.map} +0 -0
- /package/dist/{scheduled-agents-MKKHCNI6.js.map → scheduled-agents-YAHYCFDA.js.map} +0 -0
- /package/dist/{schema-ID4NETCM.js.map → schema-L6DGAUB5.js.map} +0 -0
- /package/dist/{search-XYENZFAC.js.map → search-OUJUEORX.js.map} +0 -0
- /package/dist/{select-7E6J2FDA.js.map → select-R3NT7OI4.js.map} +0 -0
- /package/dist/{set-prompt-BNKY5NSE.js.map → set-prompt-F3SYRT22.js.map} +0 -0
- /package/dist/{setup-links-QV3LBVGK.js.map → setup-links-AHWFGUAO.js.map} +0 -0
- /package/dist/{shopify-C5I3XHPR.js.map → shopify-BPQCUFFX.js.map} +0 -0
- /package/dist/{site-NUQ5DHOQ.js.map → site-KYB2EL72.js.map} +0 -0
- /package/dist/{sources-KS44MMM7.js.map → sources-JYOOLCOU.js.map} +0 -0
- /package/dist/{sources-IVSFKLP6.js.map → sources-X4URMRLY.js.map} +0 -0
- /package/dist/{stale-E32VHTTJ.js.map → stale-KFVY7LSB.js.map} +0 -0
- /package/dist/{status-PPTYL45B.js.map → status-YVRZBK56.js.map} +0 -0
- /package/dist/{sync-G3LSQL6F.js.map → sync-KJEXXD3P.js.map} +0 -0
- /package/dist/{sync-definition-DR6BUB5O.js.map → sync-definition-BQUVWLCC.js.map} +0 -0
- /package/dist/{tags-O6LGADB6.js.map → tags-7CEVWFEZ.js.map} +0 -0
- /package/dist/{tags-BYLXFP34.js.map → tags-BU4KLB37.js.map} +0 -0
- /package/dist/{tags-FMX7R65M.js.map → tags-HKR2GWXV.js.map} +0 -0
- /package/dist/{tags-PXAPGDQB.js.map → tags-SKGPECNG.js.map} +0 -0
- /package/dist/{tags-DHQQ3IWD.js.map → tags-ZLPLHP2G.js.map} +0 -0
- /package/dist/{targeting-criteria-KJMRWCLU.js.map → targeting-criteria-4C4M3XLJ.js.map} +0 -0
- /package/dist/{targets-2H2YUI2I.js.map → targets-C5K2OH3B.js.map} +0 -0
- /package/dist/{testimonials-G6Z327H6.js.map → testimonials-OJV7EFGS.js.map} +0 -0
- /package/dist/{top-companies-QY6HO4NF.js.map → top-companies-IZQOKMBU.js.map} +0 -0
- /package/dist/{transcript-LWREF7CB.js.map → transcript-K6W7VRA5.js.map} +0 -0
- /package/dist/{translate-UUDDDYOQ.js.map → translate-M6W6KZZS.js.map} +0 -0
- /package/dist/{triggers-RXUVP5CL.js.map → triggers-CQFQSODZ.js.map} +0 -0
- /package/dist/{unlink-6JN54ATU.js.map → unlink-ITGOP2YH.js.map} +0 -0
- /package/dist/{unstage-WPBGIMDW.js.map → unstage-EAUF74PI.js.map} +0 -0
- /package/dist/{update-KKNDQ6FN.js.map → update-GX26VDM4.js.map} +0 -0
- /package/dist/{update-DCXG3L3J.js.map → update-HOFM27UT.js.map} +0 -0
- /package/dist/{update-OV6PIXJT.js.map → update-N5NA3JTW.js.map} +0 -0
- /package/dist/{update-F6JNU2S2.js.map → update-PCVDM7HO.js.map} +0 -0
- /package/dist/{url-options-C3ZOWN2L.js.map → url-options-5PUWQKWS.js.map} +0 -0
- /package/dist/{url-params-PFZVEDAM.js.map → url-params-H4LQAYXG.js.map} +0 -0
- /package/dist/{use-D3SKAKUU.js.map → use-HYK67YKZ.js.map} +0 -0
- /package/dist/{validate-PL73C4PD.js.map → validate-XHQ4MIW5.js.map} +0 -0
- /package/dist/{videos-DSHCIXAI.js.map → videos-GY6YCGFH.js.map} +0 -0
- /package/dist/{viewer-check-2XOG5HZT.js.map → viewer-check-UCNIAY7X.js.map} +0 -0
- /package/dist/{web-GA6S2AAG.js.map → web-E7XDCTVJ.js.map} +0 -0
- /package/dist/{winning-ads-F6UPR6IO.js.map → winning-ads-L7FHCD75.js.map} +0 -0
- /package/dist/{write-commands-GBMOJMMW.js.map → write-commands-JESAYUEQ.js.map} +0 -0
- /package/dist/{x-QX4JZDM4.js.map → x-ROAUMBHA.js.map} +0 -0
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
parseDays,
|
|
4
4
|
performanceCommand,
|
|
5
5
|
withDefinitions
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-UZEKIMLY.js";
|
|
7
|
+
import "./chunk-DYWKYP7Z.js";
|
|
8
|
+
import "./chunk-TK7VRZKM.js";
|
|
9
9
|
import "./chunk-QV6AST5T.js";
|
|
10
10
|
import "./chunk-WCU362Z6.js";
|
|
11
11
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -24,4 +24,4 @@ export {
|
|
|
24
24
|
performanceCommand,
|
|
25
25
|
withDefinitions
|
|
26
26
|
};
|
|
27
|
-
//# sourceMappingURL=performance-
|
|
27
|
+
//# sourceMappingURL=performance-BXSNPNC3.js.map
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
import "./chunk-NKQWDEB7.js";
|
|
7
7
|
import {
|
|
8
8
|
failApi
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DYWKYP7Z.js";
|
|
10
10
|
import {
|
|
11
11
|
calendarDaySchema,
|
|
12
12
|
todayUtc
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-TK7VRZKM.js";
|
|
14
14
|
import "./chunk-QV6AST5T.js";
|
|
15
15
|
import "./chunk-WCU362Z6.js";
|
|
16
16
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -5562,4 +5562,4 @@ Full guide: __tooling__/docs/tools/baker/ads-performance.md`
|
|
|
5562
5562
|
export {
|
|
5563
5563
|
performanceCommand
|
|
5564
5564
|
};
|
|
5565
|
-
//# sourceMappingURL=performance-
|
|
5565
|
+
//# sourceMappingURL=performance-Z353JXHB.js.map
|
|
@@ -5,7 +5,8 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
OUTPUT_ARGS,
|
|
7
7
|
writeProviderHits
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KNA3OWJC.js";
|
|
9
|
+
import "./chunk-I7OJZ7QE.js";
|
|
9
10
|
import {
|
|
10
11
|
ApiError,
|
|
11
12
|
apiPost
|
|
@@ -101,4 +102,4 @@ var pinterestCommand = defineCommand({
|
|
|
101
102
|
export {
|
|
102
103
|
pinterestCommand
|
|
103
104
|
};
|
|
104
|
-
//# sourceMappingURL=pinterest-
|
|
105
|
+
//# sourceMappingURL=pinterest-42NLOZW4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/images/pinterest.ts"],"sourcesContent":["import type { ImagesPinterestRequest, ImagesPinterestResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { AUTO_INGEST_MAX, parseAutoIngest } from \"./autoIngest.ts\";\nimport { OUTPUT_ARGS, writeProviderHits } from \"./providerHits.ts\";\n\nregisterSchema({\n command: \"images.pinterest\",\n description:\n \"Pinterest image search via ScrapeCreators. Reference-grade real-world photography, product styling, interiors, fashion, food, and aesthetic mood boards. Inspect before placing — Pinterest is unverified, trademark-bearing web content.\",\n args: {\n query: { type: \"string\", description: \"Search query\", required: true },\n limit: { type: \"number\", description: \"Max results (1-20, default 5)\", required: false, default: 5 },\n \"auto-ingest\": {\n type: \"number\",\n description: `Auto-ingest top N (0-${AUTO_INGEST_MAX.pinterest}, default 0) and return Baker-owned URLs on ingested hits`,\n required: false,\n default: 0,\n },\n context: {\n type: \"string\",\n description: \"Free-text hint applied to every auto-ingested hit (overrides the pin title)\",\n required: false,\n },\n output: { type: \"string\", description: \"Output format: json|files|md\", required: false, default: \"json\" },\n fields: { type: \"string\", description: \"Comma-separated field names to include\", required: false },\n full: { type: \"boolean\", description: \"Include full metadata\", required: false, default: false },\n },\n});\n\nexport const pinterestCommand = defineCommand({\n meta: {\n name: \"pinterest\",\n description:\n \"Pinterest image search via ScrapeCreators ($0.00188/request). Best for photo-realistic reference imagery — lifestyle, interiors, fashion, food, product styling, and mood boards to brief AI generation against. ⚠ Unverified, trademark-bearing web content — inspect and respect rights before placing on a customer page. Browse first; auto-ingest only the pins you commit to.\\n\\nExamples:\\n baker images pinterest 'scandinavian living room'\\n baker images pinterest 'minimalist skincare product photography' --limit 20\\n baker images pinterest 'cozy coffee shop interior' --auto-ingest 2 --context 'Mood reference for hero photography'\",\n },\n args: {\n query: { type: \"positional\", description: \"Search query\", required: false },\n limit: { type: \"string\", description: \"Max results (1-20)\", required: false },\n \"auto-ingest\": {\n type: \"string\",\n description: `Auto-ingest top N (0-${AUTO_INGEST_MAX.pinterest}) and return Baker-owned URLs on ingested hits`,\n required: false,\n },\n context: { type: \"string\", description: \"Description context hint applied to auto-ingested hits\", required: false },\n ...OUTPUT_ARGS,\n },\n run: async ({ args }) => {\n try {\n const query = args.query as string | undefined;\n if (!query) {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: \"Query is required\" } });\n process.exit(1);\n }\n const body: ImagesPinterestRequest = { query };\n if (args.limit) body.limit = Number(args.limit);\n if (args[\"auto-ingest\"] !== undefined) {\n const parsed = parseAutoIngest(args[\"auto-ingest\"], AUTO_INGEST_MAX.pinterest);\n if (!parsed.ok) {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: parsed.message,\n fix: {\n action: \"retry_with_changes\",\n explanation: `Re-run with --auto-ingest in 0-${AUTO_INGEST_MAX.pinterest}.`,\n },\n },\n });\n process.exit(1);\n }\n body.autoIngest = parsed.value;\n }\n if (args.context) body.descriptionContext = args.context as string;\n\n const data = await apiPost<ImagesPinterestResponse>(\"/api/images/pinterest\", body);\n writeProviderHits(data, data.hits, args as Record<string, unknown>, []);\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":"
|
|
1
|
+
{"version":3,"sources":["../src/commands/images/pinterest.ts"],"sourcesContent":["import type { ImagesPinterestRequest, ImagesPinterestResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { AUTO_INGEST_MAX, parseAutoIngest } from \"./autoIngest.ts\";\nimport { OUTPUT_ARGS, writeProviderHits } from \"./providerHits.ts\";\n\nregisterSchema({\n command: \"images.pinterest\",\n description:\n \"Pinterest image search via ScrapeCreators. Reference-grade real-world photography, product styling, interiors, fashion, food, and aesthetic mood boards. Inspect before placing — Pinterest is unverified, trademark-bearing web content.\",\n args: {\n query: { type: \"string\", description: \"Search query\", required: true },\n limit: { type: \"number\", description: \"Max results (1-20, default 5)\", required: false, default: 5 },\n \"auto-ingest\": {\n type: \"number\",\n description: `Auto-ingest top N (0-${AUTO_INGEST_MAX.pinterest}, default 0) and return Baker-owned URLs on ingested hits`,\n required: false,\n default: 0,\n },\n context: {\n type: \"string\",\n description: \"Free-text hint applied to every auto-ingested hit (overrides the pin title)\",\n required: false,\n },\n output: { type: \"string\", description: \"Output format: json|files|md\", required: false, default: \"json\" },\n fields: { type: \"string\", description: \"Comma-separated field names to include\", required: false },\n full: { type: \"boolean\", description: \"Include full metadata\", required: false, default: false },\n },\n});\n\nexport const pinterestCommand = defineCommand({\n meta: {\n name: \"pinterest\",\n description:\n \"Pinterest image search via ScrapeCreators ($0.00188/request). Best for photo-realistic reference imagery — lifestyle, interiors, fashion, food, product styling, and mood boards to brief AI generation against. ⚠ Unverified, trademark-bearing web content — inspect and respect rights before placing on a customer page. Browse first; auto-ingest only the pins you commit to.\\n\\nExamples:\\n baker images pinterest 'scandinavian living room'\\n baker images pinterest 'minimalist skincare product photography' --limit 20\\n baker images pinterest 'cozy coffee shop interior' --auto-ingest 2 --context 'Mood reference for hero photography'\",\n },\n args: {\n query: { type: \"positional\", description: \"Search query\", required: false },\n limit: { type: \"string\", description: \"Max results (1-20)\", required: false },\n \"auto-ingest\": {\n type: \"string\",\n description: `Auto-ingest top N (0-${AUTO_INGEST_MAX.pinterest}) and return Baker-owned URLs on ingested hits`,\n required: false,\n },\n context: { type: \"string\", description: \"Description context hint applied to auto-ingested hits\", required: false },\n ...OUTPUT_ARGS,\n },\n run: async ({ args }) => {\n try {\n const query = args.query as string | undefined;\n if (!query) {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: \"Query is required\" } });\n process.exit(1);\n }\n const body: ImagesPinterestRequest = { query };\n if (args.limit) body.limit = Number(args.limit);\n if (args[\"auto-ingest\"] !== undefined) {\n const parsed = parseAutoIngest(args[\"auto-ingest\"], AUTO_INGEST_MAX.pinterest);\n if (!parsed.ok) {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: parsed.message,\n fix: {\n action: \"retry_with_changes\",\n explanation: `Re-run with --auto-ingest in 0-${AUTO_INGEST_MAX.pinterest}.`,\n },\n },\n });\n process.exit(1);\n }\n body.autoIngest = parsed.value;\n }\n if (args.context) body.descriptionContext = args.context as string;\n\n const data = await apiPost<ImagesPinterestResponse>(\"/api/images/pinterest\", body);\n writeProviderHits(data, data.hits, args as Record<string, unknown>, []);\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":";;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAO9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,OAAO,EAAE,MAAM,UAAU,aAAa,gBAAgB,UAAU,KAAK;AAAA,IACrE,OAAO,EAAE,MAAM,UAAU,aAAa,iCAAiC,UAAU,OAAO,SAAS,EAAE;AAAA,IACnG,eAAe;AAAA,MACb,MAAM;AAAA,MACN,aAAa,wBAAwB,gBAAgB,SAAS;AAAA,MAC9D,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ,EAAE,MAAM,UAAU,aAAa,gCAAgC,UAAU,OAAO,SAAS,OAAO;AAAA,IACxG,QAAQ,EAAE,MAAM,UAAU,aAAa,0CAA0C,UAAU,MAAM;AAAA,IACjG,MAAM,EAAE,MAAM,WAAW,aAAa,yBAAyB,UAAU,OAAO,SAAS,MAAM;AAAA,EACjG;AACF,CAAC;AAEM,IAAM,mBAAmB,cAAc;AAAA,EAC5C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,OAAO,EAAE,MAAM,cAAc,aAAa,gBAAgB,UAAU,MAAM;AAAA,IAC1E,OAAO,EAAE,MAAM,UAAU,aAAa,sBAAsB,UAAU,MAAM;AAAA,IAC5E,eAAe;AAAA,MACb,MAAM;AAAA,MACN,aAAa,wBAAwB,gBAAgB,SAAS;AAAA,MAC9D,UAAU;AAAA,IACZ;AAAA,IACA,SAAS,EAAE,MAAM,UAAU,aAAa,0DAA0D,UAAU,MAAM;AAAA,IAClH,GAAG;AAAA,EACL;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,QAAQ,KAAK;AACnB,UAAI,CAAC,OAAO;AACV,kBAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,oBAAoB,SAAS,oBAAoB,EAAE,CAAC;AAC1F,gBAAQ,KAAK,CAAC;AAAA,MAChB;AACA,YAAM,OAA+B,EAAE,MAAM;AAC7C,UAAI,KAAK,MAAO,MAAK,QAAQ,OAAO,KAAK,KAAK;AAC9C,UAAI,KAAK,aAAa,MAAM,QAAW;AACrC,cAAM,SAAS,gBAAgB,KAAK,aAAa,GAAG,gBAAgB,SAAS;AAC7E,YAAI,CAAC,OAAO,IAAI;AACd,oBAAU;AAAA,YACR,IAAI;AAAA,YACJ,OAAO;AAAA,cACL,MAAM;AAAA,cACN,SAAS,OAAO;AAAA,cAChB,KAAK;AAAA,gBACH,QAAQ;AAAA,gBACR,aAAa,kCAAkC,gBAAgB,SAAS;AAAA,cAC1E;AAAA,YACF;AAAA,UACF,CAAC;AACD,kBAAQ,KAAK,CAAC;AAAA,QAChB;AACA,aAAK,aAAa,OAAO;AAAA,MAC3B;AACA,UAAI,KAAK,QAAS,MAAK,qBAAqB,KAAK;AAEjD,YAAM,OAAO,MAAM,QAAiC,yBAAyB,IAAI;AACjF,wBAAkB,MAAM,KAAK,MAAM,MAAiC,CAAC,CAAC;AAAA,IACxE,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":[]}
|
|
@@ -23,7 +23,7 @@ Full guide: __tooling__/docs/tools/baker/posts.md`
|
|
|
23
23
|
list: () => import("./list-2NWMHKTR.js").then((m) => m.listCommand),
|
|
24
24
|
get: () => import("./get-X44ZCIFN.js").then((m) => m.getCommand),
|
|
25
25
|
search: () => import("./search-EKTUTXVN.js").then((m) => m.searchCommand),
|
|
26
|
-
add: () => import("./add-
|
|
26
|
+
add: () => import("./add-TJHGYZYH.js").then((m) => m.addCommand),
|
|
27
27
|
suggest: () => import("./suggest-DSMKK4FP.js").then((m) => m.suggestCommand),
|
|
28
28
|
approved: () => import("./approved-RP5ADN7E.js").then((m) => m.approvedCommand),
|
|
29
29
|
tag: () => import("./tag-L2H5TSFJ.js").then((m) => m.tagCommand),
|
|
@@ -33,4 +33,4 @@ Full guide: __tooling__/docs/tools/baker/posts.md`
|
|
|
33
33
|
export {
|
|
34
34
|
postsCommand
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=posts-
|
|
36
|
+
//# sourceMappingURL=posts-K3QTBX2B.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
handleLinkedinError,
|
|
3
3
|
resolveAccountIdArg
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-J6KCVW6N.js";
|
|
5
5
|
import {
|
|
6
6
|
AD_PREVIEW_DIR,
|
|
7
7
|
renderAdPreviews
|
|
@@ -10,7 +10,7 @@ import "./chunk-VN3WDB4O.js";
|
|
|
10
10
|
import {
|
|
11
11
|
writeJsonEnvelope
|
|
12
12
|
} from "./chunk-QYH2UZAK.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-TK7VRZKM.js";
|
|
14
14
|
import "./chunk-QV6AST5T.js";
|
|
15
15
|
import "./chunk-WCU362Z6.js";
|
|
16
16
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -98,4 +98,4 @@ Examples:
|
|
|
98
98
|
export {
|
|
99
99
|
previewCommand
|
|
100
100
|
};
|
|
101
|
-
//# sourceMappingURL=preview-
|
|
101
|
+
//# sourceMappingURL=preview-3UGPTK44.js.map
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
stageAccountId,
|
|
5
5
|
stageXOp,
|
|
6
6
|
stageXOps
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-VKYDHIBT.js";
|
|
8
8
|
import "./chunk-FIN4ZXGJ.js";
|
|
9
9
|
import "./chunk-H6GTG665.js";
|
|
10
10
|
import "./chunk-QYH2UZAK.js";
|
|
11
11
|
import {
|
|
12
12
|
TARGETING_OPERATORS,
|
|
13
13
|
TARGETING_TYPES
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-TK7VRZKM.js";
|
|
15
15
|
import "./chunk-QV6AST5T.js";
|
|
16
16
|
import "./chunk-WCU362Z6.js";
|
|
17
17
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -180,4 +180,4 @@ export {
|
|
|
180
180
|
targetingCriteriaCreateCommand,
|
|
181
181
|
targetingCriteriaRemoveCommand
|
|
182
182
|
};
|
|
183
|
-
//# sourceMappingURL=promoted-tweet-writes-
|
|
183
|
+
//# sourceMappingURL=promoted-tweet-writes-3D6GG6K4.js.map
|
|
@@ -101,8 +101,8 @@ Examples:
|
|
|
101
101
|
},
|
|
102
102
|
subCommands: {
|
|
103
103
|
list: promotedTweetsListCommand,
|
|
104
|
-
create: () => import("./promoted-tweet-writes-
|
|
105
|
-
remove: () => import("./promoted-tweet-writes-
|
|
104
|
+
create: () => import("./promoted-tweet-writes-3D6GG6K4.js").then((m) => m.promotedTweetsCreateCommand),
|
|
105
|
+
remove: () => import("./promoted-tweet-writes-3D6GG6K4.js").then((m) => m.promotedTweetsRemoveCommand)
|
|
106
106
|
},
|
|
107
107
|
args: {
|
|
108
108
|
"account-id": { type: "string", description: "X Ads account ID" },
|
|
@@ -116,4 +116,4 @@ Examples:
|
|
|
116
116
|
export {
|
|
117
117
|
promotedTweetsCommand
|
|
118
118
|
};
|
|
119
|
-
//# sourceMappingURL=promoted-tweets-
|
|
119
|
+
//# sourceMappingURL=promoted-tweets-BGQJDEQ2.js.map
|
|
@@ -19,9 +19,12 @@ import {
|
|
|
19
19
|
uploadLocalImage,
|
|
20
20
|
waitForReadyImage
|
|
21
21
|
} from "./chunk-VIRPAJEF.js";
|
|
22
|
+
import {
|
|
23
|
+
librarySaveHint
|
|
24
|
+
} from "./chunk-I7OJZ7QE.js";
|
|
22
25
|
import {
|
|
23
26
|
fetchRunRecord
|
|
24
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-AQ6LJ7EI.js";
|
|
25
28
|
import {
|
|
26
29
|
findWorkspaceRoot
|
|
27
30
|
} from "./chunk-N3PASNUA.js";
|
|
@@ -30,7 +33,7 @@ import {
|
|
|
30
33
|
} from "./chunk-EL3TDR5S.js";
|
|
31
34
|
import "./chunk-G6U45QD3.js";
|
|
32
35
|
import "./chunk-X6U3B6YK.js";
|
|
33
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-TK7VRZKM.js";
|
|
34
37
|
import "./chunk-QV6AST5T.js";
|
|
35
38
|
import "./chunk-WCU362Z6.js";
|
|
36
39
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -317,14 +320,17 @@ var publishCommand = defineCommand({
|
|
|
317
320
|
runId
|
|
318
321
|
};
|
|
319
322
|
if (file && isVideoFile(file)) {
|
|
320
|
-
|
|
323
|
+
const published = await publishVideoCreative({ ...publishArgs, file });
|
|
324
|
+
const savedVideo = librarySaveHint("video library", [published.data.videoId]);
|
|
325
|
+
writeJson({ ...published, hints: [...published.hints ?? [], ...savedVideo ? [savedVideo] : []] });
|
|
321
326
|
return;
|
|
322
327
|
}
|
|
323
328
|
const data = await publishCreative({
|
|
324
329
|
...publishArgs,
|
|
325
330
|
output: args.output
|
|
326
331
|
});
|
|
327
|
-
|
|
332
|
+
const saved = librarySaveHint("image library", data.sizes?.map((size) => size.imageId) ?? [data.imageId]);
|
|
333
|
+
writeJson({ ok: true, data, hints: [...data.sizes ? [SIZES_HINT] : [], ...saved ? [saved] : []] });
|
|
328
334
|
} catch (err) {
|
|
329
335
|
if (err instanceof ApiError) {
|
|
330
336
|
writeJson({ ok: false, error: { code: err.code, message: err.message } });
|
|
@@ -341,4 +347,4 @@ export {
|
|
|
341
347
|
publishCreative,
|
|
342
348
|
publishVideoCreative
|
|
343
349
|
};
|
|
344
|
-
//# sourceMappingURL=publish-
|
|
350
|
+
//# sourceMappingURL=publish-DBUBFV5R.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/creatives/publish.ts"],"sourcesContent":["import { Buffer } from \"node:buffer\";\nimport type {\n CreativesPublishVideoRequest,\n CreativesPublishVideoResponse,\n CreativesRunData,\n CreativesRunOutput,\n} from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError } from \"../../client.ts\";\nimport { sha256Hex } from \"../../engine/storage/sha256.ts\";\nimport { optionalChatId } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { advanceDefinitionStatus, definitionPathFor } from \"../canvas/definition-status.ts\";\nimport { findWorkspaceRoot } from \"../canvas/normalize-paths.ts\";\nimport { fetchRunRecord } from \"../canvas/run-history.ts\";\nimport {\n defaultImageApiDeps,\n detectImageContentType,\n type ImageApiDeps,\n imageProcessingTimeoutMs,\n publishImageAsCreative,\n uploadImageBytes,\n uploadLocalImage,\n waitForReadyImage,\n} from \"../images/api.ts\";\nimport {\n defaultVideoApiDeps,\n detectVideoContentType,\n isVideoFile,\n uploadLocalVideo,\n type VideoApiDeps,\n videoProcessingTimeoutMs,\n waitForPlayableVideo,\n} from \"../videos/api.ts\";\n\nconst creativeContentTypes = [\"image/png\", \"image/jpeg\", \"image/webp\"] as const;\nconst creativeVideoContentTypes = [\"video/mp4\", \"video/quicktime\", \"video/webm\"] as const;\nconst UNSUPPORTED_CREATIVE_FILE =\n \"Unsupported creative file extension. Use PNG, JPG or WebP for an image, MP4, MOV or WebM for a video.\";\n\ntype CreativeReference = {\n type: \"creative\";\n slug: string;\n creativeId: string;\n title: string;\n asset: {\n kind: \"static_image\";\n imageId: string;\n imageUrl: string;\n storageKey?: string;\n width?: number;\n height?: number;\n aspectRatio?: number;\n };\n imageUrl: string;\n thumbnailUrl: string;\n storageKey?: string;\n sourceReferenceUrl?: string;\n width?: number;\n height?: number;\n aspectRatio?: number;\n};\n\ntype CreativesPublishResult = {\n creativeId: string;\n imageId: string;\n reference: CreativeReference;\n /** Every size the run made, saved to the library as one set, the lead first. */\n sizes?: Array<{ format: string; imageId: string }>;\n /** Set when `src/creatives/<slug>/_definition.md` was moved to `published`. */\n definitionStatus?: \"published\";\n};\n\nconst DESCRIPTION = `Save a finished creative to Baker Creatives and return a creative reference: a static image (PNG/JPG/WebP) or a finished video render (MP4/MOV/WebM).\nStart here:\n baker creatives publish ./canvas/r_01K…/final_4x5.png --title \"Spring Offer\" --slug spring-offer --run-id r_01K…\n baker creatives publish --title \"Spring Offer\" --slug spring-offer --run-id r_01K… --output 4:5\n baker creatives publish ./canvas/r_01K…/final.mp4 --title \"Spring Offer Reel\" --slug spring-offer --run-id r_01K…\nWith --run-id and no file, every size the run made is saved to the library as one set, the lead size first, and the lead is the creative's cover (--output picks another cover); \\`sizes\\` names each size's image id. A video goes to the company's video library first and is saved once it plays (up to 3 minutes); it needs the file and --slug. Choose and save the finished version yourself, including in the turn that rendered it. Saving pins that version without recording user approval or putting an ad live. An image publish marks the creative's _definition.md published.`;\n\nconst ARGS = {\n file: {\n type: \"string\",\n description:\n \"Local creative file: PNG/JPG/WebP image or MP4/MOV/WebM video. Optional for an image with --run-id: the run's saved output is used instead.\",\n required: false,\n },\n title: { type: \"string\", description: \"Human title for the creative output\", required: true },\n context: { type: \"string\", description: \"Optional describe context for the image asset\", required: false },\n sourceReferenceUrl: {\n type: \"string\",\n description: \"Optional URL of the original reference ad\",\n required: false,\n },\n slug: {\n type: \"string\",\n description:\n \"Creative slug (src/creatives/<slug>/). Attaches the image or video to that creative's row. Required for a video\",\n required: false,\n },\n runId: {\n type: \"string\",\n description: \"Canvas run id (r_…) of the finished generation to pin as published\",\n required: false,\n },\n output: {\n type: \"string\",\n description:\n \"With --run-id and no file: which of the run's sizes is the creative's cover, by label (e.g. 9:16), slot, or number (1 = first). Every size is saved either way; default the lead. `--output json` is the output format, never a cover.\",\n required: false,\n },\n} as const;\n\nregisterSchema({ command: \"creatives.publish\", description: DESCRIPTION, args: ARGS });\n\n/** Which saved size goes where, said when a creative was saved in several. */\nconst SIZES_HINT =\n \"Each size is its own image: on Meta, stage the 4:5 for Feed and the 9:16 for Stories and Reels (one ad, asset_customization_rules); LinkedIn takes the 1:1.\";\n\nexport function detectCreativeContentType(filePath: string): string {\n return detectImageContentType(filePath, {\n allowedContentTypes: creativeContentTypes,\n unsupportedMessage: UNSUPPORTED_CREATIVE_FILE,\n });\n}\n\nfunction chatIdFromEnv(): string | undefined {\n // Soft read: publish attribution is best-effort. Direct callers (tests,\n // local one-offs) may run without the full env contract — missing creds\n // already fail loudly at the API call itself.\n return optionalChatId();\n}\n\nfunction parseOptionalUrl(value: string | undefined): string | undefined {\n if (value === undefined || value.trim() === \"\") {\n return undefined;\n }\n\n try {\n return new URL(value).toString();\n } catch {\n throw new ApiError(\"VALIDATION_ERROR\", \"--source-reference-url must be a valid URL\");\n }\n}\n\n/** What publishing needs beyond the image API: fetching a run's output, and where the workspace is. */\nexport type PublishDeps = ImageApiDeps & {\n download?: (url: string) => Promise<Buffer>;\n workspaceRoot?: string;\n};\n\nasync function downloadBytes(url: string): Promise<Buffer> {\n const res = await fetch(url);\n if (!res.ok) throw new ApiError(\"UNAVAILABLE\", `Could not read the run's output (${res.status} ${res.statusText})`);\n return Buffer.from(await res.arrayBuffer());\n}\n\n/**\n * The run's result, when it is still images, in the order the run delivered them. Only the\n * final outputs of a finished run count: the frames and reference sheets its steps made on\n * the way are images too, and publishing one of those would save a stand-in as the creative.\n */\nfunction runImages(run: CreativesRunData): CreativesRunOutput[] {\n if (run.status !== \"completed\") {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n `Run ${run.runId} did not finish (${run.status}), so it has no result to publish. Finish the run first, or pass the image file.`,\n );\n }\n const finals = run.finalOutputs.filter((o) => typeof o.url === \"string\");\n if (finals.some((o) => !creativeContentTypes.some((t) => t === o.mime))) {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n `Run ${run.runId} made a video, not a still image. Publish the video file: baker creatives publish ./canvas/${run.runId}/<file>.mp4 --slug <slug> --run-id ${run.runId}.`,\n );\n }\n return finals;\n}\n\nfunction describeOutputs(outputs: CreativesRunOutput[]): string {\n return outputs.map((o, i) => `${i + 1}: ${o.label ?? o.slot}`).join(\", \");\n}\n\n/** The id a static ad's graph gives the lead size at its delivered pixels (`static_master`). */\nconst MASTER_NODE = \"master\";\n\n/**\n * The run's sizes with its lead first: the one its master made (a static ad's lead size), else the\n * order the run delivered them in. Review, Oct 2026: sizes labelled [\"9:16\", \"4:5\"] made the Stories\n * size the creative's cover. Pure.\n */\nfunction leadFirst(run: CreativesRunData, images: readonly CreativesRunOutput[]): CreativesRunOutput[] {\n const master = new Set(\n run.nodes.filter((n) => n.nodeId === MASTER_NODE).flatMap((n) => n.outputs.map((o) => o.sha256)),\n );\n const at = images.findIndex((o) => master.has(o.sha256));\n return at > 0 ? [images[at] as CreativesRunOutput, ...images.filter((_, i) => i !== at)] : [...images];\n}\n\n/**\n * Every size the run made, lead first, and which is the cover: the lead, or the one `choice` names\n * by label, slot or number.\n */\nfunction orderedOutputs(\n run: CreativesRunData,\n choice: string | undefined,\n): { outputs: CreativesRunOutput[]; cover: number } {\n const images = leadFirst(run, runImages(run));\n if (images.length === 0) {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n `Run ${run.runId} has no saved image to publish. Pass the image file instead.`,\n );\n }\n if (choice === undefined) return { outputs: images, cover: 0 };\n const wanted = choice.trim();\n const byNumber = /^\\d+$/.test(wanted) ? Number(wanted) - 1 : -1;\n const cover = images[byNumber] ? byNumber : images.findIndex((o) => o.label === wanted || o.slot === wanted);\n if (cover < 0) {\n throw new ApiError(\"VALIDATION_ERROR\", `Run ${run.runId} has no output \"${wanted}\" (${describeOutputs(images)}).`);\n }\n return { outputs: images, cover };\n}\n\nconst EXTENSION: Record<string, string> = { \"image/png\": \".png\", \"image/jpeg\": \".jpg\", \"image/webp\": \".webp\" };\n\n/**\n * Upload every size the run saved, byte for byte, as one set: the versions that were chosen, not\n * whichever local files happen to sit at a path (and it works in a workspace that never had one).\n */\nasync function uploadRunOutputs(\n args: {\n runId: string;\n output: string | undefined;\n descriptionContext: string;\n slug?: string;\n title: string;\n },\n deps: PublishDeps,\n): Promise<{ imageId: string; sizes: Array<{ format: string; imageId: string }> }> {\n const run = await fetchRunRecord(args.runId, deps.post);\n if (!run) {\n throw new ApiError(\n \"NOT_FOUND\",\n `No run \"${args.runId}\" in this company's run history. Pass the image file instead.`,\n );\n }\n const { outputs, cover } = orderedOutputs(run, args.output);\n const sizes: Array<{ format: string; imageId: string }> = [];\n for (const [index, chosen] of outputs.entries()) {\n const bytes = await (deps.download ?? downloadBytes)(String(chosen.url));\n if (sha256Hex(bytes) !== chosen.sha256) {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n `The saved output of run ${run.runId} does not match its recorded fingerprint`,\n );\n }\n const name = (chosen.label ?? chosen.slot).replace(/[^a-z0-9.-]+/gi, \"_\");\n const { imageId } = await uploadImageBytes(\n {\n bytes,\n contentType: chosen.mime,\n originalFilename: `${run.runId}-${name}${EXTENSION[chosen.mime] ?? \"\"}`,\n source: \"ai_generated\",\n descriptionContext: args.descriptionContext,\n ...(outputs.length > 1\n ? {\n group: {\n key: `creative:${args.slug ?? \"run\"}:${run.runId}`,\n kind: \"creative_sizes\",\n index,\n size: outputs.length,\n title: args.title,\n },\n }\n : {}),\n },\n deps,\n );\n sizes.push({ format: chosen.label ?? chosen.slot, imageId });\n }\n return { imageId: sizes[cover]?.imageId ?? \"\", sizes };\n}\n\nexport async function publishCreative(\n args: {\n file?: string;\n title: string;\n context?: string;\n sourceReferenceUrl?: string;\n slug?: string;\n runId?: string;\n output?: string;\n },\n deps: PublishDeps = defaultImageApiDeps,\n): Promise<CreativesPublishResult> {\n const title = args.title.trim();\n if (!title) {\n throw new ApiError(\"VALIDATION_ERROR\", \"--title is required\");\n }\n\n const sourceReferenceUrl = parseOptionalUrl(args.sourceReferenceUrl);\n const descriptionContext = args.context ?? `Static ad creative: ${title}`;\n let upload: { imageId: string; sizes?: Array<{ format: string; imageId: string }> };\n if (args.file) {\n upload = await uploadLocalImage(\n {\n file: args.file,\n contentType: detectCreativeContentType(args.file),\n source: \"ai_generated\",\n descriptionContext,\n },\n deps,\n );\n } else if (args.runId) {\n upload = await uploadRunOutputs(\n {\n runId: args.runId,\n output: args.output,\n descriptionContext,\n ...(args.slug ? { slug: args.slug } : {}),\n title,\n },\n deps,\n );\n } else {\n throw new ApiError(\"VALIDATION_ERROR\", \"Pass the image file, or --run-id to save the run's own output\");\n }\n await waitForReadyImage(deps, upload.imageId, { timeoutMs: imageProcessingTimeoutMs });\n const saved = await publishImageAsCreative(deps, {\n imageId: upload.imageId,\n title,\n sourceReferenceUrl,\n slug: args.slug,\n runId: args.runId,\n // Attribute the publish to the driving chat (injected by the bridge).\n chatId: chatIdFromEnv(),\n });\n const result = upload.sizes && upload.sizes.length > 1 ? { ...saved, sizes: upload.sizes } : saved;\n // The lifecycle field moves with what happened: saving a finished version marks the\n // creative published in its definition, so nobody edits it by hand.\n if (args.slug && args.runId) {\n const cwd = process.cwd();\n const root = deps.workspaceRoot ?? findWorkspaceRoot(cwd) ?? cwd;\n const status = await advanceDefinitionStatus(definitionPathFor(root, args.slug), \"published\");\n if (status === \"updated\") return { ...result, definitionStatus: \"published\" };\n }\n return result;\n}\n\n/**\n * `baker creatives publish <video>`: upload the render to the company's video\n * library, wait until Baker can play it, then save it on the creative. The\n * image path above is untouched by this.\n */\nexport async function publishVideoCreative(\n args: { file: string; title: string; context?: string; sourceReferenceUrl?: string; slug?: string; runId?: string },\n deps: VideoApiDeps = defaultVideoApiDeps,\n): Promise<CreativesPublishVideoResponse> {\n const title = args.title.trim();\n if (!title) {\n throw new ApiError(\"VALIDATION_ERROR\", \"--title is required\");\n }\n const slug = args.slug?.trim();\n if (!slug) {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n \"--slug is required for a video: name the creative (src/creatives/<slug>/) this render belongs to\",\n );\n }\n const sourceReferenceUrl = parseOptionalUrl(args.sourceReferenceUrl);\n const contentType = detectVideoContentType(args.file, {\n allowedContentTypes: creativeVideoContentTypes,\n unsupportedMessage: UNSUPPORTED_CREATIVE_FILE,\n });\n const { videoId } = await uploadLocalVideo(\n { file: args.file, contentType, descriptionContext: args.context ?? `Video ad creative: ${title}` },\n deps,\n );\n await waitForPlayableVideo(deps, videoId, { timeoutMs: videoProcessingTimeoutMs });\n const body: CreativesPublishVideoRequest = { videoId, title, slug };\n if (args.runId) body.runId = args.runId;\n if (sourceReferenceUrl) body.sourceReferenceUrl = sourceReferenceUrl;\n const chatId = chatIdFromEnv();\n if (chatId) body.chatId = chatId;\n return deps.post<CreativesPublishVideoResponse>(\"/api/creatives/publish-video\", body);\n}\n\nexport const publishCommand = defineCommand({\n meta: { name: \"publish\", description: DESCRIPTION },\n // Checked in `run` rather than by citty, so a missing value answers with the JSON envelope.\n args: { ...ARGS, file: { ...ARGS.file, type: \"positional\" }, title: { ...ARGS.title, required: false } },\n run: async ({ args }) => {\n try {\n const file = args.file as string | undefined;\n const title = args.title as string | undefined;\n const runId = args.runId as string | undefined;\n if (!file && !runId) {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: \"Image or video path is required (or --run-id to save the run's own image)\",\n },\n });\n process.exit(1);\n }\n if (!title) {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: \"--title is required\" } });\n process.exit(1);\n }\n const publishArgs = {\n file: file || undefined,\n title,\n context: args.context as string | undefined,\n sourceReferenceUrl: args.sourceReferenceUrl as string | undefined,\n slug: args.slug as string | undefined,\n runId,\n };\n if (file && isVideoFile(file)) {\n writeJson(await publishVideoCreative({ ...publishArgs, file }));\n return;\n }\n const data = await publishCreative({\n ...publishArgs,\n output: args.output as string | undefined,\n });\n writeJson({ ok: true, data, ...(data.sizes ? { hints: [SIZES_HINT] } : {}) });\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":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/commands/creatives/publish.ts"],"sourcesContent":["import { Buffer } from \"node:buffer\";\nimport type {\n CreativesPublishVideoRequest,\n CreativesPublishVideoResponse,\n CreativesRunData,\n CreativesRunOutput,\n} from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError } from \"../../client.ts\";\nimport { sha256Hex } from \"../../engine/storage/sha256.ts\";\nimport { optionalChatId } from \"../../env.ts\";\nimport { librarySaveHint } from \"../../lib/librarySaves.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { advanceDefinitionStatus, definitionPathFor } from \"../canvas/definition-status.ts\";\nimport { findWorkspaceRoot } from \"../canvas/normalize-paths.ts\";\nimport { fetchRunRecord } from \"../canvas/run-history.ts\";\nimport {\n defaultImageApiDeps,\n detectImageContentType,\n type ImageApiDeps,\n imageProcessingTimeoutMs,\n publishImageAsCreative,\n uploadImageBytes,\n uploadLocalImage,\n waitForReadyImage,\n} from \"../images/api.ts\";\nimport {\n defaultVideoApiDeps,\n detectVideoContentType,\n isVideoFile,\n uploadLocalVideo,\n type VideoApiDeps,\n videoProcessingTimeoutMs,\n waitForPlayableVideo,\n} from \"../videos/api.ts\";\n\nconst creativeContentTypes = [\"image/png\", \"image/jpeg\", \"image/webp\"] as const;\nconst creativeVideoContentTypes = [\"video/mp4\", \"video/quicktime\", \"video/webm\"] as const;\nconst UNSUPPORTED_CREATIVE_FILE =\n \"Unsupported creative file extension. Use PNG, JPG or WebP for an image, MP4, MOV or WebM for a video.\";\n\ntype CreativeReference = {\n type: \"creative\";\n slug: string;\n creativeId: string;\n title: string;\n asset: {\n kind: \"static_image\";\n imageId: string;\n imageUrl: string;\n storageKey?: string;\n width?: number;\n height?: number;\n aspectRatio?: number;\n };\n imageUrl: string;\n thumbnailUrl: string;\n storageKey?: string;\n sourceReferenceUrl?: string;\n width?: number;\n height?: number;\n aspectRatio?: number;\n};\n\ntype CreativesPublishResult = {\n creativeId: string;\n imageId: string;\n reference: CreativeReference;\n /** Every size the run made, saved to the library as one set, the lead first. */\n sizes?: Array<{ format: string; imageId: string }>;\n /** Set when `src/creatives/<slug>/_definition.md` was moved to `published`. */\n definitionStatus?: \"published\";\n};\n\nconst DESCRIPTION = `Save a finished creative to Baker Creatives and return a creative reference: a static image (PNG/JPG/WebP) or a finished video render (MP4/MOV/WebM).\nStart here:\n baker creatives publish ./canvas/r_01K…/final_4x5.png --title \"Spring Offer\" --slug spring-offer --run-id r_01K…\n baker creatives publish --title \"Spring Offer\" --slug spring-offer --run-id r_01K… --output 4:5\n baker creatives publish ./canvas/r_01K…/final.mp4 --title \"Spring Offer Reel\" --slug spring-offer --run-id r_01K…\nWith --run-id and no file, every size the run made is saved to the library as one set, the lead size first, and the lead is the creative's cover (--output picks another cover); \\`sizes\\` names each size's image id. A video goes to the company's video library first and is saved once it plays (up to 3 minutes); it needs the file and --slug. Choose and save the finished version yourself, including in the turn that rendered it. Saving pins that version without recording user approval or putting an ad live. An image publish marks the creative's _definition.md published.`;\n\nconst ARGS = {\n file: {\n type: \"string\",\n description:\n \"Local creative file: PNG/JPG/WebP image or MP4/MOV/WebM video. Optional for an image with --run-id: the run's saved output is used instead.\",\n required: false,\n },\n title: { type: \"string\", description: \"Human title for the creative output\", required: true },\n context: { type: \"string\", description: \"Optional describe context for the image asset\", required: false },\n sourceReferenceUrl: {\n type: \"string\",\n description: \"Optional URL of the original reference ad\",\n required: false,\n },\n slug: {\n type: \"string\",\n description:\n \"Creative slug (src/creatives/<slug>/). Attaches the image or video to that creative's row. Required for a video\",\n required: false,\n },\n runId: {\n type: \"string\",\n description: \"Canvas run id (r_…) of the finished generation to pin as published\",\n required: false,\n },\n output: {\n type: \"string\",\n description:\n \"With --run-id and no file: which of the run's sizes is the creative's cover, by label (e.g. 9:16), slot, or number (1 = first). Every size is saved either way; default the lead. `--output json` is the output format, never a cover.\",\n required: false,\n },\n} as const;\n\nregisterSchema({ command: \"creatives.publish\", description: DESCRIPTION, args: ARGS });\n\n/** Which saved size goes where, said when a creative was saved in several. */\nconst SIZES_HINT =\n \"Each size is its own image: on Meta, stage the 4:5 for Feed and the 9:16 for Stories and Reels (one ad, asset_customization_rules); LinkedIn takes the 1:1.\";\n\nexport function detectCreativeContentType(filePath: string): string {\n return detectImageContentType(filePath, {\n allowedContentTypes: creativeContentTypes,\n unsupportedMessage: UNSUPPORTED_CREATIVE_FILE,\n });\n}\n\nfunction chatIdFromEnv(): string | undefined {\n // Soft read: publish attribution is best-effort. Direct callers (tests,\n // local one-offs) may run without the full env contract — missing creds\n // already fail loudly at the API call itself.\n return optionalChatId();\n}\n\nfunction parseOptionalUrl(value: string | undefined): string | undefined {\n if (value === undefined || value.trim() === \"\") {\n return undefined;\n }\n\n try {\n return new URL(value).toString();\n } catch {\n throw new ApiError(\"VALIDATION_ERROR\", \"--source-reference-url must be a valid URL\");\n }\n}\n\n/** What publishing needs beyond the image API: fetching a run's output, and where the workspace is. */\nexport type PublishDeps = ImageApiDeps & {\n download?: (url: string) => Promise<Buffer>;\n workspaceRoot?: string;\n};\n\nasync function downloadBytes(url: string): Promise<Buffer> {\n const res = await fetch(url);\n if (!res.ok) throw new ApiError(\"UNAVAILABLE\", `Could not read the run's output (${res.status} ${res.statusText})`);\n return Buffer.from(await res.arrayBuffer());\n}\n\n/**\n * The run's result, when it is still images, in the order the run delivered them. Only the\n * final outputs of a finished run count: the frames and reference sheets its steps made on\n * the way are images too, and publishing one of those would save a stand-in as the creative.\n */\nfunction runImages(run: CreativesRunData): CreativesRunOutput[] {\n if (run.status !== \"completed\") {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n `Run ${run.runId} did not finish (${run.status}), so it has no result to publish. Finish the run first, or pass the image file.`,\n );\n }\n const finals = run.finalOutputs.filter((o) => typeof o.url === \"string\");\n if (finals.some((o) => !creativeContentTypes.some((t) => t === o.mime))) {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n `Run ${run.runId} made a video, not a still image. Publish the video file: baker creatives publish ./canvas/${run.runId}/<file>.mp4 --slug <slug> --run-id ${run.runId}.`,\n );\n }\n return finals;\n}\n\nfunction describeOutputs(outputs: CreativesRunOutput[]): string {\n return outputs.map((o, i) => `${i + 1}: ${o.label ?? o.slot}`).join(\", \");\n}\n\n/** The id a static ad's graph gives the lead size at its delivered pixels (`static_master`). */\nconst MASTER_NODE = \"master\";\n\n/**\n * The run's sizes with its lead first: the one its master made (a static ad's lead size), else the\n * order the run delivered them in. Review, Oct 2026: sizes labelled [\"9:16\", \"4:5\"] made the Stories\n * size the creative's cover. Pure.\n */\nfunction leadFirst(run: CreativesRunData, images: readonly CreativesRunOutput[]): CreativesRunOutput[] {\n const master = new Set(\n run.nodes.filter((n) => n.nodeId === MASTER_NODE).flatMap((n) => n.outputs.map((o) => o.sha256)),\n );\n const at = images.findIndex((o) => master.has(o.sha256));\n return at > 0 ? [images[at] as CreativesRunOutput, ...images.filter((_, i) => i !== at)] : [...images];\n}\n\n/**\n * Every size the run made, lead first, and which is the cover: the lead, or the one `choice` names\n * by label, slot or number.\n */\nfunction orderedOutputs(\n run: CreativesRunData,\n choice: string | undefined,\n): { outputs: CreativesRunOutput[]; cover: number } {\n const images = leadFirst(run, runImages(run));\n if (images.length === 0) {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n `Run ${run.runId} has no saved image to publish. Pass the image file instead.`,\n );\n }\n if (choice === undefined) return { outputs: images, cover: 0 };\n const wanted = choice.trim();\n const byNumber = /^\\d+$/.test(wanted) ? Number(wanted) - 1 : -1;\n const cover = images[byNumber] ? byNumber : images.findIndex((o) => o.label === wanted || o.slot === wanted);\n if (cover < 0) {\n throw new ApiError(\"VALIDATION_ERROR\", `Run ${run.runId} has no output \"${wanted}\" (${describeOutputs(images)}).`);\n }\n return { outputs: images, cover };\n}\n\nconst EXTENSION: Record<string, string> = { \"image/png\": \".png\", \"image/jpeg\": \".jpg\", \"image/webp\": \".webp\" };\n\n/**\n * Upload every size the run saved, byte for byte, as one set: the versions that were chosen, not\n * whichever local files happen to sit at a path (and it works in a workspace that never had one).\n */\nasync function uploadRunOutputs(\n args: {\n runId: string;\n output: string | undefined;\n descriptionContext: string;\n slug?: string;\n title: string;\n },\n deps: PublishDeps,\n): Promise<{ imageId: string; sizes: Array<{ format: string; imageId: string }> }> {\n const run = await fetchRunRecord(args.runId, deps.post);\n if (!run) {\n throw new ApiError(\n \"NOT_FOUND\",\n `No run \"${args.runId}\" in this company's run history. Pass the image file instead.`,\n );\n }\n const { outputs, cover } = orderedOutputs(run, args.output);\n const sizes: Array<{ format: string; imageId: string }> = [];\n for (const [index, chosen] of outputs.entries()) {\n const bytes = await (deps.download ?? downloadBytes)(String(chosen.url));\n if (sha256Hex(bytes) !== chosen.sha256) {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n `The saved output of run ${run.runId} does not match its recorded fingerprint`,\n );\n }\n const name = (chosen.label ?? chosen.slot).replace(/[^a-z0-9.-]+/gi, \"_\");\n const { imageId } = await uploadImageBytes(\n {\n bytes,\n contentType: chosen.mime,\n originalFilename: `${run.runId}-${name}${EXTENSION[chosen.mime] ?? \"\"}`,\n source: \"ai_generated\",\n descriptionContext: args.descriptionContext,\n ...(outputs.length > 1\n ? {\n group: {\n key: `creative:${args.slug ?? \"run\"}:${run.runId}`,\n kind: \"creative_sizes\",\n index,\n size: outputs.length,\n title: args.title,\n },\n }\n : {}),\n },\n deps,\n );\n sizes.push({ format: chosen.label ?? chosen.slot, imageId });\n }\n return { imageId: sizes[cover]?.imageId ?? \"\", sizes };\n}\n\nexport async function publishCreative(\n args: {\n file?: string;\n title: string;\n context?: string;\n sourceReferenceUrl?: string;\n slug?: string;\n runId?: string;\n output?: string;\n },\n deps: PublishDeps = defaultImageApiDeps,\n): Promise<CreativesPublishResult> {\n const title = args.title.trim();\n if (!title) {\n throw new ApiError(\"VALIDATION_ERROR\", \"--title is required\");\n }\n\n const sourceReferenceUrl = parseOptionalUrl(args.sourceReferenceUrl);\n const descriptionContext = args.context ?? `Static ad creative: ${title}`;\n let upload: { imageId: string; sizes?: Array<{ format: string; imageId: string }> };\n if (args.file) {\n upload = await uploadLocalImage(\n {\n file: args.file,\n contentType: detectCreativeContentType(args.file),\n source: \"ai_generated\",\n descriptionContext,\n },\n deps,\n );\n } else if (args.runId) {\n upload = await uploadRunOutputs(\n {\n runId: args.runId,\n output: args.output,\n descriptionContext,\n ...(args.slug ? { slug: args.slug } : {}),\n title,\n },\n deps,\n );\n } else {\n throw new ApiError(\"VALIDATION_ERROR\", \"Pass the image file, or --run-id to save the run's own output\");\n }\n await waitForReadyImage(deps, upload.imageId, { timeoutMs: imageProcessingTimeoutMs });\n const saved = await publishImageAsCreative(deps, {\n imageId: upload.imageId,\n title,\n sourceReferenceUrl,\n slug: args.slug,\n runId: args.runId,\n // Attribute the publish to the driving chat (injected by the bridge).\n chatId: chatIdFromEnv(),\n });\n const result = upload.sizes && upload.sizes.length > 1 ? { ...saved, sizes: upload.sizes } : saved;\n // The lifecycle field moves with what happened: saving a finished version marks the\n // creative published in its definition, so nobody edits it by hand.\n if (args.slug && args.runId) {\n const cwd = process.cwd();\n const root = deps.workspaceRoot ?? findWorkspaceRoot(cwd) ?? cwd;\n const status = await advanceDefinitionStatus(definitionPathFor(root, args.slug), \"published\");\n if (status === \"updated\") return { ...result, definitionStatus: \"published\" };\n }\n return result;\n}\n\n/**\n * `baker creatives publish <video>`: upload the render to the company's video\n * library, wait until Baker can play it, then save it on the creative. The\n * image path above is untouched by this.\n */\nexport async function publishVideoCreative(\n args: { file: string; title: string; context?: string; sourceReferenceUrl?: string; slug?: string; runId?: string },\n deps: VideoApiDeps = defaultVideoApiDeps,\n): Promise<CreativesPublishVideoResponse> {\n const title = args.title.trim();\n if (!title) {\n throw new ApiError(\"VALIDATION_ERROR\", \"--title is required\");\n }\n const slug = args.slug?.trim();\n if (!slug) {\n throw new ApiError(\n \"VALIDATION_ERROR\",\n \"--slug is required for a video: name the creative (src/creatives/<slug>/) this render belongs to\",\n );\n }\n const sourceReferenceUrl = parseOptionalUrl(args.sourceReferenceUrl);\n const contentType = detectVideoContentType(args.file, {\n allowedContentTypes: creativeVideoContentTypes,\n unsupportedMessage: UNSUPPORTED_CREATIVE_FILE,\n });\n const { videoId } = await uploadLocalVideo(\n { file: args.file, contentType, descriptionContext: args.context ?? `Video ad creative: ${title}` },\n deps,\n );\n await waitForPlayableVideo(deps, videoId, { timeoutMs: videoProcessingTimeoutMs });\n const body: CreativesPublishVideoRequest = { videoId, title, slug };\n if (args.runId) body.runId = args.runId;\n if (sourceReferenceUrl) body.sourceReferenceUrl = sourceReferenceUrl;\n const chatId = chatIdFromEnv();\n if (chatId) body.chatId = chatId;\n return deps.post<CreativesPublishVideoResponse>(\"/api/creatives/publish-video\", body);\n}\n\nexport const publishCommand = defineCommand({\n meta: { name: \"publish\", description: DESCRIPTION },\n // Checked in `run` rather than by citty, so a missing value answers with the JSON envelope.\n args: { ...ARGS, file: { ...ARGS.file, type: \"positional\" }, title: { ...ARGS.title, required: false } },\n run: async ({ args }) => {\n try {\n const file = args.file as string | undefined;\n const title = args.title as string | undefined;\n const runId = args.runId as string | undefined;\n if (!file && !runId) {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: \"Image or video path is required (or --run-id to save the run's own image)\",\n },\n });\n process.exit(1);\n }\n if (!title) {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: \"--title is required\" } });\n process.exit(1);\n }\n const publishArgs = {\n file: file || undefined,\n title,\n context: args.context as string | undefined,\n sourceReferenceUrl: args.sourceReferenceUrl as string | undefined,\n slug: args.slug as string | undefined,\n runId,\n };\n if (file && isVideoFile(file)) {\n const published = await publishVideoCreative({ ...publishArgs, file });\n const savedVideo = librarySaveHint(\"video library\", [published.data.videoId]);\n writeJson({ ...published, hints: [...(published.hints ?? []), ...(savedVideo ? [savedVideo] : [])] });\n return;\n }\n const data = await publishCreative({\n ...publishArgs,\n output: args.output as string | undefined,\n });\n const saved = librarySaveHint(\"image library\", data.sizes?.map((size) => size.imageId) ?? [data.imageId]);\n writeJson({ ok: true, data, hints: [...(data.sizes ? [SIZES_HINT] : []), ...(saved ? [saved] : [])] });\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":"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","names":[]}
|
|
@@ -22,10 +22,10 @@ import {
|
|
|
22
22
|
unobservedSelectedFields,
|
|
23
23
|
unwrittenColumnWarnings,
|
|
24
24
|
warningLines
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-NKZDYXEN.js";
|
|
26
26
|
import "./chunk-Y2FAUFWK.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-JQDYH5XP.js";
|
|
28
|
+
import "./chunk-VR6XCLY6.js";
|
|
29
29
|
import "./chunk-Q2JDS6WL.js";
|
|
30
30
|
import "./chunk-QYH2UZAK.js";
|
|
31
31
|
import "./chunk-MSMTG6OC.js";
|
|
@@ -59,4 +59,4 @@ export {
|
|
|
59
59
|
unwrittenColumnWarnings,
|
|
60
60
|
warningLines
|
|
61
61
|
};
|
|
62
|
-
//# sourceMappingURL=query-
|
|
62
|
+
//# sourceMappingURL=query-YWDUKFS7.js.map
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
redditCommand,
|
|
4
4
|
searchReddit,
|
|
5
5
|
subredditsFromArgs
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-NPDZ4EO6.js";
|
|
7
|
+
import "./chunk-X2OVFCRC.js";
|
|
8
8
|
import "./chunk-CXYX6G3I.js";
|
|
9
9
|
import "./chunk-ERSX3MKH.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-TK7VRZKM.js";
|
|
11
11
|
import "./chunk-QV6AST5T.js";
|
|
12
12
|
import "./chunk-WCU362Z6.js";
|
|
13
13
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -26,4 +26,4 @@ export {
|
|
|
26
26
|
searchReddit,
|
|
27
27
|
subredditsFromArgs
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=reddit-
|
|
29
|
+
//# sourceMappingURL=reddit-GPSRX4TI.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-RIVHJC6L.js";
|
|
4
4
|
import {
|
|
5
5
|
adLibraryRefreshRequestSchema
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TK7VRZKM.js";
|
|
7
7
|
import "./chunk-QV6AST5T.js";
|
|
8
8
|
import "./chunk-WCU362Z6.js";
|
|
9
9
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -94,4 +94,4 @@ export {
|
|
|
94
94
|
refreshCommand,
|
|
95
95
|
refreshEnvelope
|
|
96
96
|
};
|
|
97
|
-
//# sourceMappingURL=refresh-
|
|
97
|
+
//# sourceMappingURL=refresh-3X45Q6ZM.js.map
|
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
failApi,
|
|
3
3
|
failValidation,
|
|
4
4
|
writeOk
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-DYWKYP7Z.js";
|
|
6
|
+
import "./chunk-TK7VRZKM.js";
|
|
7
7
|
import "./chunk-QV6AST5T.js";
|
|
8
8
|
import "./chunk-WCU362Z6.js";
|
|
9
9
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -60,4 +60,4 @@ var releaseCommand = defineCommand({
|
|
|
60
60
|
export {
|
|
61
61
|
releaseCommand
|
|
62
62
|
};
|
|
63
|
-
//# sourceMappingURL=release-
|
|
63
|
+
//# sourceMappingURL=release-PE7KBFGK.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-3J52GJAY.js";
|
|
5
5
|
import {
|
|
6
6
|
testimonialSourcesRemoveRequestSchema
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-TK7VRZKM.js";
|
|
8
8
|
import "./chunk-QV6AST5T.js";
|
|
9
9
|
import "./chunk-WCU362Z6.js";
|
|
10
10
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -50,4 +50,4 @@ var removeCommand = defineCommand({
|
|
|
50
50
|
export {
|
|
51
51
|
removeCommand
|
|
52
52
|
};
|
|
53
|
-
//# sourceMappingURL=remove-
|
|
53
|
+
//# sourceMappingURL=remove-2A3XDOKA.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
failApi,
|
|
3
3
|
failValidation
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-DYWKYP7Z.js";
|
|
5
|
+
import "./chunk-TK7VRZKM.js";
|
|
6
6
|
import "./chunk-QV6AST5T.js";
|
|
7
7
|
import "./chunk-WCU362Z6.js";
|
|
8
8
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -63,4 +63,4 @@ var reopenCommand = defineCommand({
|
|
|
63
63
|
export {
|
|
64
64
|
reopenCommand
|
|
65
65
|
};
|
|
66
|
-
//# sourceMappingURL=reopen-
|
|
66
|
+
//# sourceMappingURL=reopen-LHMLXG6G.js.map
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import {
|
|
2
2
|
executeCanvasRun
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QBCZLD3A.js";
|
|
4
4
|
import "./chunk-XZAVBONI.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-PBKUESJD.js";
|
|
6
6
|
import "./chunk-WN4KX7GE.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-YXUIVOUL.js";
|
|
8
8
|
import "./chunk-IVIJJXXT.js";
|
|
9
9
|
import "./chunk-Q6ULQMWG.js";
|
|
10
10
|
import "./chunk-KKJ4KJCW.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-KNA3OWJC.js";
|
|
12
12
|
import "./chunk-3ACMDRSE.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-I7OJZ7QE.js";
|
|
14
|
+
import "./chunk-XGN3BGSL.js";
|
|
15
|
+
import "./chunk-WQIHLJAO.js";
|
|
15
16
|
import "./chunk-EJBLF2LI.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-26UW2GMK.js";
|
|
18
|
+
import "./chunk-AQ6LJ7EI.js";
|
|
19
|
+
import "./chunk-KV4E4KGE.js";
|
|
20
|
+
import "./chunk-5NJQXV4K.js";
|
|
20
21
|
import "./chunk-QFODAMYR.js";
|
|
21
22
|
import "./chunk-EKX37C3T.js";
|
|
22
23
|
import "./chunk-Q5DFEVLE.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-YS7T735Q.js";
|
|
24
25
|
import "./chunk-PGAYESXE.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-EDWW3THE.js";
|
|
26
27
|
import "./chunk-UKZKLXTE.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-72VH4FPY.js";
|
|
29
|
+
import "./chunk-N34A56X7.js";
|
|
29
30
|
import "./chunk-KDAINT54.js";
|
|
30
31
|
import "./chunk-G6XKD7QE.js";
|
|
31
32
|
import "./chunk-4H6XLX7E.js";
|
|
@@ -46,7 +47,7 @@ import "./chunk-E56V3RFO.js";
|
|
|
46
47
|
import "./chunk-EL3TDR5S.js";
|
|
47
48
|
import "./chunk-G6U45QD3.js";
|
|
48
49
|
import "./chunk-X6U3B6YK.js";
|
|
49
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-TK7VRZKM.js";
|
|
50
51
|
import "./chunk-QV6AST5T.js";
|
|
51
52
|
import "./chunk-WCU362Z6.js";
|
|
52
53
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -93,4 +94,4 @@ var rerunCommand = defineCommand({
|
|
|
93
94
|
export {
|
|
94
95
|
rerunCommand
|
|
95
96
|
};
|
|
96
|
-
//# sourceMappingURL=rerun-
|
|
97
|
+
//# sourceMappingURL=rerun-S4VWOIKE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/canvas/rerun.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { executeCanvasRun } from \"./run.ts\";\n\n/**\n * Deprecated spelling of `baker canvas run --slug <slug>`, kept for one release so client\n * agents and docs that still say `rerun` keep working. Hidden from help; delete once the\n * scaffold docs and hooks have shipped the new spelling everywhere.\n */\nexport const rerunCommand = defineCommand({\n meta: {\n name: \"rerun\",\n hidden: true,\n description: \"Deprecated: use `baker canvas run --slug <slug>`, which does the same.\",\n },\n args: {\n slug: { type: \"positional\", required: true, description: \"Creative slug (src/creatives/<slug>)\" },\n \"force-remote\": {\n type: \"boolean\",\n default: false,\n description: \"Overwrite local files whose content differs from the recorded snapshot\",\n },\n fresh: { type: \"boolean\", default: false, description: \"Start a new run id instead of resuming an interrupted one\" },\n regenerate: { type: \"string\", description: \"Comma-separated node ids to force fresh this run\" },\n concurrency: { type: \"string\", description: \"Max nodes running at once\" },\n },\n async run({ args }) {\n process.stderr.write(\"[deprecated] `baker canvas rerun <slug>` is now `baker canvas run --slug <slug>`.\\n\");\n await executeCanvasRun({\n slug: String(args.slug),\n forceRemote: args[\"force-remote\"] === true,\n fresh: args.fresh === true,\n regenerate: args.regenerate !== undefined ? String(args.regenerate) : undefined,\n concurrency: args.concurrency !== undefined ? String(args.concurrency) : undefined,\n });\n },\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/commands/canvas/rerun.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { executeCanvasRun } from \"./run.ts\";\n\n/**\n * Deprecated spelling of `baker canvas run --slug <slug>`, kept for one release so client\n * agents and docs that still say `rerun` keep working. Hidden from help; delete once the\n * scaffold docs and hooks have shipped the new spelling everywhere.\n */\nexport const rerunCommand = defineCommand({\n meta: {\n name: \"rerun\",\n hidden: true,\n description: \"Deprecated: use `baker canvas run --slug <slug>`, which does the same.\",\n },\n args: {\n slug: { type: \"positional\", required: true, description: \"Creative slug (src/creatives/<slug>)\" },\n \"force-remote\": {\n type: \"boolean\",\n default: false,\n description: \"Overwrite local files whose content differs from the recorded snapshot\",\n },\n fresh: { type: \"boolean\", default: false, description: \"Start a new run id instead of resuming an interrupted one\" },\n regenerate: { type: \"string\", description: \"Comma-separated node ids to force fresh this run\" },\n concurrency: { type: \"string\", description: \"Max nodes running at once\" },\n },\n async run({ args }) {\n process.stderr.write(\"[deprecated] `baker canvas rerun <slug>` is now `baker canvas run --slug <slug>`.\\n\");\n await executeCanvasRun({\n slug: String(args.slug),\n forceRemote: args[\"force-remote\"] === true,\n fresh: args.fresh === true,\n regenerate: args.regenerate !== undefined ? String(args.regenerate) : undefined,\n concurrency: args.concurrency !== undefined ? String(args.concurrency) : undefined,\n });\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAQvB,IAAM,eAAe,cAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,MAAM,EAAE,MAAM,cAAc,UAAU,MAAM,aAAa,uCAAuC;AAAA,IAChG,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA,OAAO,EAAE,MAAM,WAAW,SAAS,OAAO,aAAa,4DAA4D;AAAA,IACnH,YAAY,EAAE,MAAM,UAAU,aAAa,mDAAmD;AAAA,IAC9F,aAAa,EAAE,MAAM,UAAU,aAAa,4BAA4B;AAAA,EAC1E;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,YAAQ,OAAO,MAAM,qFAAqF;AAC1G,UAAM,iBAAiB;AAAA,MACrB,MAAM,OAAO,KAAK,IAAI;AAAA,MACtB,aAAa,KAAK,cAAc,MAAM;AAAA,MACtC,OAAO,KAAK,UAAU;AAAA,MACtB,YAAY,KAAK,eAAe,SAAY,OAAO,KAAK,UAAU,IAAI;AAAA,MACtE,aAAa,KAAK,gBAAgB,SAAY,OAAO,KAAK,WAAW,IAAI;AAAA,IAC3E,CAAC;AAAA,EACH;AACF,CAAC;","names":[]}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-PGAYESXE.js";
|
|
9
9
|
import {
|
|
10
10
|
AVATAR_HANDLE_PATTERN
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-TK7VRZKM.js";
|
|
12
12
|
import "./chunk-QV6AST5T.js";
|
|
13
13
|
import "./chunk-WCU362Z6.js";
|
|
14
14
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -262,4 +262,4 @@ function callOf(text, create) {
|
|
|
262
262
|
export {
|
|
263
263
|
researchCommand
|
|
264
264
|
};
|
|
265
|
-
//# sourceMappingURL=research-
|
|
265
|
+
//# sourceMappingURL=research-55XA4Z2O.js.map
|
|
@@ -48,21 +48,21 @@ Examples:
|
|
|
48
48
|
Full guide: __tooling__/docs/tools/baker/research.md`
|
|
49
49
|
},
|
|
50
50
|
subCommands: {
|
|
51
|
-
web: () => import("./web-
|
|
52
|
-
fetch: () => import("./fetch-
|
|
51
|
+
web: () => import("./web-E7XDCTVJ.js").then((m) => m.webCommand),
|
|
52
|
+
fetch: () => import("./fetch-T6WPGAWP.js").then((m) => m.fetchCommand),
|
|
53
53
|
cite: () => import("./cite-TRNZYG4W.js").then((m) => m.citeCommand),
|
|
54
|
-
"linkedin-person": () => import("./linkedin-person-
|
|
55
|
-
transcript: () => import("./transcript-
|
|
56
|
-
company: () => import("./company-
|
|
57
|
-
"google-ads": () => import("./google-ads-
|
|
58
|
-
reddit: () => import("./reddit-
|
|
59
|
-
customers: () => import("./customers-
|
|
60
|
-
advertisers: () => import("./advertisers-
|
|
61
|
-
autocomplete: () => import("./autocomplete-
|
|
54
|
+
"linkedin-person": () => import("./linkedin-person-5LJEMW54.js").then((m) => m.linkedinPersonCommand),
|
|
55
|
+
transcript: () => import("./transcript-K6W7VRA5.js").then((m) => m.transcriptCommand),
|
|
56
|
+
company: () => import("./company-35ZI77NI.js").then((m) => m.companyCommand),
|
|
57
|
+
"google-ads": () => import("./google-ads-AFJV5ZJO.js").then((m) => m.googleAdsCommand),
|
|
58
|
+
reddit: () => import("./reddit-GPSRX4TI.js").then((m) => m.redditCommand),
|
|
59
|
+
customers: () => import("./customers-MHQ72YBY.js").then((m) => m.customersCommand),
|
|
60
|
+
advertisers: () => import("./advertisers-KPVUVXZZ.js").then((m) => m.advertisersCommand),
|
|
61
|
+
autocomplete: () => import("./autocomplete-36S76BGA.js").then((m) => m.autocompleteCommand),
|
|
62
62
|
countries: () => import("./countries-6ST54UGJ.js").then((m) => m.countriesCommand),
|
|
63
63
|
intent: () => import("./intent-PU3XUDLL.js").then((m) => m.intentCommand),
|
|
64
|
-
"keyword-metrics": () => import("./keyword-metrics-
|
|
65
|
-
"keywords-for-site": () => import("./keywords-for-site-
|
|
64
|
+
"keyword-metrics": () => import("./keyword-metrics-IDMR3ES2.js").then((m) => m.keywordMetricsCommand),
|
|
65
|
+
"keywords-for-site": () => import("./keywords-for-site-V3SGYZDW.js").then((m) => m.keywordsForSiteCommand),
|
|
66
66
|
"keyword-gap": () => import("./keyword-gap-B6T7ZFTZ.js").then((m) => m.keywordGapCommand),
|
|
67
67
|
languages: () => import("./languages-Q5RMPGI4.js").then((m) => m.languagesCommand),
|
|
68
68
|
lighthouse: () => import("./lighthouse-D3BJGHLO.js").then((m) => m.lighthouseCommand),
|
|
@@ -72,4 +72,4 @@ Full guide: __tooling__/docs/tools/baker/research.md`
|
|
|
72
72
|
export {
|
|
73
73
|
researchCommand
|
|
74
74
|
};
|
|
75
|
-
//# sourceMappingURL=research-
|
|
75
|
+
//# sourceMappingURL=research-JN3JGEEL.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-3J52GJAY.js";
|
|
5
5
|
import {
|
|
6
6
|
testimonialSourcesResetRequestSchema
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-TK7VRZKM.js";
|
|
8
8
|
import "./chunk-QV6AST5T.js";
|
|
9
9
|
import "./chunk-WCU362Z6.js";
|
|
10
10
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -54,4 +54,4 @@ var resetCommand = defineCommand({
|
|
|
54
54
|
export {
|
|
55
55
|
resetCommand
|
|
56
56
|
};
|
|
57
|
-
//# sourceMappingURL=reset-
|
|
57
|
+
//# sourceMappingURL=reset-C5SDRQTX.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-SNSLYZIT.js";
|
|
4
4
|
import {
|
|
5
5
|
mediaSourcesResetRequestSchema
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TK7VRZKM.js";
|
|
7
7
|
import "./chunk-QV6AST5T.js";
|
|
8
8
|
import "./chunk-WCU362Z6.js";
|
|
9
9
|
import "./chunk-GIWHHCD6.js";
|
|
@@ -54,4 +54,4 @@ var resetCommand = defineCommand({
|
|
|
54
54
|
export {
|
|
55
55
|
resetCommand
|
|
56
56
|
};
|
|
57
|
-
//# sourceMappingURL=reset-
|
|
57
|
+
//# sourceMappingURL=reset-IY7GNRLF.js.map
|