@koda-sl/baker-cli 0.545.0-dev.2a6beac48 → 0.545.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-6GKPLNDY.js +82 -0
- package/dist/account-reads-X36NPCX5.js +219 -0
- package/dist/account-users-FGL3DZES.js +64 -0
- package/dist/account-writes-FZ3KCJZY.js +68 -0
- package/dist/accounts-PKSW3DBQ.js +80 -0
- package/dist/accounts-S5C6MZFO.js +701 -0
- package/dist/actions-ARN3OFB7.js +55 -0
- package/dist/activecampaign-3YJC3H2R.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-CNYKQD7B.js +107 -0
- package/dist/add-IABKHM5N.js +305 -0
- package/dist/ads-LNWALF6G.js +79 -0
- package/dist/ads-UXHJCUTX.js +48 -0
- package/dist/advertisers-UT7EJ6YS.js +123 -0
- package/dist/analytics-COUVH7MV.js +447 -0
- package/dist/analytics-EHUUNMGZ.js +2437 -0
- package/dist/animate-DM4OUJMR.js +480 -0
- package/dist/assign-FWT5QQDF.js +80 -0
- package/dist/audience-size-YI2RLIG7.js +76 -0
- package/dist/audiences-7D5VPOWF.js +280 -0
- package/dist/audit-BPRRCIWN.js +154 -0
- package/dist/autocomplete-OD6SHZZH.js +114 -0
- package/dist/avatars-FFFPCH6D.js +38 -0
- package/dist/bid-pricing-JF557IO2.js +103 -0
- package/dist/brand-ZUYJWKI3.js +22 -0
- package/dist/brief-CJDBD5GJ.js +543 -0
- package/dist/campaign-groups-VCT6ZH66.js +99 -0
- package/dist/campaign-writes-H22P6YPW.js +176 -0
- package/dist/campaign-writes-YOHDMYDT.js +168 -0
- package/dist/campaigns-265JXD2Z.js +78 -0
- package/dist/campaigns-7EGRZ3V6.js +113 -0
- package/dist/campaigns-ORK5BYAM.js +111 -0
- package/dist/canvas-FW5F3KZJ.js +46 -0
- package/dist/capabilities-ISW7XT44.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-FH3DQNYD.js +449 -0
- package/dist/check-QC5RHS3Z.js +107 -0
- package/dist/chunk-2AC5GJHC.js +455 -0
- package/dist/chunk-2VSUMGJV.js +89 -0
- package/dist/chunk-4D73PLXU.js +843 -0
- package/dist/chunk-4S5ZAG4S.js +63 -0
- package/dist/chunk-5MMJPUBH.js +387 -0
- package/dist/chunk-5Y2XPKW2.js +156 -0
- package/dist/chunk-6HCYCMIH.js +61 -0
- package/dist/chunk-6R2BQ6FK.js +344 -0
- package/dist/chunk-7P74QKVC.js +297 -0
- package/dist/chunk-7SJU6PQ7.js +604 -0
- package/dist/chunk-A37TIYFD.js +91 -0
- package/dist/chunk-A6NVGPCZ.js +479 -0
- package/dist/chunk-AK7CL5IW.js +334 -0
- package/dist/chunk-AOT3UZBM.js +930 -0
- package/dist/chunk-D2ZAZGQH.js +547 -0
- package/dist/chunk-DYTBVVQX.js +679 -0
- package/dist/chunk-DYTBVVQX.js.map +1 -0
- package/dist/chunk-EB76M4ZH.js +19 -0
- package/dist/chunk-EBWOLUII.js +24026 -0
- package/dist/chunk-EBWOLUII.js.map +1 -0
- package/dist/chunk-EOMY5SUJ.js +783 -0
- package/dist/chunk-EY5WWPPZ.js +1902 -0
- package/dist/chunk-EZKT5YGX.js +23 -0
- package/dist/chunk-FVDC6AKZ.js +150 -0
- package/dist/chunk-GN7K3NPI.js +148 -0
- package/dist/chunk-GQAKWQAV.js +224 -0
- package/dist/chunk-HBDWE7WK.js +98 -0
- package/dist/chunk-HETNOUE4.js +377 -0
- package/dist/chunk-HFAT5S5B.js +170 -0
- package/dist/chunk-HQ3I2QVT.js +275 -0
- package/dist/chunk-IN5UCEJD.js +91 -0
- package/dist/chunk-JAC6JVCI.js +26 -0
- package/dist/chunk-JLLGXYOZ.js +857 -0
- package/dist/chunk-JY3OJBKZ.js +3510 -0
- package/dist/chunk-KBZRG6IK.js +429 -0
- package/dist/chunk-KBZRG6IK.js.map +1 -0
- package/dist/chunk-KCRBAMFU.js +392 -0
- package/dist/chunk-KIXVHP2C.js +1919 -0
- package/dist/chunk-KTY7H44G.js +831 -0
- package/dist/chunk-LKOMEXUB.js +51 -0
- package/dist/chunk-LVKAMWKJ.js +163 -0
- package/dist/chunk-LWCGQNVU.js +685 -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-N4AIJQ4W.js +438 -0
- package/dist/chunk-NBWZVBDG.js +131 -0
- package/dist/chunk-OKB2EAJH.js +8954 -0
- package/dist/chunk-OT2MN5UR.js +169 -0
- package/dist/chunk-OZR3KUJ3.js +57 -0
- package/dist/chunk-P3VY5JEM.js +274 -0
- package/dist/chunk-PXGR3VGW.js +1646 -0
- package/dist/chunk-QK3HMAVU.js +5471 -0
- package/dist/chunk-R65V26HH.js +7770 -0
- package/dist/chunk-R65V26HH.js.map +1 -0
- package/dist/chunk-RHEWQB5O.js +638 -0
- package/dist/chunk-RP36XHWT.js +46 -0
- package/dist/chunk-RXOQZA4K.js +66 -0
- package/dist/chunk-SEHJ7Y7J.js +207 -0
- package/dist/chunk-SNWFM2DB.js +228 -0
- package/dist/chunk-TAGRKRFI.js +103 -0
- package/dist/chunk-TARINRA4.js +1518 -0
- package/dist/chunk-TNZUMU55.js +167 -0
- package/dist/chunk-TP2NS5SG.js +191 -0
- package/dist/chunk-UOXC3XA5.js +494 -0
- package/dist/chunk-UQA6Z23M.js +142 -0
- package/dist/chunk-V2XA5SIO.js +152 -0
- package/dist/chunk-V2XA5SIO.js.map +1 -0
- package/dist/chunk-VOUCQ2YW.js +64 -0
- package/dist/chunk-WJ5AHR4K.js +2209 -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-XYNQMRNX.js +5368 -0
- package/dist/chunk-YEISVDKW.js +203 -0
- package/dist/chunk-YNLWSP5E.js +910 -0
- package/dist/chunk-ZEUAJAKN.js +225 -0
- package/dist/chunk-ZUUVWWB5.js +197 -0
- package/dist/chunk-ZVAZFHH7.js +249 -0
- package/dist/claim-FBL5VBYZ.js +200 -0
- package/dist/cli.js +33 -33
- package/dist/companies-URRCAJZE.js +198 -0
- package/dist/company-LDCNUPHZ.js +308 -0
- package/dist/complete-3UGPO444.js +84 -0
- package/dist/config-3VK74MY6.js +88 -0
- package/dist/connect-M5KPZQWE.js +45 -0
- package/dist/conversation-S7YANZJR.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-QZL4DSJO.js +140 -0
- package/dist/create-56PJRLMA.js +62 -0
- package/dist/create-OE5MRW3X.js +210 -0
- package/dist/create-RL7PRIDY.js +239 -0
- package/dist/create-Y6YVJ5L4.js +135 -0
- package/dist/creatives-ESVH63AP.js +223 -0
- package/dist/creatives-URHXATY6.js +58 -0
- package/dist/credentials-O6QSB7ZR.js +290 -0
- package/dist/critique-EWJBOCXQ.js +1451 -0
- package/dist/critique-PTGGXRFG.js +232 -0
- package/dist/crm-F6RGNQH5.js +323 -0
- package/dist/crm-GLPOO22Q.js +227 -0
- package/dist/currency-CHBV6WIO.js +88 -0
- package/dist/customers-Q76FCWYO.js +65 -0
- package/dist/delete-ODFDZCL3.js +57 -0
- package/dist/delete-OVMPDGWQ.js +69 -0
- package/dist/delete-XN7N4S4H.js +67 -0
- package/dist/demographics-IY5RI55Z.js +141 -0
- package/dist/discard-GKIA5FML.js +69 -0
- package/dist/discover-ZU2DAV23.js +172 -0
- package/dist/domain-WGXA7OXV.js +101 -0
- package/dist/download-DYYNUGLX.js +172 -0
- package/dist/draft-6EHV5NAN.js +247 -0
- package/dist/draft-6EHV5NAN.js.map +1 -0
- package/dist/draft-EWGNZUU4.js +288 -0
- package/dist/draft-EWGNZUU4.js.map +1 -0
- package/dist/draft-EX2I6UJB.js +313 -0
- package/dist/draft-EX2I6UJB.js.map +1 -0
- package/dist/draft-FSZMTGWI.js +106 -0
- package/dist/draft-FSZMTGWI.js.map +1 -0
- package/dist/draft-GKI6MB7L.js +342 -0
- package/dist/draft-GKI6MB7L.js.map +1 -0
- package/dist/draft-P3YJZY74.js +106 -0
- package/dist/draft-P3YJZY74.js.map +1 -0
- package/dist/draft-R7BNWMBR.js +408 -0
- package/dist/draft-R7BNWMBR.js.map +1 -0
- package/dist/draft-VYIRZO3E.js +220 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiments-6DOKWFH4.js +236 -0
- package/dist/facets-ZU5DT2QW.js +117 -0
- package/dist/feedback-RIUBM557.js +115 -0
- package/dist/feedback-record-3VVAUCOH.js +269 -0
- package/dist/fetch-T6TZCU74.js +204 -0
- package/dist/fit-YPOHTM7Y.js +65 -0
- package/dist/flows-CKVEZFF2.js +250 -0
- package/dist/fonts-3J3UVZ2E.js +39 -0
- package/dist/forecast-372Q6KQZ.js +169 -0
- package/dist/forecast-JEAFUR2O.js +121 -0
- package/dist/funnel-FBTNPTS7.js +397 -0
- package/dist/ga4-GDMHIFBU.js +55 -0
- package/dist/generate-JQIK3UYS.js +263 -0
- package/dist/get-5N5FCGNH.js +59 -0
- package/dist/get-EXHUQT65.js +82 -0
- package/dist/google-JHTOX6WM.js +3270 -0
- package/dist/google-ads-ZAYRCG2D.js +198 -0
- package/dist/history-4ULZ4BVV.js +153 -0
- package/dist/history-6J3XRNTZ.js +102 -0
- package/dist/history-VNLS2TKB.js +69 -0
- package/dist/hubspot-ZEHWWJHK.js +782 -0
- package/dist/ideas-SB6546GI.js +45 -0
- package/dist/images-LEZYVE7R.js +92 -0
- package/dist/ingest-4OOTCOLO.js +123 -0
- package/dist/ingest-KNJCCIBG.js +27 -0
- package/dist/insights-XY6II7TX.js +132 -0
- package/dist/inspect-MHKEYNIC.js +192 -0
- package/dist/intent-5QUPPZNI.js +95 -0
- package/dist/keyword-gap-IG3EFLDH.js +130 -0
- package/dist/keyword-metrics-EL7MO3H6.js +200 -0
- package/dist/keywords-for-site-I7KJLZ2I.js +131 -0
- package/dist/landing-Z3QGJYM3.js +28 -0
- package/dist/languages-LNHWSCMT.js +40 -0
- package/dist/leads-WQCTZYKT.js +115 -0
- package/dist/learn-6KW6TUVL.js +207 -0
- package/dist/line-item-writes-B2KSP36W.js +211 -0
- package/dist/line-items-3ICE5DBI.js +107 -0
- package/dist/link-QRQ34ZDH.js +67 -0
- package/dist/linkedin-D4RKHQPS.js +1330 -0
- package/dist/linkedin-D4RKHQPS.js.map +1 -0
- package/dist/linkedin-person-Y5TCUOXS.js +139 -0
- package/dist/list-6HZVHA6T.js +154 -0
- package/dist/list-CHYJ53JD.js +306 -0
- package/dist/list-XAMJSOGI.js +67 -0
- package/dist/locations-64JNCQID.js +69 -0
- package/dist/locations-KVAAO7LD.js +40 -0
- package/dist/log-PLXGA74X.js +95 -0
- package/dist/make-EP4YSN26.js +1367 -0
- package/dist/map-CAFMAMPP.js +436 -0
- package/dist/mcp-DDWSXLU7.js +729 -0
- package/dist/media-sources-J5FXYPV5.js +35 -0
- package/dist/members-ZA7S5KWP.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-ZHM2ZVXZ.js +144 -0
- package/dist/options-JTMDZECY.js +125 -0
- package/dist/organization-5OJEJEQV.js +949 -0
- package/dist/performance-AHVTOYTM.js +5565 -0
- package/dist/performance-S273NSUB.js +27 -0
- package/dist/pixels-H642RPK4.js +62 -0
- package/dist/plan-FRRE4YQC.js +208 -0
- package/dist/promoted-tweet-writes-UF6LYMH4.js +183 -0
- package/dist/promoted-tweets-Z4GG6D7P.js +119 -0
- package/dist/publish-YQ6MHS7P.js +344 -0
- package/dist/query-FT2BA3WH.js +62 -0
- package/dist/read-7ZFZAJSQ.js +141 -0
- package/dist/reddit-YWYRZBL2.js +29 -0
- package/dist/refresh-TEXTTECA.js +97 -0
- package/dist/release-3JDETBZI.js +63 -0
- package/dist/relevant-pages-OCHLUV5K.js +99 -0
- package/dist/remove-KZTSU4K2.js +53 -0
- package/dist/reopen-GIJSFNDH.js +66 -0
- package/dist/rerun-6UZNOPUG.js +96 -0
- package/dist/research-TMKG4NQJ.js +75 -0
- package/dist/research-XA2IJ2XV.js +265 -0
- package/dist/reset-7VL6WJLE.js +57 -0
- package/dist/reset-HLZ6JHGY.js +57 -0
- package/dist/resolve-H2QW3U5Y.js +124 -0
- package/dist/retry-MIZ67MPP.js +65 -0
- package/dist/retry-WSWW6EJT.js +63 -0
- package/dist/revenue-LTU7HRT2.js +91 -0
- package/dist/rules-BGBCUUPH.js +99 -0
- package/dist/rules-add-SZT2MSOD.js +465 -0
- package/dist/run-FHGT4UQ7.js +69 -0
- package/dist/run-XUDGECLL.js +71 -0
- package/dist/scaffold-ad-VXNO3SQP.js +1513 -0
- package/dist/scaffold-static-ad-FT55VV3T.js +1011 -0
- package/dist/scaffold-video-V7WX5AWZ.js +885 -0
- package/dist/schedule-BNRLEFMZ.js +64 -0
- package/dist/scheduled-agents-MAXXXJ7W.js +55 -0
- package/dist/schema-YADPD54K.js +135 -0
- package/dist/search-56ORG4PL.js +177 -0
- package/dist/select-DON4DMNM.js +110 -0
- package/dist/set-prompt-J22TUCRU.js +199 -0
- package/dist/setup-links-CHODCBYH.js +144 -0
- package/dist/shopify-FCYU4AR6.js +3980 -0
- package/dist/shopify-FCYU4AR6.js.map +1 -0
- package/dist/site-BF3Q26W5.js +180 -0
- package/dist/sources-SLCYAWTZ.js +457 -0
- package/dist/sources-VHHC6YQM.js +30 -0
- package/dist/stale-GLVTL2ZK.js +90 -0
- package/dist/status-E3RA644P.js +65 -0
- package/dist/studio-6ZXUKA4G.js +49 -0
- package/dist/sync-6QCDDJMO.js +57 -0
- package/dist/sync-definition-DXNHGY5E.js +70 -0
- package/dist/tag-manager-74CGUGXX.js +43 -0
- package/dist/tags-AMZSQJJ2.js +26 -0
- package/dist/tags-KW7PG2TR.js +23 -0
- package/dist/tags-MGV5KG6I.js +23 -0
- package/dist/tags-TM27EIAL.js +23 -0
- package/dist/tags-VWGKVGZD.js +227 -0
- package/dist/targeting-criteria-FT3G4HAW.js +113 -0
- package/dist/targets-XLVHWO6Z.js +106 -0
- package/dist/testimonials-INXY7CXU.js +32 -0
- package/dist/themes-R3A6IVQN.js +95 -0
- package/dist/top-companies-MNX3GBCP.js +111 -0
- package/dist/transcript-GIAOWCTO.js +165 -0
- package/dist/translate-JEQ4K4AH.js +603 -0
- package/dist/triggers-KDXLDZ23.js +144 -0
- package/dist/unlink-PNBSDLBQ.js +70 -0
- package/dist/unstage-X2PDLT5O.js +88 -0
- package/dist/update-4JGHSQVZ.js +66 -0
- package/dist/update-4XUQN4LK.js +101 -0
- package/dist/update-TJTDFWER.js +155 -0
- package/dist/update-URU4TO2F.js +192 -0
- package/dist/upload-TO5EPTVD.js +130 -0
- package/dist/url-options-YZ6UG3NY.js +131 -0
- package/dist/url-params-533CWJH3.js +101 -0
- package/dist/validate-XF6HU7D4.js +125 -0
- package/dist/videos-KYZ4CUOB.js +41 -0
- package/dist/viewer-check-U5GUU34Z.js +83 -0
- package/dist/web-ZYMSMIV6.js +173 -0
- package/dist/winning-ads-BCN5RVAE.js +86 -0
- package/dist/write-commands-5Z5A3D3M.js +713 -0
- package/dist/write-commands-7DTFGM6E.js +206 -0
- package/dist/write-commands-PZZ72PNL.js +1525 -0
- package/dist/x-DLEZYTAU.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-TGW2POU6.js.map +0 -1
- 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-6GKPLNDY.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-FGL3DZES.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-PKSW3DBQ.js.map} +0 -0
- /package/dist/{accounts-ENS2ONLA.js.map → accounts-S5C6MZFO.js.map} +0 -0
- /package/dist/{actions-3SQGXLLM.js.map → actions-ARN3OFB7.js.map} +0 -0
- /package/dist/{activecampaign-MJ4SIVWY.js.map → activecampaign-3YJC3H2R.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-CNYKQD7B.js.map} +0 -0
- /package/dist/{add-BH2GJZ46.js.map → add-IABKHM5N.js.map} +0 -0
- /package/dist/{ads-4LASBP4G.js.map → ads-LNWALF6G.js.map} +0 -0
- /package/dist/{ads-WE6GT2BL.js.map → ads-UXHJCUTX.js.map} +0 -0
- /package/dist/{advertisers-P742OQFI.js.map → advertisers-UT7EJ6YS.js.map} +0 -0
- /package/dist/{analytics-ICV42S7D.js.map → analytics-COUVH7MV.js.map} +0 -0
- /package/dist/{analytics-XCUJSG3F.js.map → analytics-EHUUNMGZ.js.map} +0 -0
- /package/dist/{animate-OWXAT2RK.js.map → animate-DM4OUJMR.js.map} +0 -0
- /package/dist/{assign-OQYVRXCT.js.map → assign-FWT5QQDF.js.map} +0 -0
- /package/dist/{audience-size-NN43B7FF.js.map → audience-size-YI2RLIG7.js.map} +0 -0
- /package/dist/{audiences-3R574STZ.js.map → audiences-7D5VPOWF.js.map} +0 -0
- /package/dist/{audit-JLH2TBIL.js.map → audit-BPRRCIWN.js.map} +0 -0
- /package/dist/{autocomplete-ZQAKVB6T.js.map → autocomplete-OD6SHZZH.js.map} +0 -0
- /package/dist/{avatars-JWCZ2KVM.js.map → avatars-FFFPCH6D.js.map} +0 -0
- /package/dist/{bid-pricing-CX3V76MC.js.map → bid-pricing-JF557IO2.js.map} +0 -0
- /package/dist/{brand-NKHAO4TK.js.map → brand-ZUYJWKI3.js.map} +0 -0
- /package/dist/{brief-6RDPVD4A.js.map → brief-CJDBD5GJ.js.map} +0 -0
- /package/dist/{campaign-groups-3PVR3IXH.js.map → campaign-groups-VCT6ZH66.js.map} +0 -0
- /package/dist/{campaign-writes-Z2J24SUZ.js.map → campaign-writes-H22P6YPW.js.map} +0 -0
- /package/dist/{campaign-writes-TBWAZOZ2.js.map → campaign-writes-YOHDMYDT.js.map} +0 -0
- /package/dist/{campaigns-43OS6EUG.js.map → campaigns-265JXD2Z.js.map} +0 -0
- /package/dist/{campaigns-PW4XK65Y.js.map → campaigns-7EGRZ3V6.js.map} +0 -0
- /package/dist/{campaigns-RN3SPC7L.js.map → campaigns-ORK5BYAM.js.map} +0 -0
- /package/dist/{canvas-QJI65546.js.map → canvas-FW5F3KZJ.js.map} +0 -0
- /package/dist/{capabilities-KPQWOCTA.js.map → capabilities-ISW7XT44.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-FH3DQNYD.js.map} +0 -0
- /package/dist/{check-TPP2KZY6.js.map → check-QC5RHS3Z.js.map} +0 -0
- /package/dist/{chunk-CYKFXG4R.js.map → chunk-2AC5GJHC.js.map} +0 -0
- /package/dist/{chunk-DD33NA2U.js.map → chunk-2VSUMGJV.js.map} +0 -0
- /package/dist/{chunk-B3CDNANO.js.map → chunk-4D73PLXU.js.map} +0 -0
- /package/dist/{chunk-HMFIOE4P.js.map → chunk-4S5ZAG4S.js.map} +0 -0
- /package/dist/{chunk-TL6P7WDT.js.map → chunk-5MMJPUBH.js.map} +0 -0
- /package/dist/{chunk-3MZNBHC7.js.map → chunk-5Y2XPKW2.js.map} +0 -0
- /package/dist/{chunk-EYBIZT7T.js.map → chunk-6HCYCMIH.js.map} +0 -0
- /package/dist/{chunk-7VDTLOSX.js.map → chunk-6R2BQ6FK.js.map} +0 -0
- /package/dist/{chunk-G2FDUCUU.js.map → chunk-7P74QKVC.js.map} +0 -0
- /package/dist/{chunk-QB334QBO.js.map → chunk-7SJU6PQ7.js.map} +0 -0
- /package/dist/{chunk-WJ6UJBHB.js.map → chunk-A37TIYFD.js.map} +0 -0
- /package/dist/{chunk-GJD43KID.js.map → chunk-A6NVGPCZ.js.map} +0 -0
- /package/dist/{chunk-ANUFRN3B.js.map → chunk-AK7CL5IW.js.map} +0 -0
- /package/dist/{chunk-VZGLL54O.js.map → chunk-AOT3UZBM.js.map} +0 -0
- /package/dist/{chunk-SBPUCN6H.js.map → chunk-D2ZAZGQH.js.map} +0 -0
- /package/dist/{chunk-ODN2LYPJ.js.map → chunk-EB76M4ZH.js.map} +0 -0
- /package/dist/{chunk-RM5T4MA6.js.map → chunk-EOMY5SUJ.js.map} +0 -0
- /package/dist/{chunk-BDWNJRTY.js.map → chunk-EY5WWPPZ.js.map} +0 -0
- /package/dist/{chunk-CXCZHEVW.js.map → chunk-EZKT5YGX.js.map} +0 -0
- /package/dist/{chunk-NQF5U6FX.js.map → chunk-FVDC6AKZ.js.map} +0 -0
- /package/dist/{chunk-LDFM37DM.js.map → chunk-GN7K3NPI.js.map} +0 -0
- /package/dist/{chunk-SOYKSA2X.js.map → chunk-GQAKWQAV.js.map} +0 -0
- /package/dist/{chunk-YQB66YKJ.js.map → chunk-HBDWE7WK.js.map} +0 -0
- /package/dist/{chunk-OM45JY2R.js.map → chunk-HETNOUE4.js.map} +0 -0
- /package/dist/{chunk-47K5MDGX.js.map → chunk-HFAT5S5B.js.map} +0 -0
- /package/dist/{chunk-WSYZT2QI.js.map → chunk-HQ3I2QVT.js.map} +0 -0
- /package/dist/{chunk-BH3JS7EF.js.map → chunk-IN5UCEJD.js.map} +0 -0
- /package/dist/{chunk-6OIKNJ7G.js.map → chunk-JAC6JVCI.js.map} +0 -0
- /package/dist/{chunk-IM3GD4G3.js.map → chunk-JLLGXYOZ.js.map} +0 -0
- /package/dist/{chunk-E5H7JIWB.js.map → chunk-JY3OJBKZ.js.map} +0 -0
- /package/dist/{chunk-RYXGJDBK.js.map → chunk-KCRBAMFU.js.map} +0 -0
- /package/dist/{chunk-XU6XQPNM.js.map → chunk-KIXVHP2C.js.map} +0 -0
- /package/dist/{chunk-BLGTDKIV.js.map → chunk-KTY7H44G.js.map} +0 -0
- /package/dist/{chunk-HGRCKRCF.js.map → chunk-LKOMEXUB.js.map} +0 -0
- /package/dist/{chunk-WGJHVP7T.js.map → chunk-LVKAMWKJ.js.map} +0 -0
- /package/dist/{chunk-KIX3ZM24.js.map → chunk-LWCGQNVU.js.map} +0 -0
- /package/dist/{chunk-SIKCVWM3.js.map → chunk-MZPS46OR.js.map} +0 -0
- /package/dist/{chunk-FGSRPKOV.js.map → chunk-N4AIJQ4W.js.map} +0 -0
- /package/dist/{chunk-P6FMQHJJ.js.map → chunk-NBWZVBDG.js.map} +0 -0
- /package/dist/{chunk-TSNL3AYG.js.map → chunk-OKB2EAJH.js.map} +0 -0
- /package/dist/{chunk-VJKLZVAM.js.map → chunk-OT2MN5UR.js.map} +0 -0
- /package/dist/{chunk-QJCGLIVD.js.map → chunk-OZR3KUJ3.js.map} +0 -0
- /package/dist/{chunk-64ALJ6TJ.js.map → chunk-P3VY5JEM.js.map} +0 -0
- /package/dist/{chunk-JW6VZBV7.js.map → chunk-PXGR3VGW.js.map} +0 -0
- /package/dist/{chunk-G6J6AWTE.js.map → chunk-QK3HMAVU.js.map} +0 -0
- /package/dist/{chunk-3EUITH4J.js.map → chunk-RHEWQB5O.js.map} +0 -0
- /package/dist/{chunk-4IRJ5JXA.js.map → chunk-RP36XHWT.js.map} +0 -0
- /package/dist/{chunk-OKBIPYZN.js.map → chunk-RXOQZA4K.js.map} +0 -0
- /package/dist/{chunk-DD6IMD7G.js.map → chunk-SEHJ7Y7J.js.map} +0 -0
- /package/dist/{chunk-GCFC2MNR.js.map → chunk-SNWFM2DB.js.map} +0 -0
- /package/dist/{chunk-IUWM5XHR.js.map → chunk-TAGRKRFI.js.map} +0 -0
- /package/dist/{chunk-Q6LCL67T.js.map → chunk-TARINRA4.js.map} +0 -0
- /package/dist/{chunk-7UFV6H7J.js.map → chunk-TNZUMU55.js.map} +0 -0
- /package/dist/{chunk-7YYTE5XE.js.map → chunk-TP2NS5SG.js.map} +0 -0
- /package/dist/{chunk-TTDLK73U.js.map → chunk-UOXC3XA5.js.map} +0 -0
- /package/dist/{chunk-OW2SDF66.js.map → chunk-UQA6Z23M.js.map} +0 -0
- /package/dist/{chunk-V4UJERGL.js.map → chunk-VOUCQ2YW.js.map} +0 -0
- /package/dist/{chunk-6UMQSHGK.js.map → chunk-WJ5AHR4K.js.map} +0 -0
- /package/dist/{chunk-JBNT444M.js.map → chunk-WOE4TZHJ.js.map} +0 -0
- /package/dist/{chunk-GCZK4BMB.js.map → chunk-XYNQMRNX.js.map} +0 -0
- /package/dist/{chunk-ORLQEQDF.js.map → chunk-YEISVDKW.js.map} +0 -0
- /package/dist/{chunk-FSK77EEM.js.map → chunk-YNLWSP5E.js.map} +0 -0
- /package/dist/{chunk-5IFFPSEN.js.map → chunk-ZEUAJAKN.js.map} +0 -0
- /package/dist/{chunk-3BXD6MC6.js.map → chunk-ZUUVWWB5.js.map} +0 -0
- /package/dist/{chunk-RKT6RFOR.js.map → chunk-ZVAZFHH7.js.map} +0 -0
- /package/dist/{claim-75KAZXLJ.js.map → claim-FBL5VBYZ.js.map} +0 -0
- /package/dist/{companies-IB4C245S.js.map → companies-URRCAJZE.js.map} +0 -0
- /package/dist/{company-5J2EGA42.js.map → company-LDCNUPHZ.js.map} +0 -0
- /package/dist/{complete-7AT7QWZN.js.map → complete-3UGPO444.js.map} +0 -0
- /package/dist/{config-3GCILBEL.js.map → config-3VK74MY6.js.map} +0 -0
- /package/dist/{connect-HKVHKX44.js.map → connect-M5KPZQWE.js.map} +0 -0
- /package/dist/{conversation-5OEBGDYR.js.map → conversation-S7YANZJR.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-QZL4DSJO.js.map} +0 -0
- /package/dist/{create-ZVTM57AZ.js.map → create-56PJRLMA.js.map} +0 -0
- /package/dist/{create-2TAKPSGG.js.map → create-OE5MRW3X.js.map} +0 -0
- /package/dist/{create-J3OXZGXC.js.map → create-RL7PRIDY.js.map} +0 -0
- /package/dist/{create-RL3L7L2S.js.map → create-Y6YVJ5L4.js.map} +0 -0
- /package/dist/{creatives-3EAIKWGU.js.map → creatives-ESVH63AP.js.map} +0 -0
- /package/dist/{creatives-AALLH7YU.js.map → creatives-URHXATY6.js.map} +0 -0
- /package/dist/{credentials-MS4NJHEG.js.map → credentials-O6QSB7ZR.js.map} +0 -0
- /package/dist/{critique-KLITVZA4.js.map → critique-EWJBOCXQ.js.map} +0 -0
- /package/dist/{critique-NFPZD54K.js.map → critique-PTGGXRFG.js.map} +0 -0
- /package/dist/{crm-QQ7LGCLO.js.map → crm-F6RGNQH5.js.map} +0 -0
- /package/dist/{crm-7BAHXTK4.js.map → crm-GLPOO22Q.js.map} +0 -0
- /package/dist/{currency-XFHCLKAV.js.map → currency-CHBV6WIO.js.map} +0 -0
- /package/dist/{customers-NENDLH5A.js.map → customers-Q76FCWYO.js.map} +0 -0
- /package/dist/{delete-ZCPZ2ACI.js.map → delete-ODFDZCL3.js.map} +0 -0
- /package/dist/{delete-WACZG5SD.js.map → delete-OVMPDGWQ.js.map} +0 -0
- /package/dist/{delete-VOUXBXU3.js.map → delete-XN7N4S4H.js.map} +0 -0
- /package/dist/{demographics-C5EL3BI6.js.map → demographics-IY5RI55Z.js.map} +0 -0
- /package/dist/{discard-RQXALYQZ.js.map → discard-GKIA5FML.js.map} +0 -0
- /package/dist/{discover-R3QBVUHZ.js.map → discover-ZU2DAV23.js.map} +0 -0
- /package/dist/{domain-HV2N4S3O.js.map → domain-WGXA7OXV.js.map} +0 -0
- /package/dist/{download-OQFJOZFD.js.map → download-DYYNUGLX.js.map} +0 -0
- /package/dist/{draft-SDOXYIND.js.map → draft-VYIRZO3E.js.map} +0 -0
- /package/dist/{experiments-5UC4QVZU.js.map → experiments-6DOKWFH4.js.map} +0 -0
- /package/dist/{facets-I2CY2STO.js.map → facets-ZU5DT2QW.js.map} +0 -0
- /package/dist/{feedback-WGRNI4J3.js.map → feedback-RIUBM557.js.map} +0 -0
- /package/dist/{feedback-record-C6VYJQOL.js.map → feedback-record-3VVAUCOH.js.map} +0 -0
- /package/dist/{fetch-WS4CABQN.js.map → fetch-T6TZCU74.js.map} +0 -0
- /package/dist/{fit-BJH2KAKU.js.map → fit-YPOHTM7Y.js.map} +0 -0
- /package/dist/{flows-ZQ66S64A.js.map → flows-CKVEZFF2.js.map} +0 -0
- /package/dist/{fonts-EKLOSPJA.js.map → fonts-3J3UVZ2E.js.map} +0 -0
- /package/dist/{forecast-JOQESPEP.js.map → forecast-372Q6KQZ.js.map} +0 -0
- /package/dist/{forecast-KDJVAWTO.js.map → forecast-JEAFUR2O.js.map} +0 -0
- /package/dist/{funnel-PD7EMXAX.js.map → funnel-FBTNPTS7.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-5N5FCGNH.js.map} +0 -0
- /package/dist/{get-PIYAY4MD.js.map → get-EXHUQT65.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-ZAYRCG2D.js.map} +0 -0
- /package/dist/{history-SECNIWQQ.js.map → history-4ULZ4BVV.js.map} +0 -0
- /package/dist/{history-4LN2MMCY.js.map → history-6J3XRNTZ.js.map} +0 -0
- /package/dist/{history-7DF5HFJT.js.map → history-VNLS2TKB.js.map} +0 -0
- /package/dist/{hubspot-HW3DMFB2.js.map → hubspot-ZEHWWJHK.js.map} +0 -0
- /package/dist/{ideas-CIFADAYV.js.map → ideas-SB6546GI.js.map} +0 -0
- /package/dist/{images-KV7UJMNO.js.map → images-LEZYVE7R.js.map} +0 -0
- /package/dist/{ingest-3DW2YGCB.js.map → ingest-4OOTCOLO.js.map} +0 -0
- /package/dist/{ingest-OG3RUM2Z.js.map → ingest-KNJCCIBG.js.map} +0 -0
- /package/dist/{insights-YVV5MHPQ.js.map → insights-XY6II7TX.js.map} +0 -0
- /package/dist/{inspect-YJGFTVGT.js.map → inspect-MHKEYNIC.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-EL7MO3H6.js.map} +0 -0
- /package/dist/{keywords-for-site-DIIUKEVJ.js.map → keywords-for-site-I7KJLZ2I.js.map} +0 -0
- /package/dist/{landing-FFAMZ3CD.js.map → landing-Z3QGJYM3.js.map} +0 -0
- /package/dist/{languages-RYIOZQFH.js.map → languages-LNHWSCMT.js.map} +0 -0
- /package/dist/{leads-WSK4N2I6.js.map → leads-WQCTZYKT.js.map} +0 -0
- /package/dist/{learn-A4LSAKRL.js.map → learn-6KW6TUVL.js.map} +0 -0
- /package/dist/{line-item-writes-Q47ZVHB6.js.map → line-item-writes-B2KSP36W.js.map} +0 -0
- /package/dist/{line-items-MHIXPRTG.js.map → line-items-3ICE5DBI.js.map} +0 -0
- /package/dist/{link-6FVFHGP4.js.map → link-QRQ34ZDH.js.map} +0 -0
- /package/dist/{linkedin-person-3MFAKS2Y.js.map → linkedin-person-Y5TCUOXS.js.map} +0 -0
- /package/dist/{list-7RNRZN4W.js.map → list-6HZVHA6T.js.map} +0 -0
- /package/dist/{list-BDGTMCFP.js.map → list-CHYJ53JD.js.map} +0 -0
- /package/dist/{list-MPZF6NTD.js.map → list-XAMJSOGI.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-PLXGA74X.js.map} +0 -0
- /package/dist/{make-DYFGYGMD.js.map → make-EP4YSN26.js.map} +0 -0
- /package/dist/{map-UUHQJSSU.js.map → map-CAFMAMPP.js.map} +0 -0
- /package/dist/{mcp-BH5MXQMJ.js.map → mcp-DDWSXLU7.js.map} +0 -0
- /package/dist/{media-sources-4BJOODBR.js.map → media-sources-J5FXYPV5.js.map} +0 -0
- /package/dist/{members-PK2AXSE4.js.map → members-ZA7S5KWP.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-ZHM2ZVXZ.js.map} +0 -0
- /package/dist/{options-7BEM4Z5E.js.map → options-JTMDZECY.js.map} +0 -0
- /package/dist/{organization-RSFFVT2M.js.map → organization-5OJEJEQV.js.map} +0 -0
- /package/dist/{performance-PVZ5V6YL.js.map → performance-AHVTOYTM.js.map} +0 -0
- /package/dist/{performance-4L2AFM4A.js.map → performance-S273NSUB.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-UF6LYMH4.js.map} +0 -0
- /package/dist/{promoted-tweets-MJEZFPLW.js.map → promoted-tweets-Z4GG6D7P.js.map} +0 -0
- /package/dist/{publish-XNYDOQ7I.js.map → publish-YQ6MHS7P.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-YWYRZBL2.js.map} +0 -0
- /package/dist/{refresh-5EGKQGJI.js.map → refresh-TEXTTECA.js.map} +0 -0
- /package/dist/{release-RDNXS362.js.map → release-3JDETBZI.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-KZTSU4K2.js.map} +0 -0
- /package/dist/{reopen-ODW3ZUEG.js.map → reopen-GIJSFNDH.js.map} +0 -0
- /package/dist/{rerun-3MTIAJUZ.js.map → rerun-6UZNOPUG.js.map} +0 -0
- /package/dist/{research-63ISQ74U.js.map → research-TMKG4NQJ.js.map} +0 -0
- /package/dist/{research-RKFSB7OH.js.map → research-XA2IJ2XV.js.map} +0 -0
- /package/dist/{reset-EZSCJXPC.js.map → reset-7VL6WJLE.js.map} +0 -0
- /package/dist/{reset-GUJSHPHR.js.map → reset-HLZ6JHGY.js.map} +0 -0
- /package/dist/{resolve-BTM6MDOY.js.map → resolve-H2QW3U5Y.js.map} +0 -0
- /package/dist/{retry-6BXQONQ3.js.map → retry-MIZ67MPP.js.map} +0 -0
- /package/dist/{retry-OL2W3HFH.js.map → retry-WSWW6EJT.js.map} +0 -0
- /package/dist/{revenue-P26LJFEF.js.map → revenue-LTU7HRT2.js.map} +0 -0
- /package/dist/{rules-MN5CBYLN.js.map → rules-BGBCUUPH.js.map} +0 -0
- /package/dist/{rules-add-YPD466NS.js.map → rules-add-SZT2MSOD.js.map} +0 -0
- /package/dist/{run-PEHYPLDQ.js.map → run-FHGT4UQ7.js.map} +0 -0
- /package/dist/{run-WTN5QQ2P.js.map → run-XUDGECLL.js.map} +0 -0
- /package/dist/{scaffold-ad-ZHZUX4Q6.js.map → scaffold-ad-VXNO3SQP.js.map} +0 -0
- /package/dist/{scaffold-static-ad-SHGWFBBO.js.map → scaffold-static-ad-FT55VV3T.js.map} +0 -0
- /package/dist/{scaffold-video-VENWOP75.js.map → scaffold-video-V7WX5AWZ.js.map} +0 -0
- /package/dist/{schedule-637C6MY3.js.map → schedule-BNRLEFMZ.js.map} +0 -0
- /package/dist/{scheduled-agents-ZUM6UUF2.js.map → scheduled-agents-MAXXXJ7W.js.map} +0 -0
- /package/dist/{schema-NEL6O4O2.js.map → schema-YADPD54K.js.map} +0 -0
- /package/dist/{search-36RRNTF6.js.map → search-56ORG4PL.js.map} +0 -0
- /package/dist/{select-INJUT4PU.js.map → select-DON4DMNM.js.map} +0 -0
- /package/dist/{set-prompt-X3DCUAGP.js.map → set-prompt-J22TUCRU.js.map} +0 -0
- /package/dist/{setup-links-UG7S553A.js.map → setup-links-CHODCBYH.js.map} +0 -0
- /package/dist/{site-YCSCW42E.js.map → site-BF3Q26W5.js.map} +0 -0
- /package/dist/{sources-HP3PRSU6.js.map → sources-SLCYAWTZ.js.map} +0 -0
- /package/dist/{sources-TQKN3HD7.js.map → sources-VHHC6YQM.js.map} +0 -0
- /package/dist/{stale-KKBZ5FJX.js.map → stale-GLVTL2ZK.js.map} +0 -0
- /package/dist/{status-2HQBV7WL.js.map → status-E3RA644P.js.map} +0 -0
- /package/dist/{studio-OV2ZY5W3.js.map → studio-6ZXUKA4G.js.map} +0 -0
- /package/dist/{sync-QVPBBQAW.js.map → sync-6QCDDJMO.js.map} +0 -0
- /package/dist/{sync-definition-YQJTCJJC.js.map → sync-definition-DXNHGY5E.js.map} +0 -0
- /package/dist/{tag-manager-5ORFHLM4.js.map → tag-manager-74CGUGXX.js.map} +0 -0
- /package/dist/{tags-VJS37ZWW.js.map → tags-AMZSQJJ2.js.map} +0 -0
- /package/dist/{tags-YQVXWGWX.js.map → tags-KW7PG2TR.js.map} +0 -0
- /package/dist/{tags-UUDTBJ6U.js.map → tags-MGV5KG6I.js.map} +0 -0
- /package/dist/{tags-4VQS3QAK.js.map → tags-TM27EIAL.js.map} +0 -0
- /package/dist/{tags-TCGLKPB5.js.map → tags-VWGKVGZD.js.map} +0 -0
- /package/dist/{targeting-criteria-3EXFTUMR.js.map → targeting-criteria-FT3G4HAW.js.map} +0 -0
- /package/dist/{targets-H7TVQ47T.js.map → targets-XLVHWO6Z.js.map} +0 -0
- /package/dist/{testimonials-NOLI2BVV.js.map → testimonials-INXY7CXU.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-MNX3GBCP.js.map} +0 -0
- /package/dist/{transcript-HJH2YNGC.js.map → transcript-GIAOWCTO.js.map} +0 -0
- /package/dist/{translate-X7TMHL22.js.map → translate-JEQ4K4AH.js.map} +0 -0
- /package/dist/{triggers-7HRFXKFZ.js.map → triggers-KDXLDZ23.js.map} +0 -0
- /package/dist/{unlink-G5KUMOL4.js.map → unlink-PNBSDLBQ.js.map} +0 -0
- /package/dist/{unstage-WYJY5HKG.js.map → unstage-X2PDLT5O.js.map} +0 -0
- /package/dist/{update-WKS5QUFB.js.map → update-4JGHSQVZ.js.map} +0 -0
- /package/dist/{update-GJ425R5V.js.map → update-4XUQN4LK.js.map} +0 -0
- /package/dist/{update-THOWGBFC.js.map → update-TJTDFWER.js.map} +0 -0
- /package/dist/{update-T6COJ6BO.js.map → update-URU4TO2F.js.map} +0 -0
- /package/dist/{upload-35QHU7B4.js.map → upload-TO5EPTVD.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-533CWJH3.js.map} +0 -0
- /package/dist/{validate-XQD5H6MU.js.map → validate-XF6HU7D4.js.map} +0 -0
- /package/dist/{videos-JBJP3CZD.js.map → videos-KYZ4CUOB.js.map} +0 -0
- /package/dist/{viewer-check-ACRU6HY3.js.map → viewer-check-U5GUU34Z.js.map} +0 -0
- /package/dist/{web-NRG6WKRV.js.map → web-ZYMSMIV6.js.map} +0 -0
- /package/dist/{winning-ads-ZKVXCS2L.js.map → winning-ads-BCN5RVAE.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-PZZ72PNL.js.map} +0 -0
- /package/dist/{x-M3LIA6SI.js.map → x-DLEZYTAU.js.map} +0 -0
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Phrases,
|
|
3
|
+
RULE_APPLIES,
|
|
4
|
+
RULE_STRENGTHS,
|
|
5
|
+
declaredRules,
|
|
6
|
+
readLearnedRules
|
|
7
|
+
} from "./chunk-RHEWQB5O.js";
|
|
8
|
+
import {
|
|
9
|
+
readWorkspaceBrandDoc
|
|
10
|
+
} from "./chunk-NBWZVBDG.js";
|
|
11
|
+
import {
|
|
12
|
+
holdUnbilledSpend
|
|
13
|
+
} from "./chunk-VWOKPC3T.js";
|
|
14
|
+
import {
|
|
15
|
+
askAboutText,
|
|
16
|
+
rulesDigest,
|
|
17
|
+
selectRules
|
|
18
|
+
} from "./chunk-4D73PLXU.js";
|
|
19
|
+
import {
|
|
20
|
+
CREATIVE_FEEDBACK_REASON_LABELS
|
|
21
|
+
} from "./chunk-R65V26HH.js";
|
|
22
|
+
import {
|
|
23
|
+
apiPost
|
|
24
|
+
} from "./chunk-B2OHCWYB.js";
|
|
25
|
+
|
|
26
|
+
// src/engine/creative-context/company.ts
|
|
27
|
+
import { createHash } from "crypto";
|
|
28
|
+
import { mkdir, readdir, readFile, writeFile } from "fs/promises";
|
|
29
|
+
import path from "path";
|
|
30
|
+
import { z } from "zod";
|
|
31
|
+
var text = z.string().transform((s) => s.trim()).pipe(z.string().min(1).max(300)).optional().catch(void 0);
|
|
32
|
+
var Answer = z.object({
|
|
33
|
+
sells: text,
|
|
34
|
+
category: text,
|
|
35
|
+
industry: text,
|
|
36
|
+
buyer: z.enum(["consumer", "small_business", "enterprise"]).optional().catch(void 0),
|
|
37
|
+
country: z.string().transform((s) => s.trim().toUpperCase()).pipe(z.union([z.literal("").transform(() => null), z.string().regex(/^[A-Z]{2}$/)])).optional().catch(void 0),
|
|
38
|
+
humour: z.enum(["fits", "risky", "off_brand"]).optional().catch(void 0),
|
|
39
|
+
voice: z.enum(["playful", "peer", "neutral", "reassuring", "formal"]).optional().catch(void 0),
|
|
40
|
+
memes: z.enum(["fits", "off_brand"]).optional().catch(void 0),
|
|
41
|
+
memes_why: text,
|
|
42
|
+
brands: z.array(z.string()).transform(
|
|
43
|
+
(list) => list.map((s) => s.trim()).filter(Boolean).slice(0, 4)
|
|
44
|
+
).catch([])
|
|
45
|
+
});
|
|
46
|
+
function parseCompanyReading(answer) {
|
|
47
|
+
const parsed = Answer.safeParse(answer);
|
|
48
|
+
if (!parsed.success || !parsed.data.category) return null;
|
|
49
|
+
const { brands, ...rest } = parsed.data;
|
|
50
|
+
return { ...Object.fromEntries(Object.entries(rest).filter(([, v]) => v !== void 0)), brands };
|
|
51
|
+
}
|
|
52
|
+
var COMPANY_READING_MODEL = "google/gemini-3.5-flash-lite";
|
|
53
|
+
var REQUEST = {
|
|
54
|
+
provider: { order: ["google-vertex"], allow_fallbacks: false },
|
|
55
|
+
seed: 0,
|
|
56
|
+
temperature: 0,
|
|
57
|
+
response_format: { type: "json_object" }
|
|
58
|
+
};
|
|
59
|
+
var PROMPT_VERSION = 5;
|
|
60
|
+
var TIMEOUT_MS = 2e4;
|
|
61
|
+
var COMPANY_CHARS = 12e3;
|
|
62
|
+
function companyReadingPrompt(companyDoc, audience) {
|
|
63
|
+
const notes = [
|
|
64
|
+
audience?.personas ? `Its personas (who buys):
|
|
65
|
+
${audience.personas}` : "",
|
|
66
|
+
audience?.voice ? `BRAND.md, how the brand speaks:
|
|
67
|
+
${audience.voice}` : ""
|
|
68
|
+
].filter(Boolean);
|
|
69
|
+
return `You read a company's own notes (COMPANY.md), in whatever language they are written, for the people who make its ads. Extract only what they say; never invent.
|
|
70
|
+
|
|
71
|
+
"""
|
|
72
|
+
${companyDoc.slice(0, COMPANY_CHARS)}
|
|
73
|
+
"""
|
|
74
|
+
${notes.length > 0 ? `
|
|
75
|
+
${notes.join("\n\n")}
|
|
76
|
+
` : ""}
|
|
77
|
+
Answer only JSON:
|
|
78
|
+
{
|
|
79
|
+
"sells": "what the company sells and to whom, one plain sentence of at most 20 words in the notes' own language, no brand names (e.g. 'Cursos de electricidad y fontaner\xEDa para desempleados que buscan un oficio estable')",
|
|
80
|
+
"category": "what it sells, 2-6 plain English words an ads library would file it under, no brand names (e.g. 'electrician training course', 'pet health insurance', 'ecommerce customer service AI'); for a company selling several lines, the line its notes lead with",
|
|
81
|
+
"industry": "the broader industry, 1-3 English words (e.g. 'vocational education', 'insurance', 'customer service software')",
|
|
82
|
+
"buyer": "consumer" | "small_business" | "enterprise",
|
|
83
|
+
"country": "the ISO country code it sells in, or '' when several",
|
|
84
|
+
"humour": "fits" | "risky" | "off_brand",
|
|
85
|
+
"voice": "playful" | "peer" | "neutral" | "reassuring" | "formal" (how the brand talks, from the BRAND.md voice and how it speaks on its site, ads and social, never from who buys: playful = witty, casual, irreverent, internet-native; peer = talks as an insider to its own crowd, developer-to-developer, builder to builder; neutral = plain, direct, informative with no personality signal; reassuring = warm, caring, guaranteeing, protecting, calming a fear about money, time or risk; formal = premium, institutional, solemn, corporate-confident),
|
|
86
|
+
"memes": "fits" | "off_brand" (does that voice run a meme or a reaction-face ad? playful and peer fit, enterprise included; neutral, reassuring and formal are off_brand, consumer brands included),
|
|
87
|
+
"memes_why": "the voice line that decides it, at most 20 words, quoting it (e.g. 'voice: "playful, a little irreverent"' or 'voice: "formal, premium, understated"')",
|
|
88
|
+
"brands": ["the company's own brand and product names, as an advertiser name would show them, at most 4"]
|
|
89
|
+
}`;
|
|
90
|
+
}
|
|
91
|
+
var RUNS_MEMES = /* @__PURE__ */ new Set(["playful", "peer"]);
|
|
92
|
+
function memeRegister(reading3) {
|
|
93
|
+
const memes = reading3?.voice ? RUNS_MEMES.has(reading3.voice) ? "fits" : "off_brand" : reading3?.memes;
|
|
94
|
+
if (!memes) return void 0;
|
|
95
|
+
const why = reading3?.memes_why;
|
|
96
|
+
return { memes, ...why ? { why } : {} };
|
|
97
|
+
}
|
|
98
|
+
function companyLine(reading3) {
|
|
99
|
+
if (!reading3) return "";
|
|
100
|
+
const what = reading3.sells ?? reading3.category ?? "";
|
|
101
|
+
return reading3.industry && what ? `${what} (${reading3.industry})` : what;
|
|
102
|
+
}
|
|
103
|
+
function firstLineSells(companyDoc) {
|
|
104
|
+
const first = companyDoc.split("\n").find((line) => line.trim() && !line.trim().startsWith("#")) ?? "";
|
|
105
|
+
if (/^\s*TODO\b/.test(first)) return "";
|
|
106
|
+
const what = first.replace(/^\s*[-*]\s+/, "").replace(/^\*\*[^*]+\*\*\s*[—–:-]?\s*/, "").split(/\s+for\s+|[,.;:(]|\s[—–-]\s/)[0];
|
|
107
|
+
return (what ?? "").trim().split(/\s+/).filter(Boolean).slice(0, SELLS_WORDS).join(" ");
|
|
108
|
+
}
|
|
109
|
+
var SELLS_WORDS = 6;
|
|
110
|
+
var askModel = (root) => async (prompt) => {
|
|
111
|
+
const spent = [];
|
|
112
|
+
const answer = await askAboutText(COMPANY_READING_MODEL, prompt, (u) => spent.push(u), {
|
|
113
|
+
timeoutMs: TIMEOUT_MS,
|
|
114
|
+
request: REQUEST
|
|
115
|
+
}).catch(() => null);
|
|
116
|
+
await holdUnbilledSpend(path.join(root, "canvas", ".cache"), spent).catch(() => void 0);
|
|
117
|
+
return answer;
|
|
118
|
+
};
|
|
119
|
+
async function readCompanyReading(root, ask = askModel(root)) {
|
|
120
|
+
const doc = await readFile(path.join(root, "COMPANY.md"), "utf8").catch(() => "");
|
|
121
|
+
const fallback = firstLineSells(doc);
|
|
122
|
+
if (!fallback) return null;
|
|
123
|
+
const prompt = companyReadingPrompt(doc, await audienceNotes(root));
|
|
124
|
+
const key = createHash("sha256").update(JSON.stringify([PROMPT_VERSION, COMPANY_READING_MODEL, prompt])).digest("hex").slice(0, 16);
|
|
125
|
+
const file = path.join(root, "canvas", ".cache", "company-reading", `${key}.json`);
|
|
126
|
+
const inFlight = reading.get(file);
|
|
127
|
+
if (inFlight) return await inFlight;
|
|
128
|
+
const read = readOrAsk(file, prompt, ask, fallback).finally(() => reading.delete(file));
|
|
129
|
+
reading.set(file, read);
|
|
130
|
+
return await read;
|
|
131
|
+
}
|
|
132
|
+
var PERSONA_CHARS = 600;
|
|
133
|
+
var VOICE_CHARS = 800;
|
|
134
|
+
async function audienceNotes(root) {
|
|
135
|
+
const dir = path.join(root, "src", "content", "personas");
|
|
136
|
+
const files = (await readdir(dir).catch(() => [])).filter((f) => f.endsWith(".md")).sort();
|
|
137
|
+
const personas = [];
|
|
138
|
+
for (const file of files.slice(0, 8)) {
|
|
139
|
+
const raw = await readFile(path.join(dir, file), "utf8").catch(() => "");
|
|
140
|
+
const front = /^---\n([\s\S]*?)\n---/.exec(raw)?.[1] ?? raw.slice(0, 300);
|
|
141
|
+
const lines = front.split("\n").filter((l) => /^\s*(title|name|role|job|description)\s*:/i.test(l));
|
|
142
|
+
const line = (lines.length > 0 ? lines.join("; ") : file.replace(/\.md$/, "")).slice(0, PERSONA_CHARS);
|
|
143
|
+
personas.push(`- ${line}`);
|
|
144
|
+
}
|
|
145
|
+
const brand = await readFile(path.join(root, "src", "brand", "BRAND.md"), "utf8").catch(() => "");
|
|
146
|
+
const section = /^##\s+[^\n]*\b(?:tone|voice)\b[^\n]*\n([\s\S]*?)(?=^##\s|(?![\s\S]))/im.exec(brand)?.[1] ?? "";
|
|
147
|
+
return { personas: personas.join("\n"), voice: section.trim().slice(0, VOICE_CHARS) };
|
|
148
|
+
}
|
|
149
|
+
var reading = /* @__PURE__ */ new Map();
|
|
150
|
+
async function readOrAsk(file, prompt, ask, fallback) {
|
|
151
|
+
const cached = await readFile(file, "utf8").then((raw) => parseCompanyReading(JSON.parse(raw))).catch(() => null);
|
|
152
|
+
if (cached) return cached;
|
|
153
|
+
const answer = parseCompanyReading(await ask(prompt).catch(() => null));
|
|
154
|
+
if (!answer) return { sells: fallback, brands: [] };
|
|
155
|
+
await mkdir(path.dirname(file), { recursive: true });
|
|
156
|
+
await writeFile(file, `${JSON.stringify(answer, null, 2)}
|
|
157
|
+
`, "utf8");
|
|
158
|
+
return answer;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// src/engine/creative-context/case-file.ts
|
|
162
|
+
var CASE_FILE_CHARS = 3e3;
|
|
163
|
+
function caseFileNotes(entries) {
|
|
164
|
+
const seen = /* @__PURE__ */ new Set();
|
|
165
|
+
const lines = [];
|
|
166
|
+
let used = 0;
|
|
167
|
+
for (const entry of entries) {
|
|
168
|
+
if (entry.verdict !== "rejected") continue;
|
|
169
|
+
const note = entry.note?.trim();
|
|
170
|
+
const reasons = entry.reasons.map((r) => CREATIVE_FEEDBACK_REASON_LABELS[r].toLowerCase()).join(", ");
|
|
171
|
+
const key = note ?? reasons;
|
|
172
|
+
if (!key || seen.has(key)) continue;
|
|
173
|
+
seen.add(key);
|
|
174
|
+
const line = `Rejected${reasons ? ` (${reasons})` : ""}${note ? `: "${note}"` : ""}`;
|
|
175
|
+
if (used + line.length > CASE_FILE_CHARS && lines.length > 0) break;
|
|
176
|
+
used += line.length;
|
|
177
|
+
lines.push(line);
|
|
178
|
+
}
|
|
179
|
+
return lines;
|
|
180
|
+
}
|
|
181
|
+
async function readCaseFile(slug, read = (body) => apiPost("/api/creatives/feedback", body)) {
|
|
182
|
+
const response = await read({ slug }).catch(() => null);
|
|
183
|
+
return response?.ok ? caseFileNotes(response.data.recent) : [];
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// src/engine/creative-context/index.ts
|
|
187
|
+
import path3 from "path";
|
|
188
|
+
|
|
189
|
+
// src/engine/brand/brand-rules.ts
|
|
190
|
+
import { createHash as createHash2 } from "crypto";
|
|
191
|
+
import { mkdir as mkdir2, readFile as readFile2, writeFile as writeFile2 } from "fs/promises";
|
|
192
|
+
import path2 from "path";
|
|
193
|
+
import { z as z2 } from "zod";
|
|
194
|
+
var BRAND_RULES_MODEL = "google/gemini-3.5-flash";
|
|
195
|
+
var REQUEST2 = {
|
|
196
|
+
provider: { order: ["google-vertex"], allow_fallbacks: false },
|
|
197
|
+
seed: 0,
|
|
198
|
+
reasoning: { effort: "low" },
|
|
199
|
+
response_format: { type: "json_object" }
|
|
200
|
+
};
|
|
201
|
+
var PROMPT_VERSION2 = 2;
|
|
202
|
+
var TIMEOUT_MS2 = 6e4;
|
|
203
|
+
var BRAND_MD_CHARS = 6e4;
|
|
204
|
+
var MAX_RULES = 60;
|
|
205
|
+
var RULE_CHARS = 400;
|
|
206
|
+
var optionalPhrases = Phrases.optional().catch(void 0);
|
|
207
|
+
var Rule = z2.object({
|
|
208
|
+
text: z2.string().trim().min(1).max(RULE_CHARS),
|
|
209
|
+
strength: z2.enum(RULE_STRENGTHS).catch("must"),
|
|
210
|
+
applies: z2.enum(RULE_APPLIES).catch("any"),
|
|
211
|
+
forbid: optionalPhrases,
|
|
212
|
+
require: optionalPhrases,
|
|
213
|
+
allow: optionalPhrases
|
|
214
|
+
});
|
|
215
|
+
var Answer2 = z2.object({ rules: z2.array(z2.unknown()) });
|
|
216
|
+
function parseBrandRules(answer) {
|
|
217
|
+
const parsed = Answer2.safeParse(answer);
|
|
218
|
+
if (!parsed.success) return null;
|
|
219
|
+
return parsed.data.rules.flatMap((raw) => {
|
|
220
|
+
const rule = Rule.safeParse(raw);
|
|
221
|
+
if (!rule.success) return [];
|
|
222
|
+
const { forbid, require: require2, allow, ...rest } = rule.data;
|
|
223
|
+
return [
|
|
224
|
+
{
|
|
225
|
+
...rest,
|
|
226
|
+
...forbid?.length ? { forbid } : {},
|
|
227
|
+
...require2?.length ? { require: require2 } : {},
|
|
228
|
+
...allow?.length ? { allow } : {}
|
|
229
|
+
}
|
|
230
|
+
];
|
|
231
|
+
}).slice(0, MAX_RULES);
|
|
232
|
+
}
|
|
233
|
+
var RULE_HEADING = /rule|never|copy|voice|tone|logo|imag|photo|illustrat|legal|claim|checklist|reflex|prohibit|say|regla|nunca|voz|tono|imagen|foto|prohib|decir|règle|jamais|regel|stimme|bild|regra|imagem/i;
|
|
234
|
+
function ruleSections(brandMd) {
|
|
235
|
+
const headings = [...brandMd.slice(0, BRAND_MD_CHARS).matchAll(/^#{2,4}\s+(.+)$/gm)].map((m) => (m[1] ?? "").trim()).filter((h) => RULE_HEADING.test(h));
|
|
236
|
+
const fence = /```generation-style/.test(brandMd) ? ["the ```generation-style block"] : [];
|
|
237
|
+
return [.../* @__PURE__ */ new Set([...headings, ...fence])];
|
|
238
|
+
}
|
|
239
|
+
var PRIVATE_QUOTE_LINE = "Never publish a customer quote or an identifiable customer conversation.";
|
|
240
|
+
var PRIVATE_QUOTE_MEANT = "Never publish what a customer said in a private call, chat or note, nor a conversation that identifies them. A testimonial, review or case study the customer published or agreed to is not a private call: an ad may quote it.";
|
|
241
|
+
function brandRulesPrompt(document) {
|
|
242
|
+
const brandMd = document.replaceAll(PRIVATE_QUOTE_LINE, PRIVATE_QUOTE_MEANT);
|
|
243
|
+
const sections = ruleSections(brandMd);
|
|
244
|
+
return [
|
|
245
|
+
"You read a company's brand guidelines (BRAND.md), written in any language, for the people who make its ads. List every standing rule they set that an ad, its words, its pictures, its people or its logo must follow. Extract only what they state; never invent a rule.",
|
|
246
|
+
"",
|
|
247
|
+
"Go through the document section by section: every bullet or sentence of a section about copy or wording, voice, what the brand never says, things to reject, legal risk or claims it may not make, a checklist before publishing, how its name, numbers or prices are written, which logo to use and what never to do to it, photography, illustration, imagery or a generation-style block is one rule; keep each, a style taste included (as a prefer), whatever language the section is in. Leave out only rules about web pages, components, code, spacing, typefaces, colours' hex values and where a colour goes on a page.",
|
|
248
|
+
...sections.length > 0 ? [
|
|
249
|
+
"",
|
|
250
|
+
`Sections that most likely hold rules, each to be read to its end: ${sections.map((h) => `"${h}"`).join(", ")}.`
|
|
251
|
+
] : [],
|
|
252
|
+
"",
|
|
253
|
+
`Return JSON only: {"rules": [{"text": string, "strength": "never" | "must" | "prefer", "applies": "copy" | "picture" | "cast" | "logo" | "voice" | "sound" | "subtitles" | "any", "forbid": string[], "require": string[], "allow": string[]}]}, at most ${MAX_RULES}, each rule once.`,
|
|
254
|
+
`- text: the rule quoted from the document in its own language, whole but short (one bullet, at most one sentence of why). It must make sense read alone, as an ad's reviewer reads it: when a bullet leans on its heading or table, name what it is about ("Brand red: never for text or buttons", not "Never text, never a button").`,
|
|
255
|
+
'- strength: "never" for a ban, "must" for something every ad has to do, "prefer" for a taste or a default.',
|
|
256
|
+
`- applies: "copy" for words, "picture" for what is shown, "cast" for who appears, "logo", "voice" or "sound" for a video's voice and audio, "subtitles", else "any".`,
|
|
257
|
+
'- forbid: the exact words the rule bans in every case, as the document quotes them ("\u2014" for em-dashes, "usted"); [] when the ban depends on the context or names no words. allow: the right spelling when the rule is about how a word is written or capitalised ("ZentIA"). require: words every ad must say; usually [].',
|
|
258
|
+
"",
|
|
259
|
+
"<brand_md>",
|
|
260
|
+
brandMd.slice(0, BRAND_MD_CHARS),
|
|
261
|
+
"</brand_md>"
|
|
262
|
+
].join("\n");
|
|
263
|
+
}
|
|
264
|
+
function brandRulesReader(cacheDir, onSpend) {
|
|
265
|
+
return async (brandMd) => {
|
|
266
|
+
const prompt = brandRulesPrompt(brandMd);
|
|
267
|
+
const key = createHash2("sha256").update(JSON.stringify([PROMPT_VERSION2, BRAND_RULES_MODEL, prompt])).digest("hex");
|
|
268
|
+
const file = path2.join(cacheDir, "brand-rules", `${key}.json`);
|
|
269
|
+
const inFlight = reading2.get(file);
|
|
270
|
+
if (inFlight) return await inFlight;
|
|
271
|
+
if (failed.has(file)) return null;
|
|
272
|
+
const read = readOrAsk2(file, prompt, onSpend, cacheDir).then((rules) => {
|
|
273
|
+
if (rules === null) failed.add(file);
|
|
274
|
+
return rules;
|
|
275
|
+
}).finally(() => reading2.delete(file));
|
|
276
|
+
reading2.set(file, read);
|
|
277
|
+
return await read;
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
var reading2 = /* @__PURE__ */ new Map();
|
|
281
|
+
var failed = /* @__PURE__ */ new Set();
|
|
282
|
+
async function readOrAsk2(file, prompt, onSpend, cacheDir) {
|
|
283
|
+
const cached = parseBrandRules(await readFile2(file, "utf8").then(JSON.parse, () => null));
|
|
284
|
+
if (cached) return cached;
|
|
285
|
+
const spent = [];
|
|
286
|
+
const answer = await askAboutText(BRAND_RULES_MODEL, prompt, (u) => onSpend ? onSpend(u) : spent.push(u), {
|
|
287
|
+
timeoutMs: TIMEOUT_MS2,
|
|
288
|
+
request: REQUEST2
|
|
289
|
+
}).catch(() => null);
|
|
290
|
+
await holdUnbilledSpend(cacheDir, spent).catch(() => void 0);
|
|
291
|
+
const rules = parseBrandRules(answer);
|
|
292
|
+
if (rules) {
|
|
293
|
+
await mkdir2(path2.dirname(file), { recursive: true }).catch(() => void 0);
|
|
294
|
+
await writeFile2(file, JSON.stringify({ rules }), "utf8").catch(() => void 0);
|
|
295
|
+
}
|
|
296
|
+
return rules;
|
|
297
|
+
}
|
|
298
|
+
async function readWorkspaceBrandRules(root, opts = {}) {
|
|
299
|
+
const brandMd = await readFile2(path2.join(root, "src", "brand", "BRAND.md"), "utf8").catch(() => "");
|
|
300
|
+
if (!brandMd.trim()) return [];
|
|
301
|
+
const read = opts.read ?? brandRulesReader(path2.join(root, "canvas", ".cache"), opts.onSpend);
|
|
302
|
+
return await read(brandMd).catch(() => null) ?? [];
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
// src/engine/creative-context/index.ts
|
|
306
|
+
async function readAllRules(root, readers = {}) {
|
|
307
|
+
const [declared, learned] = await Promise.all([
|
|
308
|
+
readWorkspaceBrandRules(root, {
|
|
309
|
+
...readers.brandRules ? { read: readers.brandRules } : {},
|
|
310
|
+
...readers.onSpend ? { onSpend: readers.onSpend } : {}
|
|
311
|
+
}),
|
|
312
|
+
readLearnedRules(root)
|
|
313
|
+
]);
|
|
314
|
+
return [...learned, ...declaredRules(declared)];
|
|
315
|
+
}
|
|
316
|
+
async function readCreativeContext(root, target = {}, opts = {}) {
|
|
317
|
+
const readers = opts.readers ?? {};
|
|
318
|
+
const [company, brand, rules] = await Promise.all([
|
|
319
|
+
readCompanyReading(root, ...readers.company ? [readers.company] : []).catch(() => null),
|
|
320
|
+
readWorkspaceBrandDoc(root, {
|
|
321
|
+
...readers.brand ? { read: readers.brand } : {},
|
|
322
|
+
...readers.onSpend ? { onSpend: readers.onSpend } : {}
|
|
323
|
+
}).catch(() => null),
|
|
324
|
+
readAllRules(root, readers).catch(() => [])
|
|
325
|
+
]);
|
|
326
|
+
const held = selectRules(rules, target, opts.waived);
|
|
327
|
+
return { company, brand, rules: held, rulesDigest: rulesDigest(held), caseFile: (slug) => readCaseFile(slug) };
|
|
328
|
+
}
|
|
329
|
+
var workspaceOfCreative = (creativeDir) => path3.resolve(creativeDir, "../../..");
|
|
330
|
+
function avoidOf(rules, max = 5) {
|
|
331
|
+
return rules.filter((r) => r.strength === "never" && r.applies !== "voice" && r.applies !== "sound").slice(0, max).map((r) => r.text.length > 90 ? `${r.text.slice(0, 89)}\u2026` : r.text);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
export {
|
|
335
|
+
memeRegister,
|
|
336
|
+
companyLine,
|
|
337
|
+
readCompanyReading,
|
|
338
|
+
readCaseFile,
|
|
339
|
+
readAllRules,
|
|
340
|
+
readCreativeContext,
|
|
341
|
+
workspaceOfCreative,
|
|
342
|
+
avoidOf
|
|
343
|
+
};
|
|
344
|
+
//# sourceMappingURL=chunk-6R2BQ6FK.js.map
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import {
|
|
2
|
+
REDDIT_LINK_REJECTED,
|
|
3
|
+
redditSearchHints,
|
|
4
|
+
redditSubredditsHints,
|
|
5
|
+
redditThreadHints
|
|
6
|
+
} from "./chunk-AK7CL5IW.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-R65V26HH.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-7P74QKVC.js.map
|