@koda-sl/baker-cli 0.482.0 → 0.483.0-dev.6a297fc5c
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 +1 -1
- package/dist/{account-Z65CPOWE.js → account-ELL7ZZLM.js} +3 -3
- package/dist/{account-VH2AATWI.js → account-KZVOT6HL.js} +5 -5
- package/dist/{account-reads-GYI2SS6T.js → account-reads-LA45L6G3.js} +4 -4
- package/dist/{account-writes-4N2MA2ZR.js → account-writes-CEPERFD6.js} +3 -3
- package/dist/{accounts-XG472YLB.js → accounts-7G556DH4.js} +4 -4
- package/dist/{accounts-SPLE7URQ.js → accounts-HC7GPQNG.js} +6 -6
- package/dist/{actions-KQTXBNJU.js → actions-V6YP5C3X.js} +18 -18
- package/dist/{activecampaign-42JXANUA.js → activecampaign-CHZEHRHZ.js} +4 -4
- package/dist/{ad-group-writes-EUTMPBMK.js → ad-group-writes-XGSCEQTW.js} +3 -3
- package/dist/{ad-groups-OVPAI5RM.js → ad-groups-GKOLDGET.js} +7 -7
- package/dist/{ad-writes-DACTYFEO.js → ad-writes-VVD36JKH.js} +3 -3
- package/dist/{add-C3FQ5D62.js → add-3MD72QMT.js} +3 -3
- package/dist/{add-KTEJCE4L.js → add-TSQNUP5N.js} +4 -4
- package/dist/{ads-L65JIKCD.js → ads-EKZVHKPN.js} +8 -8
- package/dist/{ads-WPI3AMSR.js → ads-KRM4WAMZ.js} +5 -5
- package/dist/{advertisers-36HP3AOE.js → advertisers-XJG7XDK7.js} +6 -6
- package/dist/{analytics-IFNBT7IM.js → analytics-DO4UKW2H.js} +7 -7
- package/dist/{analytics-I4LZCRG2.js → analytics-JVT2OBQC.js} +4 -4
- package/dist/{animate-3LV3LHXQ.js → animate-G4P3OEJE.js} +4 -4
- package/dist/{assign-WBLSZNCO.js → assign-72YAL6TP.js} +4 -4
- package/dist/{audience-size-LOX5BNXI.js → audience-size-M5NU4QYN.js} +4 -4
- package/dist/{audiences-RPLVMO4H.js → audiences-BU4JZJT7.js} +3 -3
- package/dist/{audit-6AG6BPXQ.js → audit-22KQAHJR.js} +4 -4
- package/dist/{autocomplete-2QRU7ARD.js → autocomplete-KLNQIK5T.js} +6 -6
- package/dist/{avatars-EIETXCF3.js → avatars-VO6FMJFB.js} +4 -4
- package/dist/{bid-pricing-5LZFHQTS.js → bid-pricing-52HDANYL.js} +5 -5
- package/dist/{brand-CINQG3JG.js → brand-XXNOVSGE.js} +2 -2
- package/dist/{brief-WAQ2V6Q4.js → brief-MNWFEJ3L.js} +19 -19
- package/dist/{campaign-groups-5CMTEJZZ.js → campaign-groups-JFOFU76X.js} +9 -9
- package/dist/{campaign-writes-U5LTDTYK.js → campaign-writes-NSEJCINS.js} +3 -3
- package/dist/{campaign-writes-4RMPHQCT.js → campaign-writes-PKWLLKB5.js} +4 -4
- package/dist/{campaigns-NFRLFNXI.js → campaigns-5AZMOOID.js} +5 -5
- package/dist/{campaigns-PC7UAVXR.js → campaigns-H4VK3GKK.js} +12 -12
- package/dist/{campaigns-TFEQTSO3.js → campaigns-VWN2XPK2.js} +7 -7
- package/dist/{canvas-A4XKEBN7.js → canvas-TTV7QZZT.js} +14 -14
- package/dist/{capabilities-FNVTPCDT.js → capabilities-VJ53ROIP.js} +4 -4
- package/dist/{catalog-SJBGNNY4.js → catalog-43BSTAT6.js} +8 -8
- package/dist/{catalogs-A7XMEEEP.js → catalogs-XH5NHH4C.js} +3 -3
- package/dist/{changes-J67WATHX.js → changes-F6WUXFC3.js} +4 -4
- package/dist/{chatgpt-4PEWDJKP.js → chatgpt-K6KNTME4.js} +13 -13
- package/dist/{chats-S5FCV7YO.js → chats-PWLQO7UY.js} +4 -4
- package/dist/{check-GCZ2ZBKH.js → check-545MAB4E.js} +11 -11
- package/dist/{chunk-FRK7SSEH.js → chunk-2QSPPWOU.js} +2 -2
- package/dist/{chunk-U6IWRZQF.js → chunk-2WTD5Y34.js} +3 -3
- package/dist/{chunk-IG627WWY.js → chunk-3BKNGXCL.js} +169 -169
- package/dist/chunk-3BKNGXCL.js.map +1 -0
- package/dist/{chunk-AHF6TQWB.js → chunk-3UBTVAFJ.js} +2 -2
- package/dist/{chunk-KQDAFZKR.js → chunk-3ZHOBEQD.js} +3 -3
- package/dist/{chunk-RLS5OPPZ.js → chunk-46TND6YK.js} +2 -2
- package/dist/{chunk-3UXMQ3K2.js → chunk-5SRHACZW.js} +2 -2
- package/dist/{chunk-7U3V64YT.js → chunk-64HQDJ2E.js} +5 -5
- package/dist/{chunk-65N4ZPQD.js → chunk-6OIKNJ7G.js} +2 -2
- package/dist/{chunk-CXQRTLSQ.js → chunk-AOZ7547I.js} +3 -3
- package/dist/{chunk-ZBV5IV5T.js → chunk-B7FVPHCW.js} +2 -2
- package/dist/{chunk-A2FKWRKO.js → chunk-C7MENOP5.js} +6 -6
- package/dist/{chunk-MIOOPOG2.js → chunk-CSN6L345.js} +5 -5
- package/dist/{chunk-NNF4RARY.js → chunk-D6KHVUDS.js} +3 -3
- package/dist/{chunk-XSGO44OV.js → chunk-DDES6J6A.js} +4 -4
- package/dist/{chunk-T6ATGN7Y.js → chunk-F3CZFUXZ.js} +4 -4
- package/dist/chunk-F3CZFUXZ.js.map +1 -0
- package/dist/{chunk-U2452GLO.js → chunk-F5IH7G2F.js} +11 -6
- package/dist/chunk-F5IH7G2F.js.map +1 -0
- package/dist/{chunk-DCTEL4KG.js → chunk-FQXGII24.js} +4 -4
- package/dist/{chunk-ADSNY4KZ.js → chunk-G5GV6SUK.js} +2 -2
- package/dist/{chunk-IWWOGBGA.js → chunk-GD6UJDOB.js} +2 -2
- package/dist/{chunk-2DHHL4PU.js → chunk-GJWMPTUE.js} +4 -4
- package/dist/{chunk-RTWRNG3E.js → chunk-GM46ZEYP.js} +18 -8
- package/dist/{chunk-RTWRNG3E.js.map → chunk-GM46ZEYP.js.map} +1 -1
- package/dist/{chunk-GQ6JS5MR.js → chunk-HNEYIWXW.js} +56 -11
- package/dist/{chunk-GQ6JS5MR.js.map → chunk-HNEYIWXW.js.map} +1 -1
- package/dist/{chunk-ML7DLFFY.js → chunk-I2DNBEV6.js} +14 -14
- package/dist/chunk-I2DNBEV6.js.map +1 -0
- package/dist/{chunk-6KK26F2T.js → chunk-I2WRZJAC.js} +2 -2
- package/dist/{chunk-WNJ5SYAG.js → chunk-I44SNQ34.js} +2 -2
- package/dist/{chunk-R5WNYLG4.js → chunk-IYELKHBG.js} +2 -2
- package/dist/{chunk-XUR4QWCS.js → chunk-JQNO6JCV.js} +2 -2
- package/dist/{chunk-R2TAVQGZ.js → chunk-K4NMOWG7.js} +2 -2
- package/dist/{chunk-YD7BQDJ6.js → chunk-KOVQ2JGM.js} +2 -2
- package/dist/{chunk-V6PXHQSI.js → chunk-KXSXZAC2.js} +2 -2
- package/dist/{chunk-TNOJ6O6B.js → chunk-LFXE2G6R.js} +2 -2
- package/dist/{chunk-NVGXYF6K.js → chunk-LMZAOTRX.js} +2 -2
- package/dist/{chunk-ABXTGAG7.js → chunk-MK3OJZIU.js} +2 -2
- package/dist/{chunk-DF22CTXE.js → chunk-P5PX2G7E.js} +3 -3
- package/dist/{chunk-RMLJNHCU.js → chunk-PHPXAMY3.js} +3 -3
- package/dist/{chunk-5RCCESDX.js → chunk-PNVEV3XP.js} +109 -41
- package/dist/chunk-PNVEV3XP.js.map +1 -0
- package/dist/{chunk-BSEB55E6.js → chunk-QKABEX3F.js} +2 -2
- package/dist/{chunk-ELL2IQMF.js → chunk-QTLZXIF3.js} +9 -10
- package/dist/chunk-QTLZXIF3.js.map +1 -0
- package/dist/{chunk-JFA4R3KS.js → chunk-QYAI24PN.js} +2 -2
- package/dist/{chunk-DQC4NIJE.js → chunk-QZHGIJOW.js} +3 -3
- package/dist/{chunk-WD5BQBVY.js → chunk-REMR5FHD.js} +3 -3
- package/dist/{chunk-AS5VL32C.js → chunk-RGX7AQ2K.js} +2 -2
- package/dist/{chunk-RDCYPWQZ.js → chunk-RMNKCVRB.js} +23 -8
- package/dist/chunk-RMNKCVRB.js.map +1 -0
- package/dist/{chunk-WMVTIKET.js → chunk-ROX7LQRR.js} +2 -2
- package/dist/{chunk-AQ5WISEG.js → chunk-S7B2TOOU.js} +2 -2
- package/dist/{chunk-7VHPAGPK.js → chunk-SEPPFM5S.js} +2 -2
- package/dist/{chunk-ORQKMXHA.js → chunk-SIKCVWM3.js} +2 -2
- package/dist/{chunk-UMZIQIWN.js → chunk-SK2N45LO.js} +2 -2
- package/dist/{chunk-FEELV5IV.js → chunk-SQ7DRYCC.js} +2 -2
- package/dist/{chunk-U4W4LULB.js → chunk-TBHRRQZD.js} +8 -8
- package/dist/{chunk-PQTY22FR.js → chunk-TGIL4L4L.js} +9 -8
- package/dist/chunk-TGIL4L4L.js.map +1 -0
- package/dist/{chunk-CCIDHU6M.js → chunk-TKPVVD52.js} +2 -2
- package/dist/{chunk-NCP6RD6A.js → chunk-TNB5EIFV.js} +2 -2
- package/dist/{chunk-XUB2EK65.js → chunk-TUSR5R7I.js} +2 -2
- package/dist/{chunk-MMVLRUMK.js → chunk-TY4BDVLG.js} +23 -11
- package/dist/chunk-TY4BDVLG.js.map +1 -0
- package/dist/{chunk-4VWTIT5C.js → chunk-U63S2JWI.js} +2 -2
- package/dist/{chunk-3S5YZWB7.js → chunk-UTLIQBRY.js} +10 -7
- package/dist/chunk-UTLIQBRY.js.map +1 -0
- package/dist/{chunk-NR2OVOTD.js → chunk-UWT7RCL3.js} +2 -2
- package/dist/{chunk-DH5CKOYK.js → chunk-V4UIM4QE.js} +2 -2
- package/dist/{chunk-K2Z3KGOH.js → chunk-WHSTZRUY.js} +2 -2
- package/dist/{chunk-2K3NCVDI.js → chunk-XF5R2FQT.js} +31 -19
- package/dist/{chunk-2K3NCVDI.js.map → chunk-XF5R2FQT.js.map} +1 -1
- package/dist/{chunk-RCSOG2DV.js → chunk-XFJNCZXA.js} +5 -5
- package/dist/{chunk-5NS4CNF6.js → chunk-XLJVJ5TK.js} +5 -5
- package/dist/{chunk-Q7YZL7PG.js → chunk-XP4G2DJL.js} +2 -2
- package/dist/{chunk-5YKC2WWG.js → chunk-YU2XIIL3.js} +6 -6
- package/dist/{chunk-RD2XXQW3.js → chunk-ZBUWO4XH.js} +3 -3
- package/dist/{chunk-LD4CHA7U.js → chunk-ZJ6HUCRK.js} +2 -2
- package/dist/{claim-6MPQD43X.js → claim-QHXKN7W6.js} +4 -4
- package/dist/cli.js +30 -30
- package/dist/{companies-KRF2K4CA.js → companies-PGVT62JL.js} +4 -4
- package/dist/{complete-V433ON5C.js → complete-TCTR3XVD.js} +4 -4
- package/dist/{connect-QVIAM3GX.js → connect-4S7JLICS.js} +7 -7
- package/dist/{conversation-VZKBZZGG.js → conversation-DI4WMEL2.js} +4 -4
- package/dist/{conversion-report-REOHVLCI.js → conversion-report-KL4LIVY5.js} +2 -2
- package/dist/{conversion-upload-command-ASHA6T6H.js → conversion-upload-command-EIKJU5ZW.js} +4 -4
- package/dist/{conversion-writes-JU7Q2MUO.js → conversion-writes-MPBCTVSP.js} +3 -3
- package/dist/{conversions-3ISBR3TS.js → conversions-ACYT6K7H.js} +5 -5
- package/dist/{conversions-ZLC6YTJ5.js → conversions-JTYMFX66.js} +8 -8
- package/dist/{create-IFCCMKFT.js → create-3QA7X2DD.js} +3 -3
- package/dist/{create-R5P6JU5A.js → create-AFVT5JTH.js} +4 -4
- package/dist/{create-SF6DOGDJ.js → create-TYCOMVWR.js} +4 -4
- package/dist/{create-B3QMYSIX.js → create-VFXEJ3EV.js} +4 -4
- package/dist/{creatives-KD7MOCR3.js → creatives-E6N2YLHE.js} +9 -9
- package/dist/{creatives-U2M4F3D5.js → creatives-ZOK7PZSG.js} +12 -12
- package/dist/{credentials-2KJUKBMF.js → credentials-34I6ZZWU.js} +4 -4
- package/dist/{critique-JVKJEBAC.js → critique-JM5QADYW.js} +7 -7
- package/dist/{critique-43OVWKN7.js → critique-OCVV6N3U.js} +18 -18
- package/dist/{crm-ZYDNEME5.js → crm-4F3LFOZD.js} +5 -5
- package/dist/{crm-GX72E2LT.js → crm-MNBYNP5R.js} +5 -5
- package/dist/{currency-CGDI2NXI.js → currency-3QTI5RSB.js} +4 -4
- package/dist/{customers-P4N4NXLJ.js → customers-VNYNT2EQ.js} +8 -8
- package/dist/{delete-S4VKH7IS.js → delete-AZEVPMVO.js} +4 -4
- package/dist/{delete-RS7RQDUX.js → delete-PRJGFA2U.js} +4 -4
- package/dist/{delete-AK5IV44E.js → delete-UZRHYEPK.js} +3 -3
- package/dist/{demographics-IKWN2H3V.js → demographics-JMZA7MB6.js} +4 -4
- package/dist/{discard-H6DOHJRG.js → discard-OH3B5P4C.js} +4 -4
- package/dist/{discover-L4TPEKGY.js → discover-5GLET36U.js} +4 -4
- package/dist/{domain-US4KKAXC.js → domain-K3IILLYE.js} +4 -4
- package/dist/{draft-OLFQZBWL.js → draft-2KHUZTIE.js} +4 -4
- package/dist/{draft-IZ4YLQRD.js → draft-7RYDPOFS.js} +4 -4
- package/dist/{draft-R32RFDCI.js → draft-BB3UUWJP.js} +4 -4
- package/dist/{draft-BIQ3ZAYW.js → draft-LZL6VWHX.js} +5 -5
- package/dist/{draft-Y2QJE2NM.js → draft-VXGZDBC7.js} +3 -3
- package/dist/engine/index.js +7 -7
- package/dist/{facets-JBZQHN3D.js → facets-PAWOEHOK.js} +4 -4
- package/dist/{feedback-3GU3PAEI.js → feedback-GAGIKZ6B.js} +21 -21
- package/dist/{feedback-record-PIJDOJW3.js → feedback-record-ZORDBRV2.js} +22 -22
- package/dist/{fetch-GOY6DQRL.js → fetch-M5GIBURQ.js} +4 -4
- package/dist/{fit-TVQ7RK52.js → fit-DGCYW7LN.js} +13 -13
- package/dist/{flows-274YPU6I.js → flows-TD6PNUDM.js} +11 -11
- package/dist/{fonts-BMUNDGOZ.js → fonts-IQ6XOUGU.js} +9 -9
- package/dist/{forecast-W5F2MNOV.js → forecast-FACEH4WR.js} +5 -5
- package/dist/{forecast-F2CZSIMP.js → forecast-YXOKAWDZ.js} +4 -4
- package/dist/{funnel-LEUXICXU.js → funnel-CJRFDTCD.js} +5 -5
- package/dist/{generate-4HWNFAH3.js → generate-D3LUXFJT.js} +3 -3
- package/dist/{get-MGDY5JYZ.js → get-JRMJLLU5.js} +4 -4
- package/dist/{get-TY6AMFI4.js → get-NUL4YJG5.js} +4 -4
- package/dist/{google-ZTTE34A4.js → google-URYXWN5O.js} +22 -22
- package/dist/{google-ads-5ARKO757.js → google-ads-BB7CF4NV.js} +4 -4
- package/dist/{history-IQ33J5PB.js → history-OQAOTEO3.js} +3 -3
- package/dist/{history-SU7VQCDJ.js → history-Q47TKZJS.js} +4 -4
- package/dist/{hubspot-TJED44GO.js → hubspot-A6O5GVTH.js} +8 -8
- package/dist/{ideas-UTSCGCT6.js → ideas-NBQPCC5C.js} +10 -10
- package/dist/{images-ZMZ4WLYH.js → images-XY5DLJEA.js} +4 -4
- package/dist/{ingest-SGBJ3NXX.js → ingest-PUMTHASV.js} +3 -3
- package/dist/{ingest-DGDNZWEM.js → ingest-WWNSA6VZ.js} +4 -4
- package/dist/{insights-SQLE5NOJ.js → insights-PZXFCMX2.js} +2 -2
- package/dist/{inspect-BMQTTKMW.js → inspect-5PRLZLF5.js} +4 -4
- package/dist/{intent-LM36WK45.js → intent-4QVVI4FF.js} +4 -4
- package/dist/{keyword-gap-P652ODHN.js → keyword-gap-YMMDRYVK.js} +4 -4
- package/dist/{keyword-metrics-MQLGGJBT.js → keyword-metrics-FB7FCYK6.js} +6 -6
- package/dist/{keywords-for-site-JL6H2YGU.js → keywords-for-site-YZYALONY.js} +6 -6
- package/dist/{landing-AJO2BPC2.js → landing-XOCPIOWX.js} +2 -2
- package/dist/{languages-HL42MI7H.js → languages-R3Y2IOFU.js} +4 -4
- package/dist/{leads-H6JIWVI6.js → leads-SWINPYEP.js} +4 -4
- package/dist/{learn-RGO5KDHS.js → learn-6HVDSTTJ.js} +10 -10
- package/dist/{line-item-writes-V7AKAHFC.js → line-item-writes-FG3TY4W4.js} +4 -4
- package/dist/{line-items-GAMKVVIQ.js → line-items-ZNVBFA4H.js} +5 -5
- package/dist/{link-Z5AQP6JN.js → link-IFEXIUDW.js} +4 -4
- package/dist/{linkedin-7F6YVXQL.js → linkedin-NINSMEW6.js} +27 -27
- package/dist/{list-XZVQWIJN.js → list-FR2OVRVL.js} +3 -3
- package/dist/{list-NLGM3QDP.js → list-K65FY6SV.js} +4 -4
- package/dist/{list-SZH6TH74.js → list-RJG3FMZR.js} +4 -4
- package/dist/{locations-AEGZ36JH.js → locations-6IH7WGRG.js} +4 -4
- package/dist/{locations-YA7NZY44.js → locations-VL2G22Y5.js} +2 -2
- package/dist/{log-JM4VLJE4.js → log-TAKCMC2C.js} +4 -4
- package/dist/{make-IHJROEKG.js → make-EWHS4EHQ.js} +40 -34
- package/dist/make-EWHS4EHQ.js.map +1 -0
- package/dist/{map-HRLUMCR2.js → map-DWLEYXSW.js} +5 -5
- package/dist/{mcp-T6SAG4XB.js → mcp-NNQZ5B7N.js} +3 -3
- package/dist/{media-sources-7AS3274L.js → media-sources-OAFBA62X.js} +2 -2
- package/dist/{members-J5KWXTXY.js → members-SS7IBYVE.js} +4 -4
- package/dist/{metrics-VDBJ6KL7.js → metrics-YLAREC4T.js} +4 -4
- package/dist/{models-2DQ5NBMT.js → models-IH6KE6OH.js} +2 -2
- package/dist/{normalize-CHZB4QDD.js → normalize-WOZTAI6C.js} +4 -4
- package/dist/{options-QLXFLESP.js → options-PL44BV5E.js} +7 -7
- package/dist/{organization-KEGKAP4P.js → organization-SQBODZUK.js} +4 -4
- package/dist/{performance-SPGPGXE5.js → performance-WRARV3YR.js} +5 -5
- package/dist/{pixels-6IUB3Y3H.js → pixels-DWW2TDY2.js} +3 -3
- package/dist/{promoted-tweet-writes-TRR3KPRJ.js → promoted-tweet-writes-CAD3RGU4.js} +4 -4
- package/dist/{promoted-tweets-XRYZNJI2.js → promoted-tweets-NYJP3TXL.js} +3 -3
- package/dist/{publish-V5YGMK53.js → publish-ZW6VHB27.js} +4 -4
- package/dist/{query-M3IO54U2.js → query-QRPBV2AR.js} +5 -5
- package/dist/{reddit-STSECKMZ.js → reddit-VJTNXORD.js} +5 -5
- package/dist/{refresh-RQ3C2MHI.js → refresh-6I52WXG5.js} +3 -3
- package/dist/{release-UHGU5WBY.js → release-LSSYP2ZJ.js} +4 -4
- package/dist/{relevant-pages-G6SNC73K.js → relevant-pages-2XHS5WP4.js} +4 -4
- package/dist/{remove-LTKICIIF.js → remove-K62YJYGT.js} +3 -3
- package/dist/{reopen-BP5ERELB.js → reopen-RPVEBQVR.js} +4 -4
- package/dist/{rerun-R3DNEV5U.js → rerun-ETH2NEEX.js} +27 -27
- package/dist/{research-MBAPL35Y.js → research-4ASN2KMB.js} +13 -13
- package/dist/{research-GOYMTKZM.js → research-6J3EOBAL.js} +3 -3
- package/dist/{reset-SJPGSQ7I.js → reset-ETORO5UO.js} +3 -3
- package/dist/{reset-Q62PEGOU.js → reset-YVTYHSTY.js} +3 -3
- package/dist/{resolve-R45W7QEQ.js → resolve-BI7GB5U2.js} +4 -4
- package/dist/{retry-NBZ7Q6HK.js → retry-2ZZCKSRW.js} +3 -3
- package/dist/{retry-CD2Q2AJN.js → retry-QZ7YHXF3.js} +3 -3
- package/dist/{rules-SZIY67QF.js → rules-KEHQEXEU.js} +10 -10
- package/dist/{rules-add-KTLHU3YD.js → rules-add-IDBWO6XV.js} +11 -11
- package/dist/{run-QYIUO4NB.js → run-FFASB4YB.js} +27 -27
- package/dist/{run-HCJKCEOL.js → run-KYEOLJFV.js} +4 -4
- package/dist/{scaffold-ad-NIVJSO73.js → scaffold-ad-EKCXHZPT.js} +26 -26
- package/dist/{scaffold-static-ad-QX2NUXFR.js → scaffold-static-ad-MWKTXATN.js} +33 -33
- package/dist/{scaffold-video-NXBM54K3.js → scaffold-video-BYPPH352.js} +23 -23
- package/dist/{schedule-BSQHXJ5V.js → schedule-4BK2ML6F.js} +3 -3
- package/dist/{scheduled-agents-MFLMG34I.js → scheduled-agents-GMGP3G6T.js} +10 -10
- package/dist/{schema-IWPG3YSN.js → schema-QPPWADIL.js} +5 -5
- package/dist/{search-EGI5K77S.js → search-GCSQ6CSD.js} +3 -3
- package/dist/{select-Q4S4CPKV.js → select-CPFKK57J.js} +20 -20
- package/dist/{set-prompt-3MVZW3L6.js → set-prompt-TJ3UTNYS.js} +19 -19
- package/dist/{setup-links-5ILQNMFZ.js → setup-links-C3EUV2RX.js} +4 -4
- package/dist/{site-LBXNVRPE.js → site-W5W7FCUD.js} +5 -5
- package/dist/{sources-GP4PUTX2.js → sources-AWODYZDS.js} +7 -7
- package/dist/{sources-N4UANUHJ.js → sources-SGGLJIOA.js} +6 -6
- package/dist/{stale-NT2JRQHY.js → stale-KILEXX57.js} +19 -19
- package/dist/{status-GSFMLC6W.js → status-KUSLGZD7.js} +4 -4
- package/dist/{studio-YB5WXQYC.js → studio-LMDDQWRY.js} +4 -4
- package/dist/{sync-LIV7FU4N.js → sync-TCY4NX7J.js} +3 -3
- package/dist/{sync-definition-6XPX6VJU.js → sync-definition-DGSAZGQZ.js} +22 -22
- package/dist/{tags-ZHCGHGYC.js → tags-IHLO2NDM.js} +4 -4
- package/dist/{tags-6RQVXS47.js → tags-QQLYW2QQ.js} +3 -3
- package/dist/{tags-AAIFQ6LS.js → tags-QXRKKRIR.js} +4 -4
- package/dist/{tags-F355NMIR.js → tags-U5YWCPFW.js} +4 -4
- package/dist/{tags-4JQX7HMT.js → tags-ZYVOKGHU.js} +4 -4
- package/dist/{targeting-criteria-6FY2JB3V.js → targeting-criteria-AEBSY6OY.js} +3 -3
- package/dist/{targets-NI7TR4GV.js → targets-5Q2OFVXL.js} +4 -4
- package/dist/{testimonials-G7CCH7VN.js → testimonials-O52ULRAU.js} +6 -6
- package/dist/{themes-PXDXIKYR.js → themes-26XFWSWC.js} +4 -4
- package/dist/{top-companies-YH2ZJEH5.js → top-companies-OMGAFFWN.js} +4 -4
- package/dist/{translate-27DIFMBU.js → translate-C5LZ6KVN.js} +24 -24
- package/dist/{triggers-WYFM7PAH.js → triggers-PTPG6OQ6.js} +4 -4
- package/dist/{unlink-PTWUSM5B.js → unlink-3BAXM2OH.js} +4 -4
- package/dist/{unstage-MCM6EZWK.js → unstage-EFW465VN.js} +4 -4
- package/dist/{update-V6E3CIFD.js → update-2RCIXWP3.js} +4 -4
- package/dist/{update-643S2MUW.js → update-5A7Q7S6I.js} +4 -4
- package/dist/{update-2BDIJDHN.js → update-VTUB2M5I.js} +3 -3
- package/dist/{update-GUIP6G3N.js → update-XPRHUFBR.js} +4 -4
- package/dist/{upload-3YJJ5VID.js → upload-Y3TACPEN.js} +4 -4
- package/dist/{url-options-LHS4SWWB.js → url-options-6CNDIUDM.js} +4 -4
- package/dist/{url-params-2DKIXKHH.js → url-params-ZUYOLAJG.js} +4 -4
- package/dist/{validate-AYPLNS7A.js → validate-KPJLIGYY.js} +22 -22
- package/dist/{videos-KEDR4GG3.js → videos-EFMNE6U2.js} +5 -5
- package/dist/{viewer-check-TSH3SAYJ.js → viewer-check-2GI26EKA.js} +12 -12
- package/dist/{web-UOGBNAHR.js → web-4JGYRY36.js} +4 -4
- package/dist/{winning-ads-SGBI3WHK.js → winning-ads-6SXA4HGB.js} +3 -3
- package/dist/{write-commands-E7JOB4HX.js → write-commands-LQXKNBA5.js} +5 -5
- package/dist/{x-UNSN57YP.js → x-LUEUC3XO.js} +6 -6
- package/package.json +1 -1
- package/dist/chunk-3S5YZWB7.js.map +0 -1
- package/dist/chunk-5RCCESDX.js.map +0 -1
- package/dist/chunk-ELL2IQMF.js.map +0 -1
- package/dist/chunk-IG627WWY.js.map +0 -1
- package/dist/chunk-ML7DLFFY.js.map +0 -1
- package/dist/chunk-MMVLRUMK.js.map +0 -1
- package/dist/chunk-PQTY22FR.js.map +0 -1
- package/dist/chunk-RDCYPWQZ.js.map +0 -1
- package/dist/chunk-T6ATGN7Y.js.map +0 -1
- package/dist/chunk-U2452GLO.js.map +0 -1
- package/dist/make-IHJROEKG.js.map +0 -1
- /package/dist/{account-Z65CPOWE.js.map → account-ELL7ZZLM.js.map} +0 -0
- /package/dist/{account-VH2AATWI.js.map → account-KZVOT6HL.js.map} +0 -0
- /package/dist/{account-reads-GYI2SS6T.js.map → account-reads-LA45L6G3.js.map} +0 -0
- /package/dist/{account-writes-4N2MA2ZR.js.map → account-writes-CEPERFD6.js.map} +0 -0
- /package/dist/{accounts-XG472YLB.js.map → accounts-7G556DH4.js.map} +0 -0
- /package/dist/{accounts-SPLE7URQ.js.map → accounts-HC7GPQNG.js.map} +0 -0
- /package/dist/{actions-KQTXBNJU.js.map → actions-V6YP5C3X.js.map} +0 -0
- /package/dist/{activecampaign-42JXANUA.js.map → activecampaign-CHZEHRHZ.js.map} +0 -0
- /package/dist/{ad-group-writes-EUTMPBMK.js.map → ad-group-writes-XGSCEQTW.js.map} +0 -0
- /package/dist/{ad-groups-OVPAI5RM.js.map → ad-groups-GKOLDGET.js.map} +0 -0
- /package/dist/{ad-writes-DACTYFEO.js.map → ad-writes-VVD36JKH.js.map} +0 -0
- /package/dist/{add-C3FQ5D62.js.map → add-3MD72QMT.js.map} +0 -0
- /package/dist/{add-KTEJCE4L.js.map → add-TSQNUP5N.js.map} +0 -0
- /package/dist/{ads-L65JIKCD.js.map → ads-EKZVHKPN.js.map} +0 -0
- /package/dist/{ads-WPI3AMSR.js.map → ads-KRM4WAMZ.js.map} +0 -0
- /package/dist/{advertisers-36HP3AOE.js.map → advertisers-XJG7XDK7.js.map} +0 -0
- /package/dist/{analytics-IFNBT7IM.js.map → analytics-DO4UKW2H.js.map} +0 -0
- /package/dist/{analytics-I4LZCRG2.js.map → analytics-JVT2OBQC.js.map} +0 -0
- /package/dist/{animate-3LV3LHXQ.js.map → animate-G4P3OEJE.js.map} +0 -0
- /package/dist/{assign-WBLSZNCO.js.map → assign-72YAL6TP.js.map} +0 -0
- /package/dist/{audience-size-LOX5BNXI.js.map → audience-size-M5NU4QYN.js.map} +0 -0
- /package/dist/{audiences-RPLVMO4H.js.map → audiences-BU4JZJT7.js.map} +0 -0
- /package/dist/{audit-6AG6BPXQ.js.map → audit-22KQAHJR.js.map} +0 -0
- /package/dist/{autocomplete-2QRU7ARD.js.map → autocomplete-KLNQIK5T.js.map} +0 -0
- /package/dist/{avatars-EIETXCF3.js.map → avatars-VO6FMJFB.js.map} +0 -0
- /package/dist/{bid-pricing-5LZFHQTS.js.map → bid-pricing-52HDANYL.js.map} +0 -0
- /package/dist/{brand-CINQG3JG.js.map → brand-XXNOVSGE.js.map} +0 -0
- /package/dist/{brief-WAQ2V6Q4.js.map → brief-MNWFEJ3L.js.map} +0 -0
- /package/dist/{campaign-groups-5CMTEJZZ.js.map → campaign-groups-JFOFU76X.js.map} +0 -0
- /package/dist/{campaign-writes-U5LTDTYK.js.map → campaign-writes-NSEJCINS.js.map} +0 -0
- /package/dist/{campaign-writes-4RMPHQCT.js.map → campaign-writes-PKWLLKB5.js.map} +0 -0
- /package/dist/{campaigns-NFRLFNXI.js.map → campaigns-5AZMOOID.js.map} +0 -0
- /package/dist/{campaigns-PC7UAVXR.js.map → campaigns-H4VK3GKK.js.map} +0 -0
- /package/dist/{campaigns-TFEQTSO3.js.map → campaigns-VWN2XPK2.js.map} +0 -0
- /package/dist/{canvas-A4XKEBN7.js.map → canvas-TTV7QZZT.js.map} +0 -0
- /package/dist/{capabilities-FNVTPCDT.js.map → capabilities-VJ53ROIP.js.map} +0 -0
- /package/dist/{catalog-SJBGNNY4.js.map → catalog-43BSTAT6.js.map} +0 -0
- /package/dist/{catalogs-A7XMEEEP.js.map → catalogs-XH5NHH4C.js.map} +0 -0
- /package/dist/{changes-J67WATHX.js.map → changes-F6WUXFC3.js.map} +0 -0
- /package/dist/{chatgpt-4PEWDJKP.js.map → chatgpt-K6KNTME4.js.map} +0 -0
- /package/dist/{chats-S5FCV7YO.js.map → chats-PWLQO7UY.js.map} +0 -0
- /package/dist/{check-GCZ2ZBKH.js.map → check-545MAB4E.js.map} +0 -0
- /package/dist/{chunk-FRK7SSEH.js.map → chunk-2QSPPWOU.js.map} +0 -0
- /package/dist/{chunk-U6IWRZQF.js.map → chunk-2WTD5Y34.js.map} +0 -0
- /package/dist/{chunk-AHF6TQWB.js.map → chunk-3UBTVAFJ.js.map} +0 -0
- /package/dist/{chunk-KQDAFZKR.js.map → chunk-3ZHOBEQD.js.map} +0 -0
- /package/dist/{chunk-RLS5OPPZ.js.map → chunk-46TND6YK.js.map} +0 -0
- /package/dist/{chunk-3UXMQ3K2.js.map → chunk-5SRHACZW.js.map} +0 -0
- /package/dist/{chunk-7U3V64YT.js.map → chunk-64HQDJ2E.js.map} +0 -0
- /package/dist/{chunk-65N4ZPQD.js.map → chunk-6OIKNJ7G.js.map} +0 -0
- /package/dist/{chunk-CXQRTLSQ.js.map → chunk-AOZ7547I.js.map} +0 -0
- /package/dist/{chunk-ZBV5IV5T.js.map → chunk-B7FVPHCW.js.map} +0 -0
- /package/dist/{chunk-A2FKWRKO.js.map → chunk-C7MENOP5.js.map} +0 -0
- /package/dist/{chunk-MIOOPOG2.js.map → chunk-CSN6L345.js.map} +0 -0
- /package/dist/{chunk-NNF4RARY.js.map → chunk-D6KHVUDS.js.map} +0 -0
- /package/dist/{chunk-XSGO44OV.js.map → chunk-DDES6J6A.js.map} +0 -0
- /package/dist/{chunk-DCTEL4KG.js.map → chunk-FQXGII24.js.map} +0 -0
- /package/dist/{chunk-ADSNY4KZ.js.map → chunk-G5GV6SUK.js.map} +0 -0
- /package/dist/{chunk-IWWOGBGA.js.map → chunk-GD6UJDOB.js.map} +0 -0
- /package/dist/{chunk-2DHHL4PU.js.map → chunk-GJWMPTUE.js.map} +0 -0
- /package/dist/{chunk-6KK26F2T.js.map → chunk-I2WRZJAC.js.map} +0 -0
- /package/dist/{chunk-WNJ5SYAG.js.map → chunk-I44SNQ34.js.map} +0 -0
- /package/dist/{chunk-R5WNYLG4.js.map → chunk-IYELKHBG.js.map} +0 -0
- /package/dist/{chunk-XUR4QWCS.js.map → chunk-JQNO6JCV.js.map} +0 -0
- /package/dist/{chunk-R2TAVQGZ.js.map → chunk-K4NMOWG7.js.map} +0 -0
- /package/dist/{chunk-YD7BQDJ6.js.map → chunk-KOVQ2JGM.js.map} +0 -0
- /package/dist/{chunk-V6PXHQSI.js.map → chunk-KXSXZAC2.js.map} +0 -0
- /package/dist/{chunk-TNOJ6O6B.js.map → chunk-LFXE2G6R.js.map} +0 -0
- /package/dist/{chunk-NVGXYF6K.js.map → chunk-LMZAOTRX.js.map} +0 -0
- /package/dist/{chunk-ABXTGAG7.js.map → chunk-MK3OJZIU.js.map} +0 -0
- /package/dist/{chunk-DF22CTXE.js.map → chunk-P5PX2G7E.js.map} +0 -0
- /package/dist/{chunk-RMLJNHCU.js.map → chunk-PHPXAMY3.js.map} +0 -0
- /package/dist/{chunk-BSEB55E6.js.map → chunk-QKABEX3F.js.map} +0 -0
- /package/dist/{chunk-JFA4R3KS.js.map → chunk-QYAI24PN.js.map} +0 -0
- /package/dist/{chunk-DQC4NIJE.js.map → chunk-QZHGIJOW.js.map} +0 -0
- /package/dist/{chunk-WD5BQBVY.js.map → chunk-REMR5FHD.js.map} +0 -0
- /package/dist/{chunk-AS5VL32C.js.map → chunk-RGX7AQ2K.js.map} +0 -0
- /package/dist/{chunk-WMVTIKET.js.map → chunk-ROX7LQRR.js.map} +0 -0
- /package/dist/{chunk-AQ5WISEG.js.map → chunk-S7B2TOOU.js.map} +0 -0
- /package/dist/{chunk-7VHPAGPK.js.map → chunk-SEPPFM5S.js.map} +0 -0
- /package/dist/{chunk-ORQKMXHA.js.map → chunk-SIKCVWM3.js.map} +0 -0
- /package/dist/{chunk-UMZIQIWN.js.map → chunk-SK2N45LO.js.map} +0 -0
- /package/dist/{chunk-FEELV5IV.js.map → chunk-SQ7DRYCC.js.map} +0 -0
- /package/dist/{chunk-U4W4LULB.js.map → chunk-TBHRRQZD.js.map} +0 -0
- /package/dist/{chunk-CCIDHU6M.js.map → chunk-TKPVVD52.js.map} +0 -0
- /package/dist/{chunk-NCP6RD6A.js.map → chunk-TNB5EIFV.js.map} +0 -0
- /package/dist/{chunk-XUB2EK65.js.map → chunk-TUSR5R7I.js.map} +0 -0
- /package/dist/{chunk-4VWTIT5C.js.map → chunk-U63S2JWI.js.map} +0 -0
- /package/dist/{chunk-NR2OVOTD.js.map → chunk-UWT7RCL3.js.map} +0 -0
- /package/dist/{chunk-DH5CKOYK.js.map → chunk-V4UIM4QE.js.map} +0 -0
- /package/dist/{chunk-K2Z3KGOH.js.map → chunk-WHSTZRUY.js.map} +0 -0
- /package/dist/{chunk-RCSOG2DV.js.map → chunk-XFJNCZXA.js.map} +0 -0
- /package/dist/{chunk-5NS4CNF6.js.map → chunk-XLJVJ5TK.js.map} +0 -0
- /package/dist/{chunk-Q7YZL7PG.js.map → chunk-XP4G2DJL.js.map} +0 -0
- /package/dist/{chunk-5YKC2WWG.js.map → chunk-YU2XIIL3.js.map} +0 -0
- /package/dist/{chunk-RD2XXQW3.js.map → chunk-ZBUWO4XH.js.map} +0 -0
- /package/dist/{chunk-LD4CHA7U.js.map → chunk-ZJ6HUCRK.js.map} +0 -0
- /package/dist/{claim-6MPQD43X.js.map → claim-QHXKN7W6.js.map} +0 -0
- /package/dist/{companies-KRF2K4CA.js.map → companies-PGVT62JL.js.map} +0 -0
- /package/dist/{complete-V433ON5C.js.map → complete-TCTR3XVD.js.map} +0 -0
- /package/dist/{connect-QVIAM3GX.js.map → connect-4S7JLICS.js.map} +0 -0
- /package/dist/{conversation-VZKBZZGG.js.map → conversation-DI4WMEL2.js.map} +0 -0
- /package/dist/{conversion-report-REOHVLCI.js.map → conversion-report-KL4LIVY5.js.map} +0 -0
- /package/dist/{conversion-upload-command-ASHA6T6H.js.map → conversion-upload-command-EIKJU5ZW.js.map} +0 -0
- /package/dist/{conversion-writes-JU7Q2MUO.js.map → conversion-writes-MPBCTVSP.js.map} +0 -0
- /package/dist/{conversions-3ISBR3TS.js.map → conversions-ACYT6K7H.js.map} +0 -0
- /package/dist/{conversions-ZLC6YTJ5.js.map → conversions-JTYMFX66.js.map} +0 -0
- /package/dist/{create-IFCCMKFT.js.map → create-3QA7X2DD.js.map} +0 -0
- /package/dist/{create-R5P6JU5A.js.map → create-AFVT5JTH.js.map} +0 -0
- /package/dist/{create-SF6DOGDJ.js.map → create-TYCOMVWR.js.map} +0 -0
- /package/dist/{create-B3QMYSIX.js.map → create-VFXEJ3EV.js.map} +0 -0
- /package/dist/{creatives-KD7MOCR3.js.map → creatives-E6N2YLHE.js.map} +0 -0
- /package/dist/{creatives-U2M4F3D5.js.map → creatives-ZOK7PZSG.js.map} +0 -0
- /package/dist/{credentials-2KJUKBMF.js.map → credentials-34I6ZZWU.js.map} +0 -0
- /package/dist/{critique-JVKJEBAC.js.map → critique-JM5QADYW.js.map} +0 -0
- /package/dist/{critique-43OVWKN7.js.map → critique-OCVV6N3U.js.map} +0 -0
- /package/dist/{crm-ZYDNEME5.js.map → crm-4F3LFOZD.js.map} +0 -0
- /package/dist/{crm-GX72E2LT.js.map → crm-MNBYNP5R.js.map} +0 -0
- /package/dist/{currency-CGDI2NXI.js.map → currency-3QTI5RSB.js.map} +0 -0
- /package/dist/{customers-P4N4NXLJ.js.map → customers-VNYNT2EQ.js.map} +0 -0
- /package/dist/{delete-S4VKH7IS.js.map → delete-AZEVPMVO.js.map} +0 -0
- /package/dist/{delete-RS7RQDUX.js.map → delete-PRJGFA2U.js.map} +0 -0
- /package/dist/{delete-AK5IV44E.js.map → delete-UZRHYEPK.js.map} +0 -0
- /package/dist/{demographics-IKWN2H3V.js.map → demographics-JMZA7MB6.js.map} +0 -0
- /package/dist/{discard-H6DOHJRG.js.map → discard-OH3B5P4C.js.map} +0 -0
- /package/dist/{discover-L4TPEKGY.js.map → discover-5GLET36U.js.map} +0 -0
- /package/dist/{domain-US4KKAXC.js.map → domain-K3IILLYE.js.map} +0 -0
- /package/dist/{draft-OLFQZBWL.js.map → draft-2KHUZTIE.js.map} +0 -0
- /package/dist/{draft-IZ4YLQRD.js.map → draft-7RYDPOFS.js.map} +0 -0
- /package/dist/{draft-R32RFDCI.js.map → draft-BB3UUWJP.js.map} +0 -0
- /package/dist/{draft-BIQ3ZAYW.js.map → draft-LZL6VWHX.js.map} +0 -0
- /package/dist/{draft-Y2QJE2NM.js.map → draft-VXGZDBC7.js.map} +0 -0
- /package/dist/{facets-JBZQHN3D.js.map → facets-PAWOEHOK.js.map} +0 -0
- /package/dist/{feedback-3GU3PAEI.js.map → feedback-GAGIKZ6B.js.map} +0 -0
- /package/dist/{feedback-record-PIJDOJW3.js.map → feedback-record-ZORDBRV2.js.map} +0 -0
- /package/dist/{fetch-GOY6DQRL.js.map → fetch-M5GIBURQ.js.map} +0 -0
- /package/dist/{fit-TVQ7RK52.js.map → fit-DGCYW7LN.js.map} +0 -0
- /package/dist/{flows-274YPU6I.js.map → flows-TD6PNUDM.js.map} +0 -0
- /package/dist/{fonts-BMUNDGOZ.js.map → fonts-IQ6XOUGU.js.map} +0 -0
- /package/dist/{forecast-W5F2MNOV.js.map → forecast-FACEH4WR.js.map} +0 -0
- /package/dist/{forecast-F2CZSIMP.js.map → forecast-YXOKAWDZ.js.map} +0 -0
- /package/dist/{funnel-LEUXICXU.js.map → funnel-CJRFDTCD.js.map} +0 -0
- /package/dist/{generate-4HWNFAH3.js.map → generate-D3LUXFJT.js.map} +0 -0
- /package/dist/{get-MGDY5JYZ.js.map → get-JRMJLLU5.js.map} +0 -0
- /package/dist/{get-TY6AMFI4.js.map → get-NUL4YJG5.js.map} +0 -0
- /package/dist/{google-ZTTE34A4.js.map → google-URYXWN5O.js.map} +0 -0
- /package/dist/{google-ads-5ARKO757.js.map → google-ads-BB7CF4NV.js.map} +0 -0
- /package/dist/{history-IQ33J5PB.js.map → history-OQAOTEO3.js.map} +0 -0
- /package/dist/{history-SU7VQCDJ.js.map → history-Q47TKZJS.js.map} +0 -0
- /package/dist/{hubspot-TJED44GO.js.map → hubspot-A6O5GVTH.js.map} +0 -0
- /package/dist/{ideas-UTSCGCT6.js.map → ideas-NBQPCC5C.js.map} +0 -0
- /package/dist/{images-ZMZ4WLYH.js.map → images-XY5DLJEA.js.map} +0 -0
- /package/dist/{ingest-SGBJ3NXX.js.map → ingest-PUMTHASV.js.map} +0 -0
- /package/dist/{ingest-DGDNZWEM.js.map → ingest-WWNSA6VZ.js.map} +0 -0
- /package/dist/{insights-SQLE5NOJ.js.map → insights-PZXFCMX2.js.map} +0 -0
- /package/dist/{inspect-BMQTTKMW.js.map → inspect-5PRLZLF5.js.map} +0 -0
- /package/dist/{intent-LM36WK45.js.map → intent-4QVVI4FF.js.map} +0 -0
- /package/dist/{keyword-gap-P652ODHN.js.map → keyword-gap-YMMDRYVK.js.map} +0 -0
- /package/dist/{keyword-metrics-MQLGGJBT.js.map → keyword-metrics-FB7FCYK6.js.map} +0 -0
- /package/dist/{keywords-for-site-JL6H2YGU.js.map → keywords-for-site-YZYALONY.js.map} +0 -0
- /package/dist/{landing-AJO2BPC2.js.map → landing-XOCPIOWX.js.map} +0 -0
- /package/dist/{languages-HL42MI7H.js.map → languages-R3Y2IOFU.js.map} +0 -0
- /package/dist/{leads-H6JIWVI6.js.map → leads-SWINPYEP.js.map} +0 -0
- /package/dist/{learn-RGO5KDHS.js.map → learn-6HVDSTTJ.js.map} +0 -0
- /package/dist/{line-item-writes-V7AKAHFC.js.map → line-item-writes-FG3TY4W4.js.map} +0 -0
- /package/dist/{line-items-GAMKVVIQ.js.map → line-items-ZNVBFA4H.js.map} +0 -0
- /package/dist/{link-Z5AQP6JN.js.map → link-IFEXIUDW.js.map} +0 -0
- /package/dist/{linkedin-7F6YVXQL.js.map → linkedin-NINSMEW6.js.map} +0 -0
- /package/dist/{list-XZVQWIJN.js.map → list-FR2OVRVL.js.map} +0 -0
- /package/dist/{list-NLGM3QDP.js.map → list-K65FY6SV.js.map} +0 -0
- /package/dist/{list-SZH6TH74.js.map → list-RJG3FMZR.js.map} +0 -0
- /package/dist/{locations-AEGZ36JH.js.map → locations-6IH7WGRG.js.map} +0 -0
- /package/dist/{locations-YA7NZY44.js.map → locations-VL2G22Y5.js.map} +0 -0
- /package/dist/{log-JM4VLJE4.js.map → log-TAKCMC2C.js.map} +0 -0
- /package/dist/{map-HRLUMCR2.js.map → map-DWLEYXSW.js.map} +0 -0
- /package/dist/{mcp-T6SAG4XB.js.map → mcp-NNQZ5B7N.js.map} +0 -0
- /package/dist/{media-sources-7AS3274L.js.map → media-sources-OAFBA62X.js.map} +0 -0
- /package/dist/{members-J5KWXTXY.js.map → members-SS7IBYVE.js.map} +0 -0
- /package/dist/{metrics-VDBJ6KL7.js.map → metrics-YLAREC4T.js.map} +0 -0
- /package/dist/{models-2DQ5NBMT.js.map → models-IH6KE6OH.js.map} +0 -0
- /package/dist/{normalize-CHZB4QDD.js.map → normalize-WOZTAI6C.js.map} +0 -0
- /package/dist/{options-QLXFLESP.js.map → options-PL44BV5E.js.map} +0 -0
- /package/dist/{organization-KEGKAP4P.js.map → organization-SQBODZUK.js.map} +0 -0
- /package/dist/{performance-SPGPGXE5.js.map → performance-WRARV3YR.js.map} +0 -0
- /package/dist/{pixels-6IUB3Y3H.js.map → pixels-DWW2TDY2.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-TRR3KPRJ.js.map → promoted-tweet-writes-CAD3RGU4.js.map} +0 -0
- /package/dist/{promoted-tweets-XRYZNJI2.js.map → promoted-tweets-NYJP3TXL.js.map} +0 -0
- /package/dist/{publish-V5YGMK53.js.map → publish-ZW6VHB27.js.map} +0 -0
- /package/dist/{query-M3IO54U2.js.map → query-QRPBV2AR.js.map} +0 -0
- /package/dist/{reddit-STSECKMZ.js.map → reddit-VJTNXORD.js.map} +0 -0
- /package/dist/{refresh-RQ3C2MHI.js.map → refresh-6I52WXG5.js.map} +0 -0
- /package/dist/{release-UHGU5WBY.js.map → release-LSSYP2ZJ.js.map} +0 -0
- /package/dist/{relevant-pages-G6SNC73K.js.map → relevant-pages-2XHS5WP4.js.map} +0 -0
- /package/dist/{remove-LTKICIIF.js.map → remove-K62YJYGT.js.map} +0 -0
- /package/dist/{reopen-BP5ERELB.js.map → reopen-RPVEBQVR.js.map} +0 -0
- /package/dist/{rerun-R3DNEV5U.js.map → rerun-ETH2NEEX.js.map} +0 -0
- /package/dist/{research-MBAPL35Y.js.map → research-4ASN2KMB.js.map} +0 -0
- /package/dist/{research-GOYMTKZM.js.map → research-6J3EOBAL.js.map} +0 -0
- /package/dist/{reset-SJPGSQ7I.js.map → reset-ETORO5UO.js.map} +0 -0
- /package/dist/{reset-Q62PEGOU.js.map → reset-YVTYHSTY.js.map} +0 -0
- /package/dist/{resolve-R45W7QEQ.js.map → resolve-BI7GB5U2.js.map} +0 -0
- /package/dist/{retry-NBZ7Q6HK.js.map → retry-2ZZCKSRW.js.map} +0 -0
- /package/dist/{retry-CD2Q2AJN.js.map → retry-QZ7YHXF3.js.map} +0 -0
- /package/dist/{rules-SZIY67QF.js.map → rules-KEHQEXEU.js.map} +0 -0
- /package/dist/{rules-add-KTLHU3YD.js.map → rules-add-IDBWO6XV.js.map} +0 -0
- /package/dist/{run-QYIUO4NB.js.map → run-FFASB4YB.js.map} +0 -0
- /package/dist/{run-HCJKCEOL.js.map → run-KYEOLJFV.js.map} +0 -0
- /package/dist/{scaffold-ad-NIVJSO73.js.map → scaffold-ad-EKCXHZPT.js.map} +0 -0
- /package/dist/{scaffold-static-ad-QX2NUXFR.js.map → scaffold-static-ad-MWKTXATN.js.map} +0 -0
- /package/dist/{scaffold-video-NXBM54K3.js.map → scaffold-video-BYPPH352.js.map} +0 -0
- /package/dist/{schedule-BSQHXJ5V.js.map → schedule-4BK2ML6F.js.map} +0 -0
- /package/dist/{scheduled-agents-MFLMG34I.js.map → scheduled-agents-GMGP3G6T.js.map} +0 -0
- /package/dist/{schema-IWPG3YSN.js.map → schema-QPPWADIL.js.map} +0 -0
- /package/dist/{search-EGI5K77S.js.map → search-GCSQ6CSD.js.map} +0 -0
- /package/dist/{select-Q4S4CPKV.js.map → select-CPFKK57J.js.map} +0 -0
- /package/dist/{set-prompt-3MVZW3L6.js.map → set-prompt-TJ3UTNYS.js.map} +0 -0
- /package/dist/{setup-links-5ILQNMFZ.js.map → setup-links-C3EUV2RX.js.map} +0 -0
- /package/dist/{site-LBXNVRPE.js.map → site-W5W7FCUD.js.map} +0 -0
- /package/dist/{sources-GP4PUTX2.js.map → sources-AWODYZDS.js.map} +0 -0
- /package/dist/{sources-N4UANUHJ.js.map → sources-SGGLJIOA.js.map} +0 -0
- /package/dist/{stale-NT2JRQHY.js.map → stale-KILEXX57.js.map} +0 -0
- /package/dist/{status-GSFMLC6W.js.map → status-KUSLGZD7.js.map} +0 -0
- /package/dist/{studio-YB5WXQYC.js.map → studio-LMDDQWRY.js.map} +0 -0
- /package/dist/{sync-LIV7FU4N.js.map → sync-TCY4NX7J.js.map} +0 -0
- /package/dist/{sync-definition-6XPX6VJU.js.map → sync-definition-DGSAZGQZ.js.map} +0 -0
- /package/dist/{tags-ZHCGHGYC.js.map → tags-IHLO2NDM.js.map} +0 -0
- /package/dist/{tags-6RQVXS47.js.map → tags-QQLYW2QQ.js.map} +0 -0
- /package/dist/{tags-AAIFQ6LS.js.map → tags-QXRKKRIR.js.map} +0 -0
- /package/dist/{tags-F355NMIR.js.map → tags-U5YWCPFW.js.map} +0 -0
- /package/dist/{tags-4JQX7HMT.js.map → tags-ZYVOKGHU.js.map} +0 -0
- /package/dist/{targeting-criteria-6FY2JB3V.js.map → targeting-criteria-AEBSY6OY.js.map} +0 -0
- /package/dist/{targets-NI7TR4GV.js.map → targets-5Q2OFVXL.js.map} +0 -0
- /package/dist/{testimonials-G7CCH7VN.js.map → testimonials-O52ULRAU.js.map} +0 -0
- /package/dist/{themes-PXDXIKYR.js.map → themes-26XFWSWC.js.map} +0 -0
- /package/dist/{top-companies-YH2ZJEH5.js.map → top-companies-OMGAFFWN.js.map} +0 -0
- /package/dist/{translate-27DIFMBU.js.map → translate-C5LZ6KVN.js.map} +0 -0
- /package/dist/{triggers-WYFM7PAH.js.map → triggers-PTPG6OQ6.js.map} +0 -0
- /package/dist/{unlink-PTWUSM5B.js.map → unlink-3BAXM2OH.js.map} +0 -0
- /package/dist/{unstage-MCM6EZWK.js.map → unstage-EFW465VN.js.map} +0 -0
- /package/dist/{update-V6E3CIFD.js.map → update-2RCIXWP3.js.map} +0 -0
- /package/dist/{update-643S2MUW.js.map → update-5A7Q7S6I.js.map} +0 -0
- /package/dist/{update-2BDIJDHN.js.map → update-VTUB2M5I.js.map} +0 -0
- /package/dist/{update-GUIP6G3N.js.map → update-XPRHUFBR.js.map} +0 -0
- /package/dist/{upload-3YJJ5VID.js.map → upload-Y3TACPEN.js.map} +0 -0
- /package/dist/{url-options-LHS4SWWB.js.map → url-options-6CNDIUDM.js.map} +0 -0
- /package/dist/{url-params-2DKIXKHH.js.map → url-params-ZUYOLAJG.js.map} +0 -0
- /package/dist/{validate-AYPLNS7A.js.map → validate-KPJLIGYY.js.map} +0 -0
- /package/dist/{videos-KEDR4GG3.js.map → videos-EFMNE6U2.js.map} +0 -0
- /package/dist/{viewer-check-TSH3SAYJ.js.map → viewer-check-2GI26EKA.js.map} +0 -0
- /package/dist/{web-UOGBNAHR.js.map → web-4JGYRY36.js.map} +0 -0
- /package/dist/{winning-ads-SGBI3WHK.js.map → winning-ads-6SXA4HGB.js.map} +0 -0
- /package/dist/{write-commands-E7JOB4HX.js.map → write-commands-LQXKNBA5.js.map} +0 -0
- /package/dist/{x-UNSN57YP.js.map → x-LUEUC3XO.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ACTION_TEMP_ID_PREFIX
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2QSPPWOU.js";
|
|
4
4
|
import {
|
|
5
5
|
ApiError
|
|
6
6
|
} from "./chunk-XDZVBX6L.js";
|
|
@@ -169,4 +169,4 @@ export {
|
|
|
169
169
|
buildListHints,
|
|
170
170
|
buildGetHints
|
|
171
171
|
};
|
|
172
|
-
//# sourceMappingURL=chunk-
|
|
172
|
+
//# sourceMappingURL=chunk-QYAI24PN.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
failApi
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QYAI24PN.js";
|
|
4
4
|
import {
|
|
5
5
|
HUBSPOT_MISSING_GRANT_MARKER,
|
|
6
6
|
HUBSPOT_NOT_CONNECTED_MESSAGE
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-2QSPPWOU.js";
|
|
8
8
|
import {
|
|
9
9
|
ApiError
|
|
10
10
|
} from "./chunk-XDZVBX6L.js";
|
|
@@ -48,4 +48,4 @@ export {
|
|
|
48
48
|
hubspotRefusal,
|
|
49
49
|
failNotConnected
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
51
|
+
//# sourceMappingURL=chunk-QZHGIJOW.js.map
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
parseDefinitionDelivery,
|
|
4
4
|
resolveDelivery,
|
|
5
5
|
resolveFormatList
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PNVEV3XP.js";
|
|
7
7
|
import {
|
|
8
8
|
AD_PLACEMENTS
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-F3CZFUXZ.js";
|
|
10
10
|
import {
|
|
11
11
|
CAPABILITY_SURFACES
|
|
12
12
|
} from "./chunk-XQIOCIDO.js";
|
|
@@ -88,4 +88,4 @@ export {
|
|
|
88
88
|
deliveryDefinitionFields,
|
|
89
89
|
deliveryNote
|
|
90
90
|
};
|
|
91
|
-
//# sourceMappingURL=chunk-
|
|
91
|
+
//# sourceMappingURL=chunk-REMR5FHD.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-5WMTPYKT.js";
|
|
4
4
|
import {
|
|
5
5
|
askAboutText
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-B7FVPHCW.js";
|
|
7
7
|
|
|
8
8
|
// src/engine/brand/brand-doc.ts
|
|
9
9
|
import { createHash } from "crypto";
|
|
@@ -128,4 +128,4 @@ export {
|
|
|
128
128
|
LOGO_FILE,
|
|
129
129
|
readWorkspaceBrandDoc
|
|
130
130
|
};
|
|
131
|
-
//# sourceMappingURL=chunk-
|
|
131
|
+
//# sourceMappingURL=chunk-RGX7AQ2K.js.map
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
IDEA_VIDEO_FORMATS,
|
|
3
3
|
figuresIn,
|
|
4
4
|
unsourcedClaims
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-TY4BDVLG.js";
|
|
6
6
|
import {
|
|
7
7
|
AD_SPEC_SCHEMA,
|
|
8
8
|
unfitReasons
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-F5IH7G2F.js";
|
|
10
10
|
import {
|
|
11
11
|
proofStrength
|
|
12
12
|
} from "./chunk-WNSE7N75.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
import { parse, parseDocument, Scalar, visit } from "yaml";
|
|
16
16
|
var REFERENCE_CANDIDATES = 6;
|
|
17
17
|
function isVideoIdea(idea) {
|
|
18
|
-
return IDEA_VIDEO_FORMATS.includes(idea.format);
|
|
18
|
+
return IDEA_VIDEO_FORMATS.includes(idea.format ?? "");
|
|
19
19
|
}
|
|
20
20
|
var BY_TEMPERATURE = {
|
|
21
21
|
cold: { audienceTemperature: "0_cold", excludeBrandReliant: true },
|
|
@@ -48,8 +48,20 @@ function referenceSearchesFor(idea, temperature, where = {}) {
|
|
|
48
48
|
const { query: _query, ...winners } = anyStage;
|
|
49
49
|
const { query: _anyQuery, country: _winnersCountry, ...winnersAnywhere } = anyViewer;
|
|
50
50
|
const inMarket = (steps) => where.country ? steps : [];
|
|
51
|
+
const shows = idea.shows?.trim();
|
|
52
|
+
const { formatPattern: _shownPattern, ...anyCategory } = { ...anyStage, scope: "all" };
|
|
53
|
+
const { country: _shownCountry, ...anyCategoryAnywhere } = anyCategory;
|
|
54
|
+
const { country: _viewerCountry, ...anyViewerAnywhere } = anyViewer;
|
|
55
|
+
const { formatPattern: _anyPattern, ...shownAnyViewer } = anyViewerAnywhere;
|
|
56
|
+
const shown = shows ? [
|
|
57
|
+
...inMarket([{ ...anyCategory, query: shows }]),
|
|
58
|
+
{ ...anyCategoryAnywhere, query: shows },
|
|
59
|
+
{ ...shownAnyViewer, query: shows },
|
|
60
|
+
...idea.format ? [{ ...anyViewerAnywhere, query: shows }] : []
|
|
61
|
+
] : [];
|
|
51
62
|
const anyAd = (query) => query?.trim() ? [...inMarket([{ ...anyContainer, query: query.trim() }]), { ...anyContainerAnywhere, query: query.trim() }] : [];
|
|
52
63
|
return [
|
|
64
|
+
...shown,
|
|
53
65
|
...where.country ? [strict, anyStage, anyContainer] : [strict, anyStage],
|
|
54
66
|
anywhere,
|
|
55
67
|
anyContainerAnywhere,
|
|
@@ -83,7 +95,8 @@ function rankedForOf(brief, where, bet) {
|
|
|
83
95
|
...brief?.memesWhy ? { memesWhy: brief.memesWhy } : {},
|
|
84
96
|
...brief?.avoid.length ? { avoid: brief.avoid } : {},
|
|
85
97
|
message: bet.message,
|
|
86
|
-
who: bet.who
|
|
98
|
+
who: bet.who,
|
|
99
|
+
...bet.shows ? { shows: bet.shows } : {}
|
|
87
100
|
};
|
|
88
101
|
}
|
|
89
102
|
var brandKey = (name) => name.normalize("NFD").replace(new RegExp("\\p{M}", "gu"), "").toLowerCase().replace(/[^\p{L}\p{N}]/gu, "");
|
|
@@ -193,6 +206,7 @@ function fitBetOf(idea, personas, insights, market) {
|
|
|
193
206
|
message: idea.message,
|
|
194
207
|
awareness: idea.awareness,
|
|
195
208
|
angle: idea.angle,
|
|
209
|
+
...idea.shows ? { shows: idea.shows } : {},
|
|
196
210
|
...quotes.length > 0 ? { quotes } : {},
|
|
197
211
|
...market ? { market } : {}
|
|
198
212
|
};
|
|
@@ -215,15 +229,16 @@ function unsourcedCopyLines(specJson, corpus) {
|
|
|
215
229
|
}
|
|
216
230
|
var PHOTO_FORMATS = /photo|lifestyle|before_after|ugc|product|selfie|street/;
|
|
217
231
|
function ideaSpec(idea, who) {
|
|
218
|
-
const container = idea.format.replace(/_/g, " ");
|
|
232
|
+
const container = idea.format ? `, as a ${idea.format.replace(/_/g, " ")}` : "";
|
|
233
|
+
const shows = idea.shows ? ` (${idea.shows})` : "";
|
|
219
234
|
return {
|
|
220
235
|
schema: AD_SPEC_SCHEMA,
|
|
221
236
|
viewer: { who },
|
|
222
237
|
message: idea.message,
|
|
223
238
|
copy: [{ text: "[TODO: the headline, in the customer's words]", lettering: "designed", role: "headline" }],
|
|
224
239
|
scene: {
|
|
225
|
-
description: `[TODO: what the viewer sees
|
|
226
|
-
look: PHOTO_FORMATS.test(idea.format) ? "photo" : "designed"
|
|
240
|
+
description: `[TODO: what the viewer sees first${shows}${container}, that shows: ${idea.message}]`,
|
|
241
|
+
look: PHOTO_FORMATS.test(idea.format ?? idea.shows ?? "") ? "photo" : "designed"
|
|
227
242
|
},
|
|
228
243
|
colors: [],
|
|
229
244
|
references: [],
|
|
@@ -257,4 +272,4 @@ export {
|
|
|
257
272
|
unsourcedCopyLines,
|
|
258
273
|
ideaSpec
|
|
259
274
|
};
|
|
260
|
-
//# sourceMappingURL=chunk-
|
|
275
|
+
//# sourceMappingURL=chunk-RMNKCVRB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/creatives/make-model.ts"],"sourcesContent":["/**\n * The rules `baker creatives make` applies to turn an idea into a creative: which reference to\n * look for, which one fits, and what the creative records about the idea it carries. Pure.\n */\nimport { proofStrength } from \"@baker/api/ad-library\";\nimport { parse, parseDocument, Scalar, visit } from \"yaml\";\nimport { AD_SPEC_SCHEMA, type AdSpec, unfitReasons } from \"../../engine/scaffold/static-ad-spec.ts\";\nimport type { ViewerTemperature } from \"../../viewer-profile.ts\";\nimport type { PersonaEntry } from \"../canvas/viewer-check.ts\";\nimport type { FitAnswer, FitBet } from \"../winning-ads/fit.ts\";\nimport type { WinningAdsSearchArgs } from \"../winning-ads/search.ts\";\nimport { type EvidenceLevel, figuresIn, IDEA_VIDEO_FORMATS, type Idea, unsourcedClaims } from \"./ideas-model.ts\";\nimport type { ReferenceBrief } from \"./reference-brief.ts\";\nimport type { RankedFor } from \"./reference-rank.ts\";\n\nexport const REFERENCE_CANDIDATES = 6;\n\n/** Whether the idea is a video, built from beats, rather than a static from a reference. */\nexport function isVideoIdea(idea: Pick<Idea, \"format\">): boolean {\n return (IDEA_VIDEO_FORMATS as readonly string[]).includes(idea.format ?? \"\");\n}\n\n/** Who a reference was made for, by our viewer: a stranger's ad never leans on its own brand. */\nconst BY_TEMPERATURE: Record<ViewerTemperature, { audienceTemperature: string; excludeBrandReliant?: true }> = {\n cold: { audienceTemperature: \"0_cold\", excludeBrandReliant: true },\n warm: { audienceTemperature: \"1_warm_engaged,2_hot_visited\", excludeBrandReliant: true },\n hot: { audienceTemperature: \"3_customer\" },\n};\n\n/**\n * Where a reference is looked for: the company's market (`GB`), what it sells (\"rooftop solar\") and\n * who the ad is for (\"Bill-shocked homeowner\") and its broader industry (\"home energy\"), when known.\n */\nexport type ReferenceWhere = {\n country?: string;\n category?: string;\n audience?: string;\n /** Searches that widen from the ad, closest first: adjacent products, the same buyer, the same decision. */\n wider?: readonly string[];\n industry?: string;\n};\n\n/**\n * The library search for a static idea's reference: its container, made for our viewer, on what\n * the company sells (else the idea's message), in its market when given.\n */\nexport function referenceSearchFor(\n idea: Idea,\n temperature: ViewerTemperature,\n where: ReferenceWhere = {},\n): WinningAdsSearchArgs {\n return {\n query: where.category || idea.message,\n scope: \"followed-first\",\n platform: \"meta\",\n format: \"static\",\n formatPattern: idea.format,\n awareness: idea.awareness,\n ...BY_TEMPERATURE[temperature],\n ...(where.country ? { country: where.country } : {}),\n maxPerAdvertiser: 1,\n limit: REFERENCE_CANDIDATES,\n diverse: true,\n };\n}\n\n/**\n * The searches whose candidates are tried, best first. A proven ad of what the company sells comes\n * before the idea's container: its market, viewer and objections are ours, and its container is one\n * the thinking can keep or change. So: what the company sells, in its market (in the idea's\n * container for our viewer, loosened in turn, then any container), then anywhere; then ads made for\n * the same people, whatever they sell; then wider (an adjacent product, the same buyer buying\n * something else, the same kind of decision); then ads of the broader industry; then the message;\n * then the container's proven winners from any category, in the market and anywhere.\n * The library's judge scores an ad against the query: prod, Oct 2026, a customer's sentence about\n * one product matched no ad of another category and 13 of 15 ideas found nothing; dev, Oct 2026,\n * searched with the whole message, a UK solar installer's ads were checked against a crypto\n * exchange, a clinic and an English course, while the library held UK solar ads; and with the\n * container a filter, 7 of 10 companies found 0–2 ads of their own category.\n */\nexport function referenceSearchesFor(\n idea: Idea,\n temperature: ViewerTemperature,\n where: ReferenceWhere = {},\n): WinningAdsSearchArgs[] {\n const strict = referenceSearchFor(idea, temperature, where);\n const { awareness: _awareness, ...anyStage } = strict;\n const { audienceTemperature: _temperature, excludeBrandReliant: _reliant, ...viewerAny } = anyStage;\n const anyViewer = { ...viewerAny, scope: \"all\" as const };\n const { formatPattern: _pattern, ...anyContainer } = anyViewer;\n const { country: _country, ...anywhere } = anyViewer;\n const { country: _anyCountry, ...anyContainerAnywhere } = anyContainer;\n const { query: _query, ...winners } = anyStage;\n const { query: _anyQuery, country: _winnersCountry, ...winnersAnywhere } = anyViewer;\n const inMarket = (steps: WinningAdsSearchArgs[]) => (where.country ? steps : []);\n // What the idea shows, from any category: the picture that lands the message is found where it\n // won, and the ranking then asks whether it was made for our buyer.\n const shows = idea.shows?.trim();\n const { formatPattern: _shownPattern, ...anyCategory } = { ...anyStage, scope: \"all\" as const };\n const { country: _shownCountry, ...anyCategoryAnywhere } = anyCategory;\n const { country: _viewerCountry, ...anyViewerAnywhere } = anyViewer;\n const { formatPattern: _anyPattern, ...shownAnyViewer } = anyViewerAnywhere;\n const shown: WinningAdsSearchArgs[] = shows\n ? [\n ...inMarket([{ ...anyCategory, query: shows }]),\n { ...anyCategoryAnywhere, query: shows },\n { ...shownAnyViewer, query: shows },\n ...(idea.format ? [{ ...anyViewerAnywhere, query: shows }] : []),\n ]\n : [];\n const anyAd = (query: string | undefined) =>\n query?.trim()\n ? [...inMarket([{ ...anyContainer, query: query.trim() }]), { ...anyContainerAnywhere, query: query.trim() }]\n : [];\n return [\n ...shown,\n ...(where.country ? [strict, anyStage, anyContainer] : [strict, anyStage]),\n anywhere,\n anyContainerAnywhere,\n ...anyAd(where.audience),\n ...(where.wider ?? []).flatMap((q) => (q.trim() ? [{ ...anyContainerAnywhere, query: q.trim() }] : [])),\n ...anyAd(where.industry),\n ...(where.category ? [{ ...anyContainerAnywhere, query: idea.message }] : []),\n ...inMarket([{ ...winners, sort: \"winner\" }]),\n { ...winnersAnywhere, sort: \"winner\" },\n ];\n}\n\n/**\n * Where a reference is looked for, from the brief when the model read one (its market over the\n * notes' guess; every market when it says the ad runs in several), else from the notes. Pure.\n */\nexport function referenceWhereOf(brief: ReferenceBrief | null, fallback: ReferenceWhere): ReferenceWhere {\n if (!brief) return fallback;\n const country = brief.country === null ? undefined : (brief.country ?? fallback.country);\n const audience = brief.audience ?? fallback.audience;\n return {\n ...(country ? { country } : {}),\n category: brief.category,\n ...(brief.industry ? { industry: brief.industry } : {}),\n ...(audience ? { audience } : {}),\n ...(brief.wider.length ? { wider: brief.wider } : {}),\n };\n}\n\n/** The ad being made, as candidates are ranked and picked for it: the brief's read, else the search's words. Pure. */\nexport function rankedForOf(\n brief: ReferenceBrief | null,\n where: ReferenceWhere,\n bet: Pick<FitBet, \"who\" | \"message\" | \"shows\">,\n): RankedFor {\n return {\n category: brief?.category ?? where.category ?? bet.message,\n ...(brief?.industry ? { industry: brief.industry } : {}),\n ...(brief?.buyer ? { buyer: brief.buyer } : {}),\n ...(brief?.humour ? { humour: brief.humour } : {}),\n ...(brief?.memes ? { memes: brief.memes } : {}),\n ...(brief?.memesWhy ? { memesWhy: brief.memesWhy } : {}),\n ...(brief?.avoid.length ? { avoid: brief.avoid } : {}),\n message: bet.message,\n who: bet.who,\n ...(bet.shows ? { shows: bet.shows } : {}),\n };\n}\n\n/** A name as the library and a person may both spell it: no accents, case or punctuation. Pure. */\nconst brandKey = (name: string) =>\n name\n .normalize(\"NFD\")\n .replace(/\\p{M}/gu, \"\")\n .toLowerCase()\n .replace(/[^\\p{L}\\p{N}]/gu, \"\");\n\n/** Whether an ad's advertiser is the company itself, by its brand names (three letters or more). Pure. */\nexport function isOwnBrand(advertiser: string | null | undefined, brands: readonly string[]): boolean {\n const page = brandKey(advertiser ?? \"\");\n return page !== \"\" && brands.some((b) => brandKey(b).length >= 3 && page.includes(brandKey(b)));\n}\n\ntype PoolCandidate = { ad_id?: string | null; advertiser_id?: string | null; winner_score?: number | null };\n\n/**\n * Every search's candidates in one list, the better search's first, one ad per brand (each fit\n * tried is another brand's move), the ads whose run barely proves them (`proofStrength` \"little\")\n * after the proven ones, at most `limit`. Pure.\n */\nexport function pooledCandidates<T extends PoolCandidate>(searches: readonly T[][], limit: number): T[] {\n const seen = new Set<string>();\n const pooled: T[] = [];\n for (const candidate of searches.flat()) {\n const brand = candidate.advertiser_id ? `brand:${candidate.advertiser_id}` : null;\n if (!candidate.ad_id || seen.has(candidate.ad_id) || (brand && seen.has(brand))) continue;\n seen.add(candidate.ad_id);\n if (brand) seen.add(brand);\n pooled.push(candidate);\n }\n const proven = (c: T) => proofStrength(c.winner_score) !== \"little\";\n return [...pooled.filter(proven), ...pooled.filter((c) => !proven(c))].slice(0, limit);\n}\n\n/** The proven ads, and their brands, the workspace's other creatives are already built on. */\nexport type TakenReferences = { adIds: ReadonlySet<string>; advertiserIds: ReadonlySet<string> };\n\n/**\n * The candidates no other creative is built on first (neither the ad nor its brand), then the\n * rest, each in its order: a batch of ideas is no longer built on one winning ad over and over,\n * and one already used is still built on when nothing else fits. Pure.\n */\nexport function freshReferencesFirst<T extends PoolCandidate>(candidates: readonly T[], taken: TakenReferences): T[] {\n return [\n ...candidates.filter((c) => !isTakenReference(c, taken)),\n ...candidates.filter((c) => isTakenReference(c, taken)),\n ];\n}\n\n/** Whether another creative is built on this ad or on another ad of its brand. Pure. */\nexport function isTakenReference(c: PoolCandidate, taken: TakenReferences): boolean {\n return (\n (c.ad_id != null && taken.adIds.has(c.ad_id)) ||\n (c.advertiser_id != null && taken.advertiserIds.has(c.advertiser_id))\n );\n}\n\n/** A reference fits when what it wins on is something we can supply, and our viewer would stop for it. */\nexport function fitsIdea(fit: Pick<FitAnswer, \"verdict\" | \"load_bearing\" | \"our_viewer\">): boolean {\n return fit.verdict !== \"reject\" && missingElements(fit).length === 0 && fit.our_viewer?.stops !== \"no\";\n}\n\n/** The load-bearing elements a reference wins on that we have nothing for. Pure. */\nexport function missingElements(fit: Pick<FitAnswer, \"load_bearing\">): string[] {\n return fit.load_bearing.filter((l) => l.have === \"missing\" && !l.ours?.trim()).map((l) => l.element);\n}\n\n/**\n * Why a checked reference was not built on, in one line the person can hear: what stops the scroll\n * or the proof that cannot be ours first, with the rule that forbids it; else that our viewer would\n * not stop for it; else the check's own note. Pure.\n */\nexport function whyUnfit(fit: Pick<FitAnswer, \"load_bearing\" | \"our_viewer\" | \"transfer_note\">): string {\n const reasons = unfitReasons(fit);\n if (reasons.length > 0) return reasons.join(\"; \");\n if (fit.our_viewer?.stops === \"no\") {\n return `our viewer would not stop for it${fit.our_viewer.why ? `: ${fit.our_viewer.why}` : \"\"}`;\n }\n return fit.transfer_note?.trim() || \"the check found it does not carry this ad\";\n}\n\nexport type DefinitionStrategyFields = {\n idea: string;\n message: string;\n evidence?: EvidenceLevel;\n angle: string;\n persona: string;\n awareness: string;\n hypothesis: string;\n};\n\n/** What a creative records about the idea it executes. */\nexport function definitionFieldsOf(idea: Idea, evidence: EvidenceLevel | \"explore\"): DefinitionStrategyFields {\n return {\n idea: idea.id,\n message: idea.message,\n ...(evidence !== \"explore\" ? { evidence } : {}),\n angle: idea.angle,\n persona: idea.who,\n awareness: idea.awareness,\n hypothesis: idea.why,\n };\n}\n\nconst FRONTMATTER = /^---\\r?\\n([\\s\\S]*?\\r?\\n)?---/;\n\n/** Whether a bare string reads back as the same text under YAML 1.1. */\nfunction readsAsText11(text: string): boolean {\n try {\n return parse(text, { version: \"1.1\" }) === text;\n } catch {\n return false;\n }\n}\n\n/** Set fields in a markdown file's frontmatter, keeping every other field and the body. */\nexport function setDefinitionFields(raw: string, fields: Record<string, unknown>): string {\n const match = raw.match(FRONTMATTER);\n if (!match) return raw;\n const doc = parseDocument(match[1] ?? \"\");\n if (doc.errors.length > 0) return raw;\n for (const [key, value] of Object.entries(fields)) {\n if (value === undefined) continue;\n const node = doc.createNode(value);\n // The site reads frontmatter as YAML 1.1, where a bare 2026-10-04 is a date, not text.\n visit(node, {\n Scalar(_, scalar) {\n if (typeof scalar.value === \"string\" && !readsAsText11(scalar.value)) {\n scalar.type = Scalar.QUOTE_DOUBLE;\n }\n },\n });\n doc.set(key, node);\n }\n return `---\\n${doc.toString()}---${raw.slice(match[0].length)}`;\n}\n\n/** The ad spec with the idea's message as the one thing it tells the viewer. */\nexport function setSpecMessage(specJson: string, message: string): string {\n const spec = JSON.parse(specJson) as Record<string, unknown>;\n return `${JSON.stringify({ ...spec, message }, null, 2)}\\n`;\n}\n\n/**\n * The ad spec made for the idea's persona: its title and segment from the Knowledge (\"The owner on\n * the move (Owner, 30–55, 1–10 staff)\"), else the idea's own words. The image prompt, the casting\n * check and the viewer check all read `viewer.who`; a reference-built spec held only the\n * scaffold's placeholder. The market and what the viewer knows are kept. Pure.\n */\nexport function setSpecViewer(specJson: string, idea: Pick<Idea, \"who\">, personas: readonly PersonaEntry[]): string {\n const spec = JSON.parse(specJson) as Record<string, unknown>;\n const viewer = (spec.viewer ?? {}) as Record<string, unknown>;\n return `${JSON.stringify({ ...spec, viewer: { ...viewer, who: personaWho(idea, personas) } }, null, 2)}\\n`;\n}\n\n/** Who an idea is for, in its persona's words (\"The owner on the move (Owner, 30–55)\"), else its own. Pure. */\nexport function personaWho(idea: Pick<Idea, \"who\">, personas: readonly PersonaEntry[]): string {\n const persona = personas.find((p) => p.slug === idea.who);\n if (persona?.title) return `${persona.title}${persona.segment ? ` (${persona.segment})` : \"\"}`;\n return persona?.segment ?? idea.who.replace(/[-_]/g, \" \");\n}\n\n/** The most words the audience search keeps: the library's judge reads a long query slowly. */\nconst AUDIENCE_QUERY_WORDS = 9;\n\n/**\n * The people the idea is for, as a library search: its persona's own words, cut short. Dev, Oct\n * 2026: \"homeowners worried about rising energy bills\" found twelve proven energy ads where\n * \"rooftop solar\" in the idea's container found one. Pure.\n */\nexport function audienceQuery(idea: Pick<Idea, \"who\">, personas: readonly PersonaEntry[]): string {\n return personaWho(idea, personas)\n .replace(/\\(/g, \" \")\n .replace(/\\)/g, \"\")\n .split(/\\s+/)\n .filter(Boolean)\n .slice(0, AUDIENCE_QUERY_WORDS)\n .join(\" \")\n .replace(/[\\s,;:.–—-]+$/, \"\");\n}\n\n/** The ad being made, as the fit judges a reference for it: its persona, message and the customers' words it stands on. Pure. */\nexport function fitBetOf(\n idea: Pick<Idea, \"who\" | \"message\" | \"awareness\" | \"angle\" | \"evidence\" | \"shows\">,\n personas: readonly PersonaEntry[],\n insights: readonly { id: string; quote: string }[],\n market?: string,\n): FitBet {\n const quotes = insights.filter((i) => idea.evidence.includes(i.id)).map((i) => i.quote);\n return {\n who: personaWho(idea, personas),\n message: idea.message,\n awareness: idea.awareness,\n angle: idea.angle,\n ...(idea.shows ? { shows: idea.shows } : {}),\n ...(quotes.length > 0 ? { quotes } : {}),\n ...(market ? { market } : {}),\n };\n}\n\n/**\n * The ad spec with the concept the reference's fit read (`conceptFromFit`): a build started before\n * the fit answered has none, or only the one the scaffold drafted from its describe, which names no\n * reference and nothing of what we have; without the fit's, the render never sees the reference at\n * the level that won. A concept a fit already seeded (it names its reference) stays. Pure.\n */\nexport function withFitConcept(specJson: string, seeded: Record<string, unknown>): string {\n const spec = JSON.parse(specJson) as Record<string, unknown>;\n const held = spec.concept as { reference_ad_id?: unknown } | undefined;\n if (held?.reference_ad_id) return specJson;\n return `${JSON.stringify({ ...spec, ...seeded }, null, 2)}\\n`;\n}\n\n/**\n * The copy lines the scaffold drafted that claim a figure the company never wrote: a draft written\n * beside a competitor's ad can carry the competitor's promise. `corpus` is what the company wrote.\n */\nexport function unsourcedCopyLines(specJson: string, corpus: string): string[] {\n const spec = JSON.parse(specJson) as { copy?: unknown };\n const figures = figuresIn(corpus);\n const lines = Array.isArray(spec.copy) ? spec.copy : [];\n return lines.flatMap((line) => {\n const text = typeof line === \"object\" && line !== null ? (line as { text?: unknown }).text : undefined;\n return typeof text === \"string\" && unsourcedClaims(text, figures).length > 0 ? [text] : [];\n });\n}\n\n/** Containers shown as a photograph; every other container is a designed graphic or a screen. */\nconst PHOTO_FORMATS = /photo|lifestyle|before_after|ugc|product|selfie|street/;\n\n/**\n * The ad spec an idea starts from when no proven ad fits it: the message and who it is for are\n * the idea's; the scene and the copy are placeholders the agent writes before anything renders\n * (`canvas run` refuses a placeholder). Pure.\n */\nexport function ideaSpec(idea: Idea, who: string): AdSpec {\n const container = idea.format ? `, as a ${idea.format.replace(/_/g, \" \")}` : \"\";\n const shows = idea.shows ? ` (${idea.shows})` : \"\";\n return {\n schema: AD_SPEC_SCHEMA,\n viewer: { who },\n message: idea.message,\n copy: [{ text: \"[TODO: the headline, in the customer's words]\", lettering: \"designed\", role: \"headline\" }],\n scene: {\n description: `[TODO: what the viewer sees first${shows}${container}, that shows: ${idea.message}]`,\n look: PHOTO_FORMATS.test(idea.format ?? idea.shows ?? \"\") ? \"photo\" : \"designed\",\n },\n colors: [],\n references: [],\n logo: true,\n third_party_brands: [],\n scene_text: [],\n mechanism: [],\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
latestVersion
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3ZHOBEQD.js";
|
|
4
4
|
import {
|
|
5
5
|
canvasOutputsRoot
|
|
6
6
|
} from "./chunk-23H4ZJRP.js";
|
|
@@ -16,4 +16,4 @@ async function versionOf(slug, run) {
|
|
|
16
16
|
export {
|
|
17
17
|
versionOf
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=chunk-
|
|
19
|
+
//# sourceMappingURL=chunk-ROX7LQRR.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
IMAGE_GENERATE_MODELS,
|
|
10
10
|
MODEL_REGISTRY,
|
|
11
11
|
VIDEO_GENERATE_MODELS
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-F3CZFUXZ.js";
|
|
13
13
|
import {
|
|
14
14
|
ApiError,
|
|
15
15
|
apiPost
|
|
@@ -95,4 +95,4 @@ export {
|
|
|
95
95
|
CLIP_PERSON_GENERATION,
|
|
96
96
|
resolveLibraryImageIds
|
|
97
97
|
};
|
|
98
|
-
//# sourceMappingURL=chunk-
|
|
98
|
+
//# sourceMappingURL=chunk-S7B2TOOU.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NUMERIC_ID_REGEX
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-I2DNBEV6.js";
|
|
4
4
|
|
|
5
5
|
// ../api/src/ads-google/change-history.ts
|
|
6
6
|
var CHANGE_SCOPES = ["detail", "summary"];
|
|
@@ -225,4 +225,4 @@ export {
|
|
|
225
225
|
googleKeywordForecastRequestSchema,
|
|
226
226
|
urlOptionsHints
|
|
227
227
|
};
|
|
228
|
-
//# sourceMappingURL=chunk-
|
|
228
|
+
//# sourceMappingURL=chunk-SEPPFM5S.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MODEL_REGISTRY,
|
|
3
3
|
isRegisteredModel
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-F3CZFUXZ.js";
|
|
5
5
|
|
|
6
6
|
// src/commands/canvas/scaffold-common.ts
|
|
7
7
|
import { access, readFile } from "fs/promises";
|
|
@@ -73,4 +73,4 @@ export {
|
|
|
73
73
|
fail,
|
|
74
74
|
fileExists
|
|
75
75
|
};
|
|
76
|
-
//# sourceMappingURL=chunk-
|
|
76
|
+
//# sourceMappingURL=chunk-SIKCVWM3.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
calendarDaySchema,
|
|
7
7
|
todayUtc,
|
|
8
8
|
windowTooLong
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2QSPPWOU.js";
|
|
10
10
|
|
|
11
11
|
// ../api/src/accounts/crm.ts
|
|
12
12
|
import { z } from "zod";
|
|
@@ -1076,4 +1076,4 @@ export {
|
|
|
1076
1076
|
accountsCampaignsRequestSchema,
|
|
1077
1077
|
ACCOUNTS_NO_SETTINGS_MESSAGE
|
|
1078
1078
|
};
|
|
1079
|
-
//# sourceMappingURL=chunk-
|
|
1079
|
+
//# sourceMappingURL=chunk-SK2N45LO.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GEO_TARGET_COUNTRIES,
|
|
3
3
|
LANGUAGE_CONSTANTS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-I2DNBEV6.js";
|
|
5
5
|
|
|
6
6
|
// src/geo-context.ts
|
|
7
7
|
function toOptions(names) {
|
|
@@ -147,4 +147,4 @@ export {
|
|
|
147
147
|
buildResearchQueryContext,
|
|
148
148
|
warnDefaults
|
|
149
149
|
};
|
|
150
|
-
//# sourceMappingURL=chunk-
|
|
150
|
+
//# sourceMappingURL=chunk-SQ7DRYCC.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
finalOutputLabelsFromCanvas
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-U63S2JWI.js";
|
|
4
4
|
import {
|
|
5
5
|
readRenderState
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-3ZHOBEQD.js";
|
|
7
7
|
import {
|
|
8
8
|
STATIC_AD_ROLE,
|
|
9
9
|
fixBriefNode,
|
|
@@ -14,10 +14,10 @@ import {
|
|
|
14
14
|
plateFixPrompt,
|
|
15
15
|
sameTag,
|
|
16
16
|
seriesMemberAd
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-PNVEV3XP.js";
|
|
18
18
|
import {
|
|
19
19
|
fetchRunRecord
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-MK3OJZIU.js";
|
|
21
21
|
import {
|
|
22
22
|
localPathParam
|
|
23
23
|
} from "./chunk-23H4ZJRP.js";
|
|
@@ -42,14 +42,14 @@ import {
|
|
|
42
42
|
relaidPictureRole,
|
|
43
43
|
rolesById,
|
|
44
44
|
staticMasterFormat
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-QTLZXIF3.js";
|
|
46
46
|
import {
|
|
47
47
|
isAdSpec,
|
|
48
48
|
readAdSpec
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-F5IH7G2F.js";
|
|
50
50
|
import {
|
|
51
51
|
canonicalize
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-F3CZFUXZ.js";
|
|
53
53
|
import {
|
|
54
54
|
sha256Hex,
|
|
55
55
|
toModelSafeImage
|
|
@@ -939,4 +939,4 @@ export {
|
|
|
939
939
|
writeSeriesMemberCanvas,
|
|
940
940
|
seriesRunHints
|
|
941
941
|
};
|
|
942
|
-
//# sourceMappingURL=chunk-
|
|
942
|
+
//# sourceMappingURL=chunk-TBHRRQZD.js.map
|
|
@@ -7,21 +7,21 @@ import {
|
|
|
7
7
|
readPersonaIds,
|
|
8
8
|
sameMessageRead,
|
|
9
9
|
workspaceIdeasJudge
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QKABEX3F.js";
|
|
11
11
|
import {
|
|
12
12
|
readAllRules
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-64HQDJ2E.js";
|
|
14
14
|
import {
|
|
15
15
|
IDEA_ANGLES,
|
|
16
16
|
IDEA_FORMATS,
|
|
17
17
|
checkIdeas
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-TY4BDVLG.js";
|
|
19
19
|
import {
|
|
20
20
|
findWorkspaceRoot
|
|
21
21
|
} from "./chunk-23H4ZJRP.js";
|
|
22
22
|
import {
|
|
23
23
|
selectRules
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-B7FVPHCW.js";
|
|
25
25
|
import {
|
|
26
26
|
marketFromCompanyDoc
|
|
27
27
|
} from "./chunk-KPYDTIAI.js";
|
|
@@ -37,7 +37,7 @@ import { defineCommand } from "citty";
|
|
|
37
37
|
var BUILD_NEXT = 3;
|
|
38
38
|
var DESCRIPTION = `Check and rank the ad ideas in src/creatives/_ideas/: is each backed by something a customer said (src/content/insights/), does it claim only what the Knowledge holds, is it a different ad from the others, does it fill a gap the live ads leave. Free and local.
|
|
39
39
|
|
|
40
|
-
Start here, after writing 4-8 idea files (one per file
|
|
40
|
+
Start here, after writing 4-8 idea files (one per file: who, message, evidence, awareness, angle, shows, job, why; format only for a video or a container the person asked for):
|
|
41
41
|
baker creatives ideas # ranked, with problems; build_next names the ones to make
|
|
42
42
|
baker creatives make <idea> # then build each one in build_next
|
|
43
43
|
An idea with a problem is not built until it is fixed. An idea with no evidence is an explore bet: it may be built, and says so.`;
|
|
@@ -55,7 +55,7 @@ function ideasHints(report) {
|
|
|
55
55
|
const toBuild = report.ideas.filter((i) => i.status === "idea");
|
|
56
56
|
if (toBuild.length === 0 && report.unreadable.length === 0) {
|
|
57
57
|
hints.push(
|
|
58
|
-
"No ideas yet. Write 4-8 files in src/creatives/_ideas/<idea>.md (who, message, evidence, awareness, angle,
|
|
58
|
+
"No ideas yet. Write 4-8 files in src/creatives/_ideas/<idea>.md (who, message, evidence, awareness, angle, shows, job, why), then run this again."
|
|
59
59
|
);
|
|
60
60
|
}
|
|
61
61
|
if (report.unreadable.length > 0) {
|
|
@@ -91,7 +91,8 @@ function compactIdea(check) {
|
|
|
91
91
|
...check.quote ? { quote: check.quote.length > 120 ? `${check.quote.slice(0, 117)}...` : check.quote } : {},
|
|
92
92
|
awareness: check.awareness,
|
|
93
93
|
angle: check.angle,
|
|
94
|
-
|
|
94
|
+
...check.shows ? { shows: check.shows } : {},
|
|
95
|
+
...check.format ? { format: check.format } : {},
|
|
95
96
|
platforms: check.platforms ?? "unset",
|
|
96
97
|
...check.problems.length > 0 ? { problems: check.problems } : {},
|
|
97
98
|
...check.warnings.length > 0 ? { warnings: check.warnings } : {}
|
|
@@ -156,4 +157,4 @@ export {
|
|
|
156
157
|
ideasReport,
|
|
157
158
|
ideasCommand
|
|
158
159
|
};
|
|
159
|
-
//# sourceMappingURL=chunk-
|
|
160
|
+
//# sourceMappingURL=chunk-TGIL4L4L.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/creatives/ideas.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { defineCommand } from \"citty\";\nimport { readAllRules } from \"../../engine/creative-context/index.ts\";\nimport { selectRules } from \"../../engine/creative-rules/select.ts\";\nimport type { AskNouls } from \"../../engine/lib/remembered-nouls.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { marketFromCompanyDoc } from \"../../viewer-profile.ts\";\nimport { findWorkspaceRoot } from \"../canvas/normalize-paths.ts\";\nimport { sameMessageRead } from \"./ideas-judgments.ts\";\nimport { checkIdeas, IDEA_ANGLES, IDEA_FORMATS, type IdeaCheck } from \"./ideas-model.ts\";\nimport {\n coverageOf,\n readCreativeRecords,\n readIdeas,\n readInsights,\n readKnowledgeCorpus,\n readPersonaIds,\n type UnreadableIdea,\n workspaceIdeasJudge,\n} from \"./ideas-workspace.ts\";\n\nconst BUILD_NEXT = 3;\n\nconst DESCRIPTION = `Check and rank the ad ideas in src/creatives/_ideas/: is each backed by something a customer said (src/content/insights/), does it claim only what the Knowledge holds, is it a different ad from the others, does it fill a gap the live ads leave. Free and local.\n\nStart here, after writing 4-8 idea files (one per file: who, message, evidence, awareness, angle, shows, job, why; format only for a video or a container the person asked for):\n baker creatives ideas # ranked, with problems; build_next names the ones to make\n baker creatives make <idea> # then build each one in build_next\nAn idea with a problem is not built until it is fixed. An idea with no evidence is an explore bet: it may be built, and says so.`;\n\nconst ARGS = {\n full: {\n type: \"boolean\",\n description: \"Every idea with its warnings and gaps, and the allowed angle and format values\",\n required: false,\n default: false,\n },\n} as const;\n\nregisterSchema({ command: \"creatives.ideas\", description: DESCRIPTION, args: ARGS });\n\ntype IdeasReport = {\n ideas: IdeaCheck[];\n unreadable: UnreadableIdea[];\n insightCount: number;\n observedCount: number;\n};\n\n/** What the agent does next. Pure. */\nexport function ideasHints(report: IdeasReport): string[] {\n const hints: string[] = [];\n const toBuild = report.ideas.filter((i) => i.status === \"idea\");\n if (toBuild.length === 0 && report.unreadable.length === 0) {\n hints.push(\n \"No ideas yet. Write 4-8 files in src/creatives/_ideas/<idea>.md (who, message, evidence, awareness, angle, shows, job, why), then run this again.\",\n );\n }\n if (report.unreadable.length > 0) {\n hints.push(`Fix ${report.unreadable.map((u) => u.id).join(\", \")}: each names what is missing or unknown.`);\n }\n const blocked = toBuild.filter((i) => i.problems.length > 0);\n if (blocked.length > 0) hints.push(`Fix before building: ${blocked.map((i) => i.id).join(\", \")}.`);\n if (report.observedCount < 3) {\n hints.push(\n \"Few customer quotes on file: run `baker research customers` so ideas stand on what customers said; until then they are explore bets.\",\n );\n } else if (toBuild.length > 0 && toBuild.every((i) => i.evidence === \"explore\")) {\n hints.push(\"No idea cites an insight: put the insight ids that back each one in its `evidence`.\");\n }\n const next = buildNext(report.ideas);\n if (next.length === 1) hints.push(`Build: \\`baker creatives make ${next[0]}\\`.`);\n // A render takes about five minutes: built one after another, three ideas took forty (dev, Oct 2026).\n if (next.length > 1)\n hints.push(\n `Build ${next.join(\", \")} at once: one \\`creative-producer\\` per idea, all spawned in one message in the background, each given its idea id, and handle each as it returns. Never build them one after another: each render takes minutes. Edited an idea after this check? Run \\`baker creatives ideas\\` again first: a producer cannot build an idea with a problem.`,\n );\n return hints;\n}\n\n/** The ideas to build now: the best-ranked ones still to build with nothing blocking. Pure. */\nexport function buildNext(ideas: readonly IdeaCheck[], count = BUILD_NEXT): string[] {\n // One explore bet a batch: the rest stand on what customers said.\n const ready = ideas.filter((i) => i.status === \"idea\" && i.problems.length === 0);\n const firstBet = ready.find((i) => i.evidence === \"explore\");\n return ready\n .filter((i) => i.evidence !== \"explore\" || i === firstBet)\n .slice(0, count)\n .map((i) => i.id);\n}\n\n/** One idea as the agent reads it by default: what decides building it, nothing more. Pure. */\nexport function compactIdea(check: IdeaCheck) {\n return {\n idea: check.id,\n status: check.status,\n evidence: check.evidence,\n ...(check.quote ? { quote: check.quote.length > 120 ? `${check.quote.slice(0, 117)}...` : check.quote } : {}),\n awareness: check.awareness,\n angle: check.angle,\n ...(check.shows ? { shows: check.shows } : {}),\n ...(check.format ? { format: check.format } : {}),\n platforms: check.platforms ?? (\"unset\" as const),\n ...(check.problems.length > 0 ? { problems: check.problems } : {}),\n ...(check.warnings.length > 0 ? { warnings: check.warnings } : {}),\n };\n}\n\n/** Everything `checkIdeas` needs, read from the workspace. */\nexport async function ideasReport(root: string, opts: { ask?: AskNouls } = {}): Promise<IdeasReport> {\n const judge = opts.ask ? { ask: opts.ask, done: () => Promise.resolve() } : workspaceIdeasJudge(root);\n const [{ ideas, unreadable }, insights, knowledge, personas, creatives, rules, companyDoc] = await Promise.all([\n readIdeas(root),\n readInsights(root, { ask: judge.ask }),\n readKnowledgeCorpus(root),\n readPersonaIds(root),\n readCreativeRecords(root),\n readAllRules(root).then((all) => selectRules(all, {})),\n readFile(path.join(root, \"COMPANY.md\"), \"utf8\").catch(() => null),\n ]);\n const language = marketFromCompanyDoc(companyDoc)?.language;\n const sameMessage = await sameMessageRead(ideas, judge.ask);\n await judge.done();\n const checked = checkIdeas({\n ideas,\n insights,\n knowledge,\n personas,\n sameMessage,\n rules,\n ...(language ? { language } : {}),\n ...coverageOf(ideas, creatives),\n });\n return {\n ideas: checked,\n unreadable,\n insightCount: insights.length,\n observedCount: insights.filter((i) => i.status === \"observed\").length,\n };\n}\n\nexport const ideasCommand = defineCommand({\n meta: { name: \"ideas\", description: DESCRIPTION },\n args: ARGS,\n async run({ args }) {\n const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();\n const report = await ideasReport(root);\n const full = args.full === true;\n writeJson({\n ok: true,\n data: {\n build_next: buildNext(report.ideas),\n ideas: full ? report.ideas : report.ideas.map(compactIdea),\n ...(report.unreadable.length > 0 ? { unreadable: report.unreadable } : {}),\n customer_quotes: { total: report.insightCount, observed: report.observedCount },\n ...(full ? { allowed: { angle: IDEA_ANGLES, format: IDEA_FORMATS } } : {}),\n },\n hints: ideasHints(report),\n });\n },\n});\n"],"mappings":"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","names":[]}
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
X_DRAFT_BATCH_MAX,
|
|
13
13
|
xDraftOpInputSchema
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2QSPPWOU.js";
|
|
15
15
|
import {
|
|
16
16
|
ApiError,
|
|
17
17
|
apiPost
|
|
@@ -166,4 +166,4 @@ export {
|
|
|
166
166
|
requireTarget,
|
|
167
167
|
requireTargets
|
|
168
168
|
};
|
|
169
|
-
//# sourceMappingURL=chunk-
|
|
169
|
+
//# sourceMappingURL=chunk-TKPVVD52.js.map
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
MAX_EVENT_NAME,
|
|
14
14
|
REJECTION_CODES,
|
|
15
15
|
STANDARD_EVENT_NAMES
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-2QSPPWOU.js";
|
|
17
17
|
|
|
18
18
|
// ../api/src/event-ingest/arrivals.ts
|
|
19
19
|
import { z } from "zod";
|
|
@@ -430,4 +430,4 @@ export {
|
|
|
430
430
|
eventIngestUrl,
|
|
431
431
|
ingestBrief
|
|
432
432
|
};
|
|
433
|
-
//# sourceMappingURL=chunk-
|
|
433
|
+
//# sourceMappingURL=chunk-TNB5EIFV.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-BC2BXRXY.js";
|
|
4
4
|
import {
|
|
5
5
|
flowNodeTriggers
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-2QSPPWOU.js";
|
|
7
7
|
|
|
8
8
|
// ../api/src/analytics/flowEventKeys.ts
|
|
9
9
|
function flowNodes(node, acc = []) {
|
|
@@ -54,4 +54,4 @@ export {
|
|
|
54
54
|
flowNodes,
|
|
55
55
|
flowEventKeys
|
|
56
56
|
};
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
57
|
+
//# sourceMappingURL=chunk-TUSR5R7I.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AD_PLATFORMS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-F3CZFUXZ.js";
|
|
4
4
|
import {
|
|
5
5
|
staticFormatPatternSchema
|
|
6
6
|
} from "./chunk-WNSE7N75.js";
|
|
@@ -233,8 +233,12 @@ function fieldProblems(f) {
|
|
|
233
233
|
}
|
|
234
234
|
if (!(f.angle && IDEA_ANGLES.includes(f.angle)))
|
|
235
235
|
problems.push(`angle ${f.angle ? `"${f.angle}" ` : ""}must be one of ${IDEA_ANGLES.join(", ")}`);
|
|
236
|
-
if (
|
|
237
|
-
problems.push(`format
|
|
236
|
+
if (f.format && !IDEA_FORMATS.includes(f.format))
|
|
237
|
+
problems.push(`format "${f.format}" must be one of ${IDEA_FORMATS.join(", ")}`);
|
|
238
|
+
if (!f.format && !f.shows)
|
|
239
|
+
problems.push(
|
|
240
|
+
"shows is missing: what the scroller sees in the first second that makes the message land (a before/after, a reaction, the product doing it, a real review, the pain itself); the proven ad is searched by it"
|
|
241
|
+
);
|
|
238
242
|
return [...problems, ...platformProblems(f.platforms)];
|
|
239
243
|
}
|
|
240
244
|
function platformProblems(platforms) {
|
|
@@ -254,14 +258,15 @@ function parseIdea(id, markdown) {
|
|
|
254
258
|
message: text(fm.message),
|
|
255
259
|
why: text(fm.why),
|
|
256
260
|
angle: text(fm.angle),
|
|
261
|
+
shows: text(fm.shows),
|
|
257
262
|
format: text(fm.format),
|
|
258
263
|
awareness: oneOf(AWARENESS_STAGES, fm.awareness),
|
|
259
264
|
awarenessWritten: text(fm.awareness),
|
|
260
265
|
platforms: platformList(fm.platforms)
|
|
261
266
|
};
|
|
262
267
|
const problems = fieldProblems(f);
|
|
263
|
-
const { who, message, why, angle, format, awareness } = f;
|
|
264
|
-
if (problems.length > 0 || !who || !message || !why || !awareness || !angle
|
|
268
|
+
const { who, message, why, angle, shows, format, awareness } = f;
|
|
269
|
+
if (problems.length > 0 || !who || !message || !why || !awareness || !angle) return { problems };
|
|
265
270
|
return {
|
|
266
271
|
idea: {
|
|
267
272
|
id,
|
|
@@ -270,7 +275,8 @@ function parseIdea(id, markdown) {
|
|
|
270
275
|
evidence: evidenceList(fm.evidence),
|
|
271
276
|
awareness,
|
|
272
277
|
angle,
|
|
273
|
-
|
|
278
|
+
...shows ? { shows } : {},
|
|
279
|
+
...format ? { format } : {},
|
|
274
280
|
job: fm.job === "closer" ? "closer" : "opener",
|
|
275
281
|
why,
|
|
276
282
|
status: oneOf(IDEA_STATUSES, fm.status) ?? "idea",
|
|
@@ -373,7 +379,7 @@ function borrowedProof(idea, insights) {
|
|
|
373
379
|
});
|
|
374
380
|
}
|
|
375
381
|
function fakeReviewProblem(idea, insights) {
|
|
376
|
-
if (!TESTIMONIAL_FORMATS.includes(idea.format)) return [];
|
|
382
|
+
if (!idea.format || !TESTIMONIAL_FORMATS.includes(idea.format)) return [];
|
|
377
383
|
const cited = idea.evidence.flatMap((id) => insights.get(id) ?? []);
|
|
378
384
|
if (cited.length === 0 || !cited.every(fromMarket)) return [];
|
|
379
385
|
return [
|
|
@@ -382,6 +388,11 @@ function fakeReviewProblem(idea, insights) {
|
|
|
382
388
|
}
|
|
383
389
|
function warningsOf(idea, evidence, personas, insights) {
|
|
384
390
|
const warnings = [];
|
|
391
|
+
const video = IDEA_VIDEO_FORMATS.includes(idea.format ?? "");
|
|
392
|
+
if (idea.status === "idea" && !video && !idea.shows)
|
|
393
|
+
warnings.push(
|
|
394
|
+
"say what it shows (`shows`): what the scroller sees in the first second that lands the message; the proven ad is searched by it, and without it by what the company sells"
|
|
395
|
+
);
|
|
385
396
|
const borrowed = borrowedProof(idea, insights);
|
|
386
397
|
if (borrowed) {
|
|
387
398
|
warnings.push(
|
|
@@ -413,7 +424,7 @@ function checkOne(idea, ctx) {
|
|
|
413
424
|
const duplicate = ctx.duplicateOf.get(idea.id);
|
|
414
425
|
if (duplicate) {
|
|
415
426
|
problems.push(
|
|
416
|
-
`same angle and format, or the same message, as "${duplicate}": to the platform it is the same ad. Change the angle or
|
|
427
|
+
`same angle and the same picture (format or what it shows), or the same message, as "${duplicate}": to the platform it is the same ad. Change the angle or what it shows`
|
|
417
428
|
);
|
|
418
429
|
}
|
|
419
430
|
const gaps = [];
|
|
@@ -427,7 +438,8 @@ function checkOne(idea, ctx) {
|
|
|
427
438
|
...best ? { quote: best.quote } : {},
|
|
428
439
|
awareness: idea.awareness,
|
|
429
440
|
angle: idea.angle,
|
|
430
|
-
|
|
441
|
+
...idea.shows ? { shows: idea.shows } : {},
|
|
442
|
+
...idea.format ? { format: idea.format } : {},
|
|
431
443
|
...idea.platforms ? { platforms: idea.platforms } : {},
|
|
432
444
|
problems,
|
|
433
445
|
warnings: [
|
|
@@ -449,7 +461,7 @@ function duplicatesOf(ideas, insights) {
|
|
|
449
461
|
const seenMessages = /* @__PURE__ */ new Map();
|
|
450
462
|
const duplicateOf = /* @__PURE__ */ new Map();
|
|
451
463
|
for (const idea of order) {
|
|
452
|
-
const pair = `${idea.angle}\xD7${idea.format}`;
|
|
464
|
+
const pair = `${idea.angle}\xD7${idea.format ?? normalize(idea.shows ?? "")}`;
|
|
453
465
|
const message = normalize(idea.message);
|
|
454
466
|
const earlier = seenPairs.get(pair) ?? seenMessages.get(message);
|
|
455
467
|
if (earlier) duplicateOf.set(idea.id, earlier);
|
|
@@ -609,4 +621,4 @@ export {
|
|
|
609
621
|
readLearnedRules,
|
|
610
622
|
declaredRules
|
|
611
623
|
};
|
|
612
|
-
//# sourceMappingURL=chunk-
|
|
624
|
+
//# sourceMappingURL=chunk-TY4BDVLG.js.map
|