@koda-sl/baker-cli 0.545.0-dev.2a6beac48 → 0.546.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 +2 -0
- package/dist/account-2HJ4GKHN.js +82 -0
- package/dist/account-P5S2VJ2E.js +82 -0
- package/dist/account-reads-X36NPCX5.js +219 -0
- package/dist/account-users-PJQTX3SX.js +64 -0
- package/dist/account-writes-FZ3KCJZY.js +68 -0
- package/dist/accounts-2BFYTYMI.js +80 -0
- package/dist/accounts-C4Y7GFSK.js +701 -0
- package/dist/actions-QG2OULYP.js +55 -0
- package/dist/activecampaign-MNT2JV2L.js +938 -0
- package/dist/ad-group-writes-XGG3WQEO.js +172 -0
- package/dist/ad-groups-GZIPUN64.js +70 -0
- package/dist/ad-writes-2VTRWQLW.js +176 -0
- package/dist/add-AZ5A7BIN.js +107 -0
- package/dist/add-RNNEHG6I.js +305 -0
- package/dist/ads-IXE6BT3V.js +48 -0
- package/dist/ads-LNWALF6G.js +79 -0
- package/dist/advertisers-WBZ3ECQX.js +123 -0
- package/dist/analytics-2HJWW3FB.js +447 -0
- package/dist/analytics-PEYMMWD7.js +2437 -0
- package/dist/animate-DM4OUJMR.js +480 -0
- package/dist/assign-JHGAFCUY.js +80 -0
- package/dist/audience-size-U76DF2X5.js +76 -0
- package/dist/audiences-7D5VPOWF.js +280 -0
- package/dist/audit-DZYUAO3J.js +154 -0
- package/dist/autocomplete-Z4SWGQ3P.js +114 -0
- package/dist/avatars-4S2IWOKX.js +38 -0
- package/dist/bid-pricing-SXZDIXYR.js +103 -0
- package/dist/brand-2TRP2BIX.js +22 -0
- package/dist/brief-GDZ343Y2.js +543 -0
- package/dist/campaign-groups-5J7N2MFZ.js +99 -0
- package/dist/campaign-writes-3WFTS727.js +168 -0
- package/dist/campaign-writes-H22P6YPW.js +176 -0
- package/dist/campaigns-265JXD2Z.js +78 -0
- package/dist/campaigns-5L7R2HO6.js +111 -0
- package/dist/campaigns-PQ76BA6H.js +113 -0
- package/dist/canvas-EUBBLSWF.js +46 -0
- package/dist/capabilities-MBO3DOG2.js +147 -0
- package/dist/catalog-DPUQBZZ7.js +66 -0
- package/dist/catalogs-SBXFAD3X.js +130 -0
- package/dist/changes-HXVZUJMH.js +143 -0
- package/dist/chatgpt-UXJPCGZU.js +47 -0
- package/dist/chats-WJW4GHBK.js +449 -0
- package/dist/check-7Z6JYY5U.js +107 -0
- package/dist/chunk-2EAHMSLD.js +249 -0
- package/dist/chunk-2YH5JHEH.js +91 -0
- package/dist/chunk-4D73PLXU.js +843 -0
- package/dist/chunk-4LEHJXPY.js +604 -0
- package/dist/chunk-4O2EPB6D.js +344 -0
- package/dist/chunk-4S5ZAG4S.js +63 -0
- package/dist/chunk-65SIPEB3.js +910 -0
- package/dist/chunk-7GKMMWGG.js +547 -0
- package/dist/chunk-7MN447O7.js +377 -0
- package/dist/chunk-AMMXBAHA.js +224 -0
- package/dist/chunk-BNY6KR47.js +831 -0
- package/dist/chunk-BQZMJEHJ.js +494 -0
- package/dist/chunk-CMXTQ4PS.js +7800 -0
- package/dist/chunk-CMXTQ4PS.js.map +1 -0
- package/dist/chunk-DYTBVVQX.js +679 -0
- package/dist/chunk-DYTBVVQX.js.map +1 -0
- package/dist/chunk-EBWOLUII.js +24026 -0
- package/dist/chunk-EBWOLUII.js.map +1 -0
- package/dist/chunk-EKS4XPSS.js +207 -0
- package/dist/chunk-EOMY5SUJ.js +783 -0
- package/dist/chunk-EZH5QZDA.js +19 -0
- package/dist/chunk-FVDC6AKZ.js +150 -0
- package/dist/chunk-FWMPRDJX.js +334 -0
- package/dist/chunk-FWXYITXH.js +297 -0
- package/dist/chunk-GN7K3NPI.js +148 -0
- package/dist/chunk-HBDWE7WK.js +98 -0
- package/dist/chunk-JAC6JVCI.js +26 -0
- package/dist/chunk-JFO2Q3ZO.js +91 -0
- package/dist/chunk-JLLGXYOZ.js +857 -0
- package/dist/chunk-JOQLRI2R.js +455 -0
- package/dist/chunk-JY3OJBKZ.js +3510 -0
- package/dist/chunk-K4W7XMUF.js +8954 -0
- package/dist/chunk-KIXVHP2C.js +1919 -0
- package/dist/chunk-L6WI7WEQ.js +685 -0
- package/dist/chunk-LHZAGVUZ.js +191 -0
- package/dist/chunk-LTKET3RQ.js +203 -0
- package/dist/chunk-MCJ5I5LR.js +3187 -0
- package/dist/chunk-MCJ5I5LR.js.map +1 -0
- package/dist/chunk-MLJKPUWP.js +191 -0
- package/dist/chunk-MLJKPUWP.js.map +1 -0
- package/dist/chunk-MSMTG6OC.js +4269 -0
- package/dist/chunk-MSMTG6OC.js.map +1 -0
- package/dist/chunk-MZPS46OR.js +76 -0
- package/dist/chunk-NBWZVBDG.js +131 -0
- package/dist/chunk-OLEYVOS2.js +2209 -0
- package/dist/chunk-OOE5JYCT.js +275 -0
- package/dist/chunk-OWSNCNLT.js +197 -0
- package/dist/chunk-P3VY5JEM.js +274 -0
- package/dist/chunk-PP3DM7NO.js +430 -0
- package/dist/chunk-PXGR3VGW.js +1646 -0
- package/dist/chunk-Q2MRYCUR.js +66 -0
- package/dist/chunk-QK3HMAVU.js +5471 -0
- package/dist/chunk-QQU3TWMB.js +51 -0
- package/dist/chunk-RH2A7LT2.js +103 -0
- package/dist/chunk-RHEWQB5O.js +638 -0
- package/dist/chunk-RNHTZYSX.js +163 -0
- package/dist/chunk-RP36XHWT.js +46 -0
- package/dist/chunk-RVMI6327.js +156 -0
- package/dist/chunk-SA5EIVSY.js +142 -0
- package/dist/chunk-SDAADQBT.js +387 -0
- package/dist/chunk-SNWFM2DB.js +228 -0
- package/dist/chunk-SOKUGFVQ.js +169 -0
- package/dist/chunk-TARINRA4.js +1518 -0
- package/dist/chunk-TB2EO2SY.js +23 -0
- package/dist/chunk-TNMTZOMA.js +479 -0
- package/dist/chunk-TNZUMU55.js +167 -0
- package/dist/chunk-V2XA5SIO.js +152 -0
- package/dist/chunk-V2XA5SIO.js.map +1 -0
- package/dist/chunk-VFYC466I.js +438 -0
- package/dist/chunk-VOUCQ2YW.js +64 -0
- package/dist/chunk-WOE4TZHJ.js +285 -0
- package/dist/chunk-X32MFGWW.js +15 -0
- package/dist/chunk-X32MFGWW.js.map +1 -0
- package/dist/chunk-X5PWBSXW.js +930 -0
- package/dist/chunk-XRD25RJ7.js +1902 -0
- package/dist/chunk-XTI7GGHL.js +170 -0
- package/dist/chunk-XYNQMRNX.js +5368 -0
- package/dist/chunk-YOJLONWG.js +61 -0
- package/dist/chunk-YTHF34YK.js +89 -0
- package/dist/chunk-YVKB74CZ.js +392 -0
- package/dist/chunk-Z2IGUL2M.js +57 -0
- package/dist/chunk-ZEUAJAKN.js +225 -0
- package/dist/claim-SO5J35XP.js +200 -0
- package/dist/cli.js +33 -33
- package/dist/companies-CDECCXBD.js +198 -0
- package/dist/company-NYZDI5N2.js +308 -0
- package/dist/complete-MG37D4CB.js +84 -0
- package/dist/config-3VK74MY6.js +88 -0
- package/dist/connect-SZMBR2OI.js +45 -0
- package/dist/conversation-DTNMIXHM.js +96 -0
- package/dist/conversion-report-RB2MU7UD.js +127 -0
- package/dist/conversion-upload-command-HFZYKVXA.js +439 -0
- package/dist/conversion-writes-56AIPXPK.js +122 -0
- package/dist/conversions-NRX76ZIT.js +78 -0
- package/dist/conversions-X3DU4BJA.js +140 -0
- package/dist/create-CZI3743R.js +239 -0
- package/dist/create-I47VP7N7.js +210 -0
- package/dist/create-TNYAFY7C.js +62 -0
- package/dist/create-XSLRS6QB.js +135 -0
- package/dist/creatives-2DY62A7C.js +223 -0
- package/dist/creatives-6UVWEEQ6.js +58 -0
- package/dist/credentials-3YVA5FAS.js +290 -0
- package/dist/critique-LSOI3FHP.js +232 -0
- package/dist/critique-XMAU2GHO.js +1451 -0
- package/dist/crm-3EBMPJJB.js +323 -0
- package/dist/crm-KVZPRNUX.js +227 -0
- package/dist/currency-CHBV6WIO.js +88 -0
- package/dist/customers-FYSYG3KC.js +65 -0
- package/dist/delete-ESSOYJKH.js +57 -0
- package/dist/delete-HLQMRIME.js +67 -0
- package/dist/delete-Q3NX3Q5B.js +69 -0
- package/dist/demographics-LASHWIXO.js +141 -0
- package/dist/discard-3DO7JVEV.js +69 -0
- package/dist/discover-ZU2DAV23.js +172 -0
- package/dist/domain-FB4247ER.js +101 -0
- package/dist/download-R33R7GY2.js +172 -0
- package/dist/draft-6EHV5NAN.js +247 -0
- package/dist/draft-6EHV5NAN.js.map +1 -0
- package/dist/draft-A2W2GB6J.js +342 -0
- package/dist/draft-A2W2GB6J.js.map +1 -0
- package/dist/draft-EWGNZUU4.js +288 -0
- package/dist/draft-EWGNZUU4.js.map +1 -0
- package/dist/draft-FSZMTGWI.js +106 -0
- package/dist/draft-FSZMTGWI.js.map +1 -0
- package/dist/draft-O4RCH27D.js +220 -0
- package/dist/draft-P3YJZY74.js +106 -0
- package/dist/draft-P3YJZY74.js.map +1 -0
- package/dist/draft-Q2FDEPPR.js +313 -0
- package/dist/draft-Q2FDEPPR.js.map +1 -0
- package/dist/draft-R7BNWMBR.js +408 -0
- package/dist/draft-R7BNWMBR.js.map +1 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiments-LKCWGOHZ.js +236 -0
- package/dist/facets-KLNWJHHS.js +117 -0
- package/dist/feedback-S362KMYD.js +115 -0
- package/dist/feedback-record-4SNCWNXJ.js +269 -0
- package/dist/fetch-JDLKLVB3.js +204 -0
- package/dist/fit-VR4RLHAW.js +65 -0
- package/dist/flows-KRF2MXDV.js +250 -0
- package/dist/fonts-VZRP3WKC.js +39 -0
- package/dist/forecast-372Q6KQZ.js +169 -0
- package/dist/forecast-XWMDKUWU.js +121 -0
- package/dist/funnel-6DDF77MP.js +397 -0
- package/dist/ga4-GDMHIFBU.js +55 -0
- package/dist/generate-JQIK3UYS.js +263 -0
- package/dist/get-6QFJJQZF.js +59 -0
- package/dist/get-ZRY36R6X.js +82 -0
- package/dist/google-JHTOX6WM.js +3270 -0
- package/dist/google-ads-HGXVNG7F.js +198 -0
- package/dist/history-AAXNYSBM.js +102 -0
- package/dist/history-BXYPY5NL.js +153 -0
- package/dist/history-VNLS2TKB.js +69 -0
- package/dist/hubspot-HOCVFC6T.js +782 -0
- package/dist/ideas-XWO4KK7B.js +45 -0
- package/dist/images-DAQAHTEQ.js +92 -0
- package/dist/ingest-E3RVG24Y.js +123 -0
- package/dist/ingest-Q354BZ5E.js +27 -0
- package/dist/insights-XY6II7TX.js +132 -0
- package/dist/inspect-K4K4DKCA.js +192 -0
- package/dist/intent-5QUPPZNI.js +95 -0
- package/dist/keyword-gap-IG3EFLDH.js +130 -0
- package/dist/keyword-metrics-2OEPH7SY.js +200 -0
- package/dist/keywords-for-site-FQTQ7YK7.js +131 -0
- package/dist/landing-2DQPIGP3.js +28 -0
- package/dist/languages-LNHWSCMT.js +40 -0
- package/dist/leads-BFN7STN7.js +115 -0
- package/dist/learn-J35JIM2I.js +207 -0
- package/dist/line-item-writes-SSQ4MIM4.js +211 -0
- package/dist/line-items-EJUWLXKX.js +107 -0
- package/dist/link-AEY3CNWU.js +67 -0
- package/dist/linkedin-JZV7UL6X.js +1330 -0
- package/dist/linkedin-JZV7UL6X.js.map +1 -0
- package/dist/linkedin-person-NEE63CCA.js +139 -0
- package/dist/list-M4TCQF5X.js +306 -0
- package/dist/list-VQDNBEYO.js +67 -0
- package/dist/list-ZY24D24K.js +154 -0
- package/dist/locations-64JNCQID.js +69 -0
- package/dist/locations-KVAAO7LD.js +40 -0
- package/dist/log-OPLN3IRB.js +95 -0
- package/dist/make-6L7PP5UQ.js +1367 -0
- package/dist/map-VUALMWUR.js +436 -0
- package/dist/mcp-56IBRTZ4.js +729 -0
- package/dist/media-sources-6ESCZBK3.js +35 -0
- package/dist/members-PT6TDQVH.js +47 -0
- package/dist/meta-XVPSGNHU.js +122 -0
- package/dist/metrics-MXGA3EFS.js +152 -0
- package/dist/models-Z6SUHWKI.js +155 -0
- package/dist/normalize-L4LY7T44.js +144 -0
- package/dist/options-YYX4ABEJ.js +125 -0
- package/dist/organization-TB6HQDMZ.js +949 -0
- package/dist/performance-OVWWS4H7.js +27 -0
- package/dist/performance-Z2KJSRYW.js +5565 -0
- package/dist/pixels-H642RPK4.js +62 -0
- package/dist/plan-FRRE4YQC.js +208 -0
- package/dist/promoted-tweet-writes-Z53Y53NY.js +183 -0
- package/dist/promoted-tweets-6LCVTNA4.js +119 -0
- package/dist/publish-IINRY5CV.js +344 -0
- package/dist/query-FT2BA3WH.js +62 -0
- package/dist/read-7ZFZAJSQ.js +141 -0
- package/dist/reddit-GN7JTUT4.js +29 -0
- package/dist/refresh-GG3YE2OV.js +97 -0
- package/dist/release-ANPUYLTT.js +63 -0
- package/dist/relevant-pages-OCHLUV5K.js +99 -0
- package/dist/remove-KRJNZWI6.js +53 -0
- package/dist/reopen-HSES67EB.js +66 -0
- package/dist/rerun-E4EKDIUW.js +96 -0
- package/dist/research-EGJRTHXJ.js +75 -0
- package/dist/research-ISCZZZZA.js +265 -0
- package/dist/reset-EG7VZ2CV.js +57 -0
- package/dist/reset-H432TZBK.js +57 -0
- package/dist/resolve-YR42UONS.js +124 -0
- package/dist/retry-4PLDHYSR.js +65 -0
- package/dist/retry-5DVWSAL4.js +63 -0
- package/dist/revenue-KVPNIH6W.js +91 -0
- package/dist/rules-3P7YGWPO.js +99 -0
- package/dist/rules-add-RGDR7KZY.js +465 -0
- package/dist/run-IX3GBTJW.js +71 -0
- package/dist/run-VZ5EIKUY.js +69 -0
- package/dist/scaffold-ad-6NMCWJWB.js +1513 -0
- package/dist/scaffold-static-ad-VEOPCYXT.js +1011 -0
- package/dist/scaffold-video-M5NYH3Y7.js +885 -0
- package/dist/schedule-3W3URGTX.js +64 -0
- package/dist/scheduled-agents-OP6RE5UG.js +55 -0
- package/dist/schema-MGXMIZSJ.js +135 -0
- package/dist/search-WNEXCXAB.js +177 -0
- package/dist/select-6YIRXTDD.js +110 -0
- package/dist/set-prompt-KCCBDH2W.js +199 -0
- package/dist/setup-links-ZZHTAIHB.js +144 -0
- package/dist/shopify-AJBIYN7L.js +3980 -0
- package/dist/shopify-AJBIYN7L.js.map +1 -0
- package/dist/site-T2SKABGA.js +180 -0
- package/dist/sources-BS2PSBJY.js +457 -0
- package/dist/sources-BXNZRLWV.js +30 -0
- package/dist/stale-ZXHCEHL3.js +90 -0
- package/dist/status-CO65UWTW.js +65 -0
- package/dist/studio-6ZXUKA4G.js +49 -0
- package/dist/sync-ZAK5GPCA.js +57 -0
- package/dist/sync-definition-HO2RAVSB.js +70 -0
- package/dist/tag-manager-74CGUGXX.js +43 -0
- package/dist/tags-7NACSUYN.js +227 -0
- package/dist/tags-LMPGS3ZO.js +23 -0
- package/dist/tags-LUAG3KGM.js +23 -0
- package/dist/tags-RBZR2NO3.js +23 -0
- package/dist/tags-ZLOXPFQZ.js +26 -0
- package/dist/targeting-criteria-CRRYYBHP.js +113 -0
- package/dist/targets-35X4YKUB.js +106 -0
- package/dist/testimonials-DBOEVW2C.js +32 -0
- package/dist/themes-R3A6IVQN.js +95 -0
- package/dist/top-companies-XWBHS5LC.js +111 -0
- package/dist/transcript-FBJZUF7A.js +165 -0
- package/dist/translate-2EZKFEUC.js +603 -0
- package/dist/triggers-PRFYW7IG.js +144 -0
- package/dist/unlink-3K7ZLSPQ.js +70 -0
- package/dist/unstage-QHWN7QHU.js +88 -0
- package/dist/update-4XRJU43K.js +192 -0
- package/dist/update-KSSY2TTH.js +155 -0
- package/dist/update-MSAHJFFZ.js +101 -0
- package/dist/update-WMQZD7P2.js +66 -0
- package/dist/upload-JFBWYXQ2.js +130 -0
- package/dist/url-options-YZ6UG3NY.js +131 -0
- package/dist/url-params-E5I6POBJ.js +101 -0
- package/dist/validate-USALHH7N.js +125 -0
- package/dist/videos-IJWH4DAC.js +41 -0
- package/dist/viewer-check-HQKTK5QT.js +83 -0
- package/dist/web-XXXOKEV2.js +173 -0
- package/dist/winning-ads-WF2UXSKZ.js +86 -0
- package/dist/write-commands-5Z5A3D3M.js +713 -0
- package/dist/write-commands-7DTFGM6E.js +206 -0
- package/dist/write-commands-GFVERRU4.js +1525 -0
- package/dist/x-TPEKLUTG.js +47 -0
- package/package.json +1 -1
- package/dist/account-D236Y3BP.js +0 -82
- package/dist/account-IG3U6UXZ.js +0 -82
- package/dist/account-reads-L2GYNCD3.js +0 -219
- package/dist/account-users-A5H7FC7T.js +0 -64
- package/dist/account-writes-BSSKSTZ2.js +0 -68
- package/dist/accounts-ENS2ONLA.js +0 -701
- package/dist/accounts-RTUSISHG.js +0 -80
- package/dist/actions-3SQGXLLM.js +0 -55
- package/dist/activecampaign-MJ4SIVWY.js +0 -938
- package/dist/ad-group-writes-KMB3OMJG.js +0 -172
- package/dist/ad-groups-E67CNQS4.js +0 -70
- package/dist/ad-writes-FNMKNFUN.js +0 -176
- package/dist/add-BH2GJZ46.js +0 -305
- package/dist/add-FJJHZDVW.js +0 -107
- package/dist/ads-4LASBP4G.js +0 -79
- package/dist/ads-WE6GT2BL.js +0 -48
- package/dist/advertisers-P742OQFI.js +0 -123
- package/dist/analytics-ICV42S7D.js +0 -447
- package/dist/analytics-XCUJSG3F.js +0 -2437
- package/dist/animate-OWXAT2RK.js +0 -480
- package/dist/assign-OQYVRXCT.js +0 -80
- package/dist/audience-size-NN43B7FF.js +0 -76
- package/dist/audiences-3R574STZ.js +0 -280
- package/dist/audit-JLH2TBIL.js +0 -154
- package/dist/autocomplete-ZQAKVB6T.js +0 -114
- package/dist/avatars-JWCZ2KVM.js +0 -38
- package/dist/bid-pricing-CX3V76MC.js +0 -103
- package/dist/brand-NKHAO4TK.js +0 -22
- package/dist/brief-6RDPVD4A.js +0 -543
- package/dist/campaign-groups-3PVR3IXH.js +0 -99
- package/dist/campaign-writes-TBWAZOZ2.js +0 -168
- package/dist/campaign-writes-Z2J24SUZ.js +0 -176
- package/dist/campaigns-43OS6EUG.js +0 -78
- package/dist/campaigns-PW4XK65Y.js +0 -113
- package/dist/campaigns-RN3SPC7L.js +0 -111
- package/dist/canvas-QJI65546.js +0 -46
- package/dist/capabilities-KPQWOCTA.js +0 -147
- package/dist/catalog-7LINLVVY.js +0 -66
- package/dist/catalogs-IR22RGZD.js +0 -130
- package/dist/changes-RSEGYV45.js +0 -143
- package/dist/chatgpt-PDFFKPY2.js +0 -47
- package/dist/chats-RRD42PZ5.js +0 -449
- package/dist/check-TPP2KZY6.js +0 -107
- package/dist/chunk-3BXD6MC6.js +0 -197
- package/dist/chunk-3EUITH4J.js +0 -638
- package/dist/chunk-3MZNBHC7.js +0 -156
- package/dist/chunk-47K5MDGX.js +0 -170
- package/dist/chunk-4IRJ5JXA.js +0 -46
- package/dist/chunk-5IFFPSEN.js +0 -225
- package/dist/chunk-64ALJ6TJ.js +0 -274
- package/dist/chunk-6OIKNJ7G.js +0 -26
- package/dist/chunk-6UMQSHGK.js +0 -2209
- package/dist/chunk-7UFV6H7J.js +0 -167
- package/dist/chunk-7VDTLOSX.js +0 -344
- package/dist/chunk-7YYTE5XE.js +0 -191
- package/dist/chunk-ANUFRN3B.js +0 -334
- package/dist/chunk-B3CDNANO.js +0 -843
- package/dist/chunk-B74ZFQKS.js +0 -676
- package/dist/chunk-B74ZFQKS.js.map +0 -1
- package/dist/chunk-BDWNJRTY.js +0 -1902
- package/dist/chunk-BH3JS7EF.js +0 -91
- package/dist/chunk-BKIHYRQL.js +0 -149
- package/dist/chunk-BKIHYRQL.js.map +0 -1
- package/dist/chunk-BLGTDKIV.js +0 -831
- package/dist/chunk-BNO3EFGR.js +0 -4266
- package/dist/chunk-BNO3EFGR.js.map +0 -1
- package/dist/chunk-CXCZHEVW.js +0 -23
- package/dist/chunk-CYKFXG4R.js +0 -455
- package/dist/chunk-DD33NA2U.js +0 -89
- package/dist/chunk-DD6IMD7G.js +0 -207
- package/dist/chunk-E5H7JIWB.js +0 -3510
- package/dist/chunk-EYBIZT7T.js +0 -61
- package/dist/chunk-F3CZFUXZ.js +0 -3187
- package/dist/chunk-F3CZFUXZ.js.map +0 -1
- package/dist/chunk-FGSRPKOV.js +0 -438
- package/dist/chunk-FSK77EEM.js +0 -910
- package/dist/chunk-G2FDUCUU.js +0 -297
- package/dist/chunk-G6J6AWTE.js +0 -5471
- package/dist/chunk-GCFC2MNR.js +0 -228
- package/dist/chunk-GCZK4BMB.js +0 -5368
- package/dist/chunk-GJD43KID.js +0 -479
- package/dist/chunk-HGRCKRCF.js +0 -51
- package/dist/chunk-HMFIOE4P.js +0 -63
- package/dist/chunk-IM3GD4G3.js +0 -857
- package/dist/chunk-IUWM5XHR.js +0 -103
- package/dist/chunk-JBNT444M.js +0 -285
- package/dist/chunk-JW6VZBV7.js +0 -1646
- package/dist/chunk-KIX3ZM24.js +0 -685
- package/dist/chunk-L7AJMZ6Z.js +0 -24026
- package/dist/chunk-L7AJMZ6Z.js.map +0 -1
- package/dist/chunk-LDFM37DM.js +0 -148
- package/dist/chunk-NQF5U6FX.js +0 -150
- package/dist/chunk-ODN2LYPJ.js +0 -19
- package/dist/chunk-OKBIPYZN.js +0 -66
- package/dist/chunk-OM45JY2R.js +0 -377
- package/dist/chunk-ORLQEQDF.js +0 -203
- package/dist/chunk-OW2SDF66.js +0 -142
- package/dist/chunk-P6FMQHJJ.js +0 -131
- package/dist/chunk-PFBQERWX.js +0 -10
- package/dist/chunk-PFBQERWX.js.map +0 -1
- package/dist/chunk-Q6LCL67T.js +0 -1518
- package/dist/chunk-QB334QBO.js +0 -604
- package/dist/chunk-QJCGLIVD.js +0 -57
- package/dist/chunk-RKT6RFOR.js +0 -249
- package/dist/chunk-RM5T4MA6.js +0 -783
- package/dist/chunk-RYXGJDBK.js +0 -392
- package/dist/chunk-S47XHWFU.js +0 -7794
- package/dist/chunk-S47XHWFU.js.map +0 -1
- package/dist/chunk-SBPUCN6H.js +0 -547
- package/dist/chunk-SIKCVWM3.js +0 -76
- package/dist/chunk-SOYKSA2X.js +0 -224
- package/dist/chunk-TGW2POU6.js +0 -430
- package/dist/chunk-TL6P7WDT.js +0 -387
- package/dist/chunk-TSNL3AYG.js +0 -8954
- package/dist/chunk-TTDLK73U.js +0 -494
- package/dist/chunk-V4UJERGL.js +0 -64
- package/dist/chunk-VJKLZVAM.js +0 -169
- package/dist/chunk-VZGLL54O.js +0 -930
- package/dist/chunk-WGJHVP7T.js +0 -163
- package/dist/chunk-WJ6UJBHB.js +0 -91
- package/dist/chunk-WSYZT2QI.js +0 -275
- package/dist/chunk-XU6XQPNM.js +0 -1919
- package/dist/chunk-Y2AKJYI4.js +0 -191
- package/dist/chunk-Y2AKJYI4.js.map +0 -1
- package/dist/chunk-YQB66YKJ.js +0 -98
- package/dist/claim-75KAZXLJ.js +0 -200
- package/dist/companies-IB4C245S.js +0 -198
- package/dist/company-5J2EGA42.js +0 -308
- package/dist/complete-7AT7QWZN.js +0 -84
- package/dist/config-3GCILBEL.js +0 -88
- package/dist/connect-HKVHKX44.js +0 -45
- package/dist/conversation-5OEBGDYR.js +0 -96
- package/dist/conversion-report-R4KJI4VA.js +0 -127
- package/dist/conversion-upload-command-XQQWLYHZ.js +0 -439
- package/dist/conversion-writes-XIQEIDPS.js +0 -122
- package/dist/conversions-LLVHKDOQ.js +0 -140
- package/dist/conversions-RMBQNW3T.js +0 -78
- package/dist/create-2TAKPSGG.js +0 -210
- package/dist/create-J3OXZGXC.js +0 -239
- package/dist/create-RL3L7L2S.js +0 -135
- package/dist/create-ZVTM57AZ.js +0 -62
- package/dist/creatives-3EAIKWGU.js +0 -223
- package/dist/creatives-AALLH7YU.js +0 -58
- package/dist/credentials-MS4NJHEG.js +0 -290
- package/dist/critique-KLITVZA4.js +0 -1451
- package/dist/critique-NFPZD54K.js +0 -232
- package/dist/crm-7BAHXTK4.js +0 -227
- package/dist/crm-QQ7LGCLO.js +0 -323
- package/dist/currency-XFHCLKAV.js +0 -88
- package/dist/customers-NENDLH5A.js +0 -65
- package/dist/delete-VOUXBXU3.js +0 -67
- package/dist/delete-WACZG5SD.js +0 -69
- package/dist/delete-ZCPZ2ACI.js +0 -57
- package/dist/demographics-C5EL3BI6.js +0 -141
- package/dist/discard-RQXALYQZ.js +0 -69
- package/dist/discover-R3QBVUHZ.js +0 -172
- package/dist/domain-HV2N4S3O.js +0 -101
- package/dist/download-OQFJOZFD.js +0 -172
- package/dist/draft-25YY6NMC.js +0 -396
- package/dist/draft-25YY6NMC.js.map +0 -1
- package/dist/draft-4SZHKEAW.js +0 -310
- package/dist/draft-4SZHKEAW.js.map +0 -1
- package/dist/draft-6E7EQUCU.js +0 -103
- package/dist/draft-6E7EQUCU.js.map +0 -1
- package/dist/draft-GIJCJIQ5.js +0 -240
- package/dist/draft-GIJCJIQ5.js.map +0 -1
- package/dist/draft-IXHBF7UK.js +0 -335
- package/dist/draft-IXHBF7UK.js.map +0 -1
- package/dist/draft-Q74WOMUR.js +0 -283
- package/dist/draft-Q74WOMUR.js.map +0 -1
- package/dist/draft-RK3ZAUBF.js +0 -100
- package/dist/draft-RK3ZAUBF.js.map +0 -1
- package/dist/draft-SDOXYIND.js +0 -220
- package/dist/experiments-5UC4QVZU.js +0 -236
- package/dist/facets-I2CY2STO.js +0 -117
- package/dist/feedback-WGRNI4J3.js +0 -115
- package/dist/feedback-record-C6VYJQOL.js +0 -269
- package/dist/fetch-WS4CABQN.js +0 -204
- package/dist/fit-BJH2KAKU.js +0 -65
- package/dist/flows-ZQ66S64A.js +0 -250
- package/dist/fonts-EKLOSPJA.js +0 -39
- package/dist/forecast-JOQESPEP.js +0 -169
- package/dist/forecast-KDJVAWTO.js +0 -121
- package/dist/funnel-PD7EMXAX.js +0 -397
- package/dist/ga4-SBHUQKGK.js +0 -55
- package/dist/generate-SW5KLHXG.js +0 -263
- package/dist/get-IMZPHROU.js +0 -59
- package/dist/get-PIYAY4MD.js +0 -82
- package/dist/google-Q424277P.js +0 -3270
- package/dist/google-ads-VG2ZQBAP.js +0 -198
- package/dist/history-4LN2MMCY.js +0 -102
- package/dist/history-7DF5HFJT.js +0 -69
- package/dist/history-SECNIWQQ.js +0 -153
- package/dist/hubspot-HW3DMFB2.js +0 -782
- package/dist/ideas-CIFADAYV.js +0 -45
- package/dist/images-KV7UJMNO.js +0 -92
- package/dist/ingest-3DW2YGCB.js +0 -123
- package/dist/ingest-OG3RUM2Z.js +0 -27
- package/dist/insights-YVV5MHPQ.js +0 -132
- package/dist/inspect-YJGFTVGT.js +0 -192
- package/dist/intent-5VLQBTM7.js +0 -95
- package/dist/keyword-gap-COLF7JNH.js +0 -130
- package/dist/keyword-metrics-I7OIBLCO.js +0 -200
- package/dist/keywords-for-site-DIIUKEVJ.js +0 -131
- package/dist/landing-FFAMZ3CD.js +0 -28
- package/dist/languages-RYIOZQFH.js +0 -40
- package/dist/leads-WSK4N2I6.js +0 -115
- package/dist/learn-A4LSAKRL.js +0 -207
- package/dist/line-item-writes-Q47ZVHB6.js +0 -211
- package/dist/line-items-MHIXPRTG.js +0 -107
- package/dist/link-6FVFHGP4.js +0 -67
- package/dist/linkedin-ATHYXJ4Q.js +0 -1328
- package/dist/linkedin-ATHYXJ4Q.js.map +0 -1
- package/dist/linkedin-person-3MFAKS2Y.js +0 -139
- package/dist/list-7RNRZN4W.js +0 -154
- package/dist/list-BDGTMCFP.js +0 -306
- package/dist/list-MPZF6NTD.js +0 -67
- package/dist/locations-7RYEWKJO.js +0 -69
- package/dist/locations-OF2ZI5YX.js +0 -40
- package/dist/log-MBPVGWLX.js +0 -95
- package/dist/make-DYFGYGMD.js +0 -1367
- package/dist/map-UUHQJSSU.js +0 -436
- package/dist/mcp-BH5MXQMJ.js +0 -729
- package/dist/media-sources-4BJOODBR.js +0 -35
- package/dist/members-PK2AXSE4.js +0 -47
- package/dist/meta-X46LC3GI.js +0 -122
- package/dist/metrics-PKMIG7VL.js +0 -152
- package/dist/models-X2IXXAD6.js +0 -155
- package/dist/normalize-36K2VJMB.js +0 -144
- package/dist/options-7BEM4Z5E.js +0 -125
- package/dist/organization-RSFFVT2M.js +0 -949
- package/dist/performance-4L2AFM4A.js +0 -27
- package/dist/performance-PVZ5V6YL.js +0 -5565
- package/dist/pixels-DBSPNHIE.js +0 -62
- package/dist/plan-2Q6SOHMD.js +0 -208
- package/dist/promoted-tweet-writes-UW2VRBZ2.js +0 -183
- package/dist/promoted-tweets-MJEZFPLW.js +0 -119
- package/dist/publish-XNYDOQ7I.js +0 -344
- package/dist/query-GBIWIZSS.js +0 -62
- package/dist/read-DF3UPNBM.js +0 -141
- package/dist/reddit-NLC55XYL.js +0 -29
- package/dist/refresh-5EGKQGJI.js +0 -97
- package/dist/release-RDNXS362.js +0 -63
- package/dist/relevant-pages-OZPYOGFO.js +0 -99
- package/dist/remove-OVN7XALF.js +0 -53
- package/dist/reopen-ODW3ZUEG.js +0 -66
- package/dist/rerun-3MTIAJUZ.js +0 -96
- package/dist/research-63ISQ74U.js +0 -75
- package/dist/research-RKFSB7OH.js +0 -265
- package/dist/reset-EZSCJXPC.js +0 -57
- package/dist/reset-GUJSHPHR.js +0 -57
- package/dist/resolve-BTM6MDOY.js +0 -124
- package/dist/retry-6BXQONQ3.js +0 -65
- package/dist/retry-OL2W3HFH.js +0 -63
- package/dist/revenue-P26LJFEF.js +0 -91
- package/dist/rules-MN5CBYLN.js +0 -99
- package/dist/rules-add-YPD466NS.js +0 -465
- package/dist/run-PEHYPLDQ.js +0 -69
- package/dist/run-WTN5QQ2P.js +0 -71
- package/dist/scaffold-ad-ZHZUX4Q6.js +0 -1513
- package/dist/scaffold-static-ad-SHGWFBBO.js +0 -1011
- package/dist/scaffold-video-VENWOP75.js +0 -885
- package/dist/schedule-637C6MY3.js +0 -64
- package/dist/scheduled-agents-ZUM6UUF2.js +0 -55
- package/dist/schema-NEL6O4O2.js +0 -135
- package/dist/search-36RRNTF6.js +0 -177
- package/dist/select-INJUT4PU.js +0 -110
- package/dist/set-prompt-X3DCUAGP.js +0 -199
- package/dist/setup-links-UG7S553A.js +0 -144
- package/dist/shopify-WLXZHJII.js +0 -3958
- package/dist/shopify-WLXZHJII.js.map +0 -1
- package/dist/site-YCSCW42E.js +0 -180
- package/dist/sources-HP3PRSU6.js +0 -457
- package/dist/sources-TQKN3HD7.js +0 -30
- package/dist/stale-KKBZ5FJX.js +0 -90
- package/dist/status-2HQBV7WL.js +0 -65
- package/dist/studio-OV2ZY5W3.js +0 -49
- package/dist/sync-QVPBBQAW.js +0 -57
- package/dist/sync-definition-YQJTCJJC.js +0 -70
- package/dist/tag-manager-5ORFHLM4.js +0 -43
- package/dist/tags-4VQS3QAK.js +0 -23
- package/dist/tags-TCGLKPB5.js +0 -227
- package/dist/tags-UUDTBJ6U.js +0 -23
- package/dist/tags-VJS37ZWW.js +0 -26
- package/dist/tags-YQVXWGWX.js +0 -23
- package/dist/targeting-criteria-3EXFTUMR.js +0 -113
- package/dist/targets-H7TVQ47T.js +0 -106
- package/dist/testimonials-NOLI2BVV.js +0 -32
- package/dist/themes-GD53PVOD.js +0 -95
- package/dist/top-companies-2KMUKTCC.js +0 -111
- package/dist/transcript-HJH2YNGC.js +0 -165
- package/dist/translate-X7TMHL22.js +0 -603
- package/dist/triggers-7HRFXKFZ.js +0 -144
- package/dist/unlink-G5KUMOL4.js +0 -70
- package/dist/unstage-WYJY5HKG.js +0 -88
- package/dist/update-GJ425R5V.js +0 -101
- package/dist/update-T6COJ6BO.js +0 -192
- package/dist/update-THOWGBFC.js +0 -155
- package/dist/update-WKS5QUFB.js +0 -66
- package/dist/upload-35QHU7B4.js +0 -130
- package/dist/url-options-VNNI4QXX.js +0 -131
- package/dist/url-params-3JU5W2AS.js +0 -101
- package/dist/validate-XQD5H6MU.js +0 -125
- package/dist/videos-JBJP3CZD.js +0 -41
- package/dist/viewer-check-ACRU6HY3.js +0 -83
- package/dist/web-NRG6WKRV.js +0 -173
- package/dist/winning-ads-ZKVXCS2L.js +0 -86
- package/dist/write-commands-ECCJLDLG.js +0 -1525
- package/dist/write-commands-FGWCJHLH.js +0 -713
- package/dist/write-commands-UTM7PPK5.js +0 -206
- package/dist/x-M3LIA6SI.js +0 -47
- /package/dist/{account-IG3U6UXZ.js.map → account-2HJ4GKHN.js.map} +0 -0
- /package/dist/{account-D236Y3BP.js.map → account-P5S2VJ2E.js.map} +0 -0
- /package/dist/{account-reads-L2GYNCD3.js.map → account-reads-X36NPCX5.js.map} +0 -0
- /package/dist/{account-users-A5H7FC7T.js.map → account-users-PJQTX3SX.js.map} +0 -0
- /package/dist/{account-writes-BSSKSTZ2.js.map → account-writes-FZ3KCJZY.js.map} +0 -0
- /package/dist/{accounts-RTUSISHG.js.map → accounts-2BFYTYMI.js.map} +0 -0
- /package/dist/{accounts-ENS2ONLA.js.map → accounts-C4Y7GFSK.js.map} +0 -0
- /package/dist/{actions-3SQGXLLM.js.map → actions-QG2OULYP.js.map} +0 -0
- /package/dist/{activecampaign-MJ4SIVWY.js.map → activecampaign-MNT2JV2L.js.map} +0 -0
- /package/dist/{ad-group-writes-KMB3OMJG.js.map → ad-group-writes-XGG3WQEO.js.map} +0 -0
- /package/dist/{ad-groups-E67CNQS4.js.map → ad-groups-GZIPUN64.js.map} +0 -0
- /package/dist/{ad-writes-FNMKNFUN.js.map → ad-writes-2VTRWQLW.js.map} +0 -0
- /package/dist/{add-FJJHZDVW.js.map → add-AZ5A7BIN.js.map} +0 -0
- /package/dist/{add-BH2GJZ46.js.map → add-RNNEHG6I.js.map} +0 -0
- /package/dist/{ads-WE6GT2BL.js.map → ads-IXE6BT3V.js.map} +0 -0
- /package/dist/{ads-4LASBP4G.js.map → ads-LNWALF6G.js.map} +0 -0
- /package/dist/{advertisers-P742OQFI.js.map → advertisers-WBZ3ECQX.js.map} +0 -0
- /package/dist/{analytics-ICV42S7D.js.map → analytics-2HJWW3FB.js.map} +0 -0
- /package/dist/{analytics-XCUJSG3F.js.map → analytics-PEYMMWD7.js.map} +0 -0
- /package/dist/{animate-OWXAT2RK.js.map → animate-DM4OUJMR.js.map} +0 -0
- /package/dist/{assign-OQYVRXCT.js.map → assign-JHGAFCUY.js.map} +0 -0
- /package/dist/{audience-size-NN43B7FF.js.map → audience-size-U76DF2X5.js.map} +0 -0
- /package/dist/{audiences-3R574STZ.js.map → audiences-7D5VPOWF.js.map} +0 -0
- /package/dist/{audit-JLH2TBIL.js.map → audit-DZYUAO3J.js.map} +0 -0
- /package/dist/{autocomplete-ZQAKVB6T.js.map → autocomplete-Z4SWGQ3P.js.map} +0 -0
- /package/dist/{avatars-JWCZ2KVM.js.map → avatars-4S2IWOKX.js.map} +0 -0
- /package/dist/{bid-pricing-CX3V76MC.js.map → bid-pricing-SXZDIXYR.js.map} +0 -0
- /package/dist/{brand-NKHAO4TK.js.map → brand-2TRP2BIX.js.map} +0 -0
- /package/dist/{brief-6RDPVD4A.js.map → brief-GDZ343Y2.js.map} +0 -0
- /package/dist/{campaign-groups-3PVR3IXH.js.map → campaign-groups-5J7N2MFZ.js.map} +0 -0
- /package/dist/{campaign-writes-TBWAZOZ2.js.map → campaign-writes-3WFTS727.js.map} +0 -0
- /package/dist/{campaign-writes-Z2J24SUZ.js.map → campaign-writes-H22P6YPW.js.map} +0 -0
- /package/dist/{campaigns-43OS6EUG.js.map → campaigns-265JXD2Z.js.map} +0 -0
- /package/dist/{campaigns-RN3SPC7L.js.map → campaigns-5L7R2HO6.js.map} +0 -0
- /package/dist/{campaigns-PW4XK65Y.js.map → campaigns-PQ76BA6H.js.map} +0 -0
- /package/dist/{canvas-QJI65546.js.map → canvas-EUBBLSWF.js.map} +0 -0
- /package/dist/{capabilities-KPQWOCTA.js.map → capabilities-MBO3DOG2.js.map} +0 -0
- /package/dist/{catalog-7LINLVVY.js.map → catalog-DPUQBZZ7.js.map} +0 -0
- /package/dist/{catalogs-IR22RGZD.js.map → catalogs-SBXFAD3X.js.map} +0 -0
- /package/dist/{changes-RSEGYV45.js.map → changes-HXVZUJMH.js.map} +0 -0
- /package/dist/{chatgpt-PDFFKPY2.js.map → chatgpt-UXJPCGZU.js.map} +0 -0
- /package/dist/{chats-RRD42PZ5.js.map → chats-WJW4GHBK.js.map} +0 -0
- /package/dist/{check-TPP2KZY6.js.map → check-7Z6JYY5U.js.map} +0 -0
- /package/dist/{chunk-RKT6RFOR.js.map → chunk-2EAHMSLD.js.map} +0 -0
- /package/dist/{chunk-BH3JS7EF.js.map → chunk-2YH5JHEH.js.map} +0 -0
- /package/dist/{chunk-B3CDNANO.js.map → chunk-4D73PLXU.js.map} +0 -0
- /package/dist/{chunk-QB334QBO.js.map → chunk-4LEHJXPY.js.map} +0 -0
- /package/dist/{chunk-7VDTLOSX.js.map → chunk-4O2EPB6D.js.map} +0 -0
- /package/dist/{chunk-HMFIOE4P.js.map → chunk-4S5ZAG4S.js.map} +0 -0
- /package/dist/{chunk-FSK77EEM.js.map → chunk-65SIPEB3.js.map} +0 -0
- /package/dist/{chunk-SBPUCN6H.js.map → chunk-7GKMMWGG.js.map} +0 -0
- /package/dist/{chunk-OM45JY2R.js.map → chunk-7MN447O7.js.map} +0 -0
- /package/dist/{chunk-SOYKSA2X.js.map → chunk-AMMXBAHA.js.map} +0 -0
- /package/dist/{chunk-BLGTDKIV.js.map → chunk-BNY6KR47.js.map} +0 -0
- /package/dist/{chunk-TTDLK73U.js.map → chunk-BQZMJEHJ.js.map} +0 -0
- /package/dist/{chunk-DD6IMD7G.js.map → chunk-EKS4XPSS.js.map} +0 -0
- /package/dist/{chunk-RM5T4MA6.js.map → chunk-EOMY5SUJ.js.map} +0 -0
- /package/dist/{chunk-ODN2LYPJ.js.map → chunk-EZH5QZDA.js.map} +0 -0
- /package/dist/{chunk-NQF5U6FX.js.map → chunk-FVDC6AKZ.js.map} +0 -0
- /package/dist/{chunk-ANUFRN3B.js.map → chunk-FWMPRDJX.js.map} +0 -0
- /package/dist/{chunk-G2FDUCUU.js.map → chunk-FWXYITXH.js.map} +0 -0
- /package/dist/{chunk-LDFM37DM.js.map → chunk-GN7K3NPI.js.map} +0 -0
- /package/dist/{chunk-YQB66YKJ.js.map → chunk-HBDWE7WK.js.map} +0 -0
- /package/dist/{chunk-6OIKNJ7G.js.map → chunk-JAC6JVCI.js.map} +0 -0
- /package/dist/{chunk-WJ6UJBHB.js.map → chunk-JFO2Q3ZO.js.map} +0 -0
- /package/dist/{chunk-IM3GD4G3.js.map → chunk-JLLGXYOZ.js.map} +0 -0
- /package/dist/{chunk-CYKFXG4R.js.map → chunk-JOQLRI2R.js.map} +0 -0
- /package/dist/{chunk-E5H7JIWB.js.map → chunk-JY3OJBKZ.js.map} +0 -0
- /package/dist/{chunk-TSNL3AYG.js.map → chunk-K4W7XMUF.js.map} +0 -0
- /package/dist/{chunk-XU6XQPNM.js.map → chunk-KIXVHP2C.js.map} +0 -0
- /package/dist/{chunk-KIX3ZM24.js.map → chunk-L6WI7WEQ.js.map} +0 -0
- /package/dist/{chunk-7YYTE5XE.js.map → chunk-LHZAGVUZ.js.map} +0 -0
- /package/dist/{chunk-ORLQEQDF.js.map → chunk-LTKET3RQ.js.map} +0 -0
- /package/dist/{chunk-SIKCVWM3.js.map → chunk-MZPS46OR.js.map} +0 -0
- /package/dist/{chunk-P6FMQHJJ.js.map → chunk-NBWZVBDG.js.map} +0 -0
- /package/dist/{chunk-6UMQSHGK.js.map → chunk-OLEYVOS2.js.map} +0 -0
- /package/dist/{chunk-WSYZT2QI.js.map → chunk-OOE5JYCT.js.map} +0 -0
- /package/dist/{chunk-3BXD6MC6.js.map → chunk-OWSNCNLT.js.map} +0 -0
- /package/dist/{chunk-64ALJ6TJ.js.map → chunk-P3VY5JEM.js.map} +0 -0
- /package/dist/{chunk-TGW2POU6.js.map → chunk-PP3DM7NO.js.map} +0 -0
- /package/dist/{chunk-JW6VZBV7.js.map → chunk-PXGR3VGW.js.map} +0 -0
- /package/dist/{chunk-OKBIPYZN.js.map → chunk-Q2MRYCUR.js.map} +0 -0
- /package/dist/{chunk-G6J6AWTE.js.map → chunk-QK3HMAVU.js.map} +0 -0
- /package/dist/{chunk-HGRCKRCF.js.map → chunk-QQU3TWMB.js.map} +0 -0
- /package/dist/{chunk-IUWM5XHR.js.map → chunk-RH2A7LT2.js.map} +0 -0
- /package/dist/{chunk-3EUITH4J.js.map → chunk-RHEWQB5O.js.map} +0 -0
- /package/dist/{chunk-WGJHVP7T.js.map → chunk-RNHTZYSX.js.map} +0 -0
- /package/dist/{chunk-4IRJ5JXA.js.map → chunk-RP36XHWT.js.map} +0 -0
- /package/dist/{chunk-3MZNBHC7.js.map → chunk-RVMI6327.js.map} +0 -0
- /package/dist/{chunk-OW2SDF66.js.map → chunk-SA5EIVSY.js.map} +0 -0
- /package/dist/{chunk-TL6P7WDT.js.map → chunk-SDAADQBT.js.map} +0 -0
- /package/dist/{chunk-GCFC2MNR.js.map → chunk-SNWFM2DB.js.map} +0 -0
- /package/dist/{chunk-VJKLZVAM.js.map → chunk-SOKUGFVQ.js.map} +0 -0
- /package/dist/{chunk-Q6LCL67T.js.map → chunk-TARINRA4.js.map} +0 -0
- /package/dist/{chunk-CXCZHEVW.js.map → chunk-TB2EO2SY.js.map} +0 -0
- /package/dist/{chunk-GJD43KID.js.map → chunk-TNMTZOMA.js.map} +0 -0
- /package/dist/{chunk-7UFV6H7J.js.map → chunk-TNZUMU55.js.map} +0 -0
- /package/dist/{chunk-FGSRPKOV.js.map → chunk-VFYC466I.js.map} +0 -0
- /package/dist/{chunk-V4UJERGL.js.map → chunk-VOUCQ2YW.js.map} +0 -0
- /package/dist/{chunk-JBNT444M.js.map → chunk-WOE4TZHJ.js.map} +0 -0
- /package/dist/{chunk-VZGLL54O.js.map → chunk-X5PWBSXW.js.map} +0 -0
- /package/dist/{chunk-BDWNJRTY.js.map → chunk-XRD25RJ7.js.map} +0 -0
- /package/dist/{chunk-47K5MDGX.js.map → chunk-XTI7GGHL.js.map} +0 -0
- /package/dist/{chunk-GCZK4BMB.js.map → chunk-XYNQMRNX.js.map} +0 -0
- /package/dist/{chunk-EYBIZT7T.js.map → chunk-YOJLONWG.js.map} +0 -0
- /package/dist/{chunk-DD33NA2U.js.map → chunk-YTHF34YK.js.map} +0 -0
- /package/dist/{chunk-RYXGJDBK.js.map → chunk-YVKB74CZ.js.map} +0 -0
- /package/dist/{chunk-QJCGLIVD.js.map → chunk-Z2IGUL2M.js.map} +0 -0
- /package/dist/{chunk-5IFFPSEN.js.map → chunk-ZEUAJAKN.js.map} +0 -0
- /package/dist/{claim-75KAZXLJ.js.map → claim-SO5J35XP.js.map} +0 -0
- /package/dist/{companies-IB4C245S.js.map → companies-CDECCXBD.js.map} +0 -0
- /package/dist/{company-5J2EGA42.js.map → company-NYZDI5N2.js.map} +0 -0
- /package/dist/{complete-7AT7QWZN.js.map → complete-MG37D4CB.js.map} +0 -0
- /package/dist/{config-3GCILBEL.js.map → config-3VK74MY6.js.map} +0 -0
- /package/dist/{connect-HKVHKX44.js.map → connect-SZMBR2OI.js.map} +0 -0
- /package/dist/{conversation-5OEBGDYR.js.map → conversation-DTNMIXHM.js.map} +0 -0
- /package/dist/{conversion-report-R4KJI4VA.js.map → conversion-report-RB2MU7UD.js.map} +0 -0
- /package/dist/{conversion-upload-command-XQQWLYHZ.js.map → conversion-upload-command-HFZYKVXA.js.map} +0 -0
- /package/dist/{conversion-writes-XIQEIDPS.js.map → conversion-writes-56AIPXPK.js.map} +0 -0
- /package/dist/{conversions-RMBQNW3T.js.map → conversions-NRX76ZIT.js.map} +0 -0
- /package/dist/{conversions-LLVHKDOQ.js.map → conversions-X3DU4BJA.js.map} +0 -0
- /package/dist/{create-J3OXZGXC.js.map → create-CZI3743R.js.map} +0 -0
- /package/dist/{create-2TAKPSGG.js.map → create-I47VP7N7.js.map} +0 -0
- /package/dist/{create-ZVTM57AZ.js.map → create-TNYAFY7C.js.map} +0 -0
- /package/dist/{create-RL3L7L2S.js.map → create-XSLRS6QB.js.map} +0 -0
- /package/dist/{creatives-3EAIKWGU.js.map → creatives-2DY62A7C.js.map} +0 -0
- /package/dist/{creatives-AALLH7YU.js.map → creatives-6UVWEEQ6.js.map} +0 -0
- /package/dist/{credentials-MS4NJHEG.js.map → credentials-3YVA5FAS.js.map} +0 -0
- /package/dist/{critique-NFPZD54K.js.map → critique-LSOI3FHP.js.map} +0 -0
- /package/dist/{critique-KLITVZA4.js.map → critique-XMAU2GHO.js.map} +0 -0
- /package/dist/{crm-QQ7LGCLO.js.map → crm-3EBMPJJB.js.map} +0 -0
- /package/dist/{crm-7BAHXTK4.js.map → crm-KVZPRNUX.js.map} +0 -0
- /package/dist/{currency-XFHCLKAV.js.map → currency-CHBV6WIO.js.map} +0 -0
- /package/dist/{customers-NENDLH5A.js.map → customers-FYSYG3KC.js.map} +0 -0
- /package/dist/{delete-ZCPZ2ACI.js.map → delete-ESSOYJKH.js.map} +0 -0
- /package/dist/{delete-VOUXBXU3.js.map → delete-HLQMRIME.js.map} +0 -0
- /package/dist/{delete-WACZG5SD.js.map → delete-Q3NX3Q5B.js.map} +0 -0
- /package/dist/{demographics-C5EL3BI6.js.map → demographics-LASHWIXO.js.map} +0 -0
- /package/dist/{discard-RQXALYQZ.js.map → discard-3DO7JVEV.js.map} +0 -0
- /package/dist/{discover-R3QBVUHZ.js.map → discover-ZU2DAV23.js.map} +0 -0
- /package/dist/{domain-HV2N4S3O.js.map → domain-FB4247ER.js.map} +0 -0
- /package/dist/{download-OQFJOZFD.js.map → download-R33R7GY2.js.map} +0 -0
- /package/dist/{draft-SDOXYIND.js.map → draft-O4RCH27D.js.map} +0 -0
- /package/dist/{experiments-5UC4QVZU.js.map → experiments-LKCWGOHZ.js.map} +0 -0
- /package/dist/{facets-I2CY2STO.js.map → facets-KLNWJHHS.js.map} +0 -0
- /package/dist/{feedback-WGRNI4J3.js.map → feedback-S362KMYD.js.map} +0 -0
- /package/dist/{feedback-record-C6VYJQOL.js.map → feedback-record-4SNCWNXJ.js.map} +0 -0
- /package/dist/{fetch-WS4CABQN.js.map → fetch-JDLKLVB3.js.map} +0 -0
- /package/dist/{fit-BJH2KAKU.js.map → fit-VR4RLHAW.js.map} +0 -0
- /package/dist/{flows-ZQ66S64A.js.map → flows-KRF2MXDV.js.map} +0 -0
- /package/dist/{fonts-EKLOSPJA.js.map → fonts-VZRP3WKC.js.map} +0 -0
- /package/dist/{forecast-JOQESPEP.js.map → forecast-372Q6KQZ.js.map} +0 -0
- /package/dist/{forecast-KDJVAWTO.js.map → forecast-XWMDKUWU.js.map} +0 -0
- /package/dist/{funnel-PD7EMXAX.js.map → funnel-6DDF77MP.js.map} +0 -0
- /package/dist/{ga4-SBHUQKGK.js.map → ga4-GDMHIFBU.js.map} +0 -0
- /package/dist/{generate-SW5KLHXG.js.map → generate-JQIK3UYS.js.map} +0 -0
- /package/dist/{get-IMZPHROU.js.map → get-6QFJJQZF.js.map} +0 -0
- /package/dist/{get-PIYAY4MD.js.map → get-ZRY36R6X.js.map} +0 -0
- /package/dist/{google-Q424277P.js.map → google-JHTOX6WM.js.map} +0 -0
- /package/dist/{google-ads-VG2ZQBAP.js.map → google-ads-HGXVNG7F.js.map} +0 -0
- /package/dist/{history-4LN2MMCY.js.map → history-AAXNYSBM.js.map} +0 -0
- /package/dist/{history-SECNIWQQ.js.map → history-BXYPY5NL.js.map} +0 -0
- /package/dist/{history-7DF5HFJT.js.map → history-VNLS2TKB.js.map} +0 -0
- /package/dist/{hubspot-HW3DMFB2.js.map → hubspot-HOCVFC6T.js.map} +0 -0
- /package/dist/{ideas-CIFADAYV.js.map → ideas-XWO4KK7B.js.map} +0 -0
- /package/dist/{images-KV7UJMNO.js.map → images-DAQAHTEQ.js.map} +0 -0
- /package/dist/{ingest-3DW2YGCB.js.map → ingest-E3RVG24Y.js.map} +0 -0
- /package/dist/{ingest-OG3RUM2Z.js.map → ingest-Q354BZ5E.js.map} +0 -0
- /package/dist/{insights-YVV5MHPQ.js.map → insights-XY6II7TX.js.map} +0 -0
- /package/dist/{inspect-YJGFTVGT.js.map → inspect-K4K4DKCA.js.map} +0 -0
- /package/dist/{intent-5VLQBTM7.js.map → intent-5QUPPZNI.js.map} +0 -0
- /package/dist/{keyword-gap-COLF7JNH.js.map → keyword-gap-IG3EFLDH.js.map} +0 -0
- /package/dist/{keyword-metrics-I7OIBLCO.js.map → keyword-metrics-2OEPH7SY.js.map} +0 -0
- /package/dist/{keywords-for-site-DIIUKEVJ.js.map → keywords-for-site-FQTQ7YK7.js.map} +0 -0
- /package/dist/{landing-FFAMZ3CD.js.map → landing-2DQPIGP3.js.map} +0 -0
- /package/dist/{languages-RYIOZQFH.js.map → languages-LNHWSCMT.js.map} +0 -0
- /package/dist/{leads-WSK4N2I6.js.map → leads-BFN7STN7.js.map} +0 -0
- /package/dist/{learn-A4LSAKRL.js.map → learn-J35JIM2I.js.map} +0 -0
- /package/dist/{line-item-writes-Q47ZVHB6.js.map → line-item-writes-SSQ4MIM4.js.map} +0 -0
- /package/dist/{line-items-MHIXPRTG.js.map → line-items-EJUWLXKX.js.map} +0 -0
- /package/dist/{link-6FVFHGP4.js.map → link-AEY3CNWU.js.map} +0 -0
- /package/dist/{linkedin-person-3MFAKS2Y.js.map → linkedin-person-NEE63CCA.js.map} +0 -0
- /package/dist/{list-BDGTMCFP.js.map → list-M4TCQF5X.js.map} +0 -0
- /package/dist/{list-MPZF6NTD.js.map → list-VQDNBEYO.js.map} +0 -0
- /package/dist/{list-7RNRZN4W.js.map → list-ZY24D24K.js.map} +0 -0
- /package/dist/{locations-7RYEWKJO.js.map → locations-64JNCQID.js.map} +0 -0
- /package/dist/{locations-OF2ZI5YX.js.map → locations-KVAAO7LD.js.map} +0 -0
- /package/dist/{log-MBPVGWLX.js.map → log-OPLN3IRB.js.map} +0 -0
- /package/dist/{make-DYFGYGMD.js.map → make-6L7PP5UQ.js.map} +0 -0
- /package/dist/{map-UUHQJSSU.js.map → map-VUALMWUR.js.map} +0 -0
- /package/dist/{mcp-BH5MXQMJ.js.map → mcp-56IBRTZ4.js.map} +0 -0
- /package/dist/{media-sources-4BJOODBR.js.map → media-sources-6ESCZBK3.js.map} +0 -0
- /package/dist/{members-PK2AXSE4.js.map → members-PT6TDQVH.js.map} +0 -0
- /package/dist/{meta-X46LC3GI.js.map → meta-XVPSGNHU.js.map} +0 -0
- /package/dist/{metrics-PKMIG7VL.js.map → metrics-MXGA3EFS.js.map} +0 -0
- /package/dist/{models-X2IXXAD6.js.map → models-Z6SUHWKI.js.map} +0 -0
- /package/dist/{normalize-36K2VJMB.js.map → normalize-L4LY7T44.js.map} +0 -0
- /package/dist/{options-7BEM4Z5E.js.map → options-YYX4ABEJ.js.map} +0 -0
- /package/dist/{organization-RSFFVT2M.js.map → organization-TB6HQDMZ.js.map} +0 -0
- /package/dist/{performance-4L2AFM4A.js.map → performance-OVWWS4H7.js.map} +0 -0
- /package/dist/{performance-PVZ5V6YL.js.map → performance-Z2KJSRYW.js.map} +0 -0
- /package/dist/{pixels-DBSPNHIE.js.map → pixels-H642RPK4.js.map} +0 -0
- /package/dist/{plan-2Q6SOHMD.js.map → plan-FRRE4YQC.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-UW2VRBZ2.js.map → promoted-tweet-writes-Z53Y53NY.js.map} +0 -0
- /package/dist/{promoted-tweets-MJEZFPLW.js.map → promoted-tweets-6LCVTNA4.js.map} +0 -0
- /package/dist/{publish-XNYDOQ7I.js.map → publish-IINRY5CV.js.map} +0 -0
- /package/dist/{query-GBIWIZSS.js.map → query-FT2BA3WH.js.map} +0 -0
- /package/dist/{read-DF3UPNBM.js.map → read-7ZFZAJSQ.js.map} +0 -0
- /package/dist/{reddit-NLC55XYL.js.map → reddit-GN7JTUT4.js.map} +0 -0
- /package/dist/{refresh-5EGKQGJI.js.map → refresh-GG3YE2OV.js.map} +0 -0
- /package/dist/{release-RDNXS362.js.map → release-ANPUYLTT.js.map} +0 -0
- /package/dist/{relevant-pages-OZPYOGFO.js.map → relevant-pages-OCHLUV5K.js.map} +0 -0
- /package/dist/{remove-OVN7XALF.js.map → remove-KRJNZWI6.js.map} +0 -0
- /package/dist/{reopen-ODW3ZUEG.js.map → reopen-HSES67EB.js.map} +0 -0
- /package/dist/{rerun-3MTIAJUZ.js.map → rerun-E4EKDIUW.js.map} +0 -0
- /package/dist/{research-63ISQ74U.js.map → research-EGJRTHXJ.js.map} +0 -0
- /package/dist/{research-RKFSB7OH.js.map → research-ISCZZZZA.js.map} +0 -0
- /package/dist/{reset-GUJSHPHR.js.map → reset-EG7VZ2CV.js.map} +0 -0
- /package/dist/{reset-EZSCJXPC.js.map → reset-H432TZBK.js.map} +0 -0
- /package/dist/{resolve-BTM6MDOY.js.map → resolve-YR42UONS.js.map} +0 -0
- /package/dist/{retry-6BXQONQ3.js.map → retry-4PLDHYSR.js.map} +0 -0
- /package/dist/{retry-OL2W3HFH.js.map → retry-5DVWSAL4.js.map} +0 -0
- /package/dist/{revenue-P26LJFEF.js.map → revenue-KVPNIH6W.js.map} +0 -0
- /package/dist/{rules-MN5CBYLN.js.map → rules-3P7YGWPO.js.map} +0 -0
- /package/dist/{rules-add-YPD466NS.js.map → rules-add-RGDR7KZY.js.map} +0 -0
- /package/dist/{run-WTN5QQ2P.js.map → run-IX3GBTJW.js.map} +0 -0
- /package/dist/{run-PEHYPLDQ.js.map → run-VZ5EIKUY.js.map} +0 -0
- /package/dist/{scaffold-ad-ZHZUX4Q6.js.map → scaffold-ad-6NMCWJWB.js.map} +0 -0
- /package/dist/{scaffold-static-ad-SHGWFBBO.js.map → scaffold-static-ad-VEOPCYXT.js.map} +0 -0
- /package/dist/{scaffold-video-VENWOP75.js.map → scaffold-video-M5NYH3Y7.js.map} +0 -0
- /package/dist/{schedule-637C6MY3.js.map → schedule-3W3URGTX.js.map} +0 -0
- /package/dist/{scheduled-agents-ZUM6UUF2.js.map → scheduled-agents-OP6RE5UG.js.map} +0 -0
- /package/dist/{schema-NEL6O4O2.js.map → schema-MGXMIZSJ.js.map} +0 -0
- /package/dist/{search-36RRNTF6.js.map → search-WNEXCXAB.js.map} +0 -0
- /package/dist/{select-INJUT4PU.js.map → select-6YIRXTDD.js.map} +0 -0
- /package/dist/{set-prompt-X3DCUAGP.js.map → set-prompt-KCCBDH2W.js.map} +0 -0
- /package/dist/{setup-links-UG7S553A.js.map → setup-links-ZZHTAIHB.js.map} +0 -0
- /package/dist/{site-YCSCW42E.js.map → site-T2SKABGA.js.map} +0 -0
- /package/dist/{sources-HP3PRSU6.js.map → sources-BS2PSBJY.js.map} +0 -0
- /package/dist/{sources-TQKN3HD7.js.map → sources-BXNZRLWV.js.map} +0 -0
- /package/dist/{stale-KKBZ5FJX.js.map → stale-ZXHCEHL3.js.map} +0 -0
- /package/dist/{status-2HQBV7WL.js.map → status-CO65UWTW.js.map} +0 -0
- /package/dist/{studio-OV2ZY5W3.js.map → studio-6ZXUKA4G.js.map} +0 -0
- /package/dist/{sync-QVPBBQAW.js.map → sync-ZAK5GPCA.js.map} +0 -0
- /package/dist/{sync-definition-YQJTCJJC.js.map → sync-definition-HO2RAVSB.js.map} +0 -0
- /package/dist/{tag-manager-5ORFHLM4.js.map → tag-manager-74CGUGXX.js.map} +0 -0
- /package/dist/{tags-TCGLKPB5.js.map → tags-7NACSUYN.js.map} +0 -0
- /package/dist/{tags-4VQS3QAK.js.map → tags-LMPGS3ZO.js.map} +0 -0
- /package/dist/{tags-UUDTBJ6U.js.map → tags-LUAG3KGM.js.map} +0 -0
- /package/dist/{tags-YQVXWGWX.js.map → tags-RBZR2NO3.js.map} +0 -0
- /package/dist/{tags-VJS37ZWW.js.map → tags-ZLOXPFQZ.js.map} +0 -0
- /package/dist/{targeting-criteria-3EXFTUMR.js.map → targeting-criteria-CRRYYBHP.js.map} +0 -0
- /package/dist/{targets-H7TVQ47T.js.map → targets-35X4YKUB.js.map} +0 -0
- /package/dist/{testimonials-NOLI2BVV.js.map → testimonials-DBOEVW2C.js.map} +0 -0
- /package/dist/{themes-GD53PVOD.js.map → themes-R3A6IVQN.js.map} +0 -0
- /package/dist/{top-companies-2KMUKTCC.js.map → top-companies-XWBHS5LC.js.map} +0 -0
- /package/dist/{transcript-HJH2YNGC.js.map → transcript-FBJZUF7A.js.map} +0 -0
- /package/dist/{translate-X7TMHL22.js.map → translate-2EZKFEUC.js.map} +0 -0
- /package/dist/{triggers-7HRFXKFZ.js.map → triggers-PRFYW7IG.js.map} +0 -0
- /package/dist/{unlink-G5KUMOL4.js.map → unlink-3K7ZLSPQ.js.map} +0 -0
- /package/dist/{unstage-WYJY5HKG.js.map → unstage-QHWN7QHU.js.map} +0 -0
- /package/dist/{update-T6COJ6BO.js.map → update-4XRJU43K.js.map} +0 -0
- /package/dist/{update-THOWGBFC.js.map → update-KSSY2TTH.js.map} +0 -0
- /package/dist/{update-GJ425R5V.js.map → update-MSAHJFFZ.js.map} +0 -0
- /package/dist/{update-WKS5QUFB.js.map → update-WMQZD7P2.js.map} +0 -0
- /package/dist/{upload-35QHU7B4.js.map → upload-JFBWYXQ2.js.map} +0 -0
- /package/dist/{url-options-VNNI4QXX.js.map → url-options-YZ6UG3NY.js.map} +0 -0
- /package/dist/{url-params-3JU5W2AS.js.map → url-params-E5I6POBJ.js.map} +0 -0
- /package/dist/{validate-XQD5H6MU.js.map → validate-USALHH7N.js.map} +0 -0
- /package/dist/{videos-JBJP3CZD.js.map → videos-IJWH4DAC.js.map} +0 -0
- /package/dist/{viewer-check-ACRU6HY3.js.map → viewer-check-HQKTK5QT.js.map} +0 -0
- /package/dist/{web-NRG6WKRV.js.map → web-XXXOKEV2.js.map} +0 -0
- /package/dist/{winning-ads-ZKVXCS2L.js.map → winning-ads-WF2UXSKZ.js.map} +0 -0
- /package/dist/{write-commands-FGWCJHLH.js.map → write-commands-5Z5A3D3M.js.map} +0 -0
- /package/dist/{write-commands-UTM7PPK5.js.map → write-commands-7DTFGM6E.js.map} +0 -0
- /package/dist/{write-commands-ECCJLDLG.js.map → write-commands-GFVERRU4.js.map} +0 -0
- /package/dist/{x-M3LIA6SI.js.map → x-TPEKLUTG.js.map} +0 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import {
|
|
2
|
+
REDDIT_LINK_REJECTED,
|
|
3
|
+
redditSearchHints,
|
|
4
|
+
redditSubredditsHints,
|
|
5
|
+
redditThreadHints
|
|
6
|
+
} from "./chunk-FWMPRDJX.js";
|
|
7
|
+
import {
|
|
8
|
+
handleResearchError,
|
|
9
|
+
writeResearchJson
|
|
10
|
+
} from "./chunk-W4W3F3P7.js";
|
|
11
|
+
import {
|
|
12
|
+
repeatedValues
|
|
13
|
+
} from "./chunk-ERSX3MKH.js";
|
|
14
|
+
import {
|
|
15
|
+
RESEARCH_REDDIT_THREAD_DEFAULT_COMMENTS
|
|
16
|
+
} from "./chunk-CMXTQ4PS.js";
|
|
17
|
+
import {
|
|
18
|
+
apiPost
|
|
19
|
+
} from "./chunk-B2OHCWYB.js";
|
|
20
|
+
import {
|
|
21
|
+
registerSchema
|
|
22
|
+
} from "./chunk-WCIS4FZH.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-FWXYITXH.js.map
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import {
|
|
2
|
+
RULES_DIR,
|
|
3
|
+
SAME_WORDS,
|
|
4
|
+
frontmatterOf,
|
|
5
|
+
parseIdea,
|
|
6
|
+
parseInsight
|
|
7
|
+
} from "./chunk-RHEWQB5O.js";
|
|
8
|
+
import {
|
|
9
|
+
rememberedJev
|
|
10
|
+
} from "./chunk-NGQ5J4FV.js";
|
|
11
|
+
import {
|
|
12
|
+
holdUnbilledSpend
|
|
13
|
+
} from "./chunk-VWOKPC3T.js";
|
|
14
|
+
|
|
15
|
+
// src/commands/creatives/ideas-judgments.ts
|
|
16
|
+
var STATISTIC_QUESTION = `\`quote\` was filed as something a customer said. Is it instead a statistic about a group of people, a share or a figure from a survey, a study or an article ("39% of UK homeowners say\u2026", "a quarter of buyers\u2026", "1 in 3 owners\u2026"), rather than one person's own words about their own experience? A person giving their own number ("My bill dropped 40%") is their own words. The quote may be in any language.`;
|
|
17
|
+
var STATISTIC_HELD = 0.65;
|
|
18
|
+
var SAME_MESSAGE_QUESTION = `\`a\` and \`b\` are the messages of two ads. Do they make the same core promise to the viewer (the same benefit, the same reason to act), even when one adds a detail or a few words, says it in other words, or is in another language? Two messages that promise different things about the same product are not the same.`;
|
|
19
|
+
var SAME_MESSAGE_HELD = 0.42;
|
|
20
|
+
async function withStatisticsRead(insights, ask) {
|
|
21
|
+
const observed = insights.filter((i) => i.status === "observed");
|
|
22
|
+
if (observed.length === 0) return [...insights];
|
|
23
|
+
const answers = await ask(observed.map((i) => ({ instructions: { quote: i.quote, question: STATISTIC_QUESTION } })));
|
|
24
|
+
if (answers === null) return [...insights];
|
|
25
|
+
const statistics = new Set(observed.filter((_, i) => (answers[i] ?? 0) >= STATISTIC_HELD).map((i) => i.id));
|
|
26
|
+
return insights.map((i) => statistics.has(i.id) ? { ...i, status: "interpreted" } : i);
|
|
27
|
+
}
|
|
28
|
+
async function sameMessageRead(ideas, ask) {
|
|
29
|
+
const failed = ideas.filter((i) => i.status === "failed");
|
|
30
|
+
const pairs = failed.flatMap(
|
|
31
|
+
(f) => ideas.filter((i) => i.id !== f.id && !SAME_WORDS(i.message, f.message)).map((i) => [f.message, i.message])
|
|
32
|
+
);
|
|
33
|
+
if (pairs.length === 0) return SAME_WORDS;
|
|
34
|
+
const answers = await ask(pairs.map(([a, b]) => ({ instructions: { a, b, question: SAME_MESSAGE_QUESTION } })));
|
|
35
|
+
if (answers === null) return SAME_WORDS;
|
|
36
|
+
const same = new Set(
|
|
37
|
+
pairs.filter((_, i) => (answers[i] ?? 0) >= SAME_MESSAGE_HELD).map(([a, b]) => `${a}\0${b}`)
|
|
38
|
+
);
|
|
39
|
+
return (a, b) => SAME_WORDS(a, b) || same.has(`${a}\0${b}`) || same.has(`${b}\0${a}`);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// src/commands/creatives/ideas-workspace.ts
|
|
43
|
+
import { readdir, readFile } from "fs/promises";
|
|
44
|
+
import path from "path";
|
|
45
|
+
var IDEAS_DIR = path.join("src", "creatives", "_ideas");
|
|
46
|
+
var INSIGHTS_DIR = path.join("src", "content", "insights");
|
|
47
|
+
async function markdownFiles(dir, recursive = false) {
|
|
48
|
+
const entries = await readdir(dir, { recursive }).catch(() => []);
|
|
49
|
+
return entries.filter((f) => f.endsWith(".md")).sort();
|
|
50
|
+
}
|
|
51
|
+
var idOf = (file) => file.replace(/\\/g, "/").replace(/\.md$/, "");
|
|
52
|
+
function workspaceIdeasJudge(root) {
|
|
53
|
+
const cacheDir = path.join(root, "canvas", ".cache");
|
|
54
|
+
const spent = [];
|
|
55
|
+
return {
|
|
56
|
+
ask: rememberedJev(path.join(cacheDir, "ideas-answers.json"), (u) => spent.push(u)),
|
|
57
|
+
done: () => holdUnbilledSpend(cacheDir, spent.splice(0)).catch(() => void 0)
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
async function readInsights(root, opts = {}) {
|
|
61
|
+
const dir = path.join(root, INSIGHTS_DIR);
|
|
62
|
+
const insights = [];
|
|
63
|
+
for (const file of await markdownFiles(dir, true)) {
|
|
64
|
+
const insight = parseInsight(idOf(file), await readFile(path.join(dir, file), "utf8").catch(() => ""));
|
|
65
|
+
if (insight) insights.push(insight);
|
|
66
|
+
}
|
|
67
|
+
if (opts.ask) return withStatisticsRead(insights, opts.ask);
|
|
68
|
+
const judge = workspaceIdeasJudge(root);
|
|
69
|
+
const read = await withStatisticsRead(insights, judge.ask);
|
|
70
|
+
await judge.done();
|
|
71
|
+
return read;
|
|
72
|
+
}
|
|
73
|
+
async function readIdeas(root) {
|
|
74
|
+
const dir = path.join(root, IDEAS_DIR);
|
|
75
|
+
const ideas = [];
|
|
76
|
+
const unreadable = [];
|
|
77
|
+
for (const file of await markdownFiles(dir)) {
|
|
78
|
+
const id = idOf(file);
|
|
79
|
+
const parsed = parseIdea(id, await readFile(path.join(dir, file), "utf8").catch(() => ""));
|
|
80
|
+
if (parsed.idea) ideas.push(parsed.idea);
|
|
81
|
+
else unreadable.push({ id, problems: parsed.problems });
|
|
82
|
+
}
|
|
83
|
+
return { ideas, unreadable };
|
|
84
|
+
}
|
|
85
|
+
async function readPersonaIds(root) {
|
|
86
|
+
return (await markdownFiles(path.join(root, "src", "content", "personas"), true)).map(idOf);
|
|
87
|
+
}
|
|
88
|
+
var MAX_KNOWLEDGE_CHARS = 2e5;
|
|
89
|
+
async function readKnowledgeCorpus(root) {
|
|
90
|
+
const parts = [];
|
|
91
|
+
const company = await readFile(path.join(root, "COMPANY.md"), "utf8").catch(() => "");
|
|
92
|
+
if (company) parts.push(company);
|
|
93
|
+
const content = path.join(root, "src", "content");
|
|
94
|
+
const insights = path.relative(content, path.join(root, INSIGHTS_DIR));
|
|
95
|
+
const rules = path.relative(content, path.join(root, RULES_DIR));
|
|
96
|
+
const files = (await markdownFiles(content, true)).filter((f) => {
|
|
97
|
+
const file = f.replace(/\\/g, "/");
|
|
98
|
+
return !file.startsWith(`${insights}/`) && !file.startsWith(`${rules}/`);
|
|
99
|
+
});
|
|
100
|
+
for (const file of files) {
|
|
101
|
+
parts.push(await readFile(path.join(content, file), "utf8").catch(() => ""));
|
|
102
|
+
if (parts.join("").length > MAX_KNOWLEDGE_CHARS) break;
|
|
103
|
+
}
|
|
104
|
+
return parts.join("\n").slice(0, MAX_KNOWLEDGE_CHARS);
|
|
105
|
+
}
|
|
106
|
+
async function readCreativeRecords(root) {
|
|
107
|
+
const dir = path.join(root, "src", "creatives");
|
|
108
|
+
const entries = await readdir(dir, { withFileTypes: true }).catch(() => []);
|
|
109
|
+
const records = [];
|
|
110
|
+
for (const entry of entries) {
|
|
111
|
+
if (!entry.isDirectory() || entry.name.startsWith("_")) continue;
|
|
112
|
+
const raw = await readFile(path.join(dir, entry.name, "_definition.md"), "utf8").catch(() => null);
|
|
113
|
+
if (raw === null) continue;
|
|
114
|
+
const fm = frontmatterOf(raw) ?? {};
|
|
115
|
+
const pick = (key) => typeof fm[key] === "string" && fm[key] ? { [key]: fm[key] } : {};
|
|
116
|
+
records.push({
|
|
117
|
+
slug: entry.name,
|
|
118
|
+
...pick("status"),
|
|
119
|
+
...pick("idea"),
|
|
120
|
+
...pick("awareness"),
|
|
121
|
+
...pick("angle"),
|
|
122
|
+
...pick("kind")
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
return records;
|
|
126
|
+
}
|
|
127
|
+
var SHOWN_STATUSES = /* @__PURE__ */ new Set(["rendered", "published"]);
|
|
128
|
+
function coverageOf(ideas, creatives) {
|
|
129
|
+
const live = ideas.filter((i) => i.status === "built" || i.status === "testing" || i.status === "winner");
|
|
130
|
+
const awareness = new Set(live.map((i) => i.awareness));
|
|
131
|
+
for (const creative of creatives) {
|
|
132
|
+
if (creative.awareness && SHOWN_STATUSES.has(creative.status ?? "")) awareness.add(creative.awareness);
|
|
133
|
+
}
|
|
134
|
+
return { coveredAwareness: [...awareness].sort(), closersLive: live.filter((i) => i.job === "closer").length };
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export {
|
|
138
|
+
sameMessageRead,
|
|
139
|
+
IDEAS_DIR,
|
|
140
|
+
workspaceIdeasJudge,
|
|
141
|
+
readInsights,
|
|
142
|
+
readIdeas,
|
|
143
|
+
readPersonaIds,
|
|
144
|
+
readKnowledgeCorpus,
|
|
145
|
+
readCreativeRecords,
|
|
146
|
+
coverageOf
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=chunk-GN7K3NPI.js.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isRemoteUrl
|
|
3
|
+
} from "./chunk-GI7B47X3.js";
|
|
4
|
+
import {
|
|
5
|
+
detectImageContentType,
|
|
6
|
+
uploadLocalImage
|
|
7
|
+
} from "./chunk-EMCTUCCJ.js";
|
|
8
|
+
import {
|
|
9
|
+
IMAGE_GENERATE_MODELS,
|
|
10
|
+
MODEL_REGISTRY,
|
|
11
|
+
VIDEO_GENERATE_MODELS
|
|
12
|
+
} from "./chunk-MCJ5I5LR.js";
|
|
13
|
+
import {
|
|
14
|
+
ApiError,
|
|
15
|
+
apiPost
|
|
16
|
+
} from "./chunk-B2OHCWYB.js";
|
|
17
|
+
|
|
18
|
+
// src/commands/studio/modelOptions.ts
|
|
19
|
+
function unionOfStringEnum(node, models, param) {
|
|
20
|
+
const values = /* @__PURE__ */ new Set();
|
|
21
|
+
for (const model of models) {
|
|
22
|
+
const schema = MODEL_REGISTRY[node][model]?.params[param];
|
|
23
|
+
if (schema?.kind === "string") for (const value of schema.enum ?? []) values.add(value);
|
|
24
|
+
}
|
|
25
|
+
return [...values];
|
|
26
|
+
}
|
|
27
|
+
function unionOfNumberEnum(node, models, param) {
|
|
28
|
+
const values = /* @__PURE__ */ new Set();
|
|
29
|
+
for (const model of models) {
|
|
30
|
+
const schema = MODEL_REGISTRY[node][model]?.params[param];
|
|
31
|
+
if (schema?.kind === "number") for (const value of schema.enum ?? []) values.add(value);
|
|
32
|
+
}
|
|
33
|
+
return [...values].sort((a, b) => a - b);
|
|
34
|
+
}
|
|
35
|
+
var IMAGE_MODEL_IDS = [...IMAGE_GENERATE_MODELS];
|
|
36
|
+
var VIDEO_MODEL_IDS = [...VIDEO_GENERATE_MODELS];
|
|
37
|
+
var IMAGE_SIZES = unionOfStringEnum("image_generate", IMAGE_GENERATE_MODELS, "image_size");
|
|
38
|
+
var IMAGE_QUALITIES = unionOfStringEnum("image_generate", IMAGE_GENERATE_MODELS, "quality");
|
|
39
|
+
var CLIP_RESOLUTIONS = unionOfStringEnum("video_generate", VIDEO_GENERATE_MODELS, "resolution");
|
|
40
|
+
var CLIP_DURATIONS = unionOfNumberEnum("video_generate", VIDEO_GENERATE_MODELS, "duration");
|
|
41
|
+
var CLIP_PERSON_GENERATION = unionOfStringEnum("video_generate", VIDEO_GENERATE_MODELS, "person_generation");
|
|
42
|
+
|
|
43
|
+
// src/commands/studio/references.ts
|
|
44
|
+
var LIBRARY_ID_RE = /^[a-z0-9]{16,}$/i;
|
|
45
|
+
var FILE_EXTENSION_RE = /\.[a-z0-9]{2,5}$/i;
|
|
46
|
+
var PATH_HINT_RE = /[/\\]/;
|
|
47
|
+
function classify(entry) {
|
|
48
|
+
if (isRemoteUrl(entry)) return { kind: "url", value: entry };
|
|
49
|
+
if (PATH_HINT_RE.test(entry) || FILE_EXTENSION_RE.test(entry)) return { kind: "path", value: entry };
|
|
50
|
+
if (LIBRARY_ID_RE.test(entry)) return { kind: "id", value: entry };
|
|
51
|
+
throw new ApiError(
|
|
52
|
+
"VALIDATION_ERROR",
|
|
53
|
+
`"${entry}" is not a library image id, a file path, or an image URL. Pass a comma-separated mix of those.`
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
function parseImageRefs(spec) {
|
|
57
|
+
return spec.split(",").map((entry) => entry.trim()).filter(Boolean).map(classify);
|
|
58
|
+
}
|
|
59
|
+
var defaultDeps = {
|
|
60
|
+
ingest: (url) => apiPost("/api/images/ingest", { url, source: "uploaded" }),
|
|
61
|
+
upload: (path) => uploadLocalImage({ file: path, contentType: detectImageContentType(path), source: "uploaded" })
|
|
62
|
+
};
|
|
63
|
+
async function resolveLibraryImageIds(spec, limit, deps = defaultDeps) {
|
|
64
|
+
const refs = parseImageRefs(spec);
|
|
65
|
+
if (limit && refs.length > limit.max) {
|
|
66
|
+
throw new ApiError("VALIDATION_ERROR", limit.refuse(refs.length));
|
|
67
|
+
}
|
|
68
|
+
const imageIds = [];
|
|
69
|
+
const added = [];
|
|
70
|
+
for (const ref of refs) {
|
|
71
|
+
if (ref.kind === "id") {
|
|
72
|
+
imageIds.push(ref.value);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const { imageId } = ref.kind === "url" ? await deps.ingest(ref.value) : await deps.upload(ref.value).catch(uploadFailure(ref.value));
|
|
76
|
+
imageIds.push(imageId);
|
|
77
|
+
added.push(imageId);
|
|
78
|
+
}
|
|
79
|
+
return { imageIds, added };
|
|
80
|
+
}
|
|
81
|
+
function uploadFailure(path) {
|
|
82
|
+
return (error) => {
|
|
83
|
+
if (error instanceof ApiError) throw error;
|
|
84
|
+
throw new ApiError("VALIDATION_ERROR", `Could not read "${path}" as an image.`);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export {
|
|
89
|
+
IMAGE_MODEL_IDS,
|
|
90
|
+
VIDEO_MODEL_IDS,
|
|
91
|
+
IMAGE_SIZES,
|
|
92
|
+
IMAGE_QUALITIES,
|
|
93
|
+
CLIP_RESOLUTIONS,
|
|
94
|
+
CLIP_DURATIONS,
|
|
95
|
+
CLIP_PERSON_GENERATION,
|
|
96
|
+
resolveLibraryImageIds
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=chunk-HBDWE7WK.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_VIDEO_GENERATE_MODEL,
|
|
3
|
+
clipAudioMode,
|
|
4
|
+
spokenWordsIn
|
|
5
|
+
} from "./chunk-MCJ5I5LR.js";
|
|
6
|
+
|
|
7
|
+
// src/commands/studio/avatarModel.ts
|
|
8
|
+
function pinnedModelHint(input) {
|
|
9
|
+
if (!input.avatar || !input.model) return null;
|
|
10
|
+
if (input.model === DEFAULT_VIDEO_GENERATE_MODEL) return null;
|
|
11
|
+
const speaks = input.generateAudio ?? true;
|
|
12
|
+
if (!speaks) return null;
|
|
13
|
+
return `You pinned --model ${input.model} on a speaking avatar. Without it this clip routes to ${DEFAULT_VIDEO_GENERATE_MODEL}, which was chosen for exactly this case: the better picture, both orientations, and audio always on. Drop --model unless the user asked for a specific one \u2014 and note ${input.model} may not take the length or the reference you are counting on.`;
|
|
14
|
+
}
|
|
15
|
+
function silentModelHint(model, prompt) {
|
|
16
|
+
if (!model || !prompt) return null;
|
|
17
|
+
if (clipAudioMode(model) !== "never") return null;
|
|
18
|
+
if (spokenWordsIn(prompt) === 0) return null;
|
|
19
|
+
return `${model} renders no audio \u2014 the line in this prompt will be mouthed and never heard. For a shot where someone speaks use ${DEFAULT_VIDEO_GENERATE_MODEL} (audio always on), or alibaba/wan-3.0 past 10 seconds. Keep this model for shots with no voice in them.`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
pinnedModelHint,
|
|
24
|
+
silentModelHint
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=chunk-JAC6JVCI.js.map
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import {
|
|
2
|
+
leadVersion,
|
|
3
|
+
writeSeriesMemberCanvas
|
|
4
|
+
} from "./chunk-X5PWBSXW.js";
|
|
5
|
+
import {
|
|
6
|
+
definitionFieldsOf,
|
|
7
|
+
setDefinitionFields,
|
|
8
|
+
setSpecMessage
|
|
9
|
+
} from "./chunk-WOE4TZHJ.js";
|
|
10
|
+
import {
|
|
11
|
+
IDEAS_DIR
|
|
12
|
+
} from "./chunk-GN7K3NPI.js";
|
|
13
|
+
|
|
14
|
+
// src/commands/creatives/make-series.ts
|
|
15
|
+
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
16
|
+
import path from "path";
|
|
17
|
+
import { parseDocument } from "yaml";
|
|
18
|
+
var LEAD_ONLY = ["idea", "message", "evidence", "angle", "persona", "awareness", "hypothesis", "series", "title"];
|
|
19
|
+
function withoutFields(raw, keys) {
|
|
20
|
+
const match = raw.match(/^---\r?\n([\s\S]*?\r?\n)?---/);
|
|
21
|
+
if (!match) return raw;
|
|
22
|
+
const doc = parseDocument(match[1] ?? "");
|
|
23
|
+
if (doc.errors.length > 0) return raw;
|
|
24
|
+
for (const key of keys) doc.delete(key);
|
|
25
|
+
return `---
|
|
26
|
+
${doc.toString()}---${raw.slice(match[0].length)}`;
|
|
27
|
+
}
|
|
28
|
+
async function makeSeriesAd(root, idea, slug, lead, evidence, deps) {
|
|
29
|
+
if (slug === lead) {
|
|
30
|
+
return {
|
|
31
|
+
code: "series_of_itself",
|
|
32
|
+
message: `"${slug}" is the lead itself.`,
|
|
33
|
+
fix: "Give the new ad its own --slug."
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const version = await leadVersion(root, lead);
|
|
37
|
+
if ("refused" in version) return version.refused;
|
|
38
|
+
const dir = path.join(root, "src", "creatives", slug);
|
|
39
|
+
const definitionPath = path.join(dir, "_definition.md");
|
|
40
|
+
await mkdir(dir, { recursive: true });
|
|
41
|
+
await writeFile(path.join(dir, "prompt.json"), setSpecMessage(JSON.stringify(version.spec), idea.message), "utf8");
|
|
42
|
+
const leadDefinition = await readFile(path.join(root, "src", "creatives", lead, "_definition.md"), "utf8").catch(
|
|
43
|
+
() => "---\nkind: static\n---\n"
|
|
44
|
+
);
|
|
45
|
+
const definition = setDefinitionFields(withoutFields(leadDefinition, LEAD_ONLY), {
|
|
46
|
+
title: idea.message.slice(0, 120),
|
|
47
|
+
series: lead,
|
|
48
|
+
status: "draft",
|
|
49
|
+
...definitionFieldsOf(idea, evidence)
|
|
50
|
+
});
|
|
51
|
+
await writeFile(definitionPath, definition, "utf8");
|
|
52
|
+
const made = await writeSeriesMemberCanvas(root, slug, { leadWords: true });
|
|
53
|
+
if (made === null || "refused" in made) {
|
|
54
|
+
return made?.refused ?? { code: "series_not_made", message: `"${slug}" could not be made in the series of "${lead}".` };
|
|
55
|
+
}
|
|
56
|
+
if (idea.status === "idea") {
|
|
57
|
+
const ideaPath = path.join(root, IDEAS_DIR, `${idea.id}.md`);
|
|
58
|
+
const raw = await readFile(ideaPath, "utf8").catch(() => null);
|
|
59
|
+
if (raw !== null) await writeFile(ideaPath, setDefinitionFields(raw, { status: "built" }), "utf8");
|
|
60
|
+
}
|
|
61
|
+
await deps.sync(dir);
|
|
62
|
+
return { slug, lead, leadRunId: version.lead.runId, canvasPath: made.canvasPath };
|
|
63
|
+
}
|
|
64
|
+
function seriesMadeEnvelope(made, idea) {
|
|
65
|
+
const lead = made.leadPlatforms ?? [];
|
|
66
|
+
const elsewhere = (idea.platforms ?? []).some((p) => !lead.includes(p));
|
|
67
|
+
return {
|
|
68
|
+
ok: true,
|
|
69
|
+
data: {
|
|
70
|
+
creative: made.slug,
|
|
71
|
+
idea: idea.id,
|
|
72
|
+
message: idea.message,
|
|
73
|
+
series: made.lead,
|
|
74
|
+
canvas_path: made.canvasPath
|
|
75
|
+
},
|
|
76
|
+
hints: [
|
|
77
|
+
`Write this ad's words in src/creatives/${made.slug}/prompt.json \`copy\`: one line for each of the lead's, in the same roles and about as long, saying this idea's message. Change nothing else: the picture, layout and colours are the lead's (${made.lead}), and every word you write replaces the lead's line in its place.`,
|
|
78
|
+
`When every ad of the series has its words: baker canvas run --series ${made.lead} (renders them all at once, each reviewed and corrected on its own).`,
|
|
79
|
+
...elsewhere && lead.length > 0 ? [
|
|
80
|
+
`A series ad runs where its lead runs (${lead.join(", ")}), in its sizes; the idea names ${idea.platforms?.join(", ")}. To run it there, make it on its own: baker creatives make ${idea.id} --platforms ${idea.platforms?.join(",")}.`
|
|
81
|
+
] : []
|
|
82
|
+
]
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export {
|
|
87
|
+
withoutFields,
|
|
88
|
+
makeSeriesAd,
|
|
89
|
+
seriesMadeEnvelope
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=chunk-JFO2Q3ZO.js.map
|