@koda-sl/baker-cli 0.449.0 → 0.450.0-dev.b454c3dd2
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 +11 -2
- package/dist/account-4H7QVBRK.js +80 -0
- package/dist/account-XQXC7BR6.js +80 -0
- package/dist/account-XQXC7BR6.js.map +1 -0
- package/dist/account-writes-AK42HGRM.js +66 -0
- package/dist/accounts-722UY53A.js +78 -0
- package/dist/accounts-722UY53A.js.map +1 -0
- package/dist/accounts-E67BMK7T.js +612 -0
- package/dist/accounts-E67BMK7T.js.map +1 -0
- package/dist/actions-6TQMSVWD.js +55 -0
- package/dist/ad-group-writes-QQS4223F.js +170 -0
- package/dist/ad-groups-WGPDPUI2.js +68 -0
- package/dist/ad-writes-XE2IE4DS.js +174 -0
- package/dist/add-2BEGRHUX.js +303 -0
- package/dist/add-2BEGRHUX.js.map +1 -0
- package/dist/add-LEMKEOPO.js +105 -0
- package/dist/add-LEMKEOPO.js.map +1 -0
- package/dist/ads-AGYCVD62.js +40 -0
- package/dist/ads-BCOSQALY.js +77 -0
- package/dist/advertisers-2VQKAYKG.js +121 -0
- package/dist/advertisers-2VQKAYKG.js.map +1 -0
- package/dist/analytics-IFELDWLL.js +1962 -0
- package/dist/analytics-IFELDWLL.js.map +1 -0
- package/dist/analytics-OH5QEH7F.js +434 -0
- package/dist/analytics-OH5QEH7F.js.map +1 -0
- package/dist/animate-AIZ3GS4J.js +480 -0
- package/dist/assign-PTUJUCEL.js +78 -0
- package/dist/assign-PTUJUCEL.js.map +1 -0
- package/dist/audience-size-LRI6GJRT.js +95 -0
- package/dist/audience-size-LRI6GJRT.js.map +1 -0
- package/dist/audiences-TGD5US2M.js +268 -0
- package/dist/audit-HWP7OPB7.js +152 -0
- package/dist/audit-HWP7OPB7.js.map +1 -0
- package/dist/autocomplete-J6DHU6MR.js +112 -0
- package/dist/autocomplete-J6DHU6MR.js.map +1 -0
- package/dist/avatars-467OSBD6.js +38 -0
- package/dist/bid-pricing-EO5WLHGV.js +100 -0
- package/dist/bid-pricing-EO5WLHGV.js.map +1 -0
- package/dist/brand-YRTEPGBK.js +22 -0
- package/dist/brief-OSFJ2V7F.js +478 -0
- package/dist/brief-OSFJ2V7F.js.map +1 -0
- package/dist/campaign-groups-PQ6KSQJR.js +96 -0
- package/dist/campaign-groups-PQ6KSQJR.js.map +1 -0
- package/dist/campaign-writes-5OVLUD5E.js +166 -0
- package/dist/campaign-writes-5OVLUD5E.js.map +1 -0
- package/dist/campaign-writes-SXLZFYF6.js +170 -0
- package/dist/campaigns-6T3NSUT2.js +110 -0
- package/dist/campaigns-6T3NSUT2.js.map +1 -0
- package/dist/campaigns-OYMXDGWX.js +107 -0
- package/dist/campaigns-YS3OGQXO.js +76 -0
- package/dist/canvas-YQFG52IG.js +46 -0
- package/dist/capabilities-PXBKUN2G.js +145 -0
- package/dist/capabilities-PXBKUN2G.js.map +1 -0
- package/dist/catalog-XLXIM7IW.js +65 -0
- package/dist/catalogs-BRXEDE56.js +128 -0
- package/dist/chatgpt-7W75X3ER.js +47 -0
- package/dist/chats-UK47UE7C.js +263 -0
- package/dist/chats-UK47UE7C.js.map +1 -0
- package/dist/chunk-24EB7EDR.js +433 -0
- package/dist/chunk-2AOE2MZQ.js +159 -0
- package/dist/chunk-2VPBIT65.js +509 -0
- package/dist/chunk-4PDHHHUJ.js +537 -0
- package/dist/chunk-4PDHHHUJ.js.map +1 -0
- package/dist/chunk-54C6YDGJ.js +622 -0
- package/dist/chunk-5WCSKQ7Z.js +188 -0
- package/dist/chunk-5ZNTADVR.js +197 -0
- package/dist/chunk-6F7DVPOS.js +310 -0
- package/dist/chunk-6NY2GPR4.js +304 -0
- package/dist/chunk-6Y7ZBENQ.js +207 -0
- package/dist/chunk-7CTMH5AK.js +111 -0
- package/dist/chunk-7EPXVICM.js +6184 -0
- package/dist/chunk-7EPXVICM.js.map +1 -0
- package/dist/chunk-7J6EHOH6.js +274 -0
- package/dist/chunk-ASI4P6X2.js +6667 -0
- package/dist/chunk-C46GUI2S.js +19 -0
- package/dist/chunk-CAMX6OHF.js +3182 -0
- package/dist/chunk-CAMX6OHF.js.map +1 -0
- package/dist/chunk-CWYAELVG.js +60 -0
- package/dist/chunk-DCRPXOJJ.js +363 -0
- package/dist/chunk-EAP4O4FE.js +440 -0
- package/dist/chunk-FPOGPFAG.js +4383 -0
- package/dist/chunk-FTWJFDIN.js +23992 -0
- package/dist/chunk-FTWJFDIN.js.map +1 -0
- package/dist/chunk-FUHN4MFY.js +103 -0
- package/dist/chunk-FYGR3I2A.js +297 -0
- package/dist/chunk-H3427GPU.js +206 -0
- package/dist/chunk-HDLYPC6K.js +172 -0
- package/dist/chunk-HDLYPC6K.js.map +1 -0
- package/dist/chunk-HR6IWNKE.js +2942 -0
- package/dist/chunk-HR6IWNKE.js.map +1 -0
- package/dist/chunk-HROZYQ5H.js +275 -0
- package/dist/chunk-HROZYQ5H.js.map +1 -0
- package/dist/chunk-HZUDRKGR.js +98 -0
- package/dist/chunk-I3ZR655O.js +382 -0
- package/dist/chunk-KMKEYI37.js +96 -0
- package/dist/chunk-KS2QY6MK.js +139 -0
- package/dist/chunk-LYQJ4PZW.js +5189 -0
- package/dist/chunk-MACCF4JZ.js +3147 -0
- package/dist/chunk-N4LAYIIN.js +175 -0
- package/dist/chunk-NA63BH7V.js +346 -0
- package/dist/chunk-NCWCZY5P.js +1441 -0
- package/dist/chunk-NDEE6G2J.js +494 -0
- package/dist/chunk-NJXNU2G6.js +819 -0
- package/dist/chunk-NYIGXDUG.js +178 -0
- package/dist/chunk-NYIGXDUG.js.map +1 -0
- package/dist/chunk-P5T7OZKV.js +26 -0
- package/dist/chunk-PZXCWSKV.js +1830 -0
- package/dist/chunk-QE7W555R.js +541 -0
- package/dist/chunk-QE7W555R.js.map +1 -0
- package/dist/chunk-R25YLW6H.js +20 -0
- package/dist/chunk-RL5CP7N6.js +57 -0
- package/dist/chunk-RX2DKU3W.js +592 -0
- package/dist/chunk-SJYEY5MV.js +172 -0
- package/dist/chunk-SJYEY5MV.js.map +1 -0
- package/dist/chunk-ULG4QRTV.js +92 -0
- package/dist/chunk-VL43TNIP.js +455 -0
- package/dist/chunk-VLMBTPXU.js +51 -0
- package/dist/chunk-VNUNE5AB.js +160 -0
- package/dist/chunk-VYQ3QJ3C.js +169 -0
- package/dist/chunk-WGUQHAJY.js +23 -0
- package/dist/chunk-WKQG6TER.js +1079 -0
- package/dist/chunk-XFGAUP5B.js +76 -0
- package/dist/chunk-ZDMTXQ2Q.js +337 -0
- package/dist/claim-W6G6VEG5.js +198 -0
- package/dist/claim-W6G6VEG5.js.map +1 -0
- package/dist/cli.js +30 -30
- package/dist/companies-TS6KBATJ.js +196 -0
- package/dist/companies-TS6KBATJ.js.map +1 -0
- package/dist/complete-LYR2HMQU.js +82 -0
- package/dist/complete-LYR2HMQU.js.map +1 -0
- package/dist/connect-FCXNVTXG.js +43 -0
- package/dist/conversation-6ZJGPCXM.js +94 -0
- package/dist/conversation-6ZJGPCXM.js.map +1 -0
- package/dist/conversion-report-XQBJ6LG4.js +125 -0
- package/dist/conversion-writes-UBCVXP2E.js +120 -0
- package/dist/conversions-D236RTUK.js +76 -0
- package/dist/conversions-UHB55MMQ.js +136 -0
- package/dist/conversions-UHB55MMQ.js.map +1 -0
- package/dist/create-EX6OWLNM.js +208 -0
- package/dist/create-EX6OWLNM.js.map +1 -0
- package/dist/create-JCA7JPLP.js +131 -0
- package/dist/create-JCA7JPLP.js.map +1 -0
- package/dist/create-JFSK4BOP.js +60 -0
- package/dist/create-JFSK4BOP.js.map +1 -0
- package/dist/create-WU22YYU2.js +236 -0
- package/dist/create-WU22YYU2.js.map +1 -0
- package/dist/creatives-FXUQ5WSD.js +51 -0
- package/dist/creatives-KGXUOYPE.js +183 -0
- package/dist/creatives-KGXUOYPE.js.map +1 -0
- package/dist/credentials-MJC7PGKR.js +1056 -0
- package/dist/credentials-MJC7PGKR.js.map +1 -0
- package/dist/critique-GS5VV5ZC.js +214 -0
- package/dist/critique-GS5VV5ZC.js.map +1 -0
- package/dist/critique-TPHR27KH.js +1450 -0
- package/dist/critique-TPHR27KH.js.map +1 -0
- package/dist/crm-AVCM5D4G.js +319 -0
- package/dist/crm-AVCM5D4G.js.map +1 -0
- package/dist/crm-VK44O3ED.js +225 -0
- package/dist/crm-VK44O3ED.js.map +1 -0
- package/dist/customers-XH2DMTFH.js +57 -0
- package/dist/delete-E3R3TKIL.js +67 -0
- package/dist/delete-E3R3TKIL.js.map +1 -0
- package/dist/delete-KRH2YMSZ.js +55 -0
- package/dist/delete-KRH2YMSZ.js.map +1 -0
- package/dist/delete-WI5E3DR3.js +64 -0
- package/dist/delete-WI5E3DR3.js.map +1 -0
- package/dist/demographics-XV5PBA77.js +139 -0
- package/dist/demographics-XV5PBA77.js.map +1 -0
- package/dist/discard-HTQUUHJR.js +67 -0
- package/dist/discard-HTQUUHJR.js.map +1 -0
- package/dist/domain-RECGZXJB.js +99 -0
- package/dist/domain-RECGZXJB.js.map +1 -0
- package/dist/draft-2IBSJEKC.js +218 -0
- package/dist/draft-2IBSJEKC.js.map +1 -0
- package/dist/draft-MNFJ4G3C.js +281 -0
- package/dist/draft-PVTX6QT6.js +329 -0
- package/dist/draft-PVTX6QT6.js.map +1 -0
- package/dist/draft-Q546QPPU.js +307 -0
- package/dist/draft-Q546QPPU.js.map +1 -0
- package/dist/engine/index.js +6 -6
- package/dist/facets-7EVPJMKS.js +115 -0
- package/dist/facets-7EVPJMKS.js.map +1 -0
- package/dist/feedback-EIZKS4JU.js +66 -0
- package/dist/feedback-record-TKO54BOE.js +176 -0
- package/dist/feedback-record-TKO54BOE.js.map +1 -0
- package/dist/fetch-4BY6HYUM.js +177 -0
- package/dist/fetch-4BY6HYUM.js.map +1 -0
- package/dist/find-FRRHAPWX.js +134 -0
- package/dist/fit-UOFYFJ4Q.js +45 -0
- package/dist/flows-KTFAML22.js +248 -0
- package/dist/flows-KTFAML22.js.map +1 -0
- package/dist/fonts-MXR3ZKDX.js +35 -0
- package/dist/forecast-3QTJYVND.js +105 -0
- package/dist/forecast-3QTJYVND.js.map +1 -0
- package/dist/funnel-I6XIAEHG.js +393 -0
- package/dist/funnel-I6XIAEHG.js.map +1 -0
- package/dist/ga4-DV2AXCSL.js +55 -0
- package/dist/generate-3XYYITU6.js +262 -0
- package/dist/get-5PKNKJ5S.js +57 -0
- package/dist/get-5PKNKJ5S.js.map +1 -0
- package/dist/get-72YPHJGV.js +79 -0
- package/dist/get-72YPHJGV.js.map +1 -0
- package/dist/google-6OGZX47I.js +1872 -0
- package/dist/google-QYYYSSXI.js +136 -0
- package/dist/google-ads-QGMQKZQD.js +196 -0
- package/dist/google-ads-QGMQKZQD.js.map +1 -0
- package/dist/gsc-TAKOF7J5.js +30 -0
- package/dist/history-6AVQX2OQ.js +134 -0
- package/dist/history-6AVQX2OQ.js.map +1 -0
- package/dist/history-Q3QCT64S.js +67 -0
- package/dist/hubspot-SVEMFK5S.js +780 -0
- package/dist/hubspot-SVEMFK5S.js.map +1 -0
- package/dist/icon-L4RSS6PZ.js +137 -0
- package/dist/ideas-NFOW3HKJ.js +33 -0
- package/dist/images-2EFFUNNV.js +90 -0
- package/dist/ingest-2EIKN4QC.js +24 -0
- package/dist/ingest-2SO62RRI.js +108 -0
- package/dist/ingest-2SO62RRI.js.map +1 -0
- package/dist/insights-LNAXV2CG.js +122 -0
- package/dist/inspect-4OOS4APT.js +190 -0
- package/dist/inspect-4OOS4APT.js.map +1 -0
- package/dist/inspiration-S3DU4CMQ.js +53 -0
- package/dist/keyword-metrics-SF4CSNZ2.js +198 -0
- package/dist/keyword-metrics-SF4CSNZ2.js.map +1 -0
- package/dist/keywords-for-site-WDAOPNKC.js +129 -0
- package/dist/keywords-for-site-WDAOPNKC.js.map +1 -0
- package/dist/landing-2ZB46LXH.js +28 -0
- package/dist/leads-A4W5KTWB.js +91 -0
- package/dist/leads-A4W5KTWB.js.map +1 -0
- package/dist/learn-IPULBCOD.js +204 -0
- package/dist/learn-IPULBCOD.js.map +1 -0
- package/dist/line-item-writes-EMYSOJKM.js +209 -0
- package/dist/line-item-writes-EMYSOJKM.js.map +1 -0
- package/dist/line-items-5NECXUZT.js +103 -0
- package/dist/link-CI45HWFN.js +65 -0
- package/dist/link-CI45HWFN.js.map +1 -0
- package/dist/linkedin-B7SYR75X.js +1009 -0
- package/dist/linkedin-B7SYR75X.js.map +1 -0
- package/dist/list-2BARXOT5.js +152 -0
- package/dist/list-2BARXOT5.js.map +1 -0
- package/dist/list-BIEVLEHS.js +304 -0
- package/dist/list-BIEVLEHS.js.map +1 -0
- package/dist/list-ZBT3EBVZ.js +64 -0
- package/dist/list-ZBT3EBVZ.js.map +1 -0
- package/dist/locations-2NKBJKBT.js +67 -0
- package/dist/log-C23OOAJZ.js +93 -0
- package/dist/log-C23OOAJZ.js.map +1 -0
- package/dist/logo-Q5D7PZY6.js +18 -0
- package/dist/lookup-ETWY47F7.js +23 -0
- package/dist/make-TPKKJXGL.js +594 -0
- package/dist/make-TPKKJXGL.js.map +1 -0
- package/dist/map-SYZMPHLL.js +405 -0
- package/dist/map-SYZMPHLL.js.map +1 -0
- package/dist/mcp-6FQBVJ6F.js +477 -0
- package/dist/mcp-6FQBVJ6F.js.map +1 -0
- package/dist/media-sources-ZXHEEP6T.js +32 -0
- package/dist/members-UDY4OOJW.js +45 -0
- package/dist/members-UDY4OOJW.js.map +1 -0
- package/dist/models-3Z6MDHQW.js +155 -0
- package/dist/normalize-DAKHYS3V.js +142 -0
- package/dist/normalize-DAKHYS3V.js.map +1 -0
- package/dist/options-QL3ULED5.js +122 -0
- package/dist/options-QL3ULED5.js.map +1 -0
- package/dist/performance-UF5VTY2U.js +25 -0
- package/dist/pixels-TZPF746S.js +60 -0
- package/dist/plan-FT632COT.js +51 -0
- package/dist/plan-FT632COT.js.map +1 -0
- package/dist/promoted-tweet-writes-7HGESJ46.js +181 -0
- package/dist/promoted-tweet-writes-7HGESJ46.js.map +1 -0
- package/dist/promoted-tweets-LZKS5JIF.js +119 -0
- package/dist/publish-NPD3SMZL.js +323 -0
- package/dist/publish-NPD3SMZL.js.map +1 -0
- package/dist/questionnaire-JNGYJTAY.js +37 -0
- package/dist/questionnaire-JNGYJTAY.js.map +1 -0
- package/dist/reddit-NU2N3LZD.js +27 -0
- package/dist/refresh-EBVJ2C6L.js +95 -0
- package/dist/refresh-EBVJ2C6L.js.map +1 -0
- package/dist/release-V43YB2PY.js +61 -0
- package/dist/release-V43YB2PY.js.map +1 -0
- package/dist/remove-QPSWLFI4.js +51 -0
- package/dist/remove-QPSWLFI4.js.map +1 -0
- package/dist/reopen-GQ66NMWF.js +64 -0
- package/dist/reopen-GQ66NMWF.js.map +1 -0
- package/dist/rerun-PZK275DY.js +86 -0
- package/dist/rerun-PZK275DY.js.map +1 -0
- package/dist/research-FMM6AWZC.js +62 -0
- package/dist/research-GEOCUBXB.js +263 -0
- package/dist/research-GEOCUBXB.js.map +1 -0
- package/dist/reset-REXJ6AUK.js +55 -0
- package/dist/reset-REXJ6AUK.js.map +1 -0
- package/dist/reset-Y72IVESB.js +55 -0
- package/dist/reset-Y72IVESB.js.map +1 -0
- package/dist/resolve-OGX7C4TV.js +122 -0
- package/dist/resolve-OGX7C4TV.js.map +1 -0
- package/dist/retry-CD6JAQ3F.js +61 -0
- package/dist/retry-CD6JAQ3F.js.map +1 -0
- package/dist/retry-TCUBBFR5.js +63 -0
- package/dist/retry-TCUBBFR5.js.map +1 -0
- package/dist/run-A5ZDXTOI.js +66 -0
- package/dist/run-A5ZDXTOI.js.map +1 -0
- package/dist/run-EUO34T2J.js +61 -0
- package/dist/scaffold-ad-SW2HEWM3.js +1550 -0
- package/dist/scaffold-ad-SW2HEWM3.js.map +1 -0
- package/dist/scaffold-static-ad-ECTJL54Y.js +967 -0
- package/dist/scaffold-static-ad-ECTJL54Y.js.map +1 -0
- package/dist/scaffold-video-EI7U7RBK.js +874 -0
- package/dist/scaffold-video-EI7U7RBK.js.map +1 -0
- package/dist/schedule-S5YZJZ5U.js +62 -0
- package/dist/schedule-S5YZJZ5U.js.map +1 -0
- package/dist/scheduled-agents-N4LJRM4C.js +49 -0
- package/dist/schema-R7JWWOF4.js +133 -0
- package/dist/schema-R7JWWOF4.js.map +1 -0
- package/dist/search-KHMQH3AT.js +175 -0
- package/dist/search-KHMQH3AT.js.map +1 -0
- package/dist/select-O2FN2JEQ.js +95 -0
- package/dist/select-O2FN2JEQ.js.map +1 -0
- package/dist/sends-BQZM5PLS.js +310 -0
- package/dist/sends-BQZM5PLS.js.map +1 -0
- package/dist/set-prompt-2HASHGWC.js +187 -0
- package/dist/set-prompt-2HASHGWC.js.map +1 -0
- package/dist/setup-links-GYSE56GX.js +142 -0
- package/dist/setup-links-GYSE56GX.js.map +1 -0
- package/dist/site-4SKM7RKG.js +178 -0
- package/dist/site-4SKM7RKG.js.map +1 -0
- package/dist/sources-FQ2UZTHL.js +30 -0
- package/dist/sources-R2NKNC6J.js +422 -0
- package/dist/sources-R2NKNC6J.js.map +1 -0
- package/dist/stale-W756ACKC.js +64 -0
- package/dist/stale-W756ACKC.js.map +1 -0
- package/dist/status-SE2VZJJB.js +63 -0
- package/dist/status-SE2VZJJB.js.map +1 -0
- package/dist/stock-KXJ26BY4.js +179 -0
- package/dist/studio-SYKOSNDB.js +49 -0
- package/dist/sync-LJGSODK3.js +55 -0
- package/dist/sync-LJGSODK3.js.map +1 -0
- package/dist/sync-definition-QR2N233R.js +54 -0
- package/dist/tags-4BAVFH4S.js +225 -0
- package/dist/tags-4BAVFH4S.js.map +1 -0
- package/dist/tags-5SBMRC2A.js +21 -0
- package/dist/tags-5SBMRC2A.js.map +1 -0
- package/dist/tags-PYWFSBTR.js +26 -0
- package/dist/tags-QQU3OKMZ.js +21 -0
- package/dist/tags-QQU3OKMZ.js.map +1 -0
- package/dist/tags-YYLNF3PK.js +21 -0
- package/dist/tags-YYLNF3PK.js.map +1 -0
- package/dist/targeting-criteria-RJFLFICN.js +113 -0
- package/dist/targets-S2MT2PNB.js +103 -0
- package/dist/targets-S2MT2PNB.js.map +1 -0
- package/dist/templates-ZE5TOGRT.js +179 -0
- package/dist/templates-ZE5TOGRT.js.map +1 -0
- package/dist/testimonials-DII5DYLR.js +32 -0
- package/dist/top-companies-PGIAEHDF.js +109 -0
- package/dist/top-companies-PGIAEHDF.js.map +1 -0
- package/dist/translate-GXTS633J.js +599 -0
- package/dist/translate-GXTS633J.js.map +1 -0
- package/dist/triggers-2PTONXRU.js +142 -0
- package/dist/triggers-2PTONXRU.js.map +1 -0
- package/dist/unlink-XRMYJ6DB.js +68 -0
- package/dist/unlink-XRMYJ6DB.js.map +1 -0
- package/dist/unstage-FY7A3YFF.js +85 -0
- package/dist/unstage-FY7A3YFF.js.map +1 -0
- package/dist/unstage-RM2RLXKD.js +96 -0
- package/dist/unstage-RM2RLXKD.js.map +1 -0
- package/dist/update-E5SRBXQR.js +143 -0
- package/dist/update-E5SRBXQR.js.map +1 -0
- package/dist/update-PJ67D2OG.js +156 -0
- package/dist/update-PJ67D2OG.js.map +1 -0
- package/dist/update-S4562V3O.js +64 -0
- package/dist/update-S4562V3O.js.map +1 -0
- package/dist/update-V6YVEUI2.js +99 -0
- package/dist/update-V6YVEUI2.js.map +1 -0
- package/dist/upload-R6CQVLKF.js +127 -0
- package/dist/upload-R6CQVLKF.js.map +1 -0
- package/dist/url-options-JOKU46F2.js +128 -0
- package/dist/url-options-JOKU46F2.js.map +1 -0
- package/dist/url-params-7U2XMOWF.js +99 -0
- package/dist/url-params-7U2XMOWF.js.map +1 -0
- package/dist/validate-7YPOUKPB.js +90 -0
- package/dist/validate-7YPOUKPB.js.map +1 -0
- package/dist/videos-LICG6ACJ.js +39 -0
- package/dist/viewer-check-L4B4LIAX.js +69 -0
- package/dist/web-BA2PGTWU.js +141 -0
- package/dist/web-BA2PGTWU.js.map +1 -0
- package/dist/winning-ads-C6S2C5VP.js +62 -0
- package/dist/write-commands-7SJ3BOW5.js +1016 -0
- package/dist/write-commands-7SJ3BOW5.js.map +1 -0
- package/dist/x-CZHRC6U7.js +47 -0
- package/package.json +1 -1
- package/dist/account-AL2ZDSR7.js +0 -79
- package/dist/account-AL2ZDSR7.js.map +0 -1
- package/dist/account-F6MHQ64I.js +0 -80
- package/dist/account-writes-ISE4U2FQ.js +0 -66
- package/dist/accounts-HAFCLSR5.js +0 -77
- package/dist/accounts-HAFCLSR5.js.map +0 -1
- package/dist/accounts-O5MFO3QQ.js +0 -611
- package/dist/accounts-O5MFO3QQ.js.map +0 -1
- package/dist/actions-P35MEMGN.js +0 -55
- package/dist/ad-group-writes-UU5NNKSO.js +0 -170
- package/dist/ad-groups-CGFXZNIA.js +0 -68
- package/dist/ad-writes-NALDYWOR.js +0 -174
- package/dist/add-5GAN6CVO.js +0 -280
- package/dist/add-5GAN6CVO.js.map +0 -1
- package/dist/add-6DTC6X5G.js +0 -104
- package/dist/add-6DTC6X5G.js.map +0 -1
- package/dist/ads-C47NA2HH.js +0 -40
- package/dist/ads-PV7GZXPR.js +0 -77
- package/dist/advertisers-AE75CGVE.js +0 -120
- package/dist/advertisers-AE75CGVE.js.map +0 -1
- package/dist/analytics-FKCXIMPO.js +0 -1958
- package/dist/analytics-FKCXIMPO.js.map +0 -1
- package/dist/analytics-FPWQQGRM.js +0 -433
- package/dist/analytics-FPWQQGRM.js.map +0 -1
- package/dist/animate-FWWHSYPL.js +0 -480
- package/dist/assign-ABN2AQ4J.js +0 -77
- package/dist/assign-ABN2AQ4J.js.map +0 -1
- package/dist/audience-size-GNBJY35X.js +0 -94
- package/dist/audience-size-GNBJY35X.js.map +0 -1
- package/dist/audiences-VEKGLWBG.js +0 -268
- package/dist/audit-3VS63TBW.js +0 -151
- package/dist/audit-3VS63TBW.js.map +0 -1
- package/dist/autocomplete-VS3XG3B7.js +0 -111
- package/dist/autocomplete-VS3XG3B7.js.map +0 -1
- package/dist/avatars-EKCKHCC3.js +0 -38
- package/dist/bid-pricing-Q72B65AY.js +0 -99
- package/dist/bid-pricing-Q72B65AY.js.map +0 -1
- package/dist/brand-C6PFGGQN.js +0 -22
- package/dist/brief-UO52ZHFI.js +0 -477
- package/dist/brief-UO52ZHFI.js.map +0 -1
- package/dist/campaign-groups-KFFYQPU3.js +0 -95
- package/dist/campaign-groups-KFFYQPU3.js.map +0 -1
- package/dist/campaign-writes-FHOS5XZY.js +0 -165
- package/dist/campaign-writes-FHOS5XZY.js.map +0 -1
- package/dist/campaign-writes-SX52CJYW.js +0 -170
- package/dist/campaigns-2NHWBF5C.js +0 -109
- package/dist/campaigns-2NHWBF5C.js.map +0 -1
- package/dist/campaigns-KZYZTXDS.js +0 -107
- package/dist/campaigns-X3DPCCSN.js +0 -76
- package/dist/canvas-DPCBGW7K.js +0 -46
- package/dist/capabilities-DJFTRJKS.js +0 -144
- package/dist/capabilities-DJFTRJKS.js.map +0 -1
- package/dist/catalog-ME44ZRZF.js +0 -65
- package/dist/catalogs-G3YEVG6S.js +0 -128
- package/dist/chatgpt-QNUN63YS.js +0 -47
- package/dist/chats-D2CSDX5Q.js +0 -262
- package/dist/chats-D2CSDX5Q.js.map +0 -1
- package/dist/chunk-2QHODRR6.js +0 -19
- package/dist/chunk-35XWJEWH.js +0 -274
- package/dist/chunk-3G3ZDLMI.js +0 -197
- package/dist/chunk-3HJLHTWP.js +0 -163
- package/dist/chunk-3HJLHTWP.js.map +0 -1
- package/dist/chunk-3IBYKLXR.js +0 -337
- package/dist/chunk-4AUMTNVB.js +0 -346
- package/dist/chunk-4BQXAE7Z.js +0 -494
- package/dist/chunk-54UVGFX3.js +0 -440
- package/dist/chunk-5Y5UAJWD.js +0 -111
- package/dist/chunk-5ZDLTE5T.js +0 -159
- package/dist/chunk-647RO73Q.js +0 -92
- package/dist/chunk-7YCRFMXF.js +0 -433
- package/dist/chunk-7ZHMGXE2.js +0 -819
- package/dist/chunk-A4LOJ2VD.js +0 -23
- package/dist/chunk-AEOSAVVL.js +0 -310
- package/dist/chunk-CHSNHVYF.js +0 -3182
- package/dist/chunk-CHSNHVYF.js.map +0 -1
- package/dist/chunk-CSYSX4D2.js +0 -175
- package/dist/chunk-DWHIOO7E.js +0 -390
- package/dist/chunk-DWHIOO7E.js.map +0 -1
- package/dist/chunk-EDLZGTGN.js +0 -216
- package/dist/chunk-EDLZGTGN.js.map +0 -1
- package/dist/chunk-FD27ZDVP.js +0 -304
- package/dist/chunk-GBMP4F45.js +0 -3147
- package/dist/chunk-GLCPTMPG.js +0 -5189
- package/dist/chunk-HBTF25YG.js +0 -592
- package/dist/chunk-HQSCJYZO.js +0 -26
- package/dist/chunk-IBURXTL4.js +0 -509
- package/dist/chunk-IR6D7K4H.js +0 -382
- package/dist/chunk-J5IY3GVE.js +0 -96
- package/dist/chunk-JQJDXPCO.js +0 -103
- package/dist/chunk-K66OLA6Y.js +0 -4383
- package/dist/chunk-K7FZXIOZ.js +0 -60
- package/dist/chunk-KFE3S63W.js +0 -1441
- package/dist/chunk-KHRXPQID.js +0 -169
- package/dist/chunk-KLBTXETO.js +0 -23992
- package/dist/chunk-KLBTXETO.js.map +0 -1
- package/dist/chunk-KQTYTCKQ.js +0 -98
- package/dist/chunk-LYBXCXJB.js +0 -160
- package/dist/chunk-LZ73CZGP.js +0 -188
- package/dist/chunk-MELOSESI.js +0 -20
- package/dist/chunk-MXYBTMKB.js +0 -363
- package/dist/chunk-NPY4QUMQ.js +0 -622
- package/dist/chunk-OZRUJVIQ.js +0 -206
- package/dist/chunk-QRP3PXWN.js +0 -455
- package/dist/chunk-RPUSTYHL.js +0 -170
- package/dist/chunk-RPUSTYHL.js.map +0 -1
- package/dist/chunk-S77PZVYM.js +0 -297
- package/dist/chunk-SHL7LOC3.js +0 -51
- package/dist/chunk-SSJK7FEV.js +0 -2886
- package/dist/chunk-SSJK7FEV.js.map +0 -1
- package/dist/chunk-TT5R35PJ.js +0 -207
- package/dist/chunk-ULJ5RFOV.js +0 -76
- package/dist/chunk-VB6WJJR3.js +0 -1830
- package/dist/chunk-W3ZHJJVT.js +0 -139
- package/dist/chunk-XF4JUKVF.js +0 -6151
- package/dist/chunk-XF4JUKVF.js.map +0 -1
- package/dist/chunk-Y6O7EWYY.js +0 -57
- package/dist/chunk-YRQYA2LR.js +0 -217
- package/dist/chunk-YRQYA2LR.js.map +0 -1
- package/dist/chunk-Z2EOC6PL.js +0 -6667
- package/dist/chunk-ZEYEWPK6.js +0 -1079
- package/dist/claim-FZ5OQLMU.js +0 -197
- package/dist/claim-FZ5OQLMU.js.map +0 -1
- package/dist/companies-DNI634RC.js +0 -195
- package/dist/companies-DNI634RC.js.map +0 -1
- package/dist/complete-2FZMGJV5.js +0 -81
- package/dist/complete-2FZMGJV5.js.map +0 -1
- package/dist/connect-QCOGEPP4.js +0 -36
- package/dist/conversation-6IOGV7B7.js +0 -93
- package/dist/conversation-6IOGV7B7.js.map +0 -1
- package/dist/conversion-report-N4HANYOB.js +0 -125
- package/dist/conversion-writes-LW4HQKK5.js +0 -120
- package/dist/conversions-4SRZPBBX.js +0 -135
- package/dist/conversions-4SRZPBBX.js.map +0 -1
- package/dist/conversions-TS723AZV.js +0 -76
- package/dist/create-BJNMO6HT.js +0 -207
- package/dist/create-BJNMO6HT.js.map +0 -1
- package/dist/create-FX4OJ2XF.js +0 -59
- package/dist/create-FX4OJ2XF.js.map +0 -1
- package/dist/create-RM7HV77Y.js +0 -130
- package/dist/create-RM7HV77Y.js.map +0 -1
- package/dist/create-VXM34ZWH.js +0 -235
- package/dist/create-VXM34ZWH.js.map +0 -1
- package/dist/creatives-JSWBFQ5R.js +0 -182
- package/dist/creatives-JSWBFQ5R.js.map +0 -1
- package/dist/creatives-SJTJU6VT.js +0 -51
- package/dist/credentials-VOZTILFO.js +0 -1055
- package/dist/credentials-VOZTILFO.js.map +0 -1
- package/dist/critique-65W63MFZ.js +0 -213
- package/dist/critique-65W63MFZ.js.map +0 -1
- package/dist/critique-ZS4ON3SU.js +0 -1449
- package/dist/critique-ZS4ON3SU.js.map +0 -1
- package/dist/crm-52ROSWH5.js +0 -224
- package/dist/crm-52ROSWH5.js.map +0 -1
- package/dist/crm-R5IXIFIV.js +0 -318
- package/dist/crm-R5IXIFIV.js.map +0 -1
- package/dist/customers-4AWBFDUF.js +0 -56
- package/dist/delete-AIGE4Y4H.js +0 -63
- package/dist/delete-AIGE4Y4H.js.map +0 -1
- package/dist/delete-HGHXY24R.js +0 -54
- package/dist/delete-HGHXY24R.js.map +0 -1
- package/dist/delete-M2GDLPYN.js +0 -66
- package/dist/delete-M2GDLPYN.js.map +0 -1
- package/dist/demographics-NTWB2IMG.js +0 -138
- package/dist/demographics-NTWB2IMG.js.map +0 -1
- package/dist/discard-2WWQG6OU.js +0 -66
- package/dist/discard-2WWQG6OU.js.map +0 -1
- package/dist/domain-Y2LT6JLT.js +0 -98
- package/dist/domain-Y2LT6JLT.js.map +0 -1
- package/dist/draft-EJXNNJ3Y.js +0 -306
- package/dist/draft-EJXNNJ3Y.js.map +0 -1
- package/dist/draft-FJ7WHIXW.js +0 -328
- package/dist/draft-FJ7WHIXW.js.map +0 -1
- package/dist/draft-SLHAKJ2A.js +0 -217
- package/dist/draft-SLHAKJ2A.js.map +0 -1
- package/dist/draft-THPZFASM.js +0 -281
- package/dist/facets-U7AQC4H6.js +0 -114
- package/dist/facets-U7AQC4H6.js.map +0 -1
- package/dist/feedback-XNJQ63DS.js +0 -66
- package/dist/feedback-record-FDLMWMDG.js +0 -175
- package/dist/feedback-record-FDLMWMDG.js.map +0 -1
- package/dist/fetch-W7NULDEO.js +0 -176
- package/dist/fetch-W7NULDEO.js.map +0 -1
- package/dist/find-OTDIX6V4.js +0 -134
- package/dist/fit-7237F5EB.js +0 -45
- package/dist/flows-KABCBS3S.js +0 -244
- package/dist/flows-KABCBS3S.js.map +0 -1
- package/dist/fonts-EMMX3KII.js +0 -34
- package/dist/forecast-GNODEIIC.js +0 -104
- package/dist/forecast-GNODEIIC.js.map +0 -1
- package/dist/funnel-AAX27NH4.js +0 -837
- package/dist/funnel-AAX27NH4.js.map +0 -1
- package/dist/ga4-UDQ2HA2J.js +0 -55
- package/dist/generate-MMBYB44G.js +0 -262
- package/dist/get-QEYJRLV3.js +0 -54
- package/dist/get-QEYJRLV3.js.map +0 -1
- package/dist/get-RTVUZM6E.js +0 -78
- package/dist/get-RTVUZM6E.js.map +0 -1
- package/dist/google-KTO3PLEU.js +0 -136
- package/dist/google-M7KEXVK5.js +0 -1872
- package/dist/google-ads-OK6IG3UV.js +0 -195
- package/dist/google-ads-OK6IG3UV.js.map +0 -1
- package/dist/gsc-P3QYGDV2.js +0 -30
- package/dist/history-DBIEYQHY.js +0 -67
- package/dist/history-PQUJKK26.js +0 -133
- package/dist/history-PQUJKK26.js.map +0 -1
- package/dist/hubspot-Y77VLY6Y.js +0 -779
- package/dist/hubspot-Y77VLY6Y.js.map +0 -1
- package/dist/icon-I43F77FV.js +0 -137
- package/dist/ideas-MIDU7YOA.js +0 -32
- package/dist/images-S254MS6O.js +0 -90
- package/dist/ingest-J4I3HKM3.js +0 -107
- package/dist/ingest-J4I3HKM3.js.map +0 -1
- package/dist/ingest-YV2NLDBE.js +0 -23
- package/dist/insights-ZIU6FJMS.js +0 -122
- package/dist/inspect-Q5NHBBHX.js +0 -189
- package/dist/inspect-Q5NHBBHX.js.map +0 -1
- package/dist/inspiration-P265QJ2H.js +0 -53
- package/dist/keyword-metrics-PDY4ZXSP.js +0 -197
- package/dist/keyword-metrics-PDY4ZXSP.js.map +0 -1
- package/dist/keywords-for-site-GALSCV77.js +0 -128
- package/dist/keywords-for-site-GALSCV77.js.map +0 -1
- package/dist/landing-CJYGWCK4.js +0 -28
- package/dist/leads-PHKG6CP3.js +0 -90
- package/dist/leads-PHKG6CP3.js.map +0 -1
- package/dist/learn-3VO6DXUX.js +0 -203
- package/dist/learn-3VO6DXUX.js.map +0 -1
- package/dist/line-item-writes-E6MZPIZZ.js +0 -208
- package/dist/line-item-writes-E6MZPIZZ.js.map +0 -1
- package/dist/line-items-7ZGIKEF2.js +0 -103
- package/dist/link-QYAW6A2W.js +0 -64
- package/dist/link-QYAW6A2W.js.map +0 -1
- package/dist/linkedin-FFSDSGGS.js +0 -1008
- package/dist/linkedin-FFSDSGGS.js.map +0 -1
- package/dist/list-5IC6KIKO.js +0 -63
- package/dist/list-5IC6KIKO.js.map +0 -1
- package/dist/list-NVQC5SNY.js +0 -151
- package/dist/list-NVQC5SNY.js.map +0 -1
- package/dist/list-SAV3LQHY.js +0 -303
- package/dist/list-SAV3LQHY.js.map +0 -1
- package/dist/locations-74TPQWAT.js +0 -67
- package/dist/log-XZPVOALD.js +0 -92
- package/dist/log-XZPVOALD.js.map +0 -1
- package/dist/logo-2IP663QO.js +0 -18
- package/dist/lookup-XK45W2SH.js +0 -22
- package/dist/make-LCNP76OF.js +0 -593
- package/dist/make-LCNP76OF.js.map +0 -1
- package/dist/map-4J5WIWIG.js +0 -404
- package/dist/map-4J5WIWIG.js.map +0 -1
- package/dist/mcp-XXD7ZQCP.js +0 -476
- package/dist/mcp-XXD7ZQCP.js.map +0 -1
- package/dist/media-sources-O6ZRUA3N.js +0 -32
- package/dist/members-D5ZYLS4Y.js +0 -44
- package/dist/members-D5ZYLS4Y.js.map +0 -1
- package/dist/models-7U3GRYHF.js +0 -155
- package/dist/normalize-PCNC6E2N.js +0 -138
- package/dist/normalize-PCNC6E2N.js.map +0 -1
- package/dist/options-MQ65VEVD.js +0 -121
- package/dist/options-MQ65VEVD.js.map +0 -1
- package/dist/performance-6QW2KEEQ.js +0 -24
- package/dist/pixels-45A55MOP.js +0 -60
- package/dist/promoted-tweet-writes-JPLHY3GM.js +0 -180
- package/dist/promoted-tweet-writes-JPLHY3GM.js.map +0 -1
- package/dist/promoted-tweets-SURKMHFI.js +0 -119
- package/dist/publish-HCQ6MXLB.js +0 -322
- package/dist/publish-HCQ6MXLB.js.map +0 -1
- package/dist/reddit-GIP3ADMS.js +0 -26
- package/dist/refresh-UXQSLCR3.js +0 -94
- package/dist/refresh-UXQSLCR3.js.map +0 -1
- package/dist/release-5KVLXNP6.js +0 -60
- package/dist/release-5KVLXNP6.js.map +0 -1
- package/dist/remove-6FIVKCJI.js +0 -50
- package/dist/remove-6FIVKCJI.js.map +0 -1
- package/dist/reopen-YM5LNOLB.js +0 -63
- package/dist/reopen-YM5LNOLB.js.map +0 -1
- package/dist/rerun-CET74VPF.js +0 -85
- package/dist/rerun-CET74VPF.js.map +0 -1
- package/dist/research-EY7C7JJY.js +0 -62
- package/dist/research-YOGE7GT2.js +0 -262
- package/dist/research-YOGE7GT2.js.map +0 -1
- package/dist/reset-C4UHQ3EU.js +0 -54
- package/dist/reset-C4UHQ3EU.js.map +0 -1
- package/dist/reset-OLVB6AE6.js +0 -54
- package/dist/reset-OLVB6AE6.js.map +0 -1
- package/dist/resolve-XYH2GDAE.js +0 -121
- package/dist/resolve-XYH2GDAE.js.map +0 -1
- package/dist/retry-726GKI6V.js +0 -62
- package/dist/retry-726GKI6V.js.map +0 -1
- package/dist/retry-7EELDEQP.js +0 -60
- package/dist/retry-7EELDEQP.js.map +0 -1
- package/dist/run-P4KR2MXC.js +0 -65
- package/dist/run-P4KR2MXC.js.map +0 -1
- package/dist/run-XQ7EM3JT.js +0 -60
- package/dist/scaffold-ad-U2KSHKBC.js +0 -1549
- package/dist/scaffold-ad-U2KSHKBC.js.map +0 -1
- package/dist/scaffold-static-ad-63LQKUSO.js +0 -966
- package/dist/scaffold-static-ad-63LQKUSO.js.map +0 -1
- package/dist/scaffold-video-MUS6LHJQ.js +0 -873
- package/dist/scaffold-video-MUS6LHJQ.js.map +0 -1
- package/dist/schedule-RDK4GEPI.js +0 -61
- package/dist/schedule-RDK4GEPI.js.map +0 -1
- package/dist/scheduled-agents-6U44QE76.js +0 -49
- package/dist/schema-CHJDC7GQ.js +0 -129
- package/dist/schema-CHJDC7GQ.js.map +0 -1
- package/dist/search-PMJRU3C4.js +0 -174
- package/dist/search-PMJRU3C4.js.map +0 -1
- package/dist/select-4Z7BW5RH.js +0 -94
- package/dist/select-4Z7BW5RH.js.map +0 -1
- package/dist/sends-WGJVQUMF.js +0 -309
- package/dist/sends-WGJVQUMF.js.map +0 -1
- package/dist/set-prompt-OB2V3XJP.js +0 -186
- package/dist/set-prompt-OB2V3XJP.js.map +0 -1
- package/dist/setup-links-REPREN3C.js +0 -141
- package/dist/setup-links-REPREN3C.js.map +0 -1
- package/dist/site-WFSWIA3S.js +0 -177
- package/dist/site-WFSWIA3S.js.map +0 -1
- package/dist/sources-AMI2AWKZ.js +0 -421
- package/dist/sources-AMI2AWKZ.js.map +0 -1
- package/dist/sources-YBQ6KPFM.js +0 -30
- package/dist/stale-DAYXOY3Z.js +0 -63
- package/dist/stale-DAYXOY3Z.js.map +0 -1
- package/dist/status-7F2KHFGA.js +0 -62
- package/dist/status-7F2KHFGA.js.map +0 -1
- package/dist/stock-2YCDN3N6.js +0 -179
- package/dist/studio-C5K3YX3P.js +0 -49
- package/dist/sync-GWTLKZTU.js +0 -54
- package/dist/sync-GWTLKZTU.js.map +0 -1
- package/dist/sync-definition-ILS2B2BJ.js +0 -53
- package/dist/tags-3WPW6PTV.js +0 -26
- package/dist/tags-6342FQEB.js +0 -20
- package/dist/tags-6342FQEB.js.map +0 -1
- package/dist/tags-ABHSX6M5.js +0 -20
- package/dist/tags-ABHSX6M5.js.map +0 -1
- package/dist/tags-FJIBBBRG.js +0 -20
- package/dist/tags-FJIBBBRG.js.map +0 -1
- package/dist/tags-KFYLZLB3.js +0 -224
- package/dist/tags-KFYLZLB3.js.map +0 -1
- package/dist/targeting-criteria-NR47AF5C.js +0 -113
- package/dist/targets-L56KOVQE.js +0 -102
- package/dist/targets-L56KOVQE.js.map +0 -1
- package/dist/templates-B6XGDYUF.js +0 -178
- package/dist/templates-B6XGDYUF.js.map +0 -1
- package/dist/testimonials-CVC4YIXO.js +0 -32
- package/dist/top-companies-45X3DT7Z.js +0 -108
- package/dist/top-companies-45X3DT7Z.js.map +0 -1
- package/dist/translate-TA5KQIU7.js +0 -598
- package/dist/translate-TA5KQIU7.js.map +0 -1
- package/dist/triggers-22EMIVFD.js +0 -141
- package/dist/triggers-22EMIVFD.js.map +0 -1
- package/dist/unlink-65KUN6ID.js +0 -67
- package/dist/unlink-65KUN6ID.js.map +0 -1
- package/dist/unstage-2E3I5SWF.js +0 -84
- package/dist/unstage-2E3I5SWF.js.map +0 -1
- package/dist/unstage-4ZEULXEQ.js +0 -95
- package/dist/unstage-4ZEULXEQ.js.map +0 -1
- package/dist/update-2S7CSEAW.js +0 -63
- package/dist/update-2S7CSEAW.js.map +0 -1
- package/dist/update-7NCOTAQZ.js +0 -98
- package/dist/update-7NCOTAQZ.js.map +0 -1
- package/dist/update-D6DJC6T7.js +0 -155
- package/dist/update-D6DJC6T7.js.map +0 -1
- package/dist/update-KREBPGBH.js +0 -142
- package/dist/update-KREBPGBH.js.map +0 -1
- package/dist/upload-O6NHRPS7.js +0 -126
- package/dist/upload-O6NHRPS7.js.map +0 -1
- package/dist/url-options-GGXAL3J4.js +0 -127
- package/dist/url-options-GGXAL3J4.js.map +0 -1
- package/dist/url-params-3EFGVTZZ.js +0 -98
- package/dist/url-params-3EFGVTZZ.js.map +0 -1
- package/dist/validate-LDBAAXQO.js +0 -89
- package/dist/validate-LDBAAXQO.js.map +0 -1
- package/dist/videos-YSXYGTBM.js +0 -39
- package/dist/viewer-check-45T2HLAH.js +0 -69
- package/dist/web-IGIGVEKS.js +0 -140
- package/dist/web-IGIGVEKS.js.map +0 -1
- package/dist/winning-ads-ASH5DSV3.js +0 -62
- package/dist/write-commands-5C7FUOVN.js +0 -1015
- package/dist/write-commands-5C7FUOVN.js.map +0 -1
- package/dist/x-BFSKFCZD.js +0 -47
- /package/dist/{account-F6MHQ64I.js.map → account-4H7QVBRK.js.map} +0 -0
- /package/dist/{account-writes-ISE4U2FQ.js.map → account-writes-AK42HGRM.js.map} +0 -0
- /package/dist/{actions-P35MEMGN.js.map → actions-6TQMSVWD.js.map} +0 -0
- /package/dist/{ad-group-writes-UU5NNKSO.js.map → ad-group-writes-QQS4223F.js.map} +0 -0
- /package/dist/{ad-groups-CGFXZNIA.js.map → ad-groups-WGPDPUI2.js.map} +0 -0
- /package/dist/{ad-writes-NALDYWOR.js.map → ad-writes-XE2IE4DS.js.map} +0 -0
- /package/dist/{ads-C47NA2HH.js.map → ads-AGYCVD62.js.map} +0 -0
- /package/dist/{ads-PV7GZXPR.js.map → ads-BCOSQALY.js.map} +0 -0
- /package/dist/{animate-FWWHSYPL.js.map → animate-AIZ3GS4J.js.map} +0 -0
- /package/dist/{audiences-VEKGLWBG.js.map → audiences-TGD5US2M.js.map} +0 -0
- /package/dist/{avatars-EKCKHCC3.js.map → avatars-467OSBD6.js.map} +0 -0
- /package/dist/{brand-C6PFGGQN.js.map → brand-YRTEPGBK.js.map} +0 -0
- /package/dist/{campaign-writes-SX52CJYW.js.map → campaign-writes-SXLZFYF6.js.map} +0 -0
- /package/dist/{campaigns-KZYZTXDS.js.map → campaigns-OYMXDGWX.js.map} +0 -0
- /package/dist/{campaigns-X3DPCCSN.js.map → campaigns-YS3OGQXO.js.map} +0 -0
- /package/dist/{canvas-DPCBGW7K.js.map → canvas-YQFG52IG.js.map} +0 -0
- /package/dist/{catalog-ME44ZRZF.js.map → catalog-XLXIM7IW.js.map} +0 -0
- /package/dist/{catalogs-G3YEVG6S.js.map → catalogs-BRXEDE56.js.map} +0 -0
- /package/dist/{chatgpt-QNUN63YS.js.map → chatgpt-7W75X3ER.js.map} +0 -0
- /package/dist/{chunk-7YCRFMXF.js.map → chunk-24EB7EDR.js.map} +0 -0
- /package/dist/{chunk-5ZDLTE5T.js.map → chunk-2AOE2MZQ.js.map} +0 -0
- /package/dist/{chunk-IBURXTL4.js.map → chunk-2VPBIT65.js.map} +0 -0
- /package/dist/{chunk-NPY4QUMQ.js.map → chunk-54C6YDGJ.js.map} +0 -0
- /package/dist/{chunk-LZ73CZGP.js.map → chunk-5WCSKQ7Z.js.map} +0 -0
- /package/dist/{chunk-3G3ZDLMI.js.map → chunk-5ZNTADVR.js.map} +0 -0
- /package/dist/{chunk-AEOSAVVL.js.map → chunk-6F7DVPOS.js.map} +0 -0
- /package/dist/{chunk-FD27ZDVP.js.map → chunk-6NY2GPR4.js.map} +0 -0
- /package/dist/{chunk-TT5R35PJ.js.map → chunk-6Y7ZBENQ.js.map} +0 -0
- /package/dist/{chunk-5Y5UAJWD.js.map → chunk-7CTMH5AK.js.map} +0 -0
- /package/dist/{chunk-35XWJEWH.js.map → chunk-7J6EHOH6.js.map} +0 -0
- /package/dist/{chunk-Z2EOC6PL.js.map → chunk-ASI4P6X2.js.map} +0 -0
- /package/dist/{chunk-2QHODRR6.js.map → chunk-C46GUI2S.js.map} +0 -0
- /package/dist/{chunk-K7FZXIOZ.js.map → chunk-CWYAELVG.js.map} +0 -0
- /package/dist/{chunk-MXYBTMKB.js.map → chunk-DCRPXOJJ.js.map} +0 -0
- /package/dist/{chunk-54UVGFX3.js.map → chunk-EAP4O4FE.js.map} +0 -0
- /package/dist/{chunk-K66OLA6Y.js.map → chunk-FPOGPFAG.js.map} +0 -0
- /package/dist/{chunk-JQJDXPCO.js.map → chunk-FUHN4MFY.js.map} +0 -0
- /package/dist/{chunk-S77PZVYM.js.map → chunk-FYGR3I2A.js.map} +0 -0
- /package/dist/{chunk-OZRUJVIQ.js.map → chunk-H3427GPU.js.map} +0 -0
- /package/dist/{chunk-KQTYTCKQ.js.map → chunk-HZUDRKGR.js.map} +0 -0
- /package/dist/{chunk-IR6D7K4H.js.map → chunk-I3ZR655O.js.map} +0 -0
- /package/dist/{chunk-J5IY3GVE.js.map → chunk-KMKEYI37.js.map} +0 -0
- /package/dist/{chunk-W3ZHJJVT.js.map → chunk-KS2QY6MK.js.map} +0 -0
- /package/dist/{chunk-GLCPTMPG.js.map → chunk-LYQJ4PZW.js.map} +0 -0
- /package/dist/{chunk-GBMP4F45.js.map → chunk-MACCF4JZ.js.map} +0 -0
- /package/dist/{chunk-CSYSX4D2.js.map → chunk-N4LAYIIN.js.map} +0 -0
- /package/dist/{chunk-4AUMTNVB.js.map → chunk-NA63BH7V.js.map} +0 -0
- /package/dist/{chunk-KFE3S63W.js.map → chunk-NCWCZY5P.js.map} +0 -0
- /package/dist/{chunk-4BQXAE7Z.js.map → chunk-NDEE6G2J.js.map} +0 -0
- /package/dist/{chunk-7ZHMGXE2.js.map → chunk-NJXNU2G6.js.map} +0 -0
- /package/dist/{chunk-HQSCJYZO.js.map → chunk-P5T7OZKV.js.map} +0 -0
- /package/dist/{chunk-VB6WJJR3.js.map → chunk-PZXCWSKV.js.map} +0 -0
- /package/dist/{chunk-MELOSESI.js.map → chunk-R25YLW6H.js.map} +0 -0
- /package/dist/{chunk-Y6O7EWYY.js.map → chunk-RL5CP7N6.js.map} +0 -0
- /package/dist/{chunk-HBTF25YG.js.map → chunk-RX2DKU3W.js.map} +0 -0
- /package/dist/{chunk-647RO73Q.js.map → chunk-ULG4QRTV.js.map} +0 -0
- /package/dist/{chunk-QRP3PXWN.js.map → chunk-VL43TNIP.js.map} +0 -0
- /package/dist/{chunk-SHL7LOC3.js.map → chunk-VLMBTPXU.js.map} +0 -0
- /package/dist/{chunk-LYBXCXJB.js.map → chunk-VNUNE5AB.js.map} +0 -0
- /package/dist/{chunk-KHRXPQID.js.map → chunk-VYQ3QJ3C.js.map} +0 -0
- /package/dist/{chunk-A4LOJ2VD.js.map → chunk-WGUQHAJY.js.map} +0 -0
- /package/dist/{chunk-ZEYEWPK6.js.map → chunk-WKQG6TER.js.map} +0 -0
- /package/dist/{chunk-ULJ5RFOV.js.map → chunk-XFGAUP5B.js.map} +0 -0
- /package/dist/{chunk-3IBYKLXR.js.map → chunk-ZDMTXQ2Q.js.map} +0 -0
- /package/dist/{connect-QCOGEPP4.js.map → connect-FCXNVTXG.js.map} +0 -0
- /package/dist/{conversion-report-N4HANYOB.js.map → conversion-report-XQBJ6LG4.js.map} +0 -0
- /package/dist/{conversion-writes-LW4HQKK5.js.map → conversion-writes-UBCVXP2E.js.map} +0 -0
- /package/dist/{conversions-TS723AZV.js.map → conversions-D236RTUK.js.map} +0 -0
- /package/dist/{creatives-SJTJU6VT.js.map → creatives-FXUQ5WSD.js.map} +0 -0
- /package/dist/{customers-4AWBFDUF.js.map → customers-XH2DMTFH.js.map} +0 -0
- /package/dist/{draft-THPZFASM.js.map → draft-MNFJ4G3C.js.map} +0 -0
- /package/dist/{feedback-XNJQ63DS.js.map → feedback-EIZKS4JU.js.map} +0 -0
- /package/dist/{find-OTDIX6V4.js.map → find-FRRHAPWX.js.map} +0 -0
- /package/dist/{fit-7237F5EB.js.map → fit-UOFYFJ4Q.js.map} +0 -0
- /package/dist/{fonts-EMMX3KII.js.map → fonts-MXR3ZKDX.js.map} +0 -0
- /package/dist/{ga4-UDQ2HA2J.js.map → ga4-DV2AXCSL.js.map} +0 -0
- /package/dist/{generate-MMBYB44G.js.map → generate-3XYYITU6.js.map} +0 -0
- /package/dist/{google-M7KEXVK5.js.map → google-6OGZX47I.js.map} +0 -0
- /package/dist/{google-KTO3PLEU.js.map → google-QYYYSSXI.js.map} +0 -0
- /package/dist/{gsc-P3QYGDV2.js.map → gsc-TAKOF7J5.js.map} +0 -0
- /package/dist/{history-DBIEYQHY.js.map → history-Q3QCT64S.js.map} +0 -0
- /package/dist/{icon-I43F77FV.js.map → icon-L4RSS6PZ.js.map} +0 -0
- /package/dist/{ideas-MIDU7YOA.js.map → ideas-NFOW3HKJ.js.map} +0 -0
- /package/dist/{images-S254MS6O.js.map → images-2EFFUNNV.js.map} +0 -0
- /package/dist/{ingest-YV2NLDBE.js.map → ingest-2EIKN4QC.js.map} +0 -0
- /package/dist/{insights-ZIU6FJMS.js.map → insights-LNAXV2CG.js.map} +0 -0
- /package/dist/{inspiration-P265QJ2H.js.map → inspiration-S3DU4CMQ.js.map} +0 -0
- /package/dist/{landing-CJYGWCK4.js.map → landing-2ZB46LXH.js.map} +0 -0
- /package/dist/{line-items-7ZGIKEF2.js.map → line-items-5NECXUZT.js.map} +0 -0
- /package/dist/{locations-74TPQWAT.js.map → locations-2NKBJKBT.js.map} +0 -0
- /package/dist/{logo-2IP663QO.js.map → logo-Q5D7PZY6.js.map} +0 -0
- /package/dist/{lookup-XK45W2SH.js.map → lookup-ETWY47F7.js.map} +0 -0
- /package/dist/{media-sources-O6ZRUA3N.js.map → media-sources-ZXHEEP6T.js.map} +0 -0
- /package/dist/{models-7U3GRYHF.js.map → models-3Z6MDHQW.js.map} +0 -0
- /package/dist/{performance-6QW2KEEQ.js.map → performance-UF5VTY2U.js.map} +0 -0
- /package/dist/{pixels-45A55MOP.js.map → pixels-TZPF746S.js.map} +0 -0
- /package/dist/{promoted-tweets-SURKMHFI.js.map → promoted-tweets-LZKS5JIF.js.map} +0 -0
- /package/dist/{reddit-GIP3ADMS.js.map → reddit-NU2N3LZD.js.map} +0 -0
- /package/dist/{research-EY7C7JJY.js.map → research-FMM6AWZC.js.map} +0 -0
- /package/dist/{run-XQ7EM3JT.js.map → run-EUO34T2J.js.map} +0 -0
- /package/dist/{scheduled-agents-6U44QE76.js.map → scheduled-agents-N4LJRM4C.js.map} +0 -0
- /package/dist/{sources-YBQ6KPFM.js.map → sources-FQ2UZTHL.js.map} +0 -0
- /package/dist/{stock-2YCDN3N6.js.map → stock-KXJ26BY4.js.map} +0 -0
- /package/dist/{studio-C5K3YX3P.js.map → studio-SYKOSNDB.js.map} +0 -0
- /package/dist/{sync-definition-ILS2B2BJ.js.map → sync-definition-QR2N233R.js.map} +0 -0
- /package/dist/{tags-3WPW6PTV.js.map → tags-PYWFSBTR.js.map} +0 -0
- /package/dist/{targeting-criteria-NR47AF5C.js.map → targeting-criteria-RJFLFICN.js.map} +0 -0
- /package/dist/{testimonials-CVC4YIXO.js.map → testimonials-DII5DYLR.js.map} +0 -0
- /package/dist/{videos-YSXYGTBM.js.map → videos-LICG6ACJ.js.map} +0 -0
- /package/dist/{viewer-check-45T2HLAH.js.map → viewer-check-L4B4LIAX.js.map} +0 -0
- /package/dist/{winning-ads-ASH5DSV3.js.map → winning-ads-C6S2C5VP.js.map} +0 -0
- /package/dist/{x-BFSKFCZD.js.map → x-CZHRC6U7.js.map} +0 -0
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
handleLinkedinError,
|
|
3
|
-
resolveAccountIdArg
|
|
4
|
-
} from "./chunk-CSYSX4D2.js";
|
|
5
|
-
import {
|
|
6
|
-
writeAdsJson
|
|
7
|
-
} from "./chunk-VFIOJD5M.js";
|
|
8
|
-
import {
|
|
9
|
-
NO_CACHE_ARG
|
|
10
|
-
} from "./chunk-X7ZODEXJ.js";
|
|
11
|
-
import "./chunk-XF4JUKVF.js";
|
|
12
|
-
import "./chunk-GXDLWBOY.js";
|
|
13
|
-
import "./chunk-TEINLN64.js";
|
|
14
|
-
import "./chunk-ZJWUBJYQ.js";
|
|
15
|
-
import "./chunk-NE4F3FHN.js";
|
|
16
|
-
import {
|
|
17
|
-
apiPost
|
|
18
|
-
} from "./chunk-XBOK23HI.js";
|
|
19
|
-
import "./chunk-IFWP3ZDO.js";
|
|
20
|
-
import "./chunk-NAWWC5I3.js";
|
|
21
|
-
import "./chunk-NU7JSWVA.js";
|
|
22
|
-
import "./chunk-YQSBHWOI.js";
|
|
23
|
-
|
|
24
|
-
// src/commands/ads/linkedin/bid-pricing.ts
|
|
25
|
-
import { readFileSync } from "fs";
|
|
26
|
-
import { defineCommand } from "citty";
|
|
27
|
-
function loadTargeting(args) {
|
|
28
|
-
const inline = args.targeting;
|
|
29
|
-
if (inline) {
|
|
30
|
-
try {
|
|
31
|
-
return JSON.parse(inline);
|
|
32
|
-
} catch {
|
|
33
|
-
handleLinkedinError(new Error("--targeting must be valid JSON. See LinkedIn 'targetingCriteria' shape."));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
const file = args["targeting-file"];
|
|
37
|
-
if (file) {
|
|
38
|
-
try {
|
|
39
|
-
return JSON.parse(readFileSync(file, "utf-8"));
|
|
40
|
-
} catch (e) {
|
|
41
|
-
handleLinkedinError(
|
|
42
|
-
new Error(`Failed to read --targeting-file: ${e instanceof Error ? e.message : "I/O error"}`)
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
handleLinkedinError(new Error("Pass --targeting-file <path> or --targeting '{...JSON...}'"));
|
|
47
|
-
}
|
|
48
|
-
var bidPricingCommand = defineCommand({
|
|
49
|
-
meta: {
|
|
50
|
-
name: "bid-pricing",
|
|
51
|
-
description: `Get LinkedIn's suggested bid range for a targeting + objective + cost type.
|
|
52
|
-
|
|
53
|
-
Returns LinkedIn's min / suggested / max bid plus the playbook \xA706 floor
|
|
54
|
-
(2/3 of suggested \u2014 the recommended manual CPC starting point).
|
|
55
|
-
|
|
56
|
-
Objective types: BRAND_AWARENESS | WEBSITE_TRAFFIC | WEBSITE_VISIT |
|
|
57
|
-
ENGAGEMENT | WEBSITE_CONVERSION | LEAD_GENERATION |
|
|
58
|
-
JOB_APPLICANT | VIDEO_VIEW
|
|
59
|
-
Cost types: CPC | CPM | CPV | CPS
|
|
60
|
-
|
|
61
|
-
Examples:
|
|
62
|
-
baker ads linkedin bid-pricing --account-id 503001492 --objective WEBSITE_CONVERSION --cost-type CPC --targeting-file targeting.json
|
|
63
|
-
baker ads linkedin bid-pricing --account-id 503001492 --objective LEAD_GENERATION --cost-type CPM --targeting '{"include":...}'`
|
|
64
|
-
},
|
|
65
|
-
args: {
|
|
66
|
-
"account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
|
|
67
|
-
"account-urn": { type: "string", description: "Alias for --account-id" },
|
|
68
|
-
objective: {
|
|
69
|
-
type: "string",
|
|
70
|
-
description: "Objective type (e.g. WEBSITE_CONVERSION, LEAD_GENERATION)",
|
|
71
|
-
required: true
|
|
72
|
-
},
|
|
73
|
-
"cost-type": { type: "string", description: "CPC | CPM | CPV | CPS", required: true },
|
|
74
|
-
targeting: { type: "string", description: "Inline JSON targetingCriteria" },
|
|
75
|
-
"targeting-file": { type: "string", description: "Path to JSON file with targetingCriteria" },
|
|
76
|
-
"no-cache": NO_CACHE_ARG,
|
|
77
|
-
output: { type: "string", description: "json", default: "json" }
|
|
78
|
-
},
|
|
79
|
-
run: async ({ args }) => {
|
|
80
|
-
const accountId = resolveAccountIdArg(args);
|
|
81
|
-
const targetingCriteria = loadTargeting(args);
|
|
82
|
-
try {
|
|
83
|
-
const data = await apiPost("/api/ads/linkedin/bid-pricing", {
|
|
84
|
-
accountId,
|
|
85
|
-
objectiveType: String(args.objective),
|
|
86
|
-
costType: String(args["cost-type"]).toUpperCase(),
|
|
87
|
-
targetingCriteria,
|
|
88
|
-
skipCache: Boolean(args["no-cache"])
|
|
89
|
-
});
|
|
90
|
-
writeAdsJson({ ok: true, data });
|
|
91
|
-
} catch (err) {
|
|
92
|
-
handleLinkedinError(err);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
export {
|
|
97
|
-
bidPricingCommand
|
|
98
|
-
};
|
|
99
|
-
//# sourceMappingURL=bid-pricing-Q72B65AY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/ads/linkedin/bid-pricing.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiPost } from \"../../../client.ts\";\nimport { writeAdsJson } from \"../output.ts\";\nimport { handleLinkedinError, resolveAccountIdArg } from \"./shared.ts\";\n\ninterface BidPricingResult {\n bidLimits?: { min?: { amount?: string; currencyCode?: string }; max?: { amount?: string; currencyCode?: string } };\n suggestedBid?: {\n default?: { amount?: string; currencyCode?: string };\n min?: { amount?: string; currencyCode?: string };\n max?: { amount?: string; currencyCode?: string };\n };\n costType: string;\n objectiveType: string;\n playbookFloor?: { amount: string; currencyCode: string };\n playbookNote: string;\n}\n\nfunction loadTargeting(args: Record<string, unknown>): unknown {\n const inline = args.targeting as string | undefined;\n if (inline) {\n try {\n return JSON.parse(inline);\n } catch {\n handleLinkedinError(new Error(\"--targeting must be valid JSON. See LinkedIn 'targetingCriteria' shape.\"));\n }\n }\n const file = args[\"targeting-file\"] as string | undefined;\n if (file) {\n try {\n return JSON.parse(readFileSync(file, \"utf-8\"));\n } catch (e) {\n handleLinkedinError(\n new Error(`Failed to read --targeting-file: ${e instanceof Error ? e.message : \"I/O error\"}`),\n );\n }\n }\n handleLinkedinError(new Error(\"Pass --targeting-file <path> or --targeting '{...JSON...}'\"));\n}\n\nexport const bidPricingCommand = defineCommand({\n meta: {\n name: \"bid-pricing\",\n description: `Get LinkedIn's suggested bid range for a targeting + objective + cost type.\n\nReturns LinkedIn's min / suggested / max bid plus the playbook §06 floor\n(2/3 of suggested — the recommended manual CPC starting point).\n\nObjective types: BRAND_AWARENESS | WEBSITE_TRAFFIC | WEBSITE_VISIT |\n ENGAGEMENT | WEBSITE_CONVERSION | LEAD_GENERATION |\n JOB_APPLICANT | VIDEO_VIEW\nCost types: CPC | CPM | CPV | CPS\n\nExamples:\n baker ads linkedin bid-pricing --account-id 503001492 --objective WEBSITE_CONVERSION --cost-type CPC --targeting-file targeting.json\n baker ads linkedin bid-pricing --account-id 503001492 --objective LEAD_GENERATION --cost-type CPM --targeting '{\"include\":...}'`,\n },\n args: {\n \"account-id\": { type: \"string\", description: \"Numeric account ID or urn:li:sponsoredAccount:N\" },\n \"account-urn\": { type: \"string\", description: \"Alias for --account-id\" },\n objective: {\n type: \"string\",\n description: \"Objective type (e.g. WEBSITE_CONVERSION, LEAD_GENERATION)\",\n required: true,\n },\n \"cost-type\": { type: \"string\", description: \"CPC | CPM | CPV | CPS\", required: true },\n targeting: { type: \"string\", description: \"Inline JSON targetingCriteria\" },\n \"targeting-file\": { type: \"string\", description: \"Path to JSON file with targetingCriteria\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json\", default: \"json\" },\n },\n run: async ({ args }) => {\n const accountId = resolveAccountIdArg(args);\n const targetingCriteria = loadTargeting(args);\n try {\n const data = await apiPost<BidPricingResult>(\"/api/ads/linkedin/bid-pricing\", {\n accountId,\n objectiveType: String(args.objective),\n costType: String(args[\"cost-type\"]).toUpperCase(),\n targetingCriteria,\n skipCache: Boolean(args[\"no-cache\"]),\n });\n writeAdsJson({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAmB9B,SAAS,cAAc,MAAwC;AAC7D,QAAM,SAAS,KAAK;AACpB,MAAI,QAAQ;AACV,QAAI;AACF,aAAO,KAAK,MAAM,MAAM;AAAA,IAC1B,QAAQ;AACN,0BAAoB,IAAI,MAAM,yEAAyE,CAAC;AAAA,IAC1G;AAAA,EACF;AACA,QAAM,OAAO,KAAK,gBAAgB;AAClC,MAAI,MAAM;AACR,QAAI;AACF,aAAO,KAAK,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,IAC/C,SAAS,GAAG;AACV;AAAA,QACE,IAAI,MAAM,oCAAoC,aAAa,QAAQ,EAAE,UAAU,WAAW,EAAE;AAAA,MAC9F;AAAA,IACF;AAAA,EACF;AACA,sBAAoB,IAAI,MAAM,4DAA4D,CAAC;AAC7F;AAEO,IAAM,oBAAoB,cAAc;AAAA,EAC7C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaf;AAAA,EACA,MAAM;AAAA,IACJ,cAAc,EAAE,MAAM,UAAU,aAAa,kDAAkD;AAAA,IAC/F,eAAe,EAAE,MAAM,UAAU,aAAa,yBAAyB;AAAA,IACvE,WAAW;AAAA,MACT,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,aAAa,EAAE,MAAM,UAAU,aAAa,yBAAyB,UAAU,KAAK;AAAA,IACpF,WAAW,EAAE,MAAM,UAAU,aAAa,gCAAgC;AAAA,IAC1E,kBAAkB,EAAE,MAAM,UAAU,aAAa,2CAA2C;AAAA,IAC5F,YAAY;AAAA,IACZ,QAAQ,EAAE,MAAM,UAAU,aAAa,QAAQ,SAAS,OAAO;AAAA,EACjE;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,YAAY,oBAAoB,IAAI;AAC1C,UAAM,oBAAoB,cAAc,IAAI;AAC5C,QAAI;AACF,YAAM,OAAO,MAAM,QAA0B,iCAAiC;AAAA,QAC5E;AAAA,QACA,eAAe,OAAO,KAAK,SAAS;AAAA,QACpC,UAAU,OAAO,KAAK,WAAW,CAAC,EAAE,YAAY;AAAA,QAChD;AAAA,QACA,WAAW,QAAQ,KAAK,UAAU,CAAC;AAAA,MACrC,CAAC;AACD,mBAAa,EAAE,IAAI,MAAM,KAAK,CAAC;AAAA,IACjC,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;","names":[]}
|
package/dist/brand-C6PFGGQN.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import "./chunk-YQSBHWOI.js";
|
|
2
|
-
|
|
3
|
-
// src/commands/brand/index.ts
|
|
4
|
-
import { defineCommand } from "citty";
|
|
5
|
-
var brandCommand = defineCommand({
|
|
6
|
-
meta: {
|
|
7
|
-
name: "brand",
|
|
8
|
-
description: `Brand asset verification for src/brand/.
|
|
9
|
-
|
|
10
|
-
Start here: \`baker brand fonts check\` after defining or editing the brand's typography.
|
|
11
|
-
|
|
12
|
-
Subcommands:
|
|
13
|
-
baker brand fonts \u2014 verify the brand's typefaces really load, and self-host them into src/brand/fonts/`
|
|
14
|
-
},
|
|
15
|
-
subCommands: {
|
|
16
|
-
fonts: () => import("./fonts-EMMX3KII.js").then((m) => m.fontsCommand)
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
export {
|
|
20
|
-
brandCommand
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=brand-C6PFGGQN.js.map
|
package/dist/brief-UO52ZHFI.js
DELETED
|
@@ -1,477 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
liveViewerLookups,
|
|
3
|
-
marketQuery
|
|
4
|
-
} from "./chunk-7ZHMGXE2.js";
|
|
5
|
-
import {
|
|
6
|
-
buildSearchBody
|
|
7
|
-
} from "./chunk-BNCW67EM.js";
|
|
8
|
-
import "./chunk-LERTEZST.js";
|
|
9
|
-
import {
|
|
10
|
-
buildNext,
|
|
11
|
-
ideasReport
|
|
12
|
-
} from "./chunk-2BKVVCCV.js";
|
|
13
|
-
import {
|
|
14
|
-
AWARENESS_STAGES,
|
|
15
|
-
IDEA_ANGLES,
|
|
16
|
-
IDEA_FORMATS,
|
|
17
|
-
readInsights
|
|
18
|
-
} from "./chunk-4QEY2L6U.js";
|
|
19
|
-
import {
|
|
20
|
-
withDefinitions
|
|
21
|
-
} from "./chunk-5ZDLTE5T.js";
|
|
22
|
-
import {
|
|
23
|
-
researchCustomers
|
|
24
|
-
} from "./chunk-HBTF25YG.js";
|
|
25
|
-
import "./chunk-S77PZVYM.js";
|
|
26
|
-
import "./chunk-OZRUJVIQ.js";
|
|
27
|
-
import "./chunk-WNFIJAUO.js";
|
|
28
|
-
import "./chunk-NFSLRRIE.js";
|
|
29
|
-
import "./chunk-ERSX3MKH.js";
|
|
30
|
-
import "./chunk-F2S5BLPE.js";
|
|
31
|
-
import "./chunk-WTOYCUKH.js";
|
|
32
|
-
import {
|
|
33
|
-
findWorkspaceRoot
|
|
34
|
-
} from "./chunk-DZSIUEGH.js";
|
|
35
|
-
import "./chunk-W3B4BHQU.js";
|
|
36
|
-
import "./chunk-VB6WJJR3.js";
|
|
37
|
-
import "./chunk-CHSNHVYF.js";
|
|
38
|
-
import "./chunk-RX6F3GEA.js";
|
|
39
|
-
import {
|
|
40
|
-
viewerFromKnowledge
|
|
41
|
-
} from "./chunk-5HYSKH77.js";
|
|
42
|
-
import "./chunk-KIGGMKAE.js";
|
|
43
|
-
import "./chunk-VAJBWA2U.js";
|
|
44
|
-
import "./chunk-HRYOZUSK.js";
|
|
45
|
-
import "./chunk-VVZBBKRC.js";
|
|
46
|
-
import "./chunk-YBMVHGY3.js";
|
|
47
|
-
import "./chunk-3HJLHTWP.js";
|
|
48
|
-
import "./chunk-XF4JUKVF.js";
|
|
49
|
-
import "./chunk-GXDLWBOY.js";
|
|
50
|
-
import "./chunk-TEINLN64.js";
|
|
51
|
-
import "./chunk-ZJWUBJYQ.js";
|
|
52
|
-
import "./chunk-NE4F3FHN.js";
|
|
53
|
-
import {
|
|
54
|
-
ApiError,
|
|
55
|
-
apiGet,
|
|
56
|
-
apiPost
|
|
57
|
-
} from "./chunk-XBOK23HI.js";
|
|
58
|
-
import "./chunk-IFWP3ZDO.js";
|
|
59
|
-
import {
|
|
60
|
-
getEnv
|
|
61
|
-
} from "./chunk-NAWWC5I3.js";
|
|
62
|
-
import {
|
|
63
|
-
registerSchema,
|
|
64
|
-
writeJson
|
|
65
|
-
} from "./chunk-NU7JSWVA.js";
|
|
66
|
-
import "./chunk-YQSBHWOI.js";
|
|
67
|
-
|
|
68
|
-
// src/commands/creatives/brief.ts
|
|
69
|
-
import { readFileSync } from "fs";
|
|
70
|
-
import { readdir, readFile } from "fs/promises";
|
|
71
|
-
import path from "path";
|
|
72
|
-
import { defineCommand } from "citty";
|
|
73
|
-
|
|
74
|
-
// src/commands/creatives/brief-model.ts
|
|
75
|
-
var MIN_IMPRESSIONS = 1e3;
|
|
76
|
-
var LOW_CTR = 1.5;
|
|
77
|
-
var LOW_CVR = 1;
|
|
78
|
-
var round = (n) => Math.round(n * 100) / 100;
|
|
79
|
-
function diagnoseBottleneck(totals) {
|
|
80
|
-
const ctr = totals.impressions > 0 ? round(totals.linkClicks / totals.impressions * 100) : null;
|
|
81
|
-
const cvr = totals.linkClicks > 0 ? round(totals.results / totals.linkClicks * 100) : null;
|
|
82
|
-
if (totals.impressions < MIN_IMPRESSIONS || ctr === null) {
|
|
83
|
-
return { verdict: "too_little_data", ctr, cvr, why: "Too little delivery in the last 30 days to call it." };
|
|
84
|
-
}
|
|
85
|
-
if (ctr < LOW_CTR) {
|
|
86
|
-
return {
|
|
87
|
-
verdict: "hook",
|
|
88
|
-
ctr,
|
|
89
|
-
cvr,
|
|
90
|
-
why: `Link click-through ${ctr}% (under ${LOW_CTR}%): people scroll past. New ideas and hooks are the fix.`
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
if (cvr !== null && cvr < LOW_CVR) {
|
|
94
|
-
return {
|
|
95
|
-
verdict: "after_click",
|
|
96
|
-
ctr,
|
|
97
|
-
cvr,
|
|
98
|
-
why: `People click (${ctr}%) but only ${cvr}% act: the page or the offer loses them, and a new ad will not fix that. Say so, make the ads' promise match the page, and make one idea an offer idea.`
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
return {
|
|
102
|
-
verdict: "none",
|
|
103
|
-
ctr,
|
|
104
|
-
cvr,
|
|
105
|
-
why: `Click-through ${ctr}% and ${cvr ?? 0}% of clicks act: the ads work. Build on the winners first.`
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
var CONVERSION_ACTION = /^(lead|purchase|complete_registration|submit_application|schedule|contact|start_trial|subscribe|offsite_conversion\.|onsite_conversion\.lead|onsite_web_lead|omni_purchase|omni_complete_registration)/;
|
|
109
|
-
function resultsOf(actions) {
|
|
110
|
-
if (!Array.isArray(actions)) return 0;
|
|
111
|
-
let total = 0;
|
|
112
|
-
for (const action of actions) {
|
|
113
|
-
const type = action?.action_type;
|
|
114
|
-
const value = Number(action?.value ?? 0);
|
|
115
|
-
if (typeof type === "string" && CONVERSION_ACTION.test(type) && Number.isFinite(value)) total += value;
|
|
116
|
-
}
|
|
117
|
-
return total;
|
|
118
|
-
}
|
|
119
|
-
var MIN_OBSERVED = 5;
|
|
120
|
-
var MAX_QUOTES = 6;
|
|
121
|
-
function customerTruth(insights) {
|
|
122
|
-
const byType = {};
|
|
123
|
-
for (const insight of insights) byType[insight.type] = (byType[insight.type] ?? 0) + 1;
|
|
124
|
-
const observed = insights.filter((i) => i.status === "observed");
|
|
125
|
-
const seen = /* @__PURE__ */ new Set();
|
|
126
|
-
const quotes = [];
|
|
127
|
-
for (const insight of observed) {
|
|
128
|
-
if (seen.has(insight.type) || quotes.length >= MAX_QUOTES) continue;
|
|
129
|
-
seen.add(insight.type);
|
|
130
|
-
quotes.push({
|
|
131
|
-
id: insight.id,
|
|
132
|
-
type: insight.type,
|
|
133
|
-
quote: insight.quote.length > 140 ? `${insight.quote.slice(0, 137)}...` : insight.quote
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
return { total: insights.length, observed: observed.length, thin: observed.length < MIN_OBSERVED, byType, quotes };
|
|
137
|
-
}
|
|
138
|
-
var MAX_SAYING = 6;
|
|
139
|
-
var SAME_ANGLE = 0.4;
|
|
140
|
-
function angleWords(angle) {
|
|
141
|
-
return new Set(
|
|
142
|
-
angle.toLowerCase().split(/[^\p{L}]+/u).filter((w) => w.length >= 4 && w !== "your" && w !== "with").map((w) => w.replace(/s$/, ""))
|
|
143
|
-
);
|
|
144
|
-
}
|
|
145
|
-
function overlap(a, b) {
|
|
146
|
-
const shared = [...a].filter((w) => b.has(w)).length;
|
|
147
|
-
const all = (/* @__PURE__ */ new Set([...a, ...b])).size;
|
|
148
|
-
return all === 0 ? 0 : shared / all;
|
|
149
|
-
}
|
|
150
|
-
function tally(values) {
|
|
151
|
-
const counts = {};
|
|
152
|
-
for (const value of values) if (value) counts[value] = (counts[value] ?? 0) + 1;
|
|
153
|
-
return counts;
|
|
154
|
-
}
|
|
155
|
-
function marketMap(ads, source) {
|
|
156
|
-
const groups = [];
|
|
157
|
-
for (const ad of ads) {
|
|
158
|
-
const angle = ad.dna.angle?.trim();
|
|
159
|
-
if (!angle) continue;
|
|
160
|
-
const words = angleWords(angle);
|
|
161
|
-
const group = groups.find((g) => overlap(g.words, words) >= SAME_ANGLE);
|
|
162
|
-
if (group) group.brands.add(ad.advertiser ?? "?");
|
|
163
|
-
else groups.push({ angle, words, brands: /* @__PURE__ */ new Set([ad.advertiser ?? "?"]) });
|
|
164
|
-
}
|
|
165
|
-
const saying = groups.map((g) => ({ angle: g.angle, brands: g.brands.size })).sort((a, b) => b.brands - a.brands).slice(0, MAX_SAYING);
|
|
166
|
-
const stages = tally(ads.map((a) => a.dna.sophistication_stage));
|
|
167
|
-
const sophistication = Object.entries(stages).sort((a, b) => b[1] - a[1])[0]?.[0] ?? null;
|
|
168
|
-
const awareness = tally(ads.map((a) => a.dna.awareness_stage));
|
|
169
|
-
return {
|
|
170
|
-
source,
|
|
171
|
-
ads: ads.length,
|
|
172
|
-
brands: new Set(ads.map((a) => a.advertiser ?? "?")).size,
|
|
173
|
-
sophistication,
|
|
174
|
-
saying,
|
|
175
|
-
awareness,
|
|
176
|
-
containers: tally(ads.map((a) => a.dna.container)),
|
|
177
|
-
unspoken: AWARENESS_STAGES.filter((stage) => !awareness[stage])
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// src/commands/creatives/brief.ts
|
|
182
|
-
var DESCRIPTION = `Start here before making ads: one read of everything that decides what to make. Who sees the ads, what already works in the account and where it loses people (a verdict, not raw numbers), what this company's reviewers approved and rejected, what customers said in their own words, and the ideas already on file.
|
|
183
|
-
|
|
184
|
-
baker creatives brief # the viewer from the Knowledge
|
|
185
|
-
baker creatives brief --adset <id> # the viewer that ad set reaches
|
|
186
|
-
baker creatives brief --account-id act_<id> # when more than one Meta account is connected
|
|
187
|
-
|
|
188
|
-
Then write 4-8 ideas in src/creatives/_ideas/ and run \`baker creatives ideas\`. With few customer quotes on file it gathers them itself first (\`baker research customers\`, about 30 s; --no-research to skip).`;
|
|
189
|
-
var ARGS = {
|
|
190
|
-
adset: {
|
|
191
|
-
type: "string",
|
|
192
|
-
description: "The Meta ad set the ads are for: its viewer replaces the Knowledge's",
|
|
193
|
-
required: false
|
|
194
|
-
},
|
|
195
|
-
"account-id": {
|
|
196
|
-
type: "string",
|
|
197
|
-
description: "Meta ad account to read (act_<id>); default: the one connected account",
|
|
198
|
-
required: false
|
|
199
|
-
},
|
|
200
|
-
full: {
|
|
201
|
-
type: "boolean",
|
|
202
|
-
description: "Every quote, idea and creative instead of the top few",
|
|
203
|
-
required: false,
|
|
204
|
-
default: false
|
|
205
|
-
},
|
|
206
|
-
research: {
|
|
207
|
-
type: "boolean",
|
|
208
|
-
description: "Gather customer quotes first when few are on file (default true; --no-research skips it)",
|
|
209
|
-
required: false,
|
|
210
|
-
default: true
|
|
211
|
-
}
|
|
212
|
-
};
|
|
213
|
-
registerSchema({ command: "creatives.brief", description: DESCRIPTION, args: ARGS });
|
|
214
|
-
var unavailable = (err) => ({
|
|
215
|
-
unavailable: err instanceof Error ? err.message.slice(0, 200) : "could not be read"
|
|
216
|
-
});
|
|
217
|
-
async function section(read) {
|
|
218
|
-
try {
|
|
219
|
-
return await read();
|
|
220
|
-
} catch (err) {
|
|
221
|
-
return unavailable(err);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
function isAvailable(value) {
|
|
225
|
-
return !(value !== null && typeof value === "object" && "unavailable" in value);
|
|
226
|
-
}
|
|
227
|
-
async function companyStatus(root) {
|
|
228
|
-
const doc = await readFile(path.join(root, "COMPANY.md"), "utf8").catch(() => "");
|
|
229
|
-
return doc.trim() && !/^#\s*Company\s*\n+\s*TODO/m.test(doc) ? "ready" : "missing";
|
|
230
|
-
}
|
|
231
|
-
async function readOffers(root) {
|
|
232
|
-
const dir = path.join(root, "src", "content", "offers");
|
|
233
|
-
const files = (await readdir(dir, { recursive: true }).catch(() => [])).filter(
|
|
234
|
-
(f) => f.endsWith(".md")
|
|
235
|
-
);
|
|
236
|
-
return files.map((f) => f.replace(/\.md$/, "")).sort();
|
|
237
|
-
}
|
|
238
|
-
function readDefinition(root, slug) {
|
|
239
|
-
try {
|
|
240
|
-
return readFileSync(path.join(root, "src", "creatives", slug, "_definition.md"), "utf8");
|
|
241
|
-
} catch {
|
|
242
|
-
return null;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
async function readViewer(root, adSet) {
|
|
246
|
-
const lookups = liveViewerLookups(root);
|
|
247
|
-
if (adSet) {
|
|
248
|
-
const read = await lookups.adSetViewer(adSet).catch(() => null);
|
|
249
|
-
if (read) return read;
|
|
250
|
-
}
|
|
251
|
-
const personas = await lookups.personas().catch(() => []);
|
|
252
|
-
return viewerFromKnowledge({ personas: personas.map((p) => p.segment ?? p.title ?? p.slug) });
|
|
253
|
-
}
|
|
254
|
-
var MARKET_ADS = 40;
|
|
255
|
-
var MARKET_FALLBACK_ADS = 15;
|
|
256
|
-
var MARKET_SEARCH_MS = 12e3;
|
|
257
|
-
async function readMarket(root) {
|
|
258
|
-
const query = marketQuery(await readFile(path.join(root, "COMPANY.md"), "utf8").catch(() => ""));
|
|
259
|
-
if (!query) return null;
|
|
260
|
-
const search = (body) => apiPost("/api/ad-library/winners/search", body, {
|
|
261
|
-
timeoutMs: MARKET_SEARCH_MS
|
|
262
|
-
}).catch((err) => {
|
|
263
|
-
if (err instanceof ApiError && err.code === "TIMEOUT") {
|
|
264
|
-
throw new Error("the ad library did not answer in time, so competitors' claims are left out");
|
|
265
|
-
}
|
|
266
|
-
throw err;
|
|
267
|
-
});
|
|
268
|
-
const [followed, all] = await Promise.allSettled([
|
|
269
|
-
search(buildSearchBody({ scope: "followed", platform: "meta", limit: MARKET_ADS, maxPerAdvertiser: 8 })),
|
|
270
|
-
search(buildSearchBody({ query, scope: "all", platform: "meta", limit: MARKET_FALLBACK_ADS, maxPerAdvertiser: 3 }))
|
|
271
|
-
]);
|
|
272
|
-
if (followed.status === "fulfilled" && followed.value.results.length > 0)
|
|
273
|
-
return marketMap(followed.value.results, "followed");
|
|
274
|
-
if (all.status === "rejected") throw all.reason;
|
|
275
|
-
return all.value.results.length > 0 ? marketMap(all.value.results, "library") : null;
|
|
276
|
-
}
|
|
277
|
-
async function metaAccountId(given) {
|
|
278
|
-
if (given) return given.startsWith("act_") ? given : `act_${given}`;
|
|
279
|
-
const named = getEnv().BAKER_META_AD_ACCOUNT_ID;
|
|
280
|
-
if (named) return `act_${named.replace(/^act_/, "")}`;
|
|
281
|
-
const accounts = await apiGet("/api/ads/meta/accounts");
|
|
282
|
-
const ids = accounts.flatMap((a) => {
|
|
283
|
-
const id2 = a.externalId ?? a.id;
|
|
284
|
-
return typeof id2 === "string" && id2 ? [id2] : [];
|
|
285
|
-
});
|
|
286
|
-
if (ids.length !== 1) return null;
|
|
287
|
-
const id = ids[0];
|
|
288
|
-
return id.startsWith("act_") ? id : `act_${id}`;
|
|
289
|
-
}
|
|
290
|
-
async function readBottleneck(accountId) {
|
|
291
|
-
const rows = await apiPost("/api/ads/meta/insights", {
|
|
292
|
-
object: accountId,
|
|
293
|
-
level: "account",
|
|
294
|
-
fields: ["impressions", "inline_link_clicks", "actions", "spend"],
|
|
295
|
-
actionBreakdowns: ["action_type"],
|
|
296
|
-
datePreset: "last_30d",
|
|
297
|
-
limit: 10
|
|
298
|
-
});
|
|
299
|
-
const totals = { impressions: 0, linkClicks: 0, results: 0 };
|
|
300
|
-
for (const row of rows) {
|
|
301
|
-
totals.impressions += Number(row.impressions ?? 0);
|
|
302
|
-
totals.linkClicks += Number(row.inline_link_clicks ?? 0);
|
|
303
|
-
totals.results += resultsOf(row.actions);
|
|
304
|
-
}
|
|
305
|
-
return diagnoseBottleneck(totals);
|
|
306
|
-
}
|
|
307
|
-
function leanCreative(c) {
|
|
308
|
-
return {
|
|
309
|
-
creative: c.slug ?? c.title,
|
|
310
|
-
costPerResult: c.costPerResult,
|
|
311
|
-
...c.currency ? { currency: c.currency } : {},
|
|
312
|
-
ctr: c.ctr,
|
|
313
|
-
fatigue: c.fatigue,
|
|
314
|
-
...c.definition?.idea ? { idea: c.definition.idea } : {},
|
|
315
|
-
...c.definition?.angle ? { angle: c.definition.angle } : {}
|
|
316
|
-
};
|
|
317
|
-
}
|
|
318
|
-
function whatWorks(creatives, limit = 3) {
|
|
319
|
-
const priced = creatives.filter((c) => c.costPerResult !== null && c.costPerResult > 0);
|
|
320
|
-
const best = [...priced].sort((a, b) => (a.costPerResult ?? 0) - (b.costPerResult ?? 0)).slice(0, limit);
|
|
321
|
-
const tired = creatives.filter((c) => c.fatigue === "fatigued" || c.fatigue === "dead");
|
|
322
|
-
return { best: best.map(leanCreative), replace: tired.map(leanCreative) };
|
|
323
|
-
}
|
|
324
|
-
var HEARD_IT_ALL = /^s[345]/;
|
|
325
|
-
function customersHint(parts) {
|
|
326
|
-
if (parts.researched) {
|
|
327
|
-
return parts.researched.written > 0 ? `${parts.researched.written} customer quotes were just gathered from reviews and Reddit and are in \`customers\`: cite them by id in each idea's \`evidence\`.` : "Customer research found nothing to keep: ideas go in as explore bets (an empty `evidence` list). Never research customers again in this turn.";
|
|
328
|
-
}
|
|
329
|
-
if (!parts.customers.thin) return null;
|
|
330
|
-
return `Only ${parts.customers.observed} customer quotes on file: run \`baker research customers\` now, before writing ideas, so they stand on what customers said. It gathers reviews, Reddit and the web and writes the quotes with their sources in about a minute; never a subagent or web searches of your own for this.`;
|
|
331
|
-
}
|
|
332
|
-
function briefHints(parts) {
|
|
333
|
-
const hints = [];
|
|
334
|
-
if (parts.company === "missing") {
|
|
335
|
-
hints.push("COMPANY.md is empty: run /company-discovery first, or every idea is a guess about the business.");
|
|
336
|
-
}
|
|
337
|
-
const customers = customersHint(parts);
|
|
338
|
-
if (customers) hints.push(customers);
|
|
339
|
-
if (parts.bottleneck && isAvailable(parts.bottleneck) && parts.bottleneck.verdict === "after_click") {
|
|
340
|
-
hints.push("The account loses people after the click: tell the person, and make one idea an offer idea.");
|
|
341
|
-
}
|
|
342
|
-
if (parts.market?.sophistication && HEARD_IT_ALL.test(parts.market.sophistication)) {
|
|
343
|
-
hints.push(
|
|
344
|
-
`This market has heard the plain claim (sophistication ${parts.market.sophistication}): lead with how it works (a mechanism), proof, or an angle nobody uses, never a bigger claim.`
|
|
345
|
-
);
|
|
346
|
-
}
|
|
347
|
-
const claims = parts.market?.saying.map((s) => `"${s.angle}"`) ?? [];
|
|
348
|
-
if (claims.length > 0) {
|
|
349
|
-
hints.push(
|
|
350
|
-
`Competitors already say ${claims.join(", ")}. A message one of them could also run is not a new idea, however it is worded: say what only we have (the offer, a proof, a customer's words) or how it works.`
|
|
351
|
-
);
|
|
352
|
-
}
|
|
353
|
-
for (const won of parts.learned.winners) {
|
|
354
|
-
hints.push(
|
|
355
|
-
`${won.idea} won in the account ("${won.message}"): build on it first, the same message in a new format or for a new persona.`
|
|
356
|
-
);
|
|
357
|
-
}
|
|
358
|
-
if (parts.learned.failed.length > 0) {
|
|
359
|
-
const lost = parts.learned.failed.map((f) => `"${f.message}"`).join(", ");
|
|
360
|
-
hints.push(`Never repeat a message that lost in the account: ${lost}.`);
|
|
361
|
-
}
|
|
362
|
-
if (parts.rejected > parts.approved && parts.rejected > 0) {
|
|
363
|
-
hints.push("Reviewers rejected more than they approved: read topRejectionReasons and avoid them in every idea.");
|
|
364
|
-
}
|
|
365
|
-
if (parts.buildNext.length > 0) {
|
|
366
|
-
hints.push(`Ideas ready to build: ${parts.buildNext.join(", ")} (\`baker creatives make <idea>\`).`);
|
|
367
|
-
} else {
|
|
368
|
-
hints.push(
|
|
369
|
-
`Write 4-8 ideas in src/creatives/_ideas/<idea>.md (who, message, evidence, awareness, angle, format, job, why), then \`baker creatives ideas\`. awareness: ${AWARENESS_STAGES.join(" | ")}. angle: ${IDEA_ANGLES.join(", ")}. format: ${IDEA_FORMATS.join(", ")}.`
|
|
370
|
-
);
|
|
371
|
-
}
|
|
372
|
-
return hints;
|
|
373
|
-
}
|
|
374
|
-
async function readBrief(root, args) {
|
|
375
|
-
const account = metaAccountId(args.accountId).catch(() => null);
|
|
376
|
-
const [company, offers, viewer, insights, ideas, performance, feedback, accountId, bottleneck, market] = await Promise.all([
|
|
377
|
-
companyStatus(root),
|
|
378
|
-
readOffers(root),
|
|
379
|
-
readViewer(root, args.adset),
|
|
380
|
-
readInsights(root),
|
|
381
|
-
ideasReport(root),
|
|
382
|
-
section(
|
|
383
|
-
async () => withDefinitions(
|
|
384
|
-
await apiPost("/api/creatives/performance", {}),
|
|
385
|
-
(slug) => readDefinition(root, slug)
|
|
386
|
-
)
|
|
387
|
-
),
|
|
388
|
-
section(() => apiPost("/api/creatives/feedback", {})),
|
|
389
|
-
account,
|
|
390
|
-
account.then((id) => id ? section(() => readBottleneck(id)) : null),
|
|
391
|
-
section(() => readMarket(root))
|
|
392
|
-
]);
|
|
393
|
-
return { company, offers, viewer, insights, ideas, performance, feedback, accountId, bottleneck, market };
|
|
394
|
-
}
|
|
395
|
-
function accountPart(brief, full) {
|
|
396
|
-
if (!brief.accountId) {
|
|
397
|
-
return { unavailable: "no single Meta ad account connected: pass --account-id act_<id>, or work from customers" };
|
|
398
|
-
}
|
|
399
|
-
const works = isAvailable(brief.performance) ? whatWorks(brief.performance.data.creatives, full ? 10 : 3) : { creatives: brief.performance };
|
|
400
|
-
return { id: brief.accountId, bottleneck: brief.bottleneck, ...works };
|
|
401
|
-
}
|
|
402
|
-
function marketPart(market, full) {
|
|
403
|
-
if (!isAvailable(market)) return market;
|
|
404
|
-
if (!market) return { unavailable: "no library ads match what COMPANY.md says the company sells" };
|
|
405
|
-
if (full) return market;
|
|
406
|
-
const { containers: _containers, ...lean } = market;
|
|
407
|
-
return lean;
|
|
408
|
-
}
|
|
409
|
-
function briefEnvelope(brief, full, researched) {
|
|
410
|
-
const customers = customerTruth(brief.insights);
|
|
411
|
-
const summary = isAvailable(brief.feedback) ? brief.feedback.data.summary : null;
|
|
412
|
-
const next = buildNext(brief.ideas.ideas);
|
|
413
|
-
const toBuild = brief.ideas.ideas.filter((i) => i.status === "idea").length;
|
|
414
|
-
const withStatus = (status) => brief.ideas.ideas.filter((i) => i.status === status).map((i) => ({ idea: i.id, message: i.message }));
|
|
415
|
-
const learned = { winners: withStatus("winner"), failed: withStatus("failed") };
|
|
416
|
-
return {
|
|
417
|
-
ok: true,
|
|
418
|
-
data: {
|
|
419
|
-
company: brief.company,
|
|
420
|
-
viewer: { temperature: brief.viewer.temperature, knows: brief.viewer.knows, source: brief.viewer.source },
|
|
421
|
-
offers: brief.offers,
|
|
422
|
-
account: accountPart(brief, full),
|
|
423
|
-
taste: summary ? {
|
|
424
|
-
approved: summary.approved,
|
|
425
|
-
rejected: summary.rejected,
|
|
426
|
-
topRejectionReasons: summary.topRejectionReasons.slice(0, 3).map((r) => r.label)
|
|
427
|
-
} : brief.feedback,
|
|
428
|
-
customers: full ? { ...customers, quotes: brief.insights.map((i) => ({ id: i.id, type: i.type, quote: i.quote })) } : customers,
|
|
429
|
-
market: marketPart(brief.market, full),
|
|
430
|
-
ideas: {
|
|
431
|
-
to_build: toBuild,
|
|
432
|
-
built: brief.ideas.ideas.length - toBuild,
|
|
433
|
-
build_next: next,
|
|
434
|
-
...learned.winners.length > 0 ? { winners: learned.winners } : {},
|
|
435
|
-
...learned.failed.length > 0 ? { failed: learned.failed } : {}
|
|
436
|
-
}
|
|
437
|
-
},
|
|
438
|
-
hints: briefHints({
|
|
439
|
-
company: brief.company,
|
|
440
|
-
customers,
|
|
441
|
-
bottleneck: brief.bottleneck,
|
|
442
|
-
ideasToBuild: toBuild,
|
|
443
|
-
buildNext: next,
|
|
444
|
-
approved: summary?.approved ?? 0,
|
|
445
|
-
rejected: summary?.rejected ?? 0,
|
|
446
|
-
market: isAvailable(brief.market) ? brief.market : null,
|
|
447
|
-
learned,
|
|
448
|
-
...researched ? { researched } : {}
|
|
449
|
-
})
|
|
450
|
-
};
|
|
451
|
-
}
|
|
452
|
-
var briefCommand = defineCommand({
|
|
453
|
-
meta: { name: "brief", description: DESCRIPTION },
|
|
454
|
-
args: ARGS,
|
|
455
|
-
async run({ args }) {
|
|
456
|
-
const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();
|
|
457
|
-
const full = args.full === true;
|
|
458
|
-
const thin = args.research !== false && customerTruth(await readInsights(root)).thin;
|
|
459
|
-
const research = thin ? researchCustomers(root, {}).catch(() => null) : null;
|
|
460
|
-
const brief = await readBrief(root, {
|
|
461
|
-
...typeof args.adset === "string" && args.adset ? { adset: args.adset } : {},
|
|
462
|
-
...typeof args["account-id"] === "string" && args["account-id"] ? { accountId: args["account-id"] } : {},
|
|
463
|
-
full
|
|
464
|
-
});
|
|
465
|
-
const found = research ? await research : null;
|
|
466
|
-
const written = found?.shown.length ?? 0;
|
|
467
|
-
const insights = written > 0 ? await readInsights(root) : brief.insights;
|
|
468
|
-
writeJson(briefEnvelope({ ...brief, insights }, full, research ? { written } : void 0));
|
|
469
|
-
}
|
|
470
|
-
});
|
|
471
|
-
export {
|
|
472
|
-
briefCommand,
|
|
473
|
-
briefEnvelope,
|
|
474
|
-
briefHints,
|
|
475
|
-
whatWorks
|
|
476
|
-
};
|
|
477
|
-
//# sourceMappingURL=brief-UO52ZHFI.js.map
|