@koda-sl/baker-cli 0.572.0 → 0.574.0-dev.19539e5a8
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/dist/account-H6OOCEE3.js +82 -0
- package/dist/account-JVDP5ERG.js +82 -0
- package/dist/account-reads-OQCA5LEM.js +219 -0
- package/dist/account-users-VBPW6FPY.js +64 -0
- package/dist/account-writes-KEXINJ5D.js +68 -0
- package/dist/accounts-CNWJYCUV.js +80 -0
- package/dist/accounts-M5SCXY6W.js +713 -0
- package/dist/accounts-QR6OQ3GC.js +119 -0
- package/dist/actions-6DC3FUQF.js +55 -0
- package/dist/activecampaign-YMVIS6EN.js +938 -0
- package/dist/ad-group-writes-SVR4RCKB.js +172 -0
- package/dist/ad-groups-C726HUXS.js +70 -0
- package/dist/ad-writes-RWJIWGEL.js +176 -0
- package/dist/add-ITTW4LQC.js +305 -0
- package/dist/add-QZHZIAVE.js +107 -0
- package/dist/ads-3KK7VQPU.js +79 -0
- package/dist/ads-UZ355BQS.js +48 -0
- package/dist/advertisers-Z2WLSJEC.js +123 -0
- package/dist/analytics-64DI3ZJL.js +2437 -0
- package/dist/analytics-GILIREA3.js +447 -0
- package/dist/animate-GTUI7XX4.js +480 -0
- package/dist/assign-6RI3EC7U.js +80 -0
- package/dist/audience-size-M6NORPEU.js +76 -0
- package/dist/audiences-6L43K2T2.js +280 -0
- package/dist/audit-CPEOJSCV.js +154 -0
- package/dist/autocomplete-DCCI3W5Y.js +114 -0
- package/dist/avatars-GDRSOS6V.js +38 -0
- package/dist/bid-pricing-FQ6VJSH6.js +103 -0
- package/dist/brand-6TUMI2GH.js +22 -0
- package/dist/brief-U6ZT5UYG.js +543 -0
- package/dist/campaign-groups-RTP2MKNJ.js +99 -0
- package/dist/campaign-writes-4NVY7S4U.js +168 -0
- package/dist/campaign-writes-FUIGN5OR.js +176 -0
- package/dist/campaigns-7ZVVYTBM.js +113 -0
- package/dist/campaigns-CCDJKV7I.js +111 -0
- package/dist/campaigns-N2SWSBYT.js +78 -0
- package/dist/canvas-UYRDIRPR.js +46 -0
- package/dist/capabilities-4KGVNK4Q.js +147 -0
- package/dist/catalog-JICUCAJZ.js +66 -0
- package/dist/catalogs-G5NOKL4L.js +130 -0
- package/dist/changes-AS4RVEAL.js +167 -0
- package/dist/chatgpt-O6EEAYLF.js +47 -0
- package/dist/chats-JNL4L6GZ.js +589 -0
- package/dist/check-EXT5WAYI.js +107 -0
- package/dist/chunk-2NOFIV6M.js +5368 -0
- package/dist/chunk-3QLGV4XN.js +604 -0
- package/dist/chunk-3QNSGFE2.js +103 -0
- package/dist/chunk-5CH2JQCA.js +547 -0
- package/dist/chunk-5LEIUG5H.js +399 -0
- package/dist/chunk-5N77IAOT.js +7901 -0
- package/dist/chunk-5N77IAOT.js.map +1 -0
- package/dist/chunk-5NMKNHJI.js +46 -0
- package/dist/chunk-66LB37BF.js +455 -0
- package/dist/chunk-6D7WTUF3.js +98 -0
- package/dist/chunk-6OIKNJ7G.js +26 -0
- package/dist/chunk-6RWLCOAH.js +334 -0
- package/dist/chunk-6TNRSWNA.js +207 -0
- package/dist/chunk-7YXBMYSM.js +91 -0
- package/dist/chunk-A6LOIUWB.js +51 -0
- package/dist/chunk-AUDVBN6H.js +8985 -0
- package/dist/chunk-AUDVBN6H.js.map +1 -0
- package/dist/chunk-BBS5VXLK.js +91 -0
- package/dist/chunk-BPDUE3MT.js +312 -0
- package/dist/chunk-C3XJ46C2.js +203 -0
- package/dist/chunk-CC42TKFH.js +19 -0
- package/dist/chunk-CFF7VAOQ.js +142 -0
- package/dist/chunk-CUTTTFAU.js +783 -0
- package/dist/chunk-D32EWSMB.js +150 -0
- package/dist/chunk-EDZDYB3C.js +23 -0
- package/dist/chunk-ELFZ63XY.js +392 -0
- package/dist/chunk-EM5R3BYC.js +131 -0
- package/dist/chunk-F3CZFUXZ.js +3187 -0
- package/dist/chunk-F3CZFUXZ.js.map +1 -0
- package/dist/chunk-F5VR6HSI.js +170 -0
- package/dist/chunk-FE2MFNVT.js +5471 -0
- package/dist/chunk-FLZNYVMN.js +2235 -0
- package/dist/chunk-FPYMFYML.js +468 -0
- package/dist/chunk-FWYWLEDP.js +755 -0
- package/dist/chunk-G4TPYA7F.js +454 -0
- package/dist/chunk-GRX3JXSR.js +843 -0
- package/dist/chunk-H423YXYY.js +249 -0
- package/dist/chunk-IMS53EQU.js +4277 -0
- package/dist/chunk-IMS53EQU.js.map +1 -0
- package/dist/chunk-J4AWNWKN.js +1919 -0
- package/dist/chunk-JLAFNORO.js +285 -0
- package/dist/chunk-JQYB2DS3.js +197 -0
- package/dist/chunk-JYOP6YVT.js +66 -0
- package/dist/chunk-KOKPQE4N.js +494 -0
- package/dist/chunk-KTX7QAKP.js +831 -0
- package/dist/chunk-LAMSUL26.js +1518 -0
- package/dist/chunk-LYGZBNSC.js +224 -0
- package/dist/chunk-NI5R6Y24.js +89 -0
- package/dist/chunk-NOCBNING.js +638 -0
- package/dist/chunk-OEO2NSNC.js +297 -0
- package/dist/chunk-OZNBVJGC.js +220 -0
- package/dist/chunk-PYZVVMF4.js +430 -0
- package/dist/chunk-QGAUDVMR.js +148 -0
- package/dist/chunk-QZ4YHQLW.js +63 -0
- package/dist/chunk-RIIMF75G.js +64 -0
- package/dist/chunk-RUMHZX5N.js +225 -0
- package/dist/chunk-S36WWACM.js +3510 -0
- package/dist/chunk-SHYUXLE5.js +61 -0
- package/dist/chunk-SIKCVWM3.js +76 -0
- package/dist/chunk-SNVAE572.js +167 -0
- package/dist/chunk-UVUY6FLV.js +1254 -0
- package/dist/chunk-UZVFXGMS.js +930 -0
- package/dist/chunk-V4HS5JRL.js +1320 -0
- package/dist/chunk-VCG3Q3O4.js +479 -0
- package/dist/chunk-VKIKIN5U.js +1920 -0
- package/dist/chunk-VZIYTP3X.js +163 -0
- package/dist/chunk-WEBWXSFF.js +169 -0
- package/dist/chunk-WOHTTXLG.js +57 -0
- package/dist/chunk-WZXMZFVB.js +238 -0
- package/dist/chunk-X7USE7IA.js +24026 -0
- package/dist/chunk-X7USE7IA.js.map +1 -0
- package/dist/chunk-XY7W6MQN.js +274 -0
- package/dist/chunk-YEQTBPEB.js +344 -0
- package/dist/chunk-YHBMCP6C.js +156 -0
- package/dist/chunk-YJEG6TQ3.js +685 -0
- package/dist/chunk-YQYCWYFJ.js +962 -0
- package/dist/claim-4LKB2Z6T.js +200 -0
- package/dist/cli.js +32 -32
- package/dist/companies-KCHDEHAA.js +198 -0
- package/dist/company-C2Y7LY5H.js +308 -0
- package/dist/complete-MNN3PAZE.js +84 -0
- package/dist/connect-IABMKFGA.js +45 -0
- package/dist/conversation-FETU4KTF.js +96 -0
- package/dist/conversion-report-33SG7SHU.js +127 -0
- package/dist/conversion-upload-command-DWIGVHQZ.js +439 -0
- package/dist/conversion-writes-XGGTBML5.js +122 -0
- package/dist/conversions-PPP4QK7U.js +78 -0
- package/dist/conversions-S3WIR5R4.js +140 -0
- package/dist/create-A3ZIQVIH.js +239 -0
- package/dist/create-ESKBBBJX.js +135 -0
- package/dist/create-U2ITO4RV.js +218 -0
- package/dist/create-VNYTZJ4T.js +62 -0
- package/dist/creatives-WSCRC5GO.js +58 -0
- package/dist/creatives-XO5E4AIC.js +229 -0
- package/dist/credentials-ZV66ZUCK.js +290 -0
- package/dist/critique-ODWLA52C.js +1451 -0
- package/dist/critique-X3433R5M.js +232 -0
- package/dist/crm-WPPM2R7I.js +323 -0
- package/dist/crm-XPIQAGH7.js +229 -0
- package/dist/currency-HK2ZW2VW.js +88 -0
- package/dist/customers-GCM7WZII.js +65 -0
- package/dist/delete-GAIV2YVD.js +69 -0
- package/dist/delete-RVJLATPO.js +57 -0
- package/dist/delete-VJ5QXKZR.js +67 -0
- package/dist/demographics-XWIW3YJF.js +141 -0
- package/dist/discard-TWX2CQF5.js +69 -0
- package/dist/discover-Q5PAOIQQ.js +172 -0
- package/dist/domain-FE32BE2E.js +101 -0
- package/dist/download-5FYHTIGR.js +172 -0
- package/dist/draft-5VLO5UYZ.js +332 -0
- package/dist/draft-L2NXCIYT.js +315 -0
- package/dist/draft-L757UIW5.js +374 -0
- package/dist/draft-WK4PEMB6.js +614 -0
- package/dist/draft-ZCP3MIV6.js +220 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiments-DVR7WBGQ.js +236 -0
- package/dist/extract-JM6FAWAS.js +143 -0
- package/dist/facets-IEQJK5AW.js +117 -0
- package/dist/feedback-QUJ2V4WD.js +114 -0
- package/dist/feedback-SSCN7LEP.js +115 -0
- package/dist/feedback-record-P6WK4UPP.js +269 -0
- package/dist/fetch-Q6BIDVN5.js +204 -0
- package/dist/fit-XLK5LDPS.js +65 -0
- package/dist/flows-QVGZEYCH.js +340 -0
- package/dist/fonts-GARRSRIB.js +39 -0
- package/dist/forecast-GEYNZ5PQ.js +121 -0
- package/dist/forecast-THQNGKPE.js +169 -0
- package/dist/funnel-OABL4MLZ.js +397 -0
- package/dist/generate-Y4NJEYIH.js +263 -0
- package/dist/get-63KQ62KN.js +82 -0
- package/dist/get-RDGC3QA5.js +62 -0
- package/dist/google-32BCQC7C.js +163 -0
- package/dist/google-VYCMEWUL.js +3300 -0
- package/dist/google-ads-PCXGVHZV.js +198 -0
- package/dist/history-J7ANCPWY.js +153 -0
- package/dist/history-NX67UIZ7.js +102 -0
- package/dist/history-VKRYKQ4C.js +69 -0
- package/dist/hubspot-Z3J3JBEH.js +814 -0
- package/dist/ideas-22I7JTI7.js +45 -0
- package/dist/images-3C4Y6RWL.js +92 -0
- package/dist/ingest-CFH2MPSF.js +131 -0
- package/dist/ingest-VXX2Y76C.js +28 -0
- package/dist/insights-3IPSEBYW.js +132 -0
- package/dist/inspect-LDXPOGGH.js +192 -0
- package/dist/intent-ZM4K623V.js +95 -0
- package/dist/keyword-gap-FAAF2I6V.js +130 -0
- package/dist/keyword-metrics-E36SMZSP.js +200 -0
- package/dist/keywords-for-site-AWGWDXZA.js +131 -0
- package/dist/landing-PVTDVL22.js +28 -0
- package/dist/languages-ZGDTERIQ.js +40 -0
- package/dist/leads-XC3C5HGC.js +115 -0
- package/dist/learn-NYRL53NQ.js +207 -0
- package/dist/line-item-writes-LMSYCR6G.js +211 -0
- package/dist/line-items-P24SOGVZ.js +107 -0
- package/dist/link-H3TTWJJO.js +67 -0
- package/dist/linkedin-57JHH7QN.js +1344 -0
- package/dist/linkedin-person-HKKIE32Q.js +139 -0
- package/dist/list-KHCFVTQU.js +154 -0
- package/dist/list-LC2GRYEI.js +67 -0
- package/dist/list-UCTFATXS.js +306 -0
- package/dist/locations-A65MFB7Q.js +69 -0
- package/dist/locations-WN6B3IJK.js +40 -0
- package/dist/log-SLYCPRCY.js +95 -0
- package/dist/make-HTCPU6HU.js +1367 -0
- package/dist/map-237LQ5N5.js +445 -0
- package/dist/mcp-GX5TOO7Y.js +729 -0
- package/dist/media-sources-ODNIS7A5.js +35 -0
- package/dist/members-TYQKWR7Z.js +47 -0
- package/dist/metrics-3U3ZO2RF.js +152 -0
- package/dist/models-VOSJJFO2.js +155 -0
- package/dist/normalize-MDTMKLYO.js +144 -0
- package/dist/options-MEADUZY3.js +125 -0
- package/dist/organization-BXJSHRZG.js +949 -0
- package/dist/performance-CU65TLCB.js +5565 -0
- package/dist/performance-IGCOP5VH.js +27 -0
- package/dist/pixels-U6UA662G.js +62 -0
- package/dist/preview-YQ6P5A53.js +101 -0
- package/dist/promoted-tweet-writes-X2CUNBU2.js +183 -0
- package/dist/promoted-tweets-G2NOW5OF.js +119 -0
- package/dist/publish-YPCXCU4P.js +350 -0
- package/dist/query-SAQADBM2.js +62 -0
- package/dist/reddit-XMAGZMD4.js +29 -0
- package/dist/refresh-QIK3CXLV.js +97 -0
- package/dist/release-O7KGD5MI.js +63 -0
- package/dist/relevant-pages-KTSODNNW.js +99 -0
- package/dist/remove-7FAWM2H4.js +53 -0
- package/dist/reopen-4ZWEYNCI.js +66 -0
- package/dist/rerun-IDUKOW6Z.js +97 -0
- package/dist/research-SPFILN24.js +75 -0
- package/dist/research-Y5MSZH6T.js +265 -0
- package/dist/reset-4K7BXUY6.js +57 -0
- package/dist/reset-YSDYSZ64.js +57 -0
- package/dist/resolve-DD6ES7GJ.js +124 -0
- package/dist/retry-PZTS6KMQ.js +65 -0
- package/dist/retry-YAZ3JXYL.js +63 -0
- package/dist/revenue-PLJ46IYH.js +91 -0
- package/dist/rules-I4PL72J7.js +99 -0
- package/dist/rules-add-EFD2YSLH.js +465 -0
- package/dist/run-FN365AXZ.js +72 -0
- package/dist/run-WCFKVQQQ.js +69 -0
- package/dist/scaffold-ad-PI4IHOG5.js +1513 -0
- package/dist/scaffold-static-ad-RDOCRFEP.js +1012 -0
- package/dist/scaffold-video-HPRYTHE6.js +885 -0
- package/dist/schedule-NPZPVNSO.js +64 -0
- package/dist/scheduled-agents-5TNWITKB.js +55 -0
- package/dist/schema-PMVRMIRU.js +135 -0
- package/dist/search-BRANRGRU.js +177 -0
- package/dist/select-CLDJE7VJ.js +110 -0
- package/dist/set-prompt-7VHSKVO6.js +199 -0
- package/dist/setup-links-PAA7XYV5.js +144 -0
- package/dist/shopify-VWIRGI6H.js +4009 -0
- package/dist/site-Q3PMNJ2Z.js +180 -0
- package/dist/sources-4YHNM22P.js +30 -0
- package/dist/sources-BYMGSUPZ.js +457 -0
- package/dist/stale-WO6FTPLQ.js +90 -0
- package/dist/status-B2WRAPZO.js +65 -0
- package/dist/stock-BOOSUS2C.js +212 -0
- package/dist/studio-XLC37YGX.js +49 -0
- package/dist/sync-2QIPZFSK.js +57 -0
- package/dist/sync-definition-L52PGD7B.js +70 -0
- package/dist/tags-AIE4XEU2.js +227 -0
- package/dist/tags-DF6JNSNA.js +26 -0
- package/dist/tags-SWP4MXQO.js +23 -0
- package/dist/tags-VXHV4JWM.js +23 -0
- package/dist/tags-XYQUPA6M.js +23 -0
- package/dist/targeting-criteria-UYAEVSX3.js +113 -0
- package/dist/targets-XFL7CE7N.js +106 -0
- package/dist/testimonials-DTCPATQ2.js +32 -0
- package/dist/themes-HBWSZRFM.js +95 -0
- package/dist/top-companies-SCKUWYFG.js +111 -0
- package/dist/transcript-H7VSMOMV.js +165 -0
- package/dist/translate-LCLG4NYR.js +603 -0
- package/dist/triggers-HN3O2CNG.js +144 -0
- package/dist/unlink-B5CD7ZW6.js +70 -0
- package/dist/unstage-34W4OU5D.js +88 -0
- package/dist/update-2OTR4JQV.js +101 -0
- package/dist/update-3CKLLPYX.js +66 -0
- package/dist/update-6V2A4JGZ.js +192 -0
- package/dist/update-7FBCTLFP.js +155 -0
- package/dist/upload-72ARWDHN.js +137 -0
- package/dist/url-options-6WC2XQKB.js +131 -0
- package/dist/url-params-TAZ2S675.js +101 -0
- package/dist/validate-6F3JKVQV.js +135 -0
- package/dist/videos-UCUYPQNK.js +41 -0
- package/dist/viewer-check-XZYL55G6.js +83 -0
- package/dist/web-YYXQXIH4.js +173 -0
- package/dist/winning-ads-H3HCI5QT.js +86 -0
- package/dist/write-commands-DS7WNSYA.js +1524 -0
- package/dist/x-K4N6QIH2.js +47 -0
- package/package.json +1 -1
- package/dist/account-52WDLW4Z.js +0 -82
- package/dist/account-SGHH4SIM.js +0 -82
- package/dist/account-reads-CQIJCPCH.js +0 -219
- package/dist/account-users-KP6A43DU.js +0 -64
- package/dist/account-writes-3BJSUM2V.js +0 -68
- package/dist/accounts-FV5FPX3X.js +0 -80
- package/dist/accounts-LQFSNBIC.js +0 -713
- package/dist/accounts-ZV4IXOF5.js +0 -119
- package/dist/actions-RZ62K3WT.js +0 -55
- package/dist/activecampaign-E6PM6YNO.js +0 -938
- package/dist/ad-group-writes-KU4QMQZP.js +0 -172
- package/dist/ad-groups-NMW2G32A.js +0 -70
- package/dist/ad-writes-7NOFTOM4.js +0 -176
- package/dist/add-HMAQJG4J.js +0 -305
- package/dist/add-MLTE6PPC.js +0 -107
- package/dist/ads-P4Z3MLKS.js +0 -79
- package/dist/ads-T6J6QQKX.js +0 -48
- package/dist/advertisers-FP7MTMUI.js +0 -123
- package/dist/analytics-AYYFKMF6.js +0 -2437
- package/dist/analytics-D2IA2P5E.js +0 -447
- package/dist/animate-VX7E7KJE.js +0 -480
- package/dist/assign-EE4EDOPX.js +0 -80
- package/dist/audience-size-SRNH57FA.js +0 -76
- package/dist/audiences-P3SPTAJT.js +0 -280
- package/dist/audit-R5JG3ABY.js +0 -154
- package/dist/autocomplete-AIKXLHME.js +0 -114
- package/dist/avatars-3CAQ5OBN.js +0 -38
- package/dist/bid-pricing-PDZIJGOX.js +0 -103
- package/dist/brand-2SN7MM72.js +0 -22
- package/dist/brief-S4R3NZMS.js +0 -543
- package/dist/campaign-groups-OHL6POG2.js +0 -99
- package/dist/campaign-writes-P5XPFTRK.js +0 -176
- package/dist/campaign-writes-RKCE4MSZ.js +0 -168
- package/dist/campaigns-HGMQSYUM.js +0 -113
- package/dist/campaigns-SWZJVE2T.js +0 -78
- package/dist/campaigns-UWUEENB6.js +0 -111
- package/dist/canvas-RAPLCU3Y.js +0 -46
- package/dist/capabilities-FF6NNJ5L.js +0 -147
- package/dist/catalog-TOHUVBEU.js +0 -66
- package/dist/catalogs-V7PTEJBO.js +0 -130
- package/dist/changes-5OW3UYMF.js +0 -167
- package/dist/chatgpt-JBMYNVJB.js +0 -47
- package/dist/chats-XVAFLM47.js +0 -589
- package/dist/check-FFRPBGUH.js +0 -107
- package/dist/chunk-22RM3UOO.js +0 -63
- package/dist/chunk-2EEDKWYY.js +0 -479
- package/dist/chunk-2JAO7PMI.js +0 -2235
- package/dist/chunk-2K5GSSPU.js +0 -1920
- package/dist/chunk-2KQQHBBQ.js +0 -547
- package/dist/chunk-2N7TB346.js +0 -5368
- package/dist/chunk-33ZP44QR.js +0 -103
- package/dist/chunk-34RDCDCF.js +0 -207
- package/dist/chunk-47VWQ7FQ.js +0 -843
- package/dist/chunk-4SAO6RT2.js +0 -962
- package/dist/chunk-5XB352F5.js +0 -197
- package/dist/chunk-7GFGFBWZ.js +0 -344
- package/dist/chunk-7MIOMG22.js +0 -685
- package/dist/chunk-7YEP3NFN.js +0 -163
- package/dist/chunk-AP7X3ONA.js +0 -297
- package/dist/chunk-ARCQQUEL.js +0 -220
- package/dist/chunk-AXJ2DMM4.js +0 -19
- package/dist/chunk-BFAPSFS7.js +0 -1518
- package/dist/chunk-BMMXYR7A.js +0 -238
- package/dist/chunk-BNEWJXKU.js +0 -638
- package/dist/chunk-C4BPAMAJ.js +0 -8954
- package/dist/chunk-C4BPAMAJ.js.map +0 -1
- package/dist/chunk-C57CXCTI.js +0 -455
- package/dist/chunk-C7KV5O5J.js +0 -274
- package/dist/chunk-CKN4HQZM.js +0 -89
- package/dist/chunk-CTAXKC5J.js +0 -66
- package/dist/chunk-DXQ5DUFU.js +0 -392
- package/dist/chunk-EV2HVFTJ.js +0 -224
- package/dist/chunk-GQUBM3Z6.js +0 -249
- package/dist/chunk-H7LKYGLJ.js +0 -24026
- package/dist/chunk-H7LKYGLJ.js.map +0 -1
- package/dist/chunk-HM4NWA72.js +0 -5471
- package/dist/chunk-IB6VWG32.js +0 -755
- package/dist/chunk-ICASR3ES.js +0 -7901
- package/dist/chunk-ICASR3ES.js.map +0 -1
- package/dist/chunk-IGCS3X4F.js +0 -150
- package/dist/chunk-IJ6WA2JW.js +0 -148
- package/dist/chunk-ITIUWJGQ.js +0 -131
- package/dist/chunk-J4BJLHLQ.js +0 -3510
- package/dist/chunk-JAC6JVCI.js +0 -26
- package/dist/chunk-JCFICJWI.js +0 -831
- package/dist/chunk-JGK2FDZW.js +0 -1919
- package/dist/chunk-JJBO7QIR.js +0 -604
- package/dist/chunk-K7APGDEO.js +0 -430
- package/dist/chunk-KJXKLEJ7.js +0 -91
- package/dist/chunk-L2LGHWJN.js +0 -156
- package/dist/chunk-LAOCXV6Z.js +0 -98
- package/dist/chunk-M2RXXLK3.js +0 -51
- package/dist/chunk-MCJ5I5LR.js +0 -3187
- package/dist/chunk-MCJ5I5LR.js.map +0 -1
- package/dist/chunk-MKG57P2E.js +0 -783
- package/dist/chunk-MYGPWKEI.js +0 -170
- package/dist/chunk-MZPS46OR.js +0 -76
- package/dist/chunk-N7EHQNNG.js +0 -312
- package/dist/chunk-NAZ7A7LN.js +0 -930
- package/dist/chunk-OHVXHNUR.js +0 -57
- package/dist/chunk-OJRS3TGS.js +0 -399
- package/dist/chunk-OJZKY5UM.js +0 -46
- package/dist/chunk-PRZBEZBA.js +0 -203
- package/dist/chunk-PTE6BNCH.js +0 -334
- package/dist/chunk-Q5DLTIYL.js +0 -142
- package/dist/chunk-QVHZTCB5.js +0 -1254
- package/dist/chunk-QVO5VPNA.js +0 -169
- package/dist/chunk-RBR5PHYJ.js +0 -91
- package/dist/chunk-RHBCKOF2.js +0 -61
- package/dist/chunk-S3XCG55E.js +0 -454
- package/dist/chunk-SPNF2V46.js +0 -468
- package/dist/chunk-SPNY52S5.js +0 -494
- package/dist/chunk-TEQEZAJI.js +0 -1320
- package/dist/chunk-U6AWJIFP.js +0 -225
- package/dist/chunk-VAV5CCDD.js +0 -167
- package/dist/chunk-VSALEVXN.js +0 -23
- package/dist/chunk-W3TZPHZO.js +0 -285
- package/dist/chunk-XHWHBGKX.js +0 -4277
- package/dist/chunk-XHWHBGKX.js.map +0 -1
- package/dist/chunk-Z3RGBLVJ.js +0 -64
- package/dist/claim-YABJMHON.js +0 -200
- package/dist/companies-K2IVXNC5.js +0 -198
- package/dist/company-6JAVJPSU.js +0 -308
- package/dist/complete-4R6O7TAF.js +0 -84
- package/dist/connect-FWT2IC5N.js +0 -45
- package/dist/conversation-DSRM4JIU.js +0 -96
- package/dist/conversion-report-2FREFML5.js +0 -127
- package/dist/conversion-upload-command-JAGV6GMG.js +0 -439
- package/dist/conversion-writes-JZIJSQ7T.js +0 -122
- package/dist/conversions-4D5TEPO4.js +0 -140
- package/dist/conversions-Q5EBTEXA.js +0 -78
- package/dist/create-3OYFSUR5.js +0 -62
- package/dist/create-FMGLMQZC.js +0 -218
- package/dist/create-SDFDKJGJ.js +0 -239
- package/dist/create-VW23RNWT.js +0 -135
- package/dist/creatives-E33LXJG7.js +0 -229
- package/dist/creatives-SLKVFR4Y.js +0 -58
- package/dist/credentials-WGGZFBDJ.js +0 -290
- package/dist/critique-EOYMGUIK.js +0 -232
- package/dist/critique-US4B3ZY5.js +0 -1451
- package/dist/crm-T4XPJZTR.js +0 -229
- package/dist/crm-UBQ735O6.js +0 -323
- package/dist/currency-EFDQYW5B.js +0 -88
- package/dist/customers-HHQUU3MA.js +0 -65
- package/dist/delete-JPIV5E2Y.js +0 -67
- package/dist/delete-UC5XQZWC.js +0 -69
- package/dist/delete-X5TD7P3U.js +0 -57
- package/dist/demographics-6GQYZIVR.js +0 -141
- package/dist/discard-5UNX5TEZ.js +0 -69
- package/dist/discover-BPUUWRBP.js +0 -172
- package/dist/domain-7BOPJLTP.js +0 -101
- package/dist/download-B4IV43AJ.js +0 -172
- package/dist/draft-FVB6SEP3.js +0 -332
- package/dist/draft-GCOCG4PO.js +0 -315
- package/dist/draft-GSDDK6FO.js +0 -614
- package/dist/draft-QT6MVG47.js +0 -220
- package/dist/draft-VRE52N6B.js +0 -374
- package/dist/experiments-3JSDRY5W.js +0 -236
- package/dist/extract-BVSL6H3S.js +0 -143
- package/dist/facets-NN33WFSR.js +0 -117
- package/dist/feedback-BYXZEEW3.js +0 -114
- package/dist/feedback-P7ZGD7JV.js +0 -115
- package/dist/feedback-record-ZFEXC54P.js +0 -269
- package/dist/fetch-3JPN4QAJ.js +0 -204
- package/dist/fit-2R5NGB7E.js +0 -65
- package/dist/flows-XM7GBTIU.js +0 -340
- package/dist/fonts-IO4X2AKN.js +0 -39
- package/dist/forecast-HMNQZFVL.js +0 -169
- package/dist/forecast-MOFJ3BKH.js +0 -121
- package/dist/funnel-FR7JQUZW.js +0 -397
- package/dist/generate-KAWRRYTT.js +0 -263
- package/dist/get-BMJIYS25.js +0 -62
- package/dist/get-MXXANBI3.js +0 -82
- package/dist/google-3CAUWNWE.js +0 -3300
- package/dist/google-MHFI5OGW.js +0 -163
- package/dist/google-ads-ULZRFDZU.js +0 -198
- package/dist/history-F3U3WNEJ.js +0 -102
- package/dist/history-SGFTHPT2.js +0 -153
- package/dist/history-YQSYXBJH.js +0 -69
- package/dist/hubspot-FASIF5U5.js +0 -814
- package/dist/ideas-TKCOPOMS.js +0 -45
- package/dist/images-K4EPTLTF.js +0 -92
- package/dist/ingest-MCCJBWYC.js +0 -131
- package/dist/ingest-T3AV5OR4.js +0 -28
- package/dist/insights-UVCFOB3N.js +0 -132
- package/dist/inspect-3OHTBHNO.js +0 -192
- package/dist/intent-F5NTOSQC.js +0 -95
- package/dist/keyword-gap-EB5QATYN.js +0 -130
- package/dist/keyword-metrics-E4PPLUYX.js +0 -200
- package/dist/keywords-for-site-HD2FOBMH.js +0 -131
- package/dist/landing-NC2A277E.js +0 -28
- package/dist/languages-4S26FJDP.js +0 -40
- package/dist/leads-LL2S6ENL.js +0 -115
- package/dist/learn-2CP2SROJ.js +0 -207
- package/dist/line-item-writes-56A4ITU6.js +0 -211
- package/dist/line-items-AIIDDTTH.js +0 -107
- package/dist/link-BIXBY5KG.js +0 -67
- package/dist/linkedin-TXX22PPH.js +0 -1344
- package/dist/linkedin-person-5KEGEX6G.js +0 -139
- package/dist/list-C5AT3LF4.js +0 -306
- package/dist/list-UQNU4QUE.js +0 -154
- package/dist/list-YBHQ3HIB.js +0 -67
- package/dist/locations-UWBQLHXW.js +0 -40
- package/dist/locations-WXGOI3VV.js +0 -69
- package/dist/log-FZJTWN3S.js +0 -95
- package/dist/make-CGWFHT3N.js +0 -1367
- package/dist/map-WDOBMEAW.js +0 -445
- package/dist/mcp-JJZ5YGSS.js +0 -729
- package/dist/media-sources-AJ5USQXV.js +0 -35
- package/dist/members-NSR7S62Y.js +0 -47
- package/dist/metrics-4AFEEDVP.js +0 -152
- package/dist/models-2ZEM64H5.js +0 -155
- package/dist/normalize-RQEHHRES.js +0 -144
- package/dist/options-4BW4P6JD.js +0 -125
- package/dist/organization-TKGXZYH6.js +0 -949
- package/dist/performance-27VHB3UA.js +0 -27
- package/dist/performance-XGHZDQGU.js +0 -5565
- package/dist/pixels-HEI5WVAO.js +0 -62
- package/dist/preview-2YRMPWI2.js +0 -101
- package/dist/promoted-tweet-writes-PT6BW64X.js +0 -183
- package/dist/promoted-tweets-SBZXEU7S.js +0 -119
- package/dist/publish-Z7ZK3XB7.js +0 -350
- package/dist/query-K7MYBRTS.js +0 -62
- package/dist/reddit-L4RQNJBL.js +0 -29
- package/dist/refresh-EWALAFUQ.js +0 -97
- package/dist/release-C2H2KBNY.js +0 -63
- package/dist/relevant-pages-XYQKVX3U.js +0 -99
- package/dist/remove-JOXARFD3.js +0 -53
- package/dist/reopen-WRW4JVO2.js +0 -66
- package/dist/rerun-3I7MF3FV.js +0 -97
- package/dist/research-422BF4O4.js +0 -265
- package/dist/research-MCTV6ZJZ.js +0 -75
- package/dist/reset-7ANRT4I3.js +0 -57
- package/dist/reset-MZDRR5VP.js +0 -57
- package/dist/resolve-KKRG65WF.js +0 -124
- package/dist/retry-PDKRPWIZ.js +0 -63
- package/dist/retry-YZCBWAHT.js +0 -65
- package/dist/revenue-F7E5ZRLB.js +0 -91
- package/dist/rules-GRLAFAZU.js +0 -99
- package/dist/rules-add-3C7LW4HD.js +0 -465
- package/dist/run-HJQ4KAWX.js +0 -72
- package/dist/run-ZV73UQ3E.js +0 -69
- package/dist/scaffold-ad-LBLEARDJ.js +0 -1513
- package/dist/scaffold-static-ad-GBRLIWKP.js +0 -1012
- package/dist/scaffold-video-EINW32ZH.js +0 -885
- package/dist/schedule-X5ZKZXPC.js +0 -64
- package/dist/scheduled-agents-APZA42K2.js +0 -55
- package/dist/schema-6JF4ZNGY.js +0 -135
- package/dist/search-4VAIJA2O.js +0 -177
- package/dist/select-YZO5DDY6.js +0 -110
- package/dist/set-prompt-GU3HPWWZ.js +0 -199
- package/dist/setup-links-ORBZ5T4H.js +0 -144
- package/dist/shopify-SN3TBTL5.js +0 -4009
- package/dist/site-3ZORNMAE.js +0 -180
- package/dist/sources-WGEC6FGZ.js +0 -457
- package/dist/sources-WT6M3QIX.js +0 -30
- package/dist/stale-BOT3VZCB.js +0 -90
- package/dist/status-WED3AXTZ.js +0 -65
- package/dist/stock-33GHQWNQ.js +0 -212
- package/dist/studio-4EV5S7PR.js +0 -49
- package/dist/sync-2GLGCSRQ.js +0 -57
- package/dist/sync-definition-SNUWHPGO.js +0 -70
- package/dist/tags-AQNOA7X5.js +0 -23
- package/dist/tags-CVPMOYKI.js +0 -23
- package/dist/tags-IQY7GYMU.js +0 -227
- package/dist/tags-MYUCES3W.js +0 -26
- package/dist/tags-SCMHCPF4.js +0 -23
- package/dist/targeting-criteria-RVJHW22S.js +0 -113
- package/dist/targets-G6SN6VTL.js +0 -106
- package/dist/testimonials-JALUWWLB.js +0 -32
- package/dist/themes-FW3VWZJE.js +0 -95
- package/dist/top-companies-WR6TXTNM.js +0 -111
- package/dist/transcript-JMRRJEET.js +0 -165
- package/dist/translate-YNOS5HTV.js +0 -603
- package/dist/triggers-UUSPHGXX.js +0 -144
- package/dist/unlink-U5VBTO7P.js +0 -70
- package/dist/unstage-KSYT7FOP.js +0 -88
- package/dist/update-GFKDIJRE.js +0 -66
- package/dist/update-QF6BLM5F.js +0 -101
- package/dist/update-VBQKI72I.js +0 -192
- package/dist/update-ZIKHDZRT.js +0 -155
- package/dist/upload-UYE73VLK.js +0 -137
- package/dist/url-options-AHJPR5VY.js +0 -131
- package/dist/url-params-P6MV2HKB.js +0 -101
- package/dist/validate-TTVHWWX5.js +0 -135
- package/dist/videos-XGQL37V4.js +0 -41
- package/dist/viewer-check-UPLR7C2K.js +0 -83
- package/dist/web-PIMTCU4V.js +0 -173
- package/dist/winning-ads-P4MXWYK6.js +0 -86
- package/dist/write-commands-24EOSYWL.js +0 -1524
- package/dist/x-HBA6AJJA.js +0 -47
- /package/dist/{account-SGHH4SIM.js.map → account-H6OOCEE3.js.map} +0 -0
- /package/dist/{account-52WDLW4Z.js.map → account-JVDP5ERG.js.map} +0 -0
- /package/dist/{account-reads-CQIJCPCH.js.map → account-reads-OQCA5LEM.js.map} +0 -0
- /package/dist/{account-users-KP6A43DU.js.map → account-users-VBPW6FPY.js.map} +0 -0
- /package/dist/{account-writes-3BJSUM2V.js.map → account-writes-KEXINJ5D.js.map} +0 -0
- /package/dist/{accounts-FV5FPX3X.js.map → accounts-CNWJYCUV.js.map} +0 -0
- /package/dist/{accounts-LQFSNBIC.js.map → accounts-M5SCXY6W.js.map} +0 -0
- /package/dist/{accounts-ZV4IXOF5.js.map → accounts-QR6OQ3GC.js.map} +0 -0
- /package/dist/{actions-RZ62K3WT.js.map → actions-6DC3FUQF.js.map} +0 -0
- /package/dist/{activecampaign-E6PM6YNO.js.map → activecampaign-YMVIS6EN.js.map} +0 -0
- /package/dist/{ad-group-writes-KU4QMQZP.js.map → ad-group-writes-SVR4RCKB.js.map} +0 -0
- /package/dist/{ad-groups-NMW2G32A.js.map → ad-groups-C726HUXS.js.map} +0 -0
- /package/dist/{ad-writes-7NOFTOM4.js.map → ad-writes-RWJIWGEL.js.map} +0 -0
- /package/dist/{add-HMAQJG4J.js.map → add-ITTW4LQC.js.map} +0 -0
- /package/dist/{add-MLTE6PPC.js.map → add-QZHZIAVE.js.map} +0 -0
- /package/dist/{ads-P4Z3MLKS.js.map → ads-3KK7VQPU.js.map} +0 -0
- /package/dist/{ads-T6J6QQKX.js.map → ads-UZ355BQS.js.map} +0 -0
- /package/dist/{advertisers-FP7MTMUI.js.map → advertisers-Z2WLSJEC.js.map} +0 -0
- /package/dist/{analytics-AYYFKMF6.js.map → analytics-64DI3ZJL.js.map} +0 -0
- /package/dist/{analytics-D2IA2P5E.js.map → analytics-GILIREA3.js.map} +0 -0
- /package/dist/{animate-VX7E7KJE.js.map → animate-GTUI7XX4.js.map} +0 -0
- /package/dist/{assign-EE4EDOPX.js.map → assign-6RI3EC7U.js.map} +0 -0
- /package/dist/{audience-size-SRNH57FA.js.map → audience-size-M6NORPEU.js.map} +0 -0
- /package/dist/{audiences-P3SPTAJT.js.map → audiences-6L43K2T2.js.map} +0 -0
- /package/dist/{audit-R5JG3ABY.js.map → audit-CPEOJSCV.js.map} +0 -0
- /package/dist/{autocomplete-AIKXLHME.js.map → autocomplete-DCCI3W5Y.js.map} +0 -0
- /package/dist/{avatars-3CAQ5OBN.js.map → avatars-GDRSOS6V.js.map} +0 -0
- /package/dist/{bid-pricing-PDZIJGOX.js.map → bid-pricing-FQ6VJSH6.js.map} +0 -0
- /package/dist/{brand-2SN7MM72.js.map → brand-6TUMI2GH.js.map} +0 -0
- /package/dist/{brief-S4R3NZMS.js.map → brief-U6ZT5UYG.js.map} +0 -0
- /package/dist/{campaign-groups-OHL6POG2.js.map → campaign-groups-RTP2MKNJ.js.map} +0 -0
- /package/dist/{campaign-writes-RKCE4MSZ.js.map → campaign-writes-4NVY7S4U.js.map} +0 -0
- /package/dist/{campaign-writes-P5XPFTRK.js.map → campaign-writes-FUIGN5OR.js.map} +0 -0
- /package/dist/{campaigns-HGMQSYUM.js.map → campaigns-7ZVVYTBM.js.map} +0 -0
- /package/dist/{campaigns-UWUEENB6.js.map → campaigns-CCDJKV7I.js.map} +0 -0
- /package/dist/{campaigns-SWZJVE2T.js.map → campaigns-N2SWSBYT.js.map} +0 -0
- /package/dist/{canvas-RAPLCU3Y.js.map → canvas-UYRDIRPR.js.map} +0 -0
- /package/dist/{capabilities-FF6NNJ5L.js.map → capabilities-4KGVNK4Q.js.map} +0 -0
- /package/dist/{catalog-TOHUVBEU.js.map → catalog-JICUCAJZ.js.map} +0 -0
- /package/dist/{catalogs-V7PTEJBO.js.map → catalogs-G5NOKL4L.js.map} +0 -0
- /package/dist/{changes-5OW3UYMF.js.map → changes-AS4RVEAL.js.map} +0 -0
- /package/dist/{chatgpt-JBMYNVJB.js.map → chatgpt-O6EEAYLF.js.map} +0 -0
- /package/dist/{chats-XVAFLM47.js.map → chats-JNL4L6GZ.js.map} +0 -0
- /package/dist/{check-FFRPBGUH.js.map → check-EXT5WAYI.js.map} +0 -0
- /package/dist/{chunk-2N7TB346.js.map → chunk-2NOFIV6M.js.map} +0 -0
- /package/dist/{chunk-JJBO7QIR.js.map → chunk-3QLGV4XN.js.map} +0 -0
- /package/dist/{chunk-33ZP44QR.js.map → chunk-3QNSGFE2.js.map} +0 -0
- /package/dist/{chunk-2KQQHBBQ.js.map → chunk-5CH2JQCA.js.map} +0 -0
- /package/dist/{chunk-OJRS3TGS.js.map → chunk-5LEIUG5H.js.map} +0 -0
- /package/dist/{chunk-OJZKY5UM.js.map → chunk-5NMKNHJI.js.map} +0 -0
- /package/dist/{chunk-C57CXCTI.js.map → chunk-66LB37BF.js.map} +0 -0
- /package/dist/{chunk-LAOCXV6Z.js.map → chunk-6D7WTUF3.js.map} +0 -0
- /package/dist/{chunk-JAC6JVCI.js.map → chunk-6OIKNJ7G.js.map} +0 -0
- /package/dist/{chunk-PTE6BNCH.js.map → chunk-6RWLCOAH.js.map} +0 -0
- /package/dist/{chunk-34RDCDCF.js.map → chunk-6TNRSWNA.js.map} +0 -0
- /package/dist/{chunk-RBR5PHYJ.js.map → chunk-7YXBMYSM.js.map} +0 -0
- /package/dist/{chunk-M2RXXLK3.js.map → chunk-A6LOIUWB.js.map} +0 -0
- /package/dist/{chunk-KJXKLEJ7.js.map → chunk-BBS5VXLK.js.map} +0 -0
- /package/dist/{chunk-N7EHQNNG.js.map → chunk-BPDUE3MT.js.map} +0 -0
- /package/dist/{chunk-PRZBEZBA.js.map → chunk-C3XJ46C2.js.map} +0 -0
- /package/dist/{chunk-AXJ2DMM4.js.map → chunk-CC42TKFH.js.map} +0 -0
- /package/dist/{chunk-Q5DLTIYL.js.map → chunk-CFF7VAOQ.js.map} +0 -0
- /package/dist/{chunk-MKG57P2E.js.map → chunk-CUTTTFAU.js.map} +0 -0
- /package/dist/{chunk-IGCS3X4F.js.map → chunk-D32EWSMB.js.map} +0 -0
- /package/dist/{chunk-VSALEVXN.js.map → chunk-EDZDYB3C.js.map} +0 -0
- /package/dist/{chunk-DXQ5DUFU.js.map → chunk-ELFZ63XY.js.map} +0 -0
- /package/dist/{chunk-ITIUWJGQ.js.map → chunk-EM5R3BYC.js.map} +0 -0
- /package/dist/{chunk-MYGPWKEI.js.map → chunk-F5VR6HSI.js.map} +0 -0
- /package/dist/{chunk-HM4NWA72.js.map → chunk-FE2MFNVT.js.map} +0 -0
- /package/dist/{chunk-2JAO7PMI.js.map → chunk-FLZNYVMN.js.map} +0 -0
- /package/dist/{chunk-SPNF2V46.js.map → chunk-FPYMFYML.js.map} +0 -0
- /package/dist/{chunk-IB6VWG32.js.map → chunk-FWYWLEDP.js.map} +0 -0
- /package/dist/{chunk-S3XCG55E.js.map → chunk-G4TPYA7F.js.map} +0 -0
- /package/dist/{chunk-47VWQ7FQ.js.map → chunk-GRX3JXSR.js.map} +0 -0
- /package/dist/{chunk-GQUBM3Z6.js.map → chunk-H423YXYY.js.map} +0 -0
- /package/dist/{chunk-JGK2FDZW.js.map → chunk-J4AWNWKN.js.map} +0 -0
- /package/dist/{chunk-W3TZPHZO.js.map → chunk-JLAFNORO.js.map} +0 -0
- /package/dist/{chunk-5XB352F5.js.map → chunk-JQYB2DS3.js.map} +0 -0
- /package/dist/{chunk-CTAXKC5J.js.map → chunk-JYOP6YVT.js.map} +0 -0
- /package/dist/{chunk-SPNY52S5.js.map → chunk-KOKPQE4N.js.map} +0 -0
- /package/dist/{chunk-JCFICJWI.js.map → chunk-KTX7QAKP.js.map} +0 -0
- /package/dist/{chunk-BFAPSFS7.js.map → chunk-LAMSUL26.js.map} +0 -0
- /package/dist/{chunk-EV2HVFTJ.js.map → chunk-LYGZBNSC.js.map} +0 -0
- /package/dist/{chunk-CKN4HQZM.js.map → chunk-NI5R6Y24.js.map} +0 -0
- /package/dist/{chunk-BNEWJXKU.js.map → chunk-NOCBNING.js.map} +0 -0
- /package/dist/{chunk-AP7X3ONA.js.map → chunk-OEO2NSNC.js.map} +0 -0
- /package/dist/{chunk-ARCQQUEL.js.map → chunk-OZNBVJGC.js.map} +0 -0
- /package/dist/{chunk-K7APGDEO.js.map → chunk-PYZVVMF4.js.map} +0 -0
- /package/dist/{chunk-IJ6WA2JW.js.map → chunk-QGAUDVMR.js.map} +0 -0
- /package/dist/{chunk-22RM3UOO.js.map → chunk-QZ4YHQLW.js.map} +0 -0
- /package/dist/{chunk-Z3RGBLVJ.js.map → chunk-RIIMF75G.js.map} +0 -0
- /package/dist/{chunk-U6AWJIFP.js.map → chunk-RUMHZX5N.js.map} +0 -0
- /package/dist/{chunk-J4BJLHLQ.js.map → chunk-S36WWACM.js.map} +0 -0
- /package/dist/{chunk-RHBCKOF2.js.map → chunk-SHYUXLE5.js.map} +0 -0
- /package/dist/{chunk-MZPS46OR.js.map → chunk-SIKCVWM3.js.map} +0 -0
- /package/dist/{chunk-VAV5CCDD.js.map → chunk-SNVAE572.js.map} +0 -0
- /package/dist/{chunk-QVHZTCB5.js.map → chunk-UVUY6FLV.js.map} +0 -0
- /package/dist/{chunk-NAZ7A7LN.js.map → chunk-UZVFXGMS.js.map} +0 -0
- /package/dist/{chunk-TEQEZAJI.js.map → chunk-V4HS5JRL.js.map} +0 -0
- /package/dist/{chunk-2EEDKWYY.js.map → chunk-VCG3Q3O4.js.map} +0 -0
- /package/dist/{chunk-2K5GSSPU.js.map → chunk-VKIKIN5U.js.map} +0 -0
- /package/dist/{chunk-7YEP3NFN.js.map → chunk-VZIYTP3X.js.map} +0 -0
- /package/dist/{chunk-QVO5VPNA.js.map → chunk-WEBWXSFF.js.map} +0 -0
- /package/dist/{chunk-OHVXHNUR.js.map → chunk-WOHTTXLG.js.map} +0 -0
- /package/dist/{chunk-BMMXYR7A.js.map → chunk-WZXMZFVB.js.map} +0 -0
- /package/dist/{chunk-C7KV5O5J.js.map → chunk-XY7W6MQN.js.map} +0 -0
- /package/dist/{chunk-7GFGFBWZ.js.map → chunk-YEQTBPEB.js.map} +0 -0
- /package/dist/{chunk-L2LGHWJN.js.map → chunk-YHBMCP6C.js.map} +0 -0
- /package/dist/{chunk-7MIOMG22.js.map → chunk-YJEG6TQ3.js.map} +0 -0
- /package/dist/{chunk-4SAO6RT2.js.map → chunk-YQYCWYFJ.js.map} +0 -0
- /package/dist/{claim-YABJMHON.js.map → claim-4LKB2Z6T.js.map} +0 -0
- /package/dist/{companies-K2IVXNC5.js.map → companies-KCHDEHAA.js.map} +0 -0
- /package/dist/{company-6JAVJPSU.js.map → company-C2Y7LY5H.js.map} +0 -0
- /package/dist/{complete-4R6O7TAF.js.map → complete-MNN3PAZE.js.map} +0 -0
- /package/dist/{connect-FWT2IC5N.js.map → connect-IABMKFGA.js.map} +0 -0
- /package/dist/{conversation-DSRM4JIU.js.map → conversation-FETU4KTF.js.map} +0 -0
- /package/dist/{conversion-report-2FREFML5.js.map → conversion-report-33SG7SHU.js.map} +0 -0
- /package/dist/{conversion-upload-command-JAGV6GMG.js.map → conversion-upload-command-DWIGVHQZ.js.map} +0 -0
- /package/dist/{conversion-writes-JZIJSQ7T.js.map → conversion-writes-XGGTBML5.js.map} +0 -0
- /package/dist/{conversions-Q5EBTEXA.js.map → conversions-PPP4QK7U.js.map} +0 -0
- /package/dist/{conversions-4D5TEPO4.js.map → conversions-S3WIR5R4.js.map} +0 -0
- /package/dist/{create-SDFDKJGJ.js.map → create-A3ZIQVIH.js.map} +0 -0
- /package/dist/{create-VW23RNWT.js.map → create-ESKBBBJX.js.map} +0 -0
- /package/dist/{create-FMGLMQZC.js.map → create-U2ITO4RV.js.map} +0 -0
- /package/dist/{create-3OYFSUR5.js.map → create-VNYTZJ4T.js.map} +0 -0
- /package/dist/{creatives-SLKVFR4Y.js.map → creatives-WSCRC5GO.js.map} +0 -0
- /package/dist/{creatives-E33LXJG7.js.map → creatives-XO5E4AIC.js.map} +0 -0
- /package/dist/{credentials-WGGZFBDJ.js.map → credentials-ZV66ZUCK.js.map} +0 -0
- /package/dist/{critique-US4B3ZY5.js.map → critique-ODWLA52C.js.map} +0 -0
- /package/dist/{critique-EOYMGUIK.js.map → critique-X3433R5M.js.map} +0 -0
- /package/dist/{crm-UBQ735O6.js.map → crm-WPPM2R7I.js.map} +0 -0
- /package/dist/{crm-T4XPJZTR.js.map → crm-XPIQAGH7.js.map} +0 -0
- /package/dist/{currency-EFDQYW5B.js.map → currency-HK2ZW2VW.js.map} +0 -0
- /package/dist/{customers-HHQUU3MA.js.map → customers-GCM7WZII.js.map} +0 -0
- /package/dist/{delete-UC5XQZWC.js.map → delete-GAIV2YVD.js.map} +0 -0
- /package/dist/{delete-X5TD7P3U.js.map → delete-RVJLATPO.js.map} +0 -0
- /package/dist/{delete-JPIV5E2Y.js.map → delete-VJ5QXKZR.js.map} +0 -0
- /package/dist/{demographics-6GQYZIVR.js.map → demographics-XWIW3YJF.js.map} +0 -0
- /package/dist/{discard-5UNX5TEZ.js.map → discard-TWX2CQF5.js.map} +0 -0
- /package/dist/{discover-BPUUWRBP.js.map → discover-Q5PAOIQQ.js.map} +0 -0
- /package/dist/{domain-7BOPJLTP.js.map → domain-FE32BE2E.js.map} +0 -0
- /package/dist/{download-B4IV43AJ.js.map → download-5FYHTIGR.js.map} +0 -0
- /package/dist/{draft-FVB6SEP3.js.map → draft-5VLO5UYZ.js.map} +0 -0
- /package/dist/{draft-GCOCG4PO.js.map → draft-L2NXCIYT.js.map} +0 -0
- /package/dist/{draft-VRE52N6B.js.map → draft-L757UIW5.js.map} +0 -0
- /package/dist/{draft-GSDDK6FO.js.map → draft-WK4PEMB6.js.map} +0 -0
- /package/dist/{draft-QT6MVG47.js.map → draft-ZCP3MIV6.js.map} +0 -0
- /package/dist/{experiments-3JSDRY5W.js.map → experiments-DVR7WBGQ.js.map} +0 -0
- /package/dist/{extract-BVSL6H3S.js.map → extract-JM6FAWAS.js.map} +0 -0
- /package/dist/{facets-NN33WFSR.js.map → facets-IEQJK5AW.js.map} +0 -0
- /package/dist/{feedback-BYXZEEW3.js.map → feedback-QUJ2V4WD.js.map} +0 -0
- /package/dist/{feedback-P7ZGD7JV.js.map → feedback-SSCN7LEP.js.map} +0 -0
- /package/dist/{feedback-record-ZFEXC54P.js.map → feedback-record-P6WK4UPP.js.map} +0 -0
- /package/dist/{fetch-3JPN4QAJ.js.map → fetch-Q6BIDVN5.js.map} +0 -0
- /package/dist/{fit-2R5NGB7E.js.map → fit-XLK5LDPS.js.map} +0 -0
- /package/dist/{flows-XM7GBTIU.js.map → flows-QVGZEYCH.js.map} +0 -0
- /package/dist/{fonts-IO4X2AKN.js.map → fonts-GARRSRIB.js.map} +0 -0
- /package/dist/{forecast-MOFJ3BKH.js.map → forecast-GEYNZ5PQ.js.map} +0 -0
- /package/dist/{forecast-HMNQZFVL.js.map → forecast-THQNGKPE.js.map} +0 -0
- /package/dist/{funnel-FR7JQUZW.js.map → funnel-OABL4MLZ.js.map} +0 -0
- /package/dist/{generate-KAWRRYTT.js.map → generate-Y4NJEYIH.js.map} +0 -0
- /package/dist/{get-MXXANBI3.js.map → get-63KQ62KN.js.map} +0 -0
- /package/dist/{get-BMJIYS25.js.map → get-RDGC3QA5.js.map} +0 -0
- /package/dist/{google-MHFI5OGW.js.map → google-32BCQC7C.js.map} +0 -0
- /package/dist/{google-3CAUWNWE.js.map → google-VYCMEWUL.js.map} +0 -0
- /package/dist/{google-ads-ULZRFDZU.js.map → google-ads-PCXGVHZV.js.map} +0 -0
- /package/dist/{history-SGFTHPT2.js.map → history-J7ANCPWY.js.map} +0 -0
- /package/dist/{history-F3U3WNEJ.js.map → history-NX67UIZ7.js.map} +0 -0
- /package/dist/{history-YQSYXBJH.js.map → history-VKRYKQ4C.js.map} +0 -0
- /package/dist/{hubspot-FASIF5U5.js.map → hubspot-Z3J3JBEH.js.map} +0 -0
- /package/dist/{ideas-TKCOPOMS.js.map → ideas-22I7JTI7.js.map} +0 -0
- /package/dist/{images-K4EPTLTF.js.map → images-3C4Y6RWL.js.map} +0 -0
- /package/dist/{ingest-MCCJBWYC.js.map → ingest-CFH2MPSF.js.map} +0 -0
- /package/dist/{ingest-T3AV5OR4.js.map → ingest-VXX2Y76C.js.map} +0 -0
- /package/dist/{insights-UVCFOB3N.js.map → insights-3IPSEBYW.js.map} +0 -0
- /package/dist/{inspect-3OHTBHNO.js.map → inspect-LDXPOGGH.js.map} +0 -0
- /package/dist/{intent-F5NTOSQC.js.map → intent-ZM4K623V.js.map} +0 -0
- /package/dist/{keyword-gap-EB5QATYN.js.map → keyword-gap-FAAF2I6V.js.map} +0 -0
- /package/dist/{keyword-metrics-E4PPLUYX.js.map → keyword-metrics-E36SMZSP.js.map} +0 -0
- /package/dist/{keywords-for-site-HD2FOBMH.js.map → keywords-for-site-AWGWDXZA.js.map} +0 -0
- /package/dist/{landing-NC2A277E.js.map → landing-PVTDVL22.js.map} +0 -0
- /package/dist/{languages-4S26FJDP.js.map → languages-ZGDTERIQ.js.map} +0 -0
- /package/dist/{leads-LL2S6ENL.js.map → leads-XC3C5HGC.js.map} +0 -0
- /package/dist/{learn-2CP2SROJ.js.map → learn-NYRL53NQ.js.map} +0 -0
- /package/dist/{line-item-writes-56A4ITU6.js.map → line-item-writes-LMSYCR6G.js.map} +0 -0
- /package/dist/{line-items-AIIDDTTH.js.map → line-items-P24SOGVZ.js.map} +0 -0
- /package/dist/{link-BIXBY5KG.js.map → link-H3TTWJJO.js.map} +0 -0
- /package/dist/{linkedin-TXX22PPH.js.map → linkedin-57JHH7QN.js.map} +0 -0
- /package/dist/{linkedin-person-5KEGEX6G.js.map → linkedin-person-HKKIE32Q.js.map} +0 -0
- /package/dist/{list-UQNU4QUE.js.map → list-KHCFVTQU.js.map} +0 -0
- /package/dist/{list-YBHQ3HIB.js.map → list-LC2GRYEI.js.map} +0 -0
- /package/dist/{list-C5AT3LF4.js.map → list-UCTFATXS.js.map} +0 -0
- /package/dist/{locations-WXGOI3VV.js.map → locations-A65MFB7Q.js.map} +0 -0
- /package/dist/{locations-UWBQLHXW.js.map → locations-WN6B3IJK.js.map} +0 -0
- /package/dist/{log-FZJTWN3S.js.map → log-SLYCPRCY.js.map} +0 -0
- /package/dist/{make-CGWFHT3N.js.map → make-HTCPU6HU.js.map} +0 -0
- /package/dist/{map-WDOBMEAW.js.map → map-237LQ5N5.js.map} +0 -0
- /package/dist/{mcp-JJZ5YGSS.js.map → mcp-GX5TOO7Y.js.map} +0 -0
- /package/dist/{media-sources-AJ5USQXV.js.map → media-sources-ODNIS7A5.js.map} +0 -0
- /package/dist/{members-NSR7S62Y.js.map → members-TYQKWR7Z.js.map} +0 -0
- /package/dist/{metrics-4AFEEDVP.js.map → metrics-3U3ZO2RF.js.map} +0 -0
- /package/dist/{models-2ZEM64H5.js.map → models-VOSJJFO2.js.map} +0 -0
- /package/dist/{normalize-RQEHHRES.js.map → normalize-MDTMKLYO.js.map} +0 -0
- /package/dist/{options-4BW4P6JD.js.map → options-MEADUZY3.js.map} +0 -0
- /package/dist/{organization-TKGXZYH6.js.map → organization-BXJSHRZG.js.map} +0 -0
- /package/dist/{performance-XGHZDQGU.js.map → performance-CU65TLCB.js.map} +0 -0
- /package/dist/{performance-27VHB3UA.js.map → performance-IGCOP5VH.js.map} +0 -0
- /package/dist/{pixels-HEI5WVAO.js.map → pixels-U6UA662G.js.map} +0 -0
- /package/dist/{preview-2YRMPWI2.js.map → preview-YQ6P5A53.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-PT6BW64X.js.map → promoted-tweet-writes-X2CUNBU2.js.map} +0 -0
- /package/dist/{promoted-tweets-SBZXEU7S.js.map → promoted-tweets-G2NOW5OF.js.map} +0 -0
- /package/dist/{publish-Z7ZK3XB7.js.map → publish-YPCXCU4P.js.map} +0 -0
- /package/dist/{query-K7MYBRTS.js.map → query-SAQADBM2.js.map} +0 -0
- /package/dist/{reddit-L4RQNJBL.js.map → reddit-XMAGZMD4.js.map} +0 -0
- /package/dist/{refresh-EWALAFUQ.js.map → refresh-QIK3CXLV.js.map} +0 -0
- /package/dist/{release-C2H2KBNY.js.map → release-O7KGD5MI.js.map} +0 -0
- /package/dist/{relevant-pages-XYQKVX3U.js.map → relevant-pages-KTSODNNW.js.map} +0 -0
- /package/dist/{remove-JOXARFD3.js.map → remove-7FAWM2H4.js.map} +0 -0
- /package/dist/{reopen-WRW4JVO2.js.map → reopen-4ZWEYNCI.js.map} +0 -0
- /package/dist/{rerun-3I7MF3FV.js.map → rerun-IDUKOW6Z.js.map} +0 -0
- /package/dist/{research-MCTV6ZJZ.js.map → research-SPFILN24.js.map} +0 -0
- /package/dist/{research-422BF4O4.js.map → research-Y5MSZH6T.js.map} +0 -0
- /package/dist/{reset-MZDRR5VP.js.map → reset-4K7BXUY6.js.map} +0 -0
- /package/dist/{reset-7ANRT4I3.js.map → reset-YSDYSZ64.js.map} +0 -0
- /package/dist/{resolve-KKRG65WF.js.map → resolve-DD6ES7GJ.js.map} +0 -0
- /package/dist/{retry-YZCBWAHT.js.map → retry-PZTS6KMQ.js.map} +0 -0
- /package/dist/{retry-PDKRPWIZ.js.map → retry-YAZ3JXYL.js.map} +0 -0
- /package/dist/{revenue-F7E5ZRLB.js.map → revenue-PLJ46IYH.js.map} +0 -0
- /package/dist/{rules-GRLAFAZU.js.map → rules-I4PL72J7.js.map} +0 -0
- /package/dist/{rules-add-3C7LW4HD.js.map → rules-add-EFD2YSLH.js.map} +0 -0
- /package/dist/{run-HJQ4KAWX.js.map → run-FN365AXZ.js.map} +0 -0
- /package/dist/{run-ZV73UQ3E.js.map → run-WCFKVQQQ.js.map} +0 -0
- /package/dist/{scaffold-ad-LBLEARDJ.js.map → scaffold-ad-PI4IHOG5.js.map} +0 -0
- /package/dist/{scaffold-static-ad-GBRLIWKP.js.map → scaffold-static-ad-RDOCRFEP.js.map} +0 -0
- /package/dist/{scaffold-video-EINW32ZH.js.map → scaffold-video-HPRYTHE6.js.map} +0 -0
- /package/dist/{schedule-X5ZKZXPC.js.map → schedule-NPZPVNSO.js.map} +0 -0
- /package/dist/{scheduled-agents-APZA42K2.js.map → scheduled-agents-5TNWITKB.js.map} +0 -0
- /package/dist/{schema-6JF4ZNGY.js.map → schema-PMVRMIRU.js.map} +0 -0
- /package/dist/{search-4VAIJA2O.js.map → search-BRANRGRU.js.map} +0 -0
- /package/dist/{select-YZO5DDY6.js.map → select-CLDJE7VJ.js.map} +0 -0
- /package/dist/{set-prompt-GU3HPWWZ.js.map → set-prompt-7VHSKVO6.js.map} +0 -0
- /package/dist/{setup-links-ORBZ5T4H.js.map → setup-links-PAA7XYV5.js.map} +0 -0
- /package/dist/{shopify-SN3TBTL5.js.map → shopify-VWIRGI6H.js.map} +0 -0
- /package/dist/{site-3ZORNMAE.js.map → site-Q3PMNJ2Z.js.map} +0 -0
- /package/dist/{sources-WT6M3QIX.js.map → sources-4YHNM22P.js.map} +0 -0
- /package/dist/{sources-WGEC6FGZ.js.map → sources-BYMGSUPZ.js.map} +0 -0
- /package/dist/{stale-BOT3VZCB.js.map → stale-WO6FTPLQ.js.map} +0 -0
- /package/dist/{status-WED3AXTZ.js.map → status-B2WRAPZO.js.map} +0 -0
- /package/dist/{stock-33GHQWNQ.js.map → stock-BOOSUS2C.js.map} +0 -0
- /package/dist/{studio-4EV5S7PR.js.map → studio-XLC37YGX.js.map} +0 -0
- /package/dist/{sync-2GLGCSRQ.js.map → sync-2QIPZFSK.js.map} +0 -0
- /package/dist/{sync-definition-SNUWHPGO.js.map → sync-definition-L52PGD7B.js.map} +0 -0
- /package/dist/{tags-IQY7GYMU.js.map → tags-AIE4XEU2.js.map} +0 -0
- /package/dist/{tags-MYUCES3W.js.map → tags-DF6JNSNA.js.map} +0 -0
- /package/dist/{tags-SCMHCPF4.js.map → tags-SWP4MXQO.js.map} +0 -0
- /package/dist/{tags-CVPMOYKI.js.map → tags-VXHV4JWM.js.map} +0 -0
- /package/dist/{tags-AQNOA7X5.js.map → tags-XYQUPA6M.js.map} +0 -0
- /package/dist/{targeting-criteria-RVJHW22S.js.map → targeting-criteria-UYAEVSX3.js.map} +0 -0
- /package/dist/{targets-G6SN6VTL.js.map → targets-XFL7CE7N.js.map} +0 -0
- /package/dist/{testimonials-JALUWWLB.js.map → testimonials-DTCPATQ2.js.map} +0 -0
- /package/dist/{themes-FW3VWZJE.js.map → themes-HBWSZRFM.js.map} +0 -0
- /package/dist/{top-companies-WR6TXTNM.js.map → top-companies-SCKUWYFG.js.map} +0 -0
- /package/dist/{transcript-JMRRJEET.js.map → transcript-H7VSMOMV.js.map} +0 -0
- /package/dist/{translate-YNOS5HTV.js.map → translate-LCLG4NYR.js.map} +0 -0
- /package/dist/{triggers-UUSPHGXX.js.map → triggers-HN3O2CNG.js.map} +0 -0
- /package/dist/{unlink-U5VBTO7P.js.map → unlink-B5CD7ZW6.js.map} +0 -0
- /package/dist/{unstage-KSYT7FOP.js.map → unstage-34W4OU5D.js.map} +0 -0
- /package/dist/{update-QF6BLM5F.js.map → update-2OTR4JQV.js.map} +0 -0
- /package/dist/{update-GFKDIJRE.js.map → update-3CKLLPYX.js.map} +0 -0
- /package/dist/{update-VBQKI72I.js.map → update-6V2A4JGZ.js.map} +0 -0
- /package/dist/{update-ZIKHDZRT.js.map → update-7FBCTLFP.js.map} +0 -0
- /package/dist/{upload-UYE73VLK.js.map → upload-72ARWDHN.js.map} +0 -0
- /package/dist/{url-options-AHJPR5VY.js.map → url-options-6WC2XQKB.js.map} +0 -0
- /package/dist/{url-params-P6MV2HKB.js.map → url-params-TAZ2S675.js.map} +0 -0
- /package/dist/{validate-TTVHWWX5.js.map → validate-6F3JKVQV.js.map} +0 -0
- /package/dist/{videos-XGQL37V4.js.map → videos-UCUYPQNK.js.map} +0 -0
- /package/dist/{viewer-check-UPLR7C2K.js.map → viewer-check-XZYL55G6.js.map} +0 -0
- /package/dist/{web-PIMTCU4V.js.map → web-YYXQXIH4.js.map} +0 -0
- /package/dist/{winning-ads-P4MXWYK6.js.map → winning-ads-H3HCI5QT.js.map} +0 -0
- /package/dist/{write-commands-24EOSYWL.js.map → write-commands-DS7WNSYA.js.map} +0 -0
- /package/dist/{x-HBA6AJJA.js.map → x-K4N6QIH2.js.map} +0 -0
package/dist/chunk-7YEP3NFN.js
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
failApi
|
|
3
|
-
} from "./chunk-PRZBEZBA.js";
|
|
4
|
-
import {
|
|
5
|
-
CREATIVE_PERFORMANCE_DEFAULT_DAYS,
|
|
6
|
-
CREATIVE_PERFORMANCE_MAX_DAYS
|
|
7
|
-
} from "./chunk-ICASR3ES.js";
|
|
8
|
-
import {
|
|
9
|
-
apiPost
|
|
10
|
-
} from "./chunk-LJEJCIHR.js";
|
|
11
|
-
import {
|
|
12
|
-
registerSchema,
|
|
13
|
-
writeJson
|
|
14
|
-
} from "./chunk-NXNOXZGB.js";
|
|
15
|
-
|
|
16
|
-
// src/commands/creatives/performance.ts
|
|
17
|
-
import { readFileSync } from "fs";
|
|
18
|
-
import path from "path";
|
|
19
|
-
import { defineCommand } from "citty";
|
|
20
|
-
import { parse as parseYaml } from "yaml";
|
|
21
|
-
var DESCRIPTION = `How each Baker creative is doing in the live Meta ads that show it: spend, impressions, CTR, CPC, results, cost per result, frequency and a fatigue verdict, next to the angle, hook, mechanism and dominant slot its definition set out to test. Video creatives add hookRate (percent of impressions that watched 3 seconds) and holdRate (percent of those that reached a ThruPlay). Use it before briefing new creatives, to learn which angle and mechanism to make next and which creatives to replace.
|
|
22
|
-
|
|
23
|
-
Start here:
|
|
24
|
-
baker creatives performance # every creative in an ad, last 30 days
|
|
25
|
-
baker creatives performance --slug spring-offer # one creative
|
|
26
|
-
baker creatives performance --days 14 --full # ids, last-7-day figures, a video's watch funnel, one row per ad
|
|
27
|
-
|
|
28
|
-
Fatigue follows the Meta playbook (07-creative-audit.md): fresh, fading, fatigued, dead, or too_early (under 14 days or 1,000 impressions) and no_delivery. A low hook rate means the first 3 seconds need new hooks; a working hook with a low hold rate means the body loses people. A creative counts once a Session's publish created an ad with it.`;
|
|
29
|
-
var ARGS = {
|
|
30
|
-
slug: { type: "string", description: "Only this creative (src/creatives/<slug>/)", required: false },
|
|
31
|
-
days: {
|
|
32
|
-
type: "string",
|
|
33
|
-
description: `Reporting window in days, ending today (1-${CREATIVE_PERFORMANCE_MAX_DAYS}, default ${CREATIVE_PERFORMANCE_DEFAULT_DAYS})`,
|
|
34
|
-
required: false
|
|
35
|
-
},
|
|
36
|
-
full: {
|
|
37
|
-
type: "boolean",
|
|
38
|
-
description: "Add ids, last-7-day CTR and cost per result, and one row per ad",
|
|
39
|
-
required: false,
|
|
40
|
-
default: false
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
registerSchema({ command: "creatives.performance", description: DESCRIPTION, args: ARGS });
|
|
44
|
-
var INSIGHT_KEYS = [
|
|
45
|
-
"idea",
|
|
46
|
-
"message",
|
|
47
|
-
"evidence",
|
|
48
|
-
"angle",
|
|
49
|
-
"hook",
|
|
50
|
-
"mechanism",
|
|
51
|
-
"dominantSlot",
|
|
52
|
-
"persona",
|
|
53
|
-
"awareness",
|
|
54
|
-
"hypothesis"
|
|
55
|
-
];
|
|
56
|
-
var FRONTMATTER = /^---\r?\n([\s\S]*?)\r?\n---/;
|
|
57
|
-
function insightValue(value) {
|
|
58
|
-
if (typeof value === "string") return value.trim() || null;
|
|
59
|
-
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
function definitionInsights(markdown) {
|
|
63
|
-
const block = FRONTMATTER.exec(markdown)?.[1];
|
|
64
|
-
if (!block) return null;
|
|
65
|
-
let parsed;
|
|
66
|
-
try {
|
|
67
|
-
parsed = parseYaml(block);
|
|
68
|
-
} catch {
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
if (parsed === null || typeof parsed !== "object") return null;
|
|
72
|
-
const insights = {};
|
|
73
|
-
for (const [key, raw] of Object.entries(parsed)) {
|
|
74
|
-
if (!(INSIGHT_KEYS.includes(key) || key.startsWith("source") || key.startsWith("reference"))) continue;
|
|
75
|
-
const value = insightValue(raw);
|
|
76
|
-
if (value !== null) insights[key] = value;
|
|
77
|
-
}
|
|
78
|
-
return Object.keys(insights).length > 0 ? insights : null;
|
|
79
|
-
}
|
|
80
|
-
function readLocalDefinition(slug) {
|
|
81
|
-
try {
|
|
82
|
-
return readFileSync(path.join(process.cwd(), "src", "creatives", slug, "_definition.md"), "utf8");
|
|
83
|
-
} catch {
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
var COMPARED_FIELDS = [
|
|
88
|
-
{ key: "angle", label: "angle", advice: "Brief the next creative on the cheapest angle with a new hook." },
|
|
89
|
-
{ key: "mechanism", label: "mechanism", advice: "Brief the next creative on the cheapest mechanism." },
|
|
90
|
-
{ key: "dominantSlot", label: "dominant slot", advice: "Lead the next creative with the cheapest dominant slot." }
|
|
91
|
-
];
|
|
92
|
-
function cheapestHint(creatives, { key, label, advice }) {
|
|
93
|
-
const byValue = /* @__PURE__ */ new Map();
|
|
94
|
-
for (const creative of creatives) {
|
|
95
|
-
const value = creative.definition?.[key];
|
|
96
|
-
if (!value || creative.costPerResult === null) continue;
|
|
97
|
-
const best = byValue.get(value);
|
|
98
|
-
if (!best || (best.costPerResult ?? Number.POSITIVE_INFINITY) > creative.costPerResult)
|
|
99
|
-
byValue.set(value, creative);
|
|
100
|
-
}
|
|
101
|
-
if (byValue.size < 2) return null;
|
|
102
|
-
const ranked = [...byValue.entries()].sort(([, a], [, b]) => (a.costPerResult ?? 0) - (b.costPerResult ?? 0)).map(
|
|
103
|
-
([value, creative]) => `"${value}" ${creative.costPerResult}${creative.currency ? ` ${creative.currency}` : ""} (${creative.slug ?? creative.title})`
|
|
104
|
-
);
|
|
105
|
-
return `Cost per result by ${label}: ${ranked.join(", ")}. ${advice}`;
|
|
106
|
-
}
|
|
107
|
-
function withDefinitions(response, readDefinition) {
|
|
108
|
-
const creatives = response.data.creatives.map((creative) => {
|
|
109
|
-
const markdown = creative.slug ? readDefinition(creative.slug) : null;
|
|
110
|
-
const definition = markdown ? definitionInsights(markdown) : null;
|
|
111
|
-
return definition ? { ...creative, definition } : creative;
|
|
112
|
-
});
|
|
113
|
-
const hints = [...response.hints ?? []];
|
|
114
|
-
for (const field of COMPARED_FIELDS) {
|
|
115
|
-
const hint = cheapestHint(creatives, field);
|
|
116
|
-
if (hint) hints.push(hint);
|
|
117
|
-
}
|
|
118
|
-
const unnamed = creatives.filter((creative) => !creative.definition?.angle).map((c) => c.slug ?? c.title);
|
|
119
|
-
if (unnamed.length > 0) {
|
|
120
|
-
hints.push(
|
|
121
|
-
`No angle recorded for: ${unnamed.join(", ")}. Add angle and hook to src/creatives/<slug>/_definition.md so results show which angle works.`
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
return { ...response, data: { ...response.data, creatives }, ...hints.length > 0 ? { hints } : {} };
|
|
125
|
-
}
|
|
126
|
-
function syncedCreativesHint(slug) {
|
|
127
|
-
return `Live Meta read. Across every platform, from the synced copy (no rate limit, full history): baker ads performance creatives ranks them against their ad-group peers (madeInBaker names this creative), and baker ads performance live-in --creative ${slug ?? "<slug>"} lists the live campaigns showing it.`;
|
|
128
|
-
}
|
|
129
|
-
function parseDays(raw) {
|
|
130
|
-
if (raw === void 0) return void 0;
|
|
131
|
-
const days = Number(raw);
|
|
132
|
-
if (!Number.isInteger(days) || days < 1 || days > CREATIVE_PERFORMANCE_MAX_DAYS) {
|
|
133
|
-
throw new Error(`--days must be a whole number from 1 to ${CREATIVE_PERFORMANCE_MAX_DAYS}`);
|
|
134
|
-
}
|
|
135
|
-
return days;
|
|
136
|
-
}
|
|
137
|
-
var performanceCommand = defineCommand({
|
|
138
|
-
meta: { name: "performance", description: DESCRIPTION },
|
|
139
|
-
args: ARGS,
|
|
140
|
-
run: async ({ args }) => {
|
|
141
|
-
try {
|
|
142
|
-
const body = {};
|
|
143
|
-
const slug = args.slug;
|
|
144
|
-
if (slug) body.slug = slug;
|
|
145
|
-
const days = parseDays(args.days);
|
|
146
|
-
if (days !== void 0) body.days = days;
|
|
147
|
-
if (args.full) body.full = true;
|
|
148
|
-
const response = await apiPost("/api/creatives/performance", body);
|
|
149
|
-
const out = withDefinitions(response, readLocalDefinition);
|
|
150
|
-
writeJson({ ...out, hints: [...out.hints ?? [], syncedCreativesHint(slug)] });
|
|
151
|
-
} catch (err) {
|
|
152
|
-
failApi(err);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
export {
|
|
158
|
-
definitionInsights,
|
|
159
|
-
withDefinitions,
|
|
160
|
-
parseDays,
|
|
161
|
-
performanceCommand
|
|
162
|
-
};
|
|
163
|
-
//# sourceMappingURL=chunk-7YEP3NFN.js.map
|
package/dist/chunk-AP7X3ONA.js
DELETED
|
@@ -1,297 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
REDDIT_LINK_REJECTED,
|
|
3
|
-
redditSearchHints,
|
|
4
|
-
redditSubredditsHints,
|
|
5
|
-
redditThreadHints
|
|
6
|
-
} from "./chunk-PTE6BNCH.js";
|
|
7
|
-
import {
|
|
8
|
-
handleResearchError,
|
|
9
|
-
writeResearchJson
|
|
10
|
-
} from "./chunk-MTW2NDDD.js";
|
|
11
|
-
import {
|
|
12
|
-
repeatedValues
|
|
13
|
-
} from "./chunk-ERSX3MKH.js";
|
|
14
|
-
import {
|
|
15
|
-
RESEARCH_REDDIT_THREAD_DEFAULT_COMMENTS
|
|
16
|
-
} from "./chunk-ICASR3ES.js";
|
|
17
|
-
import {
|
|
18
|
-
apiPost
|
|
19
|
-
} from "./chunk-LJEJCIHR.js";
|
|
20
|
-
import {
|
|
21
|
-
registerSchema
|
|
22
|
-
} from "./chunk-NXNOXZGB.js";
|
|
23
|
-
|
|
24
|
-
// src/commands/research/reddit.ts
|
|
25
|
-
import { defineCommand } from "citty";
|
|
26
|
-
var TIMEOUT_MS = 18e4;
|
|
27
|
-
var TEXT_PREVIEW_CHARS = 1500;
|
|
28
|
-
var ITEM_FIELDS = {
|
|
29
|
-
kind: "post or comment",
|
|
30
|
-
subreddit: "Where it was said",
|
|
31
|
-
title: "The post's title (on a comment: the post it answers)",
|
|
32
|
-
text: "Verbatim \u2014 quote this, exactly",
|
|
33
|
-
text_truncated: "The text was cut; re-run with --full before quoting the end of it",
|
|
34
|
-
author: "Reddit username, or null once the account is deleted",
|
|
35
|
-
score: "Points",
|
|
36
|
-
comment_count: "Posts only",
|
|
37
|
-
created: "Date written (UTC)",
|
|
38
|
-
permalink: "Cite THIS link \u2014 it is built from where the words actually are",
|
|
39
|
-
depth: "Thread comments: 0 answers the post, 1 answers a comment",
|
|
40
|
-
source: "reddit_api / reddit_web = live Reddit; archive = the Arctic Shift archive of Reddit"
|
|
41
|
-
};
|
|
42
|
-
registerSchema({
|
|
43
|
-
command: "research.reddit.search",
|
|
44
|
-
description: "Search Reddit posts or comments for the audience's own words. Returns verbatim text with a real permalink for each hit. Start here for voice-of-customer work on Reddit.",
|
|
45
|
-
args: {
|
|
46
|
-
query: {
|
|
47
|
-
type: "string",
|
|
48
|
-
description: "Words to match \u2014 the audience's phrasing, not a description of it",
|
|
49
|
-
required: true
|
|
50
|
-
},
|
|
51
|
-
subreddit: {
|
|
52
|
-
type: "string",
|
|
53
|
-
description: "Subreddits to search (up to 10): comma-separated (couriersofreddit,AmazonFlexUK) or the flag repeated. Needed for --kind comments",
|
|
54
|
-
required: false
|
|
55
|
-
},
|
|
56
|
-
kind: {
|
|
57
|
-
type: "string",
|
|
58
|
-
description: "posts (default) or comments \u2014 the replies are where most of the voice is",
|
|
59
|
-
required: false,
|
|
60
|
-
enum: ["posts", "comments"]
|
|
61
|
-
},
|
|
62
|
-
since: { type: "string", description: "Only things written on or after this day, YYYY-MM-DD", required: false },
|
|
63
|
-
limit: { type: "number", description: "Results to return (1-50, default 25)", required: false },
|
|
64
|
-
full: {
|
|
65
|
-
type: "boolean",
|
|
66
|
-
description: "Return every text whole instead of a preview",
|
|
67
|
-
required: false,
|
|
68
|
-
default: false
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
registerSchema({
|
|
73
|
-
command: "research.reddit.thread",
|
|
74
|
-
description: "Read one Reddit thread verbatim: the post and its best comments, each with its own permalink. Use it on any Reddit link before quoting it \u2014 it also exposes links that point somewhere other than they claim.",
|
|
75
|
-
args: {
|
|
76
|
-
target: {
|
|
77
|
-
type: "string",
|
|
78
|
-
description: "The thread's link (any Reddit form, including share links) or post id",
|
|
79
|
-
required: true
|
|
80
|
-
},
|
|
81
|
-
comments: { type: "number", description: "Comments to return, best first (0-200, default 40)", required: false },
|
|
82
|
-
full: {
|
|
83
|
-
type: "boolean",
|
|
84
|
-
description: "Return every text whole instead of a preview",
|
|
85
|
-
required: false,
|
|
86
|
-
default: false
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
registerSchema({
|
|
91
|
-
command: "research.reddit.subreddits",
|
|
92
|
-
description: "Find the subreddits where an audience talks about a topic, with member counts and whether they can be read. Run it before searching, instead of guessing subreddit names.",
|
|
93
|
-
args: {
|
|
94
|
-
query: { type: "string", description: 'The audience or topic, e.g. "amazon flex uk", "deliveroo"', required: true },
|
|
95
|
-
limit: { type: "number", description: "Subreddits to return (1-25, default 10)", required: false }
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
function searchReddit(body) {
|
|
99
|
-
return apiPost("/api/research/reddit/search", body, { timeoutMs: TIMEOUT_MS });
|
|
100
|
-
}
|
|
101
|
-
function findSubreddits(body) {
|
|
102
|
-
return apiPost("/api/research/reddit/subreddits", body, { timeoutMs: TIMEOUT_MS });
|
|
103
|
-
}
|
|
104
|
-
function row(item, full) {
|
|
105
|
-
const cut = !full && item.text.length > TEXT_PREVIEW_CHARS;
|
|
106
|
-
return {
|
|
107
|
-
kind: item.kind,
|
|
108
|
-
subreddit: item.subreddit,
|
|
109
|
-
title: item.title,
|
|
110
|
-
text: cut ? `${item.text.slice(0, TEXT_PREVIEW_CHARS)}\u2026` : item.text,
|
|
111
|
-
...cut ? { text_truncated: true } : {},
|
|
112
|
-
author: item.author,
|
|
113
|
-
score: item.score,
|
|
114
|
-
...item.kind === "post" ? { comment_count: item.commentCount } : {},
|
|
115
|
-
created: item.createdAt.slice(0, 10),
|
|
116
|
-
permalink: item.permalink,
|
|
117
|
-
...item.depth !== null ? { depth: item.depth } : {}
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
function redditFix(code) {
|
|
121
|
-
if (code === "NOT_FOUND") return REDDIT_LINK_REJECTED;
|
|
122
|
-
if (code === "BAD_REQUEST" || code === "VALIDATION_ERROR") {
|
|
123
|
-
return { action: "retry_with_changes", explanation: "Follow the message above and run the command again." };
|
|
124
|
-
}
|
|
125
|
-
return {
|
|
126
|
-
action: "continue_without",
|
|
127
|
-
explanation: "Don't loop on it. Finish the job with the other sources, say plainly that Reddit is a gap in this research, and never stand in a summary's paraphrase for a Reddit quote."
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
function failValidation(message) {
|
|
131
|
-
writeResearchJson({ ok: false, error: { code: "VALIDATION_ERROR", message, fix: redditFix("VALIDATION_ERROR") } });
|
|
132
|
-
process.exit(1);
|
|
133
|
-
}
|
|
134
|
-
function subredditsFromArgs(rawArgs, parsed) {
|
|
135
|
-
return repeatedValues(rawArgs, "subreddit", parsed).flatMap((value) => value.split(",")).map((name) => name.trim()).filter(Boolean);
|
|
136
|
-
}
|
|
137
|
-
var searchCommand = defineCommand({
|
|
138
|
-
meta: {
|
|
139
|
-
name: "search",
|
|
140
|
-
description: `Search Reddit for the audience's own words, verbatim, each with a permalink you can cite.
|
|
141
|
-
|
|
142
|
-
Start here for Reddit voice-of-customer. Matches words, not meaning \u2014 search the way the audience writes, and quote a phrase to keep it together ('"right to work"').
|
|
143
|
-
|
|
144
|
-
Examples:
|
|
145
|
-
baker research reddit search "agency never paid" --subreddit couriersofreddit,AmazonFlexUK
|
|
146
|
-
baker research reddit search '"right to work"' --subreddit UKJobs,AmazonFlexUK
|
|
147
|
-
baker research reddit search "visa" --subreddit UberEATS --kind comments --since 2025-01-01
|
|
148
|
-
baker research reddit search "side hustle student deliveries"`
|
|
149
|
-
},
|
|
150
|
-
args: {
|
|
151
|
-
query: { type: "positional", description: "Words to match", required: false },
|
|
152
|
-
subreddit: {
|
|
153
|
-
type: "string",
|
|
154
|
-
description: "Subreddits (up to 10): comma-separated, or repeat the flag",
|
|
155
|
-
required: false
|
|
156
|
-
},
|
|
157
|
-
kind: { type: "string", description: "posts (default) or comments", required: false },
|
|
158
|
-
since: { type: "string", description: "YYYY-MM-DD", required: false },
|
|
159
|
-
limit: { type: "string", description: "1-50, default 25", required: false },
|
|
160
|
-
full: { type: "boolean", description: "Whole texts, not previews", required: false }
|
|
161
|
-
},
|
|
162
|
-
run: async ({ args, rawArgs }) => {
|
|
163
|
-
const query = args.query?.trim();
|
|
164
|
-
if (!query) failValidation('Say what to search for: baker research reddit search "<words>"');
|
|
165
|
-
const kind = args.kind ?? "posts";
|
|
166
|
-
if (kind !== "posts" && kind !== "comments") failValidation("--kind must be posts or comments");
|
|
167
|
-
const body = {
|
|
168
|
-
query,
|
|
169
|
-
kind,
|
|
170
|
-
subreddits: subredditsFromArgs(rawArgs, args.subreddit)
|
|
171
|
-
};
|
|
172
|
-
if (args.since) body.since = args.since;
|
|
173
|
-
if (args.limit) body.limit = Number(args.limit);
|
|
174
|
-
try {
|
|
175
|
-
const data = await searchReddit(body);
|
|
176
|
-
writeResearchJson({
|
|
177
|
-
ok: true,
|
|
178
|
-
data: data.results.map((item) => row(item, Boolean(args.full))),
|
|
179
|
-
source: data.source,
|
|
180
|
-
fields: ITEM_FIELDS,
|
|
181
|
-
hints: redditSearchHints({ resultCount: data.results.length, kind, source: data.source })
|
|
182
|
-
});
|
|
183
|
-
} catch (err) {
|
|
184
|
-
handleResearchError(err, redditFix);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
var threadCommand = defineCommand({
|
|
189
|
-
meta: {
|
|
190
|
-
name: "thread",
|
|
191
|
-
description: `Read one Reddit thread verbatim \u2014 the post and its best comments, each with its own permalink.
|
|
192
|
-
|
|
193
|
-
Run it on every Reddit link before you quote from it, including links a research summary gave you: it refuses a link whose post is somewhere other than the link claims.
|
|
194
|
-
|
|
195
|
-
Examples:
|
|
196
|
-
baker research reddit thread "https://www.reddit.com/r/AmazonFlexUK/comments/1abc2de/agency_still_hasnt_paid_me/"
|
|
197
|
-
baker research reddit thread "https://www.reddit.com/r/UberEATS/s/3TzXiyxaMD" --comments 100
|
|
198
|
-
baker research reddit thread 1abc2de --full`
|
|
199
|
-
},
|
|
200
|
-
args: {
|
|
201
|
-
target: { type: "positional", description: "Thread link or post id", required: false },
|
|
202
|
-
comments: { type: "string", description: "0-200, default 40", required: false },
|
|
203
|
-
full: { type: "boolean", description: "Whole texts, not previews", required: false }
|
|
204
|
-
},
|
|
205
|
-
run: async ({ args }) => {
|
|
206
|
-
const target = args.target?.trim();
|
|
207
|
-
if (!target) failValidation("Pass the thread's link or post id: baker research reddit thread <url>");
|
|
208
|
-
const commentsAsked = args.comments ? Number(args.comments) : RESEARCH_REDDIT_THREAD_DEFAULT_COMMENTS;
|
|
209
|
-
const body = { target, comments: commentsAsked };
|
|
210
|
-
try {
|
|
211
|
-
const data = await apiPost("/api/research/reddit/thread", body, {
|
|
212
|
-
timeoutMs: TIMEOUT_MS
|
|
213
|
-
});
|
|
214
|
-
const full = Boolean(args.full);
|
|
215
|
-
writeResearchJson({
|
|
216
|
-
ok: true,
|
|
217
|
-
data: { post: row(data.post, full), comments: data.comments.map((item) => row(item, full)) },
|
|
218
|
-
source: data.source,
|
|
219
|
-
fields: ITEM_FIELDS,
|
|
220
|
-
hints: redditThreadHints({
|
|
221
|
-
commentsShown: data.comments.length,
|
|
222
|
-
commentsAsked,
|
|
223
|
-
commentCount: data.post.commentCount,
|
|
224
|
-
source: data.source
|
|
225
|
-
})
|
|
226
|
-
});
|
|
227
|
-
} catch (err) {
|
|
228
|
-
handleResearchError(err, redditFix);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
var subredditsCommand = defineCommand({
|
|
233
|
-
meta: {
|
|
234
|
-
name: "subreddits",
|
|
235
|
-
description: `Find the subreddits where an audience talks \u2014 name, members, and whether it can be read.
|
|
236
|
-
|
|
237
|
-
Run it before \`reddit search\` instead of guessing names: a plausible-sounding subreddit can be dead (r/CouriersUK has one post), while the conversation sits in r/AmazonFlexUK or r/deliveroos.
|
|
238
|
-
|
|
239
|
-
Examples:
|
|
240
|
-
baker research reddit subreddits "amazon flex uk"
|
|
241
|
-
baker research reddit subreddits "deliveroo" --limit 5`
|
|
242
|
-
},
|
|
243
|
-
args: {
|
|
244
|
-
query: { type: "positional", description: "Audience or topic", required: false },
|
|
245
|
-
limit: { type: "string", description: "1-25, default 10", required: false }
|
|
246
|
-
},
|
|
247
|
-
run: async ({ args }) => {
|
|
248
|
-
const query = args.query?.trim();
|
|
249
|
-
if (!query) failValidation('Say what to look for: baker research reddit subreddits "<audience or topic>"');
|
|
250
|
-
const body = { query };
|
|
251
|
-
if (args.limit) body.limit = Number(args.limit);
|
|
252
|
-
try {
|
|
253
|
-
const data = await findSubreddits(body);
|
|
254
|
-
writeResearchJson({
|
|
255
|
-
ok: true,
|
|
256
|
-
data: data.results,
|
|
257
|
-
source: data.source,
|
|
258
|
-
fields: {
|
|
259
|
-
name: "Pass this to --subreddit",
|
|
260
|
-
subscribers: "Members \u2014 size, not activity",
|
|
261
|
-
access: "public / restricted (readable, members post) / private (unreadable) / null when the source doesn't say",
|
|
262
|
-
description: "The subreddit's own summary",
|
|
263
|
-
url: "The subreddit"
|
|
264
|
-
},
|
|
265
|
-
hints: redditSubredditsHints({ resultCount: data.results.length })
|
|
266
|
-
});
|
|
267
|
-
} catch (err) {
|
|
268
|
-
handleResearchError(err, redditFix);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
});
|
|
272
|
-
var redditCommand = defineCommand({
|
|
273
|
-
meta: {
|
|
274
|
-
name: "reddit",
|
|
275
|
-
description: `Read Reddit verbatim \u2014 the one site no page reader will open for us.
|
|
276
|
-
|
|
277
|
-
Commands:
|
|
278
|
-
subreddits \u2014 Find where the audience talks (start here)
|
|
279
|
-
search \u2014 Find posts or comments in the audience's own words
|
|
280
|
-
thread \u2014 Read one thread: the post and its best comments
|
|
281
|
-
|
|
282
|
-
Examples:
|
|
283
|
-
baker research reddit subreddits "amazon flex uk"
|
|
284
|
-
baker research reddit search "agency never paid" --subreddit couriersofreddit,AmazonFlexUK --kind comments
|
|
285
|
-
baker research reddit thread "https://www.reddit.com/r/AmazonFlexUK/comments/1abc2de/"
|
|
286
|
-
Full guide: __tooling__/docs/tools/baker/research.md`
|
|
287
|
-
},
|
|
288
|
-
subCommands: { subreddits: subredditsCommand, search: searchCommand, thread: threadCommand }
|
|
289
|
-
});
|
|
290
|
-
|
|
291
|
-
export {
|
|
292
|
-
searchReddit,
|
|
293
|
-
findSubreddits,
|
|
294
|
-
subredditsFromArgs,
|
|
295
|
-
redditCommand
|
|
296
|
-
};
|
|
297
|
-
//# sourceMappingURL=chunk-AP7X3ONA.js.map
|
package/dist/chunk-ARCQQUEL.js
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
readRenderState,
|
|
3
|
-
recordSeen
|
|
4
|
-
} from "./chunk-2K5GSSPU.js";
|
|
5
|
-
import {
|
|
6
|
-
GLOBAL_PROMPT_FILE,
|
|
7
|
-
ideaBaseline,
|
|
8
|
-
isVideoBlueprint,
|
|
9
|
-
readIdeaAnchor,
|
|
10
|
-
recordedChanges
|
|
11
|
-
} from "./chunk-C4BPAMAJ.js";
|
|
12
|
-
import {
|
|
13
|
-
loadCompositionMeta
|
|
14
|
-
} from "./chunk-HM4NWA72.js";
|
|
15
|
-
import {
|
|
16
|
-
parseRefExpr
|
|
17
|
-
} from "./chunk-2N7TB346.js";
|
|
18
|
-
import {
|
|
19
|
-
resolveAdaptFormats
|
|
20
|
-
} from "./chunk-MCJ5I5LR.js";
|
|
21
|
-
import {
|
|
22
|
-
apiPost
|
|
23
|
-
} from "./chunk-LJEJCIHR.js";
|
|
24
|
-
|
|
25
|
-
// src/commands/canvas/output-ratio.ts
|
|
26
|
-
import { readFile } from "fs/promises";
|
|
27
|
-
import path from "path";
|
|
28
|
-
function definitionFormats(markdown) {
|
|
29
|
-
const front = markdown.match(/^---\n([\s\S]*?)\n---/)?.[1];
|
|
30
|
-
if (!front) return [];
|
|
31
|
-
const clean = (s) => s.trim().replace(/^["']|["']$/g, "");
|
|
32
|
-
const flow = front.match(/^formats:\s*\[([^\]]*)\]/m);
|
|
33
|
-
if (flow) return (flow[1] ?? "").split(",").map(clean).filter(Boolean);
|
|
34
|
-
const block = front.match(/^formats:\s*\n((?:\s+-\s+.*\n?)+)/m);
|
|
35
|
-
if (!block) return [];
|
|
36
|
-
return (block[1] ?? "").split("\n").map((l) => l.replace(/^\s+-\s+/, "")).map(clean).filter(Boolean);
|
|
37
|
-
}
|
|
38
|
-
function reduce(width, height) {
|
|
39
|
-
const gcd = (a, b) => b === 0 ? a : gcd(b, a % b);
|
|
40
|
-
const d = gcd(width, height);
|
|
41
|
-
return `${width / d}:${height / d}`;
|
|
42
|
-
}
|
|
43
|
-
async function ratiosOf(nodes, id, seen) {
|
|
44
|
-
const node = nodes.get(id);
|
|
45
|
-
if (!node || seen.has(id)) return null;
|
|
46
|
-
seen.add(id);
|
|
47
|
-
const p = node.params ?? {};
|
|
48
|
-
switch (node.type) {
|
|
49
|
-
case "image_generate":
|
|
50
|
-
return typeof p.aspect_ratio === "string" ? [p.aspect_ratio] : null;
|
|
51
|
-
case "image_aspect_adapt":
|
|
52
|
-
return [...resolveAdaptFormats(p)];
|
|
53
|
-
case "hyperframe_snapshot": {
|
|
54
|
-
if (typeof p.composition !== "string") return null;
|
|
55
|
-
const meta = await loadCompositionMeta(p.composition).catch(() => null);
|
|
56
|
-
return meta ? [reduce(meta.width, meta.height)] : null;
|
|
57
|
-
}
|
|
58
|
-
case "collect": {
|
|
59
|
-
const images = node.inputs?.images;
|
|
60
|
-
if (!Array.isArray(images)) return null;
|
|
61
|
-
const out = [];
|
|
62
|
-
for (const entry of images) {
|
|
63
|
-
const ref = typeof entry === "string" ? parseRefExpr(entry) : null;
|
|
64
|
-
if (!ref || ref.kind !== "ref") return null;
|
|
65
|
-
const upstream = await ratiosOf(nodes, ref.nodeId, seen);
|
|
66
|
-
if (!upstream) return null;
|
|
67
|
-
out.push(ref.index !== void 0 && upstream.length > 1 ? upstream[ref.index] ?? "" : upstream[0] ?? "");
|
|
68
|
-
}
|
|
69
|
-
return out.filter(Boolean);
|
|
70
|
-
}
|
|
71
|
-
default:
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
async function producedRatios(canvas) {
|
|
76
|
-
const c = canvas;
|
|
77
|
-
if (!Array.isArray(c?.nodes) || typeof c?.output?.node !== "string") return null;
|
|
78
|
-
const nodes = new Map(c.nodes.flatMap((n) => typeof n.id === "string" ? [[n.id, n]] : []));
|
|
79
|
-
return ratiosOf(nodes, c.output.node, /* @__PURE__ */ new Set());
|
|
80
|
-
}
|
|
81
|
-
function value(ratio) {
|
|
82
|
-
const [w, h] = ratio.split(":").map(Number);
|
|
83
|
-
return w && h ? w / h : null;
|
|
84
|
-
}
|
|
85
|
-
function outputRatioWarnings(declared, produced) {
|
|
86
|
-
if (!produced || produced.length === 0) return [];
|
|
87
|
-
const shapes = produced.flatMap((r) => value(r) ?? []);
|
|
88
|
-
return declared.flatMap((format) => {
|
|
89
|
-
const want = value(format);
|
|
90
|
-
if (want === null || shapes.some((s) => Math.abs(s / want - 1) <= 0.02)) return [];
|
|
91
|
-
return [
|
|
92
|
-
{
|
|
93
|
-
path: "output",
|
|
94
|
-
code: "OUTPUT_RATIO_MISMATCH",
|
|
95
|
-
severity: "warning",
|
|
96
|
-
message: `_definition.md declares ${format}, but this canvas delivers ${produced.join(", ")}. A ${format} placement would get the wrong shape: re-scaffold with that format, or fix the formats the creative declares.`
|
|
97
|
-
}
|
|
98
|
-
];
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
async function outputRatioWarningsFor(canvas, canvasPath) {
|
|
102
|
-
const definition = await readFile(path.join(path.dirname(canvasPath), "_definition.md"), "utf8").catch(() => null);
|
|
103
|
-
if (!definition) return [];
|
|
104
|
-
return outputRatioWarnings(definitionFormats(definition), await producedRatios(canvas));
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// src/commands/canvas/printed-result.ts
|
|
108
|
-
var FULL_GUIDE = "The full guide: the `[hint]` lines on stderr, or `--full`.";
|
|
109
|
-
function runResult(fields, opts) {
|
|
110
|
-
const hints = opts.full || !fields.brief ? fields.hints : [...fields.brief, FULL_GUIDE];
|
|
111
|
-
return {
|
|
112
|
-
ok: true,
|
|
113
|
-
...opts.full ? { outputs_dir: fields.outputs_dir, output: fields.output, stats: fields.stats } : {},
|
|
114
|
-
...fields.review ? { review: fields.review } : {},
|
|
115
|
-
...opts.full && fields.judge?.length ? { judge: fields.judge } : {},
|
|
116
|
-
...fields.definition_status ? { definition_status: fields.definition_status } : {},
|
|
117
|
-
...hints?.length ? { hints } : {},
|
|
118
|
-
...fields.verdict ? { verdict: fields.verdict } : {},
|
|
119
|
-
run_id: fields.run_id,
|
|
120
|
-
files: fields.files
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
function validateResult(fields, opts) {
|
|
124
|
-
if (opts.full) return { ok: true, ...fields };
|
|
125
|
-
return {
|
|
126
|
-
ok: true,
|
|
127
|
-
total_nodes: fields.total_nodes,
|
|
128
|
-
estimated_credits: fields.estimated_credits,
|
|
129
|
-
canvas_updated: fields.canvas_updated,
|
|
130
|
-
warnings: fields.warnings
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// src/commands/canvas/shown-version.ts
|
|
135
|
-
import { z } from "zod";
|
|
136
|
-
var ShownResponse = z.object({
|
|
137
|
-
data: z.object({
|
|
138
|
-
runId: z.string(),
|
|
139
|
-
sourceSha: z.string().optional(),
|
|
140
|
-
createdAt: z.number(),
|
|
141
|
-
canvasSnapshotUrl: z.string().optional()
|
|
142
|
-
})
|
|
143
|
-
});
|
|
144
|
-
var SnapshotEntry = z.object({ path: z.string(), url: z.string() });
|
|
145
|
-
var SnapshotFiles = z.object({ canvas: SnapshotEntry.optional(), files: z.array(SnapshotEntry) });
|
|
146
|
-
var HISTORY = {
|
|
147
|
-
shown: async (slug) => ShownResponse.parse(await apiPost("/api/creatives/run", { slug })).data,
|
|
148
|
-
file: async (url) => {
|
|
149
|
-
const res = await fetch(url);
|
|
150
|
-
return res.ok ? res.json() : null;
|
|
151
|
-
},
|
|
152
|
-
text: async (url) => {
|
|
153
|
-
const res = await fetch(url);
|
|
154
|
-
return res.ok ? res.text() : null;
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
async function shownVersion(canvasRoot, slug, sources = HISTORY) {
|
|
158
|
-
const here = await readRenderState(canvasRoot, slug);
|
|
159
|
-
if (here.rendered) return here;
|
|
160
|
-
const run = await sources.shown(slug).catch(() => null);
|
|
161
|
-
if (!run) return here;
|
|
162
|
-
const drawn = run.canvasSnapshotUrl ? await drawnFiles(run.canvasSnapshotUrl, sources) : {};
|
|
163
|
-
return {
|
|
164
|
-
...here,
|
|
165
|
-
rendered: { sourceSha: run.sourceSha ?? "", runId: run.runId, at: run.createdAt },
|
|
166
|
-
...drawn.prompt !== void 0 ? { prompt: drawn.prompt } : {},
|
|
167
|
-
...drawn.definition !== void 0 ? { definition: drawn.definition } : {},
|
|
168
|
-
...drawn.video ? { video: drawn.video } : {}
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
async function drawnFiles(manifestUrl, sources) {
|
|
172
|
-
const manifest = SnapshotFiles.safeParse(await sources.file(manifestUrl).catch(() => null));
|
|
173
|
-
const files = manifest.success ? manifest.data.files : [];
|
|
174
|
-
const urlOf = (file) => files.find((f) => f.path === file)?.url;
|
|
175
|
-
const promptUrl = urlOf(GLOBAL_PROMPT_FILE);
|
|
176
|
-
const definitionUrl = urlOf("_definition.md");
|
|
177
|
-
const read = (url) => url ? sources.file(url).catch(() => null) : Promise.resolve(null);
|
|
178
|
-
const sceneEntries = files.filter((f) => /^scenes\/[^/]+\.json$/.test(f.path)).sort((a, b) => a.path.localeCompare(b.path));
|
|
179
|
-
const [prompt, definition, scenes, canvas, adSpec] = await Promise.all([
|
|
180
|
-
read(promptUrl),
|
|
181
|
-
definitionUrl ? sources.text(definitionUrl).catch(() => null) : null,
|
|
182
|
-
Promise.all(sceneEntries.map((f) => read(f.url))),
|
|
183
|
-
read(manifest.success ? manifest.data.canvas?.url : void 0),
|
|
184
|
-
read(urlOf("ad.spec.json"))
|
|
185
|
-
]);
|
|
186
|
-
return {
|
|
187
|
-
...prompt !== null && prompt !== void 0 ? { prompt } : {},
|
|
188
|
-
...typeof definition === "string" ? { definition } : {},
|
|
189
|
-
video: { scenes: scenes.filter((s) => s !== null), canvas, adSpec }
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// src/commands/canvas/shown-anchor.ts
|
|
194
|
-
async function shownBaseline(opts) {
|
|
195
|
-
const state = await readRenderState(opts.canvasRoot, opts.slug);
|
|
196
|
-
const known = opts.turnId !== void 0 && state.seen?.turnId === opts.turnId;
|
|
197
|
-
let fallback;
|
|
198
|
-
if (!known && !state.anchor) {
|
|
199
|
-
const shown = opts.shown ?? await shownVersion(opts.canvasRoot, opts.slug, opts.sources);
|
|
200
|
-
if (shown.rendered && shown.prompt !== void 0) {
|
|
201
|
-
const video = typeof shown.prompt === "object" && shown.prompt !== null && isVideoBlueprint(shown.prompt);
|
|
202
|
-
const recorded = shown.video;
|
|
203
|
-
const unrecorded = video && (!recorded || recorded.canvas === null || recorded.canvas === void 0);
|
|
204
|
-
const anchor = unrecorded ? void 0 : (await readIdeaAnchor(opts.creativeDir, { spec: shown.prompt, ...video && recorded ? { recorded } : {} }))?.anchor;
|
|
205
|
-
if (anchor) fallback = { ...anchor, changes: shown.definition ? recordedChanges(shown.definition) : [] };
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
const { baseline, seen } = ideaBaseline(state, opts.turnId, fallback);
|
|
209
|
-
if (seen && opts.record) await recordSeen(opts.canvasRoot, opts.slug, seen);
|
|
210
|
-
return baseline ? { baseline } : {};
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
export {
|
|
214
|
-
outputRatioWarningsFor,
|
|
215
|
-
runResult,
|
|
216
|
-
validateResult,
|
|
217
|
-
shownVersion,
|
|
218
|
-
shownBaseline
|
|
219
|
-
};
|
|
220
|
-
//# sourceMappingURL=chunk-ARCQQUEL.js.map
|