@koda-sl/baker-cli 0.447.0 → 0.448.0-dev.0d67e41b9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/{account-F6MHQ64I.js → account-4H7QVBRK.js} +3 -3
- package/dist/{account-2ZMZFPIU.js → account-DTHGTZCN.js} +4 -4
- package/dist/{account-writes-ISE4U2FQ.js → account-writes-AK42HGRM.js} +3 -3
- package/dist/{accounts-VINHZRWA.js → accounts-5RLG6BBA.js} +3 -3
- package/dist/{accounts-RHGN5WMU.js → accounts-6LSBBXKA.js} +5 -5
- package/dist/{actions-5F4ZP6M4.js → actions-WH5C6Q7I.js} +18 -18
- package/dist/{ad-group-writes-UU5NNKSO.js → ad-group-writes-QQS4223F.js} +3 -3
- package/dist/{ad-groups-CGFXZNIA.js → ad-groups-WGPDPUI2.js} +7 -7
- package/dist/{ad-writes-NALDYWOR.js → ad-writes-XE2IE4DS.js} +3 -3
- package/dist/{add-KBPMSK2P.js → add-BZ4QPLK4.js} +2 -2
- package/dist/{add-OGH4DZZ5.js → add-TRSKOIO6.js} +30 -5
- package/dist/add-TRSKOIO6.js.map +1 -0
- package/dist/{ads-H7GH7A26.js → ads-6UEDYT3O.js} +9 -9
- package/dist/{ads-56OWZBXZ.js → ads-6UG66KA5.js} +6 -6
- package/dist/{ads-PV7GZXPR.js → ads-BCOSQALY.js} +8 -8
- package/dist/{adsets-H7QT42U6.js → adsets-Q5DWGANV.js} +11 -11
- package/dist/{advertisers-PM4WPG4N.js → advertisers-OABQDELT.js} +3 -3
- package/dist/{analytics-JVZKN735.js → analytics-3YAWQF5K.js} +6 -6
- package/dist/{analytics-5FALU2GL.js → analytics-BCZGSSXP.js} +3 -3
- package/dist/{animate-FWWHSYPL.js → animate-AIZ3GS4J.js} +4 -4
- package/dist/{assign-KLYZ6USE.js → assign-O6QNAZD5.js} +3 -3
- package/dist/{audience-size-JHB42DB4.js → audience-size-CXPWERR3.js} +3 -3
- package/dist/{audiences-JACGRBNN.js → audiences-AMRFZRZ7.js} +3 -3
- package/dist/{audiences-VEKGLWBG.js → audiences-TGD5US2M.js} +3 -3
- package/dist/{audit-5XH7WZIM.js → audit-MNOQK3U4.js} +3 -3
- package/dist/{autocomplete-7F3PZLEY.js → autocomplete-TRCMPNW4.js} +3 -3
- package/dist/{avatars-N4SRNQI7.js → avatars-P3WX5TQP.js} +4 -4
- package/dist/{bid-pricing-VYLVGU26.js → bid-pricing-6XXSM7C2.js} +3 -3
- package/dist/{brand-ASBS2HZM.js → brand-LXU7YNCF.js} +2 -2
- package/dist/{brief-JSZKDPGU.js → brief-Y4F37TH5.js} +15 -15
- package/dist/{campaign-groups-ATE2DE4V.js → campaign-groups-CEAM3WRO.js} +8 -8
- package/dist/{campaign-writes-ETT57KLQ.js → campaign-writes-D6BJAULL.js} +3 -3
- package/dist/{campaign-writes-SX52CJYW.js → campaign-writes-SXLZFYF6.js} +3 -3
- package/dist/{campaigns-J6VZBIV6.js → campaigns-CXOKBCPS.js} +11 -11
- package/dist/{campaigns-WBEG5QA4.js → campaigns-D6B6Z67Y.js} +8 -8
- package/dist/{campaigns-FGBAS6AZ.js → campaigns-V3SWBM4E.js} +5 -5
- package/dist/{campaigns-X3DPCCSN.js → campaigns-YS3OGQXO.js} +7 -7
- package/dist/{canvas-K7IN7HLO.js → canvas-VH3Q26TK.js} +14 -14
- package/dist/{capabilities-RDAERPYY.js → capabilities-NZPSSS6T.js} +3 -3
- package/dist/{catalog-MENVHL5U.js → catalog-GWN3WT7J.js} +7 -7
- package/dist/{catalogs-G3YEVG6S.js → catalogs-BRXEDE56.js} +3 -3
- package/dist/{chatgpt-QNUN63YS.js → chatgpt-7W75X3ER.js} +13 -13
- package/dist/{chats-YIAQGQ3X.js → chats-GN3PBFX4.js} +3 -3
- package/dist/{chunk-U3HAMW5W.js → chunk-2BKVVCCV.js} +3 -3
- package/dist/{chunk-EH4C4CZK.js → chunk-2GTYAHDN.js} +2 -2
- package/dist/{chunk-SB3GZFCV.js → chunk-3OFVFHKT.js} +2 -2
- package/dist/{chunk-U6SYRIOB.js → chunk-4QEY2L6U.js} +2 -2
- package/dist/{chunk-PDTB5EX6.js → chunk-4Z7DEN75.js} +2 -2
- package/dist/{chunk-KNWHUMVZ.js → chunk-6Y7SIP2D.js} +7 -5
- package/dist/{chunk-VAISMQQB.js → chunk-7ED5TAFP.js} +4 -4
- package/dist/{chunk-35XWJEWH.js → chunk-7J6EHOH6.js} +2 -2
- package/dist/{chunk-CHSNHVYF.js → chunk-CAMX6OHF.js} +4 -4
- package/dist/chunk-CAMX6OHF.js.map +1 -0
- package/dist/{chunk-YC2TQ3VC.js → chunk-CFHIW5QZ.js} +3 -3
- package/dist/{chunk-GATKK4RJ.js → chunk-D6744YSX.js} +6 -6
- package/dist/{chunk-ANCSKUWI.js → chunk-DQMZXK27.js} +2 -2
- package/dist/{chunk-HIPDMQZ6.js → chunk-DZSIUEGH.js} +2 -2
- package/dist/{chunk-T3BDNJIX.js → chunk-E4NCRGY3.js} +2 -2
- package/dist/{chunk-YPZYOJP6.js → chunk-EAEOPERX.js} +15 -12
- package/dist/chunk-EAEOPERX.js.map +1 -0
- package/dist/{chunk-2GK33EJV.js → chunk-ESB5DLIP.js} +2 -2
- package/dist/{chunk-KLBTXETO.js → chunk-FTWJFDIN.js} +169 -169
- package/dist/chunk-FTWJFDIN.js.map +1 -0
- package/dist/{chunk-ACANMASG.js → chunk-FVF5SXTZ.js} +3 -3
- package/dist/{chunk-VMDAXFRI.js → chunk-GYU7BWEN.js} +3 -3
- package/dist/{chunk-OTFHEHIU.js → chunk-HRYOZUSK.js} +9 -4
- package/dist/chunk-HRYOZUSK.js.map +1 -0
- package/dist/{chunk-KQTYTCKQ.js → chunk-HZUDRKGR.js} +2 -2
- package/dist/{chunk-DR34ZTWD.js → chunk-IGQZ5U3C.js} +6 -6
- package/dist/{chunk-65RIB7A6.js → chunk-IYU4X5A7.js} +5 -5
- package/dist/{chunk-5R5ADJ47.js → chunk-JVLAV62J.js} +317 -50
- package/dist/chunk-JVLAV62J.js.map +1 -0
- package/dist/{chunk-NDXBU22S.js → chunk-K6WVV74H.js} +40 -7
- package/dist/chunk-K6WVV74H.js.map +1 -0
- package/dist/{chunk-FXED3VZK.js → chunk-L27H2R2N.js} +2 -2
- package/dist/{chunk-BSC33FLJ.js → chunk-L5J3S6B6.js} +47 -4
- package/dist/chunk-L5J3S6B6.js.map +1 -0
- package/dist/{chunk-TIOQ7ZFQ.js → chunk-LLOOWRBB.js} +2 -2
- package/dist/{chunk-XMD4SHFI.js → chunk-ND5MJ3AA.js} +2 -2
- package/dist/{chunk-3CWL2LY4.js → chunk-NECTN6N7.js} +2 -2
- package/dist/{chunk-LW4VSTL5.js → chunk-NIJSXVFT.js} +4 -4
- package/dist/chunk-NIJSXVFT.js.map +1 -0
- package/dist/{chunk-I4NEHDSD.js → chunk-NJXNU2G6.js} +17 -11
- package/dist/{chunk-I4NEHDSD.js.map → chunk-NJXNU2G6.js.map} +1 -1
- package/dist/{chunk-JF47LEPU.js → chunk-OKJWBB2K.js} +33 -7
- package/dist/chunk-OKJWBB2K.js.map +1 -0
- package/dist/{chunk-BA7FDXQC.js → chunk-ORO7VAXB.js} +2 -2
- package/dist/{chunk-HZ5DR5MX.js → chunk-OUTF5JFG.js} +3 -3
- package/dist/{chunk-HQSCJYZO.js → chunk-P5T7OZKV.js} +2 -2
- package/dist/{chunk-DKGTQSLR.js → chunk-PTCIM35Y.js} +2 -2
- package/dist/{chunk-KBP7WJQB.js → chunk-PVUZWHNQ.js} +72 -9
- package/dist/chunk-PVUZWHNQ.js.map +1 -0
- package/dist/{chunk-VB6WJJR3.js → chunk-PZXCWSKV.js} +2 -2
- package/dist/{chunk-6DB2B3GF.js → chunk-QVJDPOEB.js} +2 -2
- package/dist/{chunk-G7UTTEBS.js → chunk-R5RIH3N5.js} +3 -3
- package/dist/{chunk-4NBVGARW.js → chunk-RB5CVIK6.js} +2 -2
- package/dist/{chunk-7SDFKGQ4.js → chunk-RZT263H7.js} +2 -2
- package/dist/{chunk-GIJT3A5U.js → chunk-T4DD5YMP.js} +3 -3
- package/dist/{chunk-ALTBBAYU.js → chunk-TUB34FVS.js} +4 -4
- package/dist/{chunk-Y6QAJNKP.js → chunk-TX7LZWZD.js} +3 -3
- package/dist/{chunk-ZPU3WDVK.js → chunk-V7CTQOHG.js} +5 -5
- package/dist/{chunk-AWMFUGVX.js → chunk-VNUNE5AB.js} +3 -3
- package/dist/{chunk-K3PN7TN5.js → chunk-WTOYCUKH.js} +2 -2
- package/dist/{chunk-ULJ5RFOV.js → chunk-XFGAUP5B.js} +2 -2
- package/dist/{chunk-YBP7O5P4.js → chunk-XQIKDODN.js} +2 -2
- package/dist/{chunk-VDHQJ6HD.js → chunk-XTRAI6CL.js} +2 -2
- package/dist/{chunk-MADAAZZV.js → chunk-XVOI4BIS.js} +2 -2
- package/dist/{chunk-E4MDJBLO.js → chunk-ZDNOCKKY.js} +12 -3
- package/dist/{chunk-E4MDJBLO.js.map → chunk-ZDNOCKKY.js.map} +1 -1
- package/dist/{chunk-UC6BWM5J.js → chunk-ZGTCZ6H4.js} +3 -3
- package/dist/{chunk-IM52NHGL.js → chunk-ZJLETAOO.js} +106 -12
- package/dist/chunk-ZJLETAOO.js.map +1 -0
- package/dist/{chunk-MLU6STIN.js → chunk-ZZQXVYUY.js} +2 -2
- package/dist/{claim-V4F5GZJK.js → claim-25JJM4AG.js} +3 -3
- package/dist/cli.js +28 -28
- package/dist/{companies-NJGJ7XNN.js → companies-VR5M5PAN.js} +3 -3
- package/dist/{complete-MGNF5OAK.js → complete-DRMOTC2W.js} +3 -3
- package/dist/{connect-PJOTRTT4.js → connect-WUDJR2GH.js} +10 -6
- package/dist/{conversation-4DM26FRD.js → conversation-K6LYF2ZP.js} +3 -3
- package/dist/{conversion-report-N4HANYOB.js → conversion-report-XQBJ6LG4.js} +2 -2
- package/dist/{conversion-upload-command-TZTHU2CD.js → conversion-upload-command-AUF3LNTH.js} +6 -6
- package/dist/{conversion-writes-LW4HQKK5.js → conversion-writes-UBCVXP2E.js} +3 -3
- package/dist/{conversions-TS723AZV.js → conversions-D236RTUK.js} +5 -5
- package/dist/{conversions-JGECVZSY.js → conversions-GF32XOWY.js} +7 -7
- package/dist/{create-WOHPIGBK.js → create-2D7AIFJI.js} +6 -6
- package/dist/{create-I2KVDTCQ.js → create-4TFAD6HY.js} +3 -3
- package/dist/{create-DSGQFBI7.js → create-IXYXYLLE.js} +2 -2
- package/dist/{create-SBQWVLXG.js → create-PKJVFJMO.js} +3 -3
- package/dist/{creatives-4JGVZQGC.js → creatives-OHCFHRZ5.js} +8 -8
- package/dist/{creatives-DWO5KEQC.js → creatives-QLSZFOMB.js} +10 -10
- package/dist/{creatives-PSWCNY7U.js → creatives-UEPLNCPN.js} +3 -3
- package/dist/{credentials-UULYCN2L.js → credentials-WSLR5VU4.js} +16 -16
- package/dist/credentials-WSLR5VU4.js.map +1 -0
- package/dist/{critique-TIZJ5GFM.js → critique-5PCQ2CJH.js} +6 -6
- package/dist/{critique-NGMZK5LX.js → critique-WDO6SKK2.js} +13 -13
- package/dist/{crm-2WAR565U.js → crm-HNUOHXAN.js} +4 -4
- package/dist/{crm-VDXUO2YU.js → crm-SNIUADNK.js} +7 -7
- package/dist/{custom-conversions-6P555U2K.js → custom-conversions-2VLJGPRV.js} +2 -2
- package/dist/{customers-ATENMXDO.js → customers-72L2KZHO.js} +9 -9
- package/dist/{delete-AVMZYNVT.js → delete-EVGM5B36.js} +3 -3
- package/dist/{delete-H744GNS4.js → delete-PA2GY5EC.js} +3 -3
- package/dist/{delete-OEYPFATY.js → delete-YNNFTFYV.js} +2 -2
- package/dist/{demographics-M5LJF3RZ.js → demographics-SYS2E7QC.js} +3 -3
- package/dist/{discard-72I6SM7G.js → discard-JS2YJUIM.js} +3 -3
- package/dist/{domain-R4EIZD2W.js → domain-XKKH5NCL.js} +3 -3
- package/dist/{draft-YYYRWF7M.js → draft-4AO4YH3V.js} +8 -8
- package/dist/{draft-BV2QRPZ4.js → draft-5YAYCEYY.js} +6 -6
- package/dist/{draft-34C3F5U4.js → draft-GCUXNPVH.js} +3 -3
- package/dist/{draft-THPZFASM.js → draft-MNFJ4G3C.js} +3 -3
- package/dist/{draft-BBFJNZ5X.js → draft-WWWKSEEE.js} +3 -3
- package/dist/engine/index.d.ts +12 -0
- package/dist/engine/index.js +6 -6
- package/dist/{facets-F2H52MS4.js → facets-NVBX5WDT.js} +3 -3
- package/dist/{feedback-IQKKT4MC.js → feedback-OGAPR45R.js} +2 -2
- package/dist/{feedback-record-UZV4Y7UD.js → feedback-record-GVXGDY5Y.js} +15 -15
- package/dist/{fetch-ZUAZPLAE.js → fetch-U4TJIHZU.js} +3 -3
- package/dist/{fit-2CA4JH7N.js → fit-BOQL6OK3.js} +8 -8
- package/dist/{flows-CWXCXEUD.js → flows-XVZJ6GOI.js} +37 -17
- package/dist/flows-XVZJ6GOI.js.map +1 -0
- package/dist/{fonts-F2XUCIIW.js → fonts-64T6KRZS.js} +8 -8
- package/dist/{forecast-IDKJYM2B.js → forecast-YIIGTHRM.js} +3 -3
- package/dist/{funnel-RLGQGYKO.js → funnel-XHDCXXQ5.js} +4 -4
- package/dist/{generate-MMBYB44G.js → generate-3XYYITU6.js} +3 -3
- package/dist/{get-C6UQ22HH.js → get-6RQFDAIN.js} +6 -4
- package/dist/get-6RQFDAIN.js.map +1 -0
- package/dist/{get-EEUR6SAW.js → get-XJ3AZX35.js} +3 -3
- package/dist/{google-35GDU3G3.js → google-M7KEXVK5.js} +8 -8
- package/dist/{google-ads-Q37I2D5P.js → google-ads-7XAGJVNJ.js} +3 -3
- package/dist/{history-4II5QA4B.js → history-EUG4LE44.js} +3 -3
- package/dist/{history-DBIEYQHY.js → history-Q3QCT64S.js} +3 -3
- package/dist/{hubspot-TTITJFBO.js → hubspot-UULVEYVO.js} +7 -7
- package/dist/{ideas-V4Q6JDKV.js → ideas-7LXYXS5G.js} +7 -7
- package/dist/{images-SP5REF6E.js → images-3SOTFMJV.js} +4 -4
- package/dist/{ingest-574GIFAR.js → ingest-HQUXSBWA.js} +2 -2
- package/dist/{ingest-IC4T76W6.js → ingest-HYSZC3EX.js} +3 -3
- package/dist/{insights-ZIU6FJMS.js → insights-LNAXV2CG.js} +2 -2
- package/dist/{inspect-ATHYY6A2.js → inspect-HZQ7GSVM.js} +5 -5
- package/dist/{keyword-metrics-J4UPUDN7.js → keyword-metrics-YG3K7MQZ.js} +3 -3
- package/dist/{keywords-for-site-MWADFEO2.js → keywords-for-site-V4K744TF.js} +3 -3
- package/dist/{landing-R6DN7XLK.js → landing-3SSX6WK6.js} +2 -2
- package/dist/{leads-7EVHMNUF.js → leads-ARUWPHBM.js} +6 -6
- package/dist/{leads-JM6HUERX.js → leads-FAHQ6KJX.js} +3 -3
- package/dist/{learn-LGS2F5TR.js → learn-XNHGNQE5.js} +11 -11
- package/dist/{line-item-writes-KUYEXSIH.js → line-item-writes-A6BPZQPL.js} +3 -3
- package/dist/{line-items-GIWLP3FL.js → line-items-J7PXJHMD.js} +5 -5
- package/dist/{link-PVM7XJQI.js → link-4GGAQAVH.js} +3 -3
- package/dist/{linkedin-WX54EAX6.js → linkedin-I6JDSTRB.js} +30 -30
- package/dist/{list-MCEFXC6L.js → list-22HZ2S4W.js} +3 -3
- package/dist/{list-WR7QYTON.js → list-AQMGXI4N.js} +3 -3
- package/dist/{list-4ZKQZBCL.js → list-KAJZFHMN.js} +2 -2
- package/dist/{locations-74TPQWAT.js → locations-2NKBJKBT.js} +2 -2
- package/dist/{log-U6IWZGOF.js → log-MUPKKYSJ.js} +3 -3
- package/dist/{make-RXFHEGUI.js → make-3FO76LA7.js} +22 -22
- package/dist/{map-TWL7T4KP.js → map-F4LXTAJV.js} +4 -4
- package/dist/{mcp-HVAVJGGS.js → mcp-NLAQJWG6.js} +2 -2
- package/dist/{media-M7E6V2XU.js → media-53DJRC4N.js} +2 -2
- package/dist/{media-sources-JWGO23BZ.js → media-sources-W2CQFSVQ.js} +2 -2
- package/dist/{members-5FAW4YE7.js → members-3U6GINDF.js} +3 -3
- package/dist/{meta-EZ4SY25M.js → meta-A7KM6TF5.js} +10 -10
- package/dist/{models-7U3GRYHF.js → models-3Z6MDHQW.js} +2 -2
- package/dist/{normalize-GW4GZNVY.js → normalize-FQ6WP5E4.js} +3 -3
- package/dist/{options-NSUCENLU.js → options-K6FNT5A3.js} +6 -6
- package/dist/{performance-FGCDWHMC.js → performance-ZA7VCHOU.js} +4 -4
- package/dist/{pixels-45A55MOP.js → pixels-TZPF746S.js} +3 -3
- package/dist/{promoted-tweet-writes-BPWTDESL.js → promoted-tweet-writes-4H3ZFD6O.js} +3 -3
- package/dist/{promoted-tweets-OS3NHYVE.js → promoted-tweets-MCMKPIHM.js} +3 -3
- package/dist/{publish-SXZEWBVJ.js → publish-CW5YSAAL.js} +5 -5
- package/dist/{reddit-TF6K37SB.js → reddit-P7LLO4TK.js} +4 -4
- package/dist/{refresh-APVDWXRZ.js → refresh-IGHEOA6Y.js} +2 -2
- package/dist/{release-32SEJU4L.js → release-C74JOYDA.js} +3 -3
- package/dist/{remove-U64GTHLQ.js → remove-HPN62MPQ.js} +2 -2
- package/dist/{reopen-5VS233SF.js → reopen-XI53RP7R.js} +3 -3
- package/dist/{rerun-7Z45QOOO.js → rerun-2ITYGAIT.js} +22 -22
- package/dist/{research-QYSQ6LW4.js → research-HAHUTFVJ.js} +2 -2
- package/dist/{research-O7CJV5IS.js → research-O6QXFCD7.js} +10 -10
- package/dist/{reset-47B5VPT4.js → reset-BISRUHT4.js} +2 -2
- package/dist/{reset-22FC7BXQ.js → reset-YMKVEOS4.js} +2 -2
- package/dist/{resolve-7KQGVTQT.js → resolve-D2VESQ45.js} +3 -3
- package/dist/{retry-J5UVLS72.js → retry-CGBATPQX.js} +2 -2
- package/dist/{retry-UJ5UF4BM.js → retry-SUKRXBHX.js} +2 -2
- package/dist/{run-SI4FA32F.js → run-BFERU46Q.js} +3 -3
- package/dist/{run-TFLFBQU2.js → run-HSZFWRYZ.js} +22 -22
- package/dist/{scaffold-ad-SEXNE2K6.js → scaffold-ad-BYQYVB2C.js} +21 -21
- package/dist/{scaffold-static-ad-VBOL6CLN.js → scaffold-static-ad-5MXVTMEE.js} +27 -27
- package/dist/{scaffold-video-Z37MIBDI.js → scaffold-video-KEIHX3UD.js} +19 -19
- package/dist/{schedule-52ZM4KRQ.js → schedule-XJ24PL3K.js} +2 -2
- package/dist/{scheduled-agents-PCWCQAKP.js → scheduled-agents-HWEKBANT.js} +11 -11
- package/dist/{schema-FY6ORDXZ.js → schema-TAAAJHOJ.js} +4 -4
- package/dist/{search-NS7XNRZC.js → search-NVCIIGQS.js} +2 -2
- package/dist/{select-4XCYVV2G.js → select-K3EMTTI3.js} +15 -15
- package/dist/{set-prompt-TRJBYA3D.js → set-prompt-PY7FWYX6.js} +14 -14
- package/dist/{setup-links-V3URI7DL.js → setup-links-5ZCASHAL.js} +3 -3
- package/dist/{site-WIQ7SSU3.js → site-7PSCHITE.js} +4 -4
- package/dist/{sources-DWJXOLEH.js → sources-GEB6OEGY.js} +6 -6
- package/dist/{sources-L453U5MT.js → sources-ICMUQMCJ.js} +6 -6
- package/dist/{stale-6OVG6VME.js → stale-KBY5WARW.js} +14 -14
- package/dist/{status-WXWU54WR.js → status-ZX5WM5PJ.js} +3 -3
- package/dist/{studio-C5K3YX3P.js → studio-RA7QQH4O.js} +4 -4
- package/dist/{sync-CDZUTGV3.js → sync-TZNIPZRX.js} +2 -2
- package/dist/{sync-definition-BAJQUBE3.js → sync-definition-ADXXWWV5.js} +17 -17
- package/dist/{tags-6RY23XOG.js → tags-4OZCALA3.js} +3 -3
- package/dist/{tags-SG3NVC3J.js → tags-4PXXFIPU.js} +4 -4
- package/dist/{tags-VN5HTL35.js → tags-KFVUEPL6.js} +3 -3
- package/dist/{tags-BHFQWNPL.js → tags-TESETZGC.js} +2 -2
- package/dist/{tags-WR6PDIDR.js → tags-WIMUIZHU.js} +3 -3
- package/dist/{targeting-criteria-5EXP2NXF.js → targeting-criteria-VRI7V6C5.js} +3 -3
- package/dist/{targets-WUVEJPSD.js → targets-ERVS2VEU.js} +3 -3
- package/dist/{templates-LOJQX2NG.js → templates-TE6LBUIP.js} +3 -3
- package/dist/{testimonials-6M5DXORT.js → testimonials-FV7KPAPK.js} +6 -6
- package/dist/{top-companies-E2OMMPSV.js → top-companies-B5M43KGJ.js} +3 -3
- package/dist/{translate-AW4CUKDA.js → translate-OKADZCBC.js} +20 -20
- package/dist/{triggers-MRXIDCSN.js → triggers-JLJQOSKI.js} +3 -3
- package/dist/{unlink-HNL747YM.js → unlink-KMWDKVIC.js} +3 -3
- package/dist/{unstage-OL2JDCLK.js → unstage-M4IQKJIO.js} +3 -3
- package/dist/{update-RTTC3SAK.js → update-5MBR4TPK.js} +2 -2
- package/dist/{update-4KGIT4BF.js → update-AHDGHOCP.js} +3 -3
- package/dist/{update-YNNRX5B2.js → update-K6LFJHNI.js} +3 -3
- package/dist/{update-JPBUF7M2.js → update-PNRNYXUW.js} +3 -3
- package/dist/{upload-UIXPCSXJ.js → upload-KAQC4AH7.js} +3 -3
- package/dist/{url-params-K47CE7Y5.js → url-params-SM32OOXZ.js} +3 -3
- package/dist/{validate-TD2BY4VE.js → validate-NCTK5BXD.js} +15 -15
- package/dist/{videos-BP3BKNTY.js → videos-A32DPGHD.js} +5 -5
- package/dist/{viewer-check-HFRUJ4ZU.js → viewer-check-L4B4LIAX.js} +7 -7
- package/dist/{web-RPSGFN4U.js → web-TZEIFUYY.js} +3 -3
- package/dist/{winning-ads-WUENRDVJ.js → winning-ads-THIR7E5S.js} +3 -3
- package/dist/{write-commands-4WARNR2T.js → write-commands-CE4FIQ6Y.js} +8 -8
- package/dist/{write-commands-TAYGTJEZ.js → write-commands-CT74VHH6.js} +6 -6
- package/dist/{x-VZCELH3P.js → x-YXABYM5U.js} +6 -6
- package/package.json +1 -1
- package/dist/add-OGH4DZZ5.js.map +0 -1
- package/dist/chunk-5R5ADJ47.js.map +0 -1
- package/dist/chunk-BSC33FLJ.js.map +0 -1
- package/dist/chunk-CHSNHVYF.js.map +0 -1
- package/dist/chunk-IM52NHGL.js.map +0 -1
- package/dist/chunk-JF47LEPU.js.map +0 -1
- package/dist/chunk-KBP7WJQB.js.map +0 -1
- package/dist/chunk-KLBTXETO.js.map +0 -1
- package/dist/chunk-LW4VSTL5.js.map +0 -1
- package/dist/chunk-NDXBU22S.js.map +0 -1
- package/dist/chunk-OTFHEHIU.js.map +0 -1
- package/dist/chunk-YPZYOJP6.js.map +0 -1
- package/dist/credentials-UULYCN2L.js.map +0 -1
- package/dist/flows-CWXCXEUD.js.map +0 -1
- package/dist/get-C6UQ22HH.js.map +0 -1
- /package/dist/{account-F6MHQ64I.js.map → account-4H7QVBRK.js.map} +0 -0
- /package/dist/{account-2ZMZFPIU.js.map → account-DTHGTZCN.js.map} +0 -0
- /package/dist/{account-writes-ISE4U2FQ.js.map → account-writes-AK42HGRM.js.map} +0 -0
- /package/dist/{accounts-VINHZRWA.js.map → accounts-5RLG6BBA.js.map} +0 -0
- /package/dist/{accounts-RHGN5WMU.js.map → accounts-6LSBBXKA.js.map} +0 -0
- /package/dist/{actions-5F4ZP6M4.js.map → actions-WH5C6Q7I.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/{add-KBPMSK2P.js.map → add-BZ4QPLK4.js.map} +0 -0
- /package/dist/{ads-H7GH7A26.js.map → ads-6UEDYT3O.js.map} +0 -0
- /package/dist/{ads-56OWZBXZ.js.map → ads-6UG66KA5.js.map} +0 -0
- /package/dist/{ads-PV7GZXPR.js.map → ads-BCOSQALY.js.map} +0 -0
- /package/dist/{adsets-H7QT42U6.js.map → adsets-Q5DWGANV.js.map} +0 -0
- /package/dist/{advertisers-PM4WPG4N.js.map → advertisers-OABQDELT.js.map} +0 -0
- /package/dist/{analytics-JVZKN735.js.map → analytics-3YAWQF5K.js.map} +0 -0
- /package/dist/{analytics-5FALU2GL.js.map → analytics-BCZGSSXP.js.map} +0 -0
- /package/dist/{animate-FWWHSYPL.js.map → animate-AIZ3GS4J.js.map} +0 -0
- /package/dist/{assign-KLYZ6USE.js.map → assign-O6QNAZD5.js.map} +0 -0
- /package/dist/{audience-size-JHB42DB4.js.map → audience-size-CXPWERR3.js.map} +0 -0
- /package/dist/{audiences-JACGRBNN.js.map → audiences-AMRFZRZ7.js.map} +0 -0
- /package/dist/{audiences-VEKGLWBG.js.map → audiences-TGD5US2M.js.map} +0 -0
- /package/dist/{audit-5XH7WZIM.js.map → audit-MNOQK3U4.js.map} +0 -0
- /package/dist/{autocomplete-7F3PZLEY.js.map → autocomplete-TRCMPNW4.js.map} +0 -0
- /package/dist/{avatars-N4SRNQI7.js.map → avatars-P3WX5TQP.js.map} +0 -0
- /package/dist/{bid-pricing-VYLVGU26.js.map → bid-pricing-6XXSM7C2.js.map} +0 -0
- /package/dist/{brand-ASBS2HZM.js.map → brand-LXU7YNCF.js.map} +0 -0
- /package/dist/{brief-JSZKDPGU.js.map → brief-Y4F37TH5.js.map} +0 -0
- /package/dist/{campaign-groups-ATE2DE4V.js.map → campaign-groups-CEAM3WRO.js.map} +0 -0
- /package/dist/{campaign-writes-ETT57KLQ.js.map → campaign-writes-D6BJAULL.js.map} +0 -0
- /package/dist/{campaign-writes-SX52CJYW.js.map → campaign-writes-SXLZFYF6.js.map} +0 -0
- /package/dist/{campaigns-J6VZBIV6.js.map → campaigns-CXOKBCPS.js.map} +0 -0
- /package/dist/{campaigns-WBEG5QA4.js.map → campaigns-D6B6Z67Y.js.map} +0 -0
- /package/dist/{campaigns-FGBAS6AZ.js.map → campaigns-V3SWBM4E.js.map} +0 -0
- /package/dist/{campaigns-X3DPCCSN.js.map → campaigns-YS3OGQXO.js.map} +0 -0
- /package/dist/{canvas-K7IN7HLO.js.map → canvas-VH3Q26TK.js.map} +0 -0
- /package/dist/{capabilities-RDAERPYY.js.map → capabilities-NZPSSS6T.js.map} +0 -0
- /package/dist/{catalog-MENVHL5U.js.map → catalog-GWN3WT7J.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/{chats-YIAQGQ3X.js.map → chats-GN3PBFX4.js.map} +0 -0
- /package/dist/{chunk-U3HAMW5W.js.map → chunk-2BKVVCCV.js.map} +0 -0
- /package/dist/{chunk-EH4C4CZK.js.map → chunk-2GTYAHDN.js.map} +0 -0
- /package/dist/{chunk-SB3GZFCV.js.map → chunk-3OFVFHKT.js.map} +0 -0
- /package/dist/{chunk-U6SYRIOB.js.map → chunk-4QEY2L6U.js.map} +0 -0
- /package/dist/{chunk-PDTB5EX6.js.map → chunk-4Z7DEN75.js.map} +0 -0
- /package/dist/{chunk-KNWHUMVZ.js.map → chunk-6Y7SIP2D.js.map} +0 -0
- /package/dist/{chunk-VAISMQQB.js.map → chunk-7ED5TAFP.js.map} +0 -0
- /package/dist/{chunk-35XWJEWH.js.map → chunk-7J6EHOH6.js.map} +0 -0
- /package/dist/{chunk-YC2TQ3VC.js.map → chunk-CFHIW5QZ.js.map} +0 -0
- /package/dist/{chunk-GATKK4RJ.js.map → chunk-D6744YSX.js.map} +0 -0
- /package/dist/{chunk-ANCSKUWI.js.map → chunk-DQMZXK27.js.map} +0 -0
- /package/dist/{chunk-HIPDMQZ6.js.map → chunk-DZSIUEGH.js.map} +0 -0
- /package/dist/{chunk-T3BDNJIX.js.map → chunk-E4NCRGY3.js.map} +0 -0
- /package/dist/{chunk-2GK33EJV.js.map → chunk-ESB5DLIP.js.map} +0 -0
- /package/dist/{chunk-ACANMASG.js.map → chunk-FVF5SXTZ.js.map} +0 -0
- /package/dist/{chunk-VMDAXFRI.js.map → chunk-GYU7BWEN.js.map} +0 -0
- /package/dist/{chunk-KQTYTCKQ.js.map → chunk-HZUDRKGR.js.map} +0 -0
- /package/dist/{chunk-DR34ZTWD.js.map → chunk-IGQZ5U3C.js.map} +0 -0
- /package/dist/{chunk-65RIB7A6.js.map → chunk-IYU4X5A7.js.map} +0 -0
- /package/dist/{chunk-FXED3VZK.js.map → chunk-L27H2R2N.js.map} +0 -0
- /package/dist/{chunk-TIOQ7ZFQ.js.map → chunk-LLOOWRBB.js.map} +0 -0
- /package/dist/{chunk-XMD4SHFI.js.map → chunk-ND5MJ3AA.js.map} +0 -0
- /package/dist/{chunk-3CWL2LY4.js.map → chunk-NECTN6N7.js.map} +0 -0
- /package/dist/{chunk-BA7FDXQC.js.map → chunk-ORO7VAXB.js.map} +0 -0
- /package/dist/{chunk-HZ5DR5MX.js.map → chunk-OUTF5JFG.js.map} +0 -0
- /package/dist/{chunk-HQSCJYZO.js.map → chunk-P5T7OZKV.js.map} +0 -0
- /package/dist/{chunk-DKGTQSLR.js.map → chunk-PTCIM35Y.js.map} +0 -0
- /package/dist/{chunk-VB6WJJR3.js.map → chunk-PZXCWSKV.js.map} +0 -0
- /package/dist/{chunk-6DB2B3GF.js.map → chunk-QVJDPOEB.js.map} +0 -0
- /package/dist/{chunk-G7UTTEBS.js.map → chunk-R5RIH3N5.js.map} +0 -0
- /package/dist/{chunk-4NBVGARW.js.map → chunk-RB5CVIK6.js.map} +0 -0
- /package/dist/{chunk-7SDFKGQ4.js.map → chunk-RZT263H7.js.map} +0 -0
- /package/dist/{chunk-GIJT3A5U.js.map → chunk-T4DD5YMP.js.map} +0 -0
- /package/dist/{chunk-ALTBBAYU.js.map → chunk-TUB34FVS.js.map} +0 -0
- /package/dist/{chunk-Y6QAJNKP.js.map → chunk-TX7LZWZD.js.map} +0 -0
- /package/dist/{chunk-ZPU3WDVK.js.map → chunk-V7CTQOHG.js.map} +0 -0
- /package/dist/{chunk-AWMFUGVX.js.map → chunk-VNUNE5AB.js.map} +0 -0
- /package/dist/{chunk-K3PN7TN5.js.map → chunk-WTOYCUKH.js.map} +0 -0
- /package/dist/{chunk-ULJ5RFOV.js.map → chunk-XFGAUP5B.js.map} +0 -0
- /package/dist/{chunk-YBP7O5P4.js.map → chunk-XQIKDODN.js.map} +0 -0
- /package/dist/{chunk-VDHQJ6HD.js.map → chunk-XTRAI6CL.js.map} +0 -0
- /package/dist/{chunk-MADAAZZV.js.map → chunk-XVOI4BIS.js.map} +0 -0
- /package/dist/{chunk-UC6BWM5J.js.map → chunk-ZGTCZ6H4.js.map} +0 -0
- /package/dist/{chunk-MLU6STIN.js.map → chunk-ZZQXVYUY.js.map} +0 -0
- /package/dist/{claim-V4F5GZJK.js.map → claim-25JJM4AG.js.map} +0 -0
- /package/dist/{companies-NJGJ7XNN.js.map → companies-VR5M5PAN.js.map} +0 -0
- /package/dist/{complete-MGNF5OAK.js.map → complete-DRMOTC2W.js.map} +0 -0
- /package/dist/{connect-PJOTRTT4.js.map → connect-WUDJR2GH.js.map} +0 -0
- /package/dist/{conversation-4DM26FRD.js.map → conversation-K6LYF2ZP.js.map} +0 -0
- /package/dist/{conversion-report-N4HANYOB.js.map → conversion-report-XQBJ6LG4.js.map} +0 -0
- /package/dist/{conversion-upload-command-TZTHU2CD.js.map → conversion-upload-command-AUF3LNTH.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/{conversions-JGECVZSY.js.map → conversions-GF32XOWY.js.map} +0 -0
- /package/dist/{create-WOHPIGBK.js.map → create-2D7AIFJI.js.map} +0 -0
- /package/dist/{create-I2KVDTCQ.js.map → create-4TFAD6HY.js.map} +0 -0
- /package/dist/{create-DSGQFBI7.js.map → create-IXYXYLLE.js.map} +0 -0
- /package/dist/{create-SBQWVLXG.js.map → create-PKJVFJMO.js.map} +0 -0
- /package/dist/{creatives-4JGVZQGC.js.map → creatives-OHCFHRZ5.js.map} +0 -0
- /package/dist/{creatives-DWO5KEQC.js.map → creatives-QLSZFOMB.js.map} +0 -0
- /package/dist/{creatives-PSWCNY7U.js.map → creatives-UEPLNCPN.js.map} +0 -0
- /package/dist/{critique-TIZJ5GFM.js.map → critique-5PCQ2CJH.js.map} +0 -0
- /package/dist/{critique-NGMZK5LX.js.map → critique-WDO6SKK2.js.map} +0 -0
- /package/dist/{crm-2WAR565U.js.map → crm-HNUOHXAN.js.map} +0 -0
- /package/dist/{crm-VDXUO2YU.js.map → crm-SNIUADNK.js.map} +0 -0
- /package/dist/{custom-conversions-6P555U2K.js.map → custom-conversions-2VLJGPRV.js.map} +0 -0
- /package/dist/{customers-ATENMXDO.js.map → customers-72L2KZHO.js.map} +0 -0
- /package/dist/{delete-AVMZYNVT.js.map → delete-EVGM5B36.js.map} +0 -0
- /package/dist/{delete-H744GNS4.js.map → delete-PA2GY5EC.js.map} +0 -0
- /package/dist/{delete-OEYPFATY.js.map → delete-YNNFTFYV.js.map} +0 -0
- /package/dist/{demographics-M5LJF3RZ.js.map → demographics-SYS2E7QC.js.map} +0 -0
- /package/dist/{discard-72I6SM7G.js.map → discard-JS2YJUIM.js.map} +0 -0
- /package/dist/{domain-R4EIZD2W.js.map → domain-XKKH5NCL.js.map} +0 -0
- /package/dist/{draft-YYYRWF7M.js.map → draft-4AO4YH3V.js.map} +0 -0
- /package/dist/{draft-BV2QRPZ4.js.map → draft-5YAYCEYY.js.map} +0 -0
- /package/dist/{draft-34C3F5U4.js.map → draft-GCUXNPVH.js.map} +0 -0
- /package/dist/{draft-THPZFASM.js.map → draft-MNFJ4G3C.js.map} +0 -0
- /package/dist/{draft-BBFJNZ5X.js.map → draft-WWWKSEEE.js.map} +0 -0
- /package/dist/{facets-F2H52MS4.js.map → facets-NVBX5WDT.js.map} +0 -0
- /package/dist/{feedback-IQKKT4MC.js.map → feedback-OGAPR45R.js.map} +0 -0
- /package/dist/{feedback-record-UZV4Y7UD.js.map → feedback-record-GVXGDY5Y.js.map} +0 -0
- /package/dist/{fetch-ZUAZPLAE.js.map → fetch-U4TJIHZU.js.map} +0 -0
- /package/dist/{fit-2CA4JH7N.js.map → fit-BOQL6OK3.js.map} +0 -0
- /package/dist/{fonts-F2XUCIIW.js.map → fonts-64T6KRZS.js.map} +0 -0
- /package/dist/{forecast-IDKJYM2B.js.map → forecast-YIIGTHRM.js.map} +0 -0
- /package/dist/{funnel-RLGQGYKO.js.map → funnel-XHDCXXQ5.js.map} +0 -0
- /package/dist/{generate-MMBYB44G.js.map → generate-3XYYITU6.js.map} +0 -0
- /package/dist/{get-EEUR6SAW.js.map → get-XJ3AZX35.js.map} +0 -0
- /package/dist/{google-35GDU3G3.js.map → google-M7KEXVK5.js.map} +0 -0
- /package/dist/{google-ads-Q37I2D5P.js.map → google-ads-7XAGJVNJ.js.map} +0 -0
- /package/dist/{history-4II5QA4B.js.map → history-EUG4LE44.js.map} +0 -0
- /package/dist/{history-DBIEYQHY.js.map → history-Q3QCT64S.js.map} +0 -0
- /package/dist/{hubspot-TTITJFBO.js.map → hubspot-UULVEYVO.js.map} +0 -0
- /package/dist/{ideas-V4Q6JDKV.js.map → ideas-7LXYXS5G.js.map} +0 -0
- /package/dist/{images-SP5REF6E.js.map → images-3SOTFMJV.js.map} +0 -0
- /package/dist/{ingest-574GIFAR.js.map → ingest-HQUXSBWA.js.map} +0 -0
- /package/dist/{ingest-IC4T76W6.js.map → ingest-HYSZC3EX.js.map} +0 -0
- /package/dist/{insights-ZIU6FJMS.js.map → insights-LNAXV2CG.js.map} +0 -0
- /package/dist/{inspect-ATHYY6A2.js.map → inspect-HZQ7GSVM.js.map} +0 -0
- /package/dist/{keyword-metrics-J4UPUDN7.js.map → keyword-metrics-YG3K7MQZ.js.map} +0 -0
- /package/dist/{keywords-for-site-MWADFEO2.js.map → keywords-for-site-V4K744TF.js.map} +0 -0
- /package/dist/{landing-R6DN7XLK.js.map → landing-3SSX6WK6.js.map} +0 -0
- /package/dist/{leads-7EVHMNUF.js.map → leads-ARUWPHBM.js.map} +0 -0
- /package/dist/{leads-JM6HUERX.js.map → leads-FAHQ6KJX.js.map} +0 -0
- /package/dist/{learn-LGS2F5TR.js.map → learn-XNHGNQE5.js.map} +0 -0
- /package/dist/{line-item-writes-KUYEXSIH.js.map → line-item-writes-A6BPZQPL.js.map} +0 -0
- /package/dist/{line-items-GIWLP3FL.js.map → line-items-J7PXJHMD.js.map} +0 -0
- /package/dist/{link-PVM7XJQI.js.map → link-4GGAQAVH.js.map} +0 -0
- /package/dist/{linkedin-WX54EAX6.js.map → linkedin-I6JDSTRB.js.map} +0 -0
- /package/dist/{list-MCEFXC6L.js.map → list-22HZ2S4W.js.map} +0 -0
- /package/dist/{list-WR7QYTON.js.map → list-AQMGXI4N.js.map} +0 -0
- /package/dist/{list-4ZKQZBCL.js.map → list-KAJZFHMN.js.map} +0 -0
- /package/dist/{locations-74TPQWAT.js.map → locations-2NKBJKBT.js.map} +0 -0
- /package/dist/{log-U6IWZGOF.js.map → log-MUPKKYSJ.js.map} +0 -0
- /package/dist/{make-RXFHEGUI.js.map → make-3FO76LA7.js.map} +0 -0
- /package/dist/{map-TWL7T4KP.js.map → map-F4LXTAJV.js.map} +0 -0
- /package/dist/{mcp-HVAVJGGS.js.map → mcp-NLAQJWG6.js.map} +0 -0
- /package/dist/{media-M7E6V2XU.js.map → media-53DJRC4N.js.map} +0 -0
- /package/dist/{media-sources-JWGO23BZ.js.map → media-sources-W2CQFSVQ.js.map} +0 -0
- /package/dist/{members-5FAW4YE7.js.map → members-3U6GINDF.js.map} +0 -0
- /package/dist/{meta-EZ4SY25M.js.map → meta-A7KM6TF5.js.map} +0 -0
- /package/dist/{models-7U3GRYHF.js.map → models-3Z6MDHQW.js.map} +0 -0
- /package/dist/{normalize-GW4GZNVY.js.map → normalize-FQ6WP5E4.js.map} +0 -0
- /package/dist/{options-NSUCENLU.js.map → options-K6FNT5A3.js.map} +0 -0
- /package/dist/{performance-FGCDWHMC.js.map → performance-ZA7VCHOU.js.map} +0 -0
- /package/dist/{pixels-45A55MOP.js.map → pixels-TZPF746S.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-BPWTDESL.js.map → promoted-tweet-writes-4H3ZFD6O.js.map} +0 -0
- /package/dist/{promoted-tweets-OS3NHYVE.js.map → promoted-tweets-MCMKPIHM.js.map} +0 -0
- /package/dist/{publish-SXZEWBVJ.js.map → publish-CW5YSAAL.js.map} +0 -0
- /package/dist/{reddit-TF6K37SB.js.map → reddit-P7LLO4TK.js.map} +0 -0
- /package/dist/{refresh-APVDWXRZ.js.map → refresh-IGHEOA6Y.js.map} +0 -0
- /package/dist/{release-32SEJU4L.js.map → release-C74JOYDA.js.map} +0 -0
- /package/dist/{remove-U64GTHLQ.js.map → remove-HPN62MPQ.js.map} +0 -0
- /package/dist/{reopen-5VS233SF.js.map → reopen-XI53RP7R.js.map} +0 -0
- /package/dist/{rerun-7Z45QOOO.js.map → rerun-2ITYGAIT.js.map} +0 -0
- /package/dist/{research-QYSQ6LW4.js.map → research-HAHUTFVJ.js.map} +0 -0
- /package/dist/{research-O7CJV5IS.js.map → research-O6QXFCD7.js.map} +0 -0
- /package/dist/{reset-47B5VPT4.js.map → reset-BISRUHT4.js.map} +0 -0
- /package/dist/{reset-22FC7BXQ.js.map → reset-YMKVEOS4.js.map} +0 -0
- /package/dist/{resolve-7KQGVTQT.js.map → resolve-D2VESQ45.js.map} +0 -0
- /package/dist/{retry-J5UVLS72.js.map → retry-CGBATPQX.js.map} +0 -0
- /package/dist/{retry-UJ5UF4BM.js.map → retry-SUKRXBHX.js.map} +0 -0
- /package/dist/{run-SI4FA32F.js.map → run-BFERU46Q.js.map} +0 -0
- /package/dist/{run-TFLFBQU2.js.map → run-HSZFWRYZ.js.map} +0 -0
- /package/dist/{scaffold-ad-SEXNE2K6.js.map → scaffold-ad-BYQYVB2C.js.map} +0 -0
- /package/dist/{scaffold-static-ad-VBOL6CLN.js.map → scaffold-static-ad-5MXVTMEE.js.map} +0 -0
- /package/dist/{scaffold-video-Z37MIBDI.js.map → scaffold-video-KEIHX3UD.js.map} +0 -0
- /package/dist/{schedule-52ZM4KRQ.js.map → schedule-XJ24PL3K.js.map} +0 -0
- /package/dist/{scheduled-agents-PCWCQAKP.js.map → scheduled-agents-HWEKBANT.js.map} +0 -0
- /package/dist/{schema-FY6ORDXZ.js.map → schema-TAAAJHOJ.js.map} +0 -0
- /package/dist/{search-NS7XNRZC.js.map → search-NVCIIGQS.js.map} +0 -0
- /package/dist/{select-4XCYVV2G.js.map → select-K3EMTTI3.js.map} +0 -0
- /package/dist/{set-prompt-TRJBYA3D.js.map → set-prompt-PY7FWYX6.js.map} +0 -0
- /package/dist/{setup-links-V3URI7DL.js.map → setup-links-5ZCASHAL.js.map} +0 -0
- /package/dist/{site-WIQ7SSU3.js.map → site-7PSCHITE.js.map} +0 -0
- /package/dist/{sources-DWJXOLEH.js.map → sources-GEB6OEGY.js.map} +0 -0
- /package/dist/{sources-L453U5MT.js.map → sources-ICMUQMCJ.js.map} +0 -0
- /package/dist/{stale-6OVG6VME.js.map → stale-KBY5WARW.js.map} +0 -0
- /package/dist/{status-WXWU54WR.js.map → status-ZX5WM5PJ.js.map} +0 -0
- /package/dist/{studio-C5K3YX3P.js.map → studio-RA7QQH4O.js.map} +0 -0
- /package/dist/{sync-CDZUTGV3.js.map → sync-TZNIPZRX.js.map} +0 -0
- /package/dist/{sync-definition-BAJQUBE3.js.map → sync-definition-ADXXWWV5.js.map} +0 -0
- /package/dist/{tags-6RY23XOG.js.map → tags-4OZCALA3.js.map} +0 -0
- /package/dist/{tags-SG3NVC3J.js.map → tags-4PXXFIPU.js.map} +0 -0
- /package/dist/{tags-VN5HTL35.js.map → tags-KFVUEPL6.js.map} +0 -0
- /package/dist/{tags-BHFQWNPL.js.map → tags-TESETZGC.js.map} +0 -0
- /package/dist/{tags-WR6PDIDR.js.map → tags-WIMUIZHU.js.map} +0 -0
- /package/dist/{targeting-criteria-5EXP2NXF.js.map → targeting-criteria-VRI7V6C5.js.map} +0 -0
- /package/dist/{targets-WUVEJPSD.js.map → targets-ERVS2VEU.js.map} +0 -0
- /package/dist/{templates-LOJQX2NG.js.map → templates-TE6LBUIP.js.map} +0 -0
- /package/dist/{testimonials-6M5DXORT.js.map → testimonials-FV7KPAPK.js.map} +0 -0
- /package/dist/{top-companies-E2OMMPSV.js.map → top-companies-B5M43KGJ.js.map} +0 -0
- /package/dist/{translate-AW4CUKDA.js.map → translate-OKADZCBC.js.map} +0 -0
- /package/dist/{triggers-MRXIDCSN.js.map → triggers-JLJQOSKI.js.map} +0 -0
- /package/dist/{unlink-HNL747YM.js.map → unlink-KMWDKVIC.js.map} +0 -0
- /package/dist/{unstage-OL2JDCLK.js.map → unstage-M4IQKJIO.js.map} +0 -0
- /package/dist/{update-RTTC3SAK.js.map → update-5MBR4TPK.js.map} +0 -0
- /package/dist/{update-4KGIT4BF.js.map → update-AHDGHOCP.js.map} +0 -0
- /package/dist/{update-YNNRX5B2.js.map → update-K6LFJHNI.js.map} +0 -0
- /package/dist/{update-JPBUF7M2.js.map → update-PNRNYXUW.js.map} +0 -0
- /package/dist/{upload-UIXPCSXJ.js.map → upload-KAQC4AH7.js.map} +0 -0
- /package/dist/{url-params-K47CE7Y5.js.map → url-params-SM32OOXZ.js.map} +0 -0
- /package/dist/{validate-TD2BY4VE.js.map → validate-NCTK5BXD.js.map} +0 -0
- /package/dist/{videos-BP3BKNTY.js.map → videos-A32DPGHD.js.map} +0 -0
- /package/dist/{viewer-check-HFRUJ4ZU.js.map → viewer-check-L4B4LIAX.js.map} +0 -0
- /package/dist/{web-RPSGFN4U.js.map → web-TZEIFUYY.js.map} +0 -0
- /package/dist/{winning-ads-WUENRDVJ.js.map → winning-ads-THIR7E5S.js.map} +0 -0
- /package/dist/{write-commands-4WARNR2T.js.map → write-commands-CE4FIQ6Y.js.map} +0 -0
- /package/dist/{write-commands-TAYGTJEZ.js.map → write-commands-CT74VHH6.js.map} +0 -0
- /package/dist/{x-VZCELH3P.js.map → x-YXABYM5U.js.map} +0 -0
package/README.md
CHANGED
|
@@ -5972,7 +5972,7 @@ A completed render the review calls ready (`verdict` `ready` or `ready_with_note
|
|
|
5972
5972
|
|
|
5973
5973
|
**Static ads: the run corrects a blocking defect itself.** When the review of a static ad finds a blocking defect, `baker canvas run` makes up to 3 more renders (`AUTO_FIX_ROUNDS` in `static-autofix.ts`) before it reports, correcting each defect at the layer that causes it: words or a logo where an interface covers them (Reels, Stories) or the frame cuts them are **placed and extended** (`withExtendedSizes`): a `static_place` node reads where everything sits and shrinks the ad (to 60% at most) into the size's safe area, and a `static_extend_merge` node has the ad's own model paint the margins that leaves and keeps its painting as one picture across the whole frame, laying the ad's own pixels back only over the words, logo and buttons the placing read (padded and feathered, so no edge of the shrunk ad shows; the whole ad is laid back, as before, when nothing was read or the painting moved the words), so the model is never asked to move anything (a size already inside its area is passed on with nothing painted or billed, and one whose words sit too far out for a shrink to clear, or that the placing found inside its area while the review still blocks it, is laid out again instead, never placed the same way twice; a button is placed by its shape, its words grown by 0.7 of their height on every side, as the review judges it); a defect the spec asked for (a second subject, stars with no named source, a concept that does not read) and any defect of a native screen corrects the spec first (`static-spec-repair.ts`: a model rewrites `prompt.json` for those findings alone, every line of the copy kept word for word), then draws the ad again from it (a native screen redraws free); a picture wrong as a whole or in three places or more is made again from its brief, told what the last one got wrong, but only in a round with another after it unless the brief caused the defect; anything else on the picture is a `--fix` of the chosen picture for its own findings (`correctionOf`: the words to erase, the line to re-letter or add), naming what the last edit was already asked for, while each re-laid size the review flagged follows as an edit of its own last layout (`withSizesFollowingFix`), keeping what an earlier round fixed in it, and a size it found nothing blocking on is delivered as it was (`keep`, nothing in it made again or placed); anything else on a re-laid size alone edits just that size from its own last layout (`withRelayEdit`); sizes that do not show the same ad (`SIZES:`) are always the re-laid ones' fault, since every size follows the chosen picture, so they are laid out again to show exactly what it shows, never the picture edited to match them. A size a round did not touch (its file the same byte for byte) keeps the round before's verdict (`carryUnchanged`) and is not read again: the review reads only the sizes the round changed. Each correction is told what earlier rounds fixed so it keeps it right (`keptRules`), and starts from the best attempt so far: one that came out with more blocking defects than an earlier attempt is set aside and the earlier one corrected instead (`correctFrom`). Each round is one render (a fix, or one request per re-laid size) and prints `[autofix] round N of 3: …` on stdout; the final JSON's hints start with "Corrected automatically before this result, …" and its review is of the corrected version. Blocking findings left after the rounds keep the hints below. A round that would only repeat the correction that just left its defect in place (a chosen option, `--use-variant`, is only ever corrected) is not run: that version is reported as it is. `--no-autofix` reports after the first render.
|
|
5974
5974
|
|
|
5975
|
-
**Static ads: correct a version, or use another of its variants.** Correct a finished version with `--fix "<what to change>"`: one render takes that version (the last one, or `--from <run_id>`) as its first reference and changes only what you said, keeping the picture, the layout and every other word
|
|
5975
|
+
**Static ads: correct a version, or use another of its variants.** Correct a finished version with `--fix "<what to change>"`: one render takes that version (the last one, or `--from <run_id>`) as its first reference and changes only what you said, keeping the picture, the layout and every other word, and every size is made again from the corrected picture. **A correction grows on top of the version it starts from**: the run executes that version's own graph (its variants, the prefilter and pick, every earlier correction) with each of those steps pinned to the outputs that version recorded (free, never re-rendered, whatever `prompt.json` says now), then appends `edit_1` (the picture as its first reference, framed for the master as a variant is) and makes the sizes from it; a second correction appends `edit_2` on `edit_1`. `--use-variant` wires the chosen variant from the version's own `gen` as a `chosen` step, and a `--regenerate adapt_<size>` keeps the version's picture the same way. So the run record, and the dashboard's workflow of each version, show the whole history: options, pick, edits, sizes. The canvas file is never rewritten. Every static run keeps the graph it executed in the asset store (`graphUrl` on its run record, up to 4 MB), so a version rendered in another workspace ("Edit creative …" from a new chat, `--from <run_id>`) grows the same way, its steps pinned to the outputs its run record holds; only a run recorded before graphs were kept is corrected from its picture by URL. **A `prompt.json` changed only in its words, their positions or its colours** since the version shown is made the same way, as an edit of that version (`[edit]` in the output, the instruction read off the change); three new options are asked for only with `--regenerate static_variants`. A `--fix` whose defect is still blocking afterwards is recorded, and asking for it again with the same words exits 2 with `no_progress`. When every blocking finding is on re-laid-out sizes, the first hint says to lay out those sizes again (`--regenerate adapt_<size>`) before any `--fix`. Every static run's hints say what it cost in credits and what for. There is no render limit per creative. Use another variant with `--use-variant <sha256>` (`--from <run_id>`, default the last render): when the person asks in the chat for another of a version's variants over the judge's pick, every size is made again from that picture, and the only requests re-lay it out for each other size; `--regenerate adapt_9x16` lays out one size again from the same chosen picture when only that size came out wrong (after a `--fix` or `--use-variant`, from that corrected or chosen picture, so the size never brings back the uncorrected one; `--from <run_id>` names another version).
|
|
5976
5976
|
|
|
5977
5977
|
#### `baker canvas scaffold-video <video> [flags]`
|
|
5978
5978
|
|
|
@@ -6102,7 +6102,7 @@ The canvas is validated before it is written. stdout returns `{ ok, canvas_path,
|
|
|
6102
6102
|
|
|
6103
6103
|
**Who sees the ad.** `--target-adset <id>` names the Meta ad set the ad will run in. Before anything is billed, the viewer its targeting reaches is read exactly as `baker ads meta adsets --audience` reads it (`temperature`, what they already `knows`, `placements`) and written to `_definition.md` as `targetAdSet` and `viewer` (an existing definition keeps every other field). The sizes, the brief and the prefilter keep clear of that viewer's placements (`staticSafeArea`; `automatic`, a bare `facebook`/`instagram` or no placements is Advantage+, Reels included), and every `baker canvas run` checks the ad against that viewer. With no ad account, give the viewer from the Knowledge: `--viewer-temperature cold|warm|hot [--viewer-knows brand,offer,product] [--viewer-placements <placement,…>]`, recorded with `source: knowledge`; next to `--target-adset` they correct the read, and its `reasons` say so. A bad value exits 2 (`invalid_viewer`) before any billed pass; an ad set that cannot be read never stops the scaffold (a hint says why, and the sizes keep clear of every placement). With neither flag, a `viewer` (or `targetAdSet`) already in `_definition.md` is used as it is. stdout carries `target_adset`, `viewer` and a `checklist.viewer` line.
|
|
6104
6104
|
|
|
6105
|
-
**After a run** the CLI reads the finished ad back on what makes a static win, not a checklist of elements: every delivered image's pixel shape against its format; **every line of `prompt.json`'s copy (in-scene and designed alike) read back with its box by a box reader and compared** (a line more than 2% off, missing, or joined by words nobody asked for is blocking; case and punctuation fold, as does a capital I read as an l (one stroke in a sans-serif), accents do not; words the picture adds are blocking only when set at the copy's usual size or making a claim (a figure, a price, an offer), and otherwise a note, as a screen's code, a poster or a mug in the scene, except a price (a currency sign beside a figure) the copy does not hold, blocking at any size and blurred by the correction, the document it is on kept; every render is asked for no readable prices on a bill, quote, receipt, screen or price tag beyond the copy; a copy line is "on the ad twice" only when most of its words repeat, never a word or two echoed on a prop; on a native screen, which code typesets from the spec, a line read differently is the reader's error and only a missing one counts); **the ad's own copy and its logo measured against the format's safe area** (`staticSafeArea`, the one owner of those areas; `must-show.ts` decides what is measured: never what the scene prints, nor a copy line printed again in the scene while the line itself sits clear). On a 9:16, which runs in Stories and Reels alike, what Stories' header or bottom bar covers (and any other app's interface named) is said as "where Stories and Reels cover it" ("where Reels covers it" for an ad set that runs only in Reels) and blocks for the logo, the button, the headline, the figure and the offer, while a supporting line (body, caption, label, small print) there is a note; what only Reels' taller footer covers is one note, and only for the lead line, since Stories shows it and the 9:16 is laid out in Stories' band; words merely close to where an app draws are no finding. The steps that place a size clear of an interface (`static_safe_fit`, `static_place`) are told the same copy (`prompt.json`'s lines, their roles, and the brand's name and the logo's words, a wordmark read close to them counting as the logo) and move the ad for those alone, a supporting line included only where the frame cuts it; on a feed image such as a 4:5, only a design margin, so words close to the edge are a warning and only words the frame cuts are blocking); a copy line written over two lines (`"15%\noff"`) is matched part by part wherever the reader finds each; designed type in a colour far from the brand palette is a warning; supporting lines too small to read on a phone are one note per size; the main line set smaller than a supporting one is a note, the brand's wordmark never counted as part of a line that starts with its name; the logo set twice is a note, a far smaller mark printed on something in the scene (a hoodie, a bag) is not. When the copy names a real person ("Lautaro Suarez, CTO at Vibiz", "田中 美咲、Acme 創業者"; read by a text model in any language, cached by copy, `scripts/named-people-evals`), the run casts them as themselves before it renders (`baker avatars research --create`, their avatar's sheet added to `prompt.json` `references` as a `PERSON_n`), and a face shown as a named person the ad has no photo of is blocking. When the reader cannot answer, the vision pass transcribes the copy instead and judges the safe zones by eye. Then one vision pass for clipping, overlaps, artifacts, one dominant idea, the brand with the logo covered and the concept's mechanisms (each finding typed by the model with the item it answers, what it is about, what is wrong and the edges that cut it, which the grading and the automatic correction read instead of its words), with every format shown a second time at phone-feed thumbnail size (240px wide, same call): a lead message unreadable at that size is blocking. A missing logo, CTA or copy is never a finding; a logo that is drawn and broken is. stdout carries `verdict` (`ready` | `ready_with_notes` | `needs_fixes` | `not_reviewed`), `judge` (the per-candidate scores) and hints that end with what the run made; the findings are stored on the run as its `review`. `needs_fixes` means the ad is not done even though every node completed, and the run is recorded with `presentable: false` so it is never shown as a version; every fix is an edit to `prompt.json` and a re-run (wrong words: the lines in `copy`; wrong picture: the `scene`; a bad roll: `--regenerate static_variants`; one size wrong while the chosen picture is right: `--regenerate adapt_<size>`, which re-lays it out, named in the hints); a blocking defect is first corrected by the run itself (`--autofix`, above). The checks rank the variants before the pick and the judge only breaks an exact tie, comparing pairwise against the compiled brief, knowing the brand and the viewer; every variant stays on offer to the person in Baker. Within one chat turn an ad gets two runs you start (each with its automatic corrections) and about 12 minutes in all: a correction round that would take it past that is not started (`[autofix] not started`), the version shown as it stands, and no render starts once it is spent
|
|
6105
|
+
**After a run** the CLI reads the finished ad back on what makes a static win, not a checklist of elements: every delivered image's pixel shape against its format; **every line of `prompt.json`'s copy (in-scene and designed alike) read back with its box by a box reader and compared** (a line more than 2% off, missing, or joined by words nobody asked for is blocking; case and punctuation fold, as does a capital I read as an l (one stroke in a sans-serif), accents do not; words the picture adds are blocking only when set at the copy's usual size or making a claim (a figure, a price, an offer), and otherwise a note, as a screen's code, a poster or a mug in the scene, except a price (a currency sign beside a figure) the copy does not hold, blocking at any size and blurred by the correction, the document it is on kept; every render is asked for no readable prices on a bill, quote, receipt, screen or price tag beyond the copy; a copy line is "on the ad twice" only when most of its words repeat, never a word or two echoed on a prop; on a native screen, which code typesets from the spec, a line read differently is the reader's error and only a missing one counts); **the ad's own copy and its logo measured against the format's safe area** (`staticSafeArea`, the one owner of those areas; `must-show.ts` decides what is measured: never what the scene prints, nor a copy line printed again in the scene while the line itself sits clear). On a 9:16, which runs in Stories and Reels alike, what Stories' header or bottom bar covers (and any other app's interface named) is said as "where Stories and Reels cover it" ("where Reels covers it" for an ad set that runs only in Reels) and blocks for the logo, the button, the headline, the figure and the offer, while a supporting line (body, caption, label, small print) there is a note; what only Reels' taller footer covers is one note, and only for the lead line, since Stories shows it and the 9:16 is laid out in Stories' band; words merely close to where an app draws are no finding. The steps that place a size clear of an interface (`static_safe_fit`, `static_place`) are told the same copy (`prompt.json`'s lines, their roles, and the brand's name and the logo's words, a wordmark read close to them counting as the logo) and move the ad for those alone, a supporting line included only where the frame cuts it; on a feed image such as a 4:5, only a design margin, so words close to the edge are a warning and only words the frame cuts are blocking); a copy line written over two lines (`"15%\noff"`) is matched part by part wherever the reader finds each; designed type in a colour far from the brand palette is a warning; supporting lines too small to read on a phone are one note per size; the main line set smaller than a supporting one is a note, the brand's wordmark never counted as part of a line that starts with its name; the logo set twice is a note, a far smaller mark printed on something in the scene (a hoodie, a bag) is not. When the copy names a real person ("Lautaro Suarez, CTO at Vibiz", "田中 美咲、Acme 創業者"; read by a text model in any language, cached by copy, `scripts/named-people-evals`), the run casts them as themselves before it renders (`baker avatars research --create`, their avatar's sheet added to `prompt.json` `references` as a `PERSON_n`), and a face shown as a named person the ad has no photo of is blocking. When the reader cannot answer, the vision pass transcribes the copy instead and judges the safe zones by eye. Then one vision pass for clipping, overlaps, artifacts, one dominant idea, the brand with the logo covered and the concept's mechanisms (each finding typed by the model with the item it answers, what it is about, what is wrong and the edges that cut it, which the grading and the automatic correction read instead of its words), with every format shown a second time at phone-feed thumbnail size (240px wide, same call): a lead message unreadable at that size is blocking. A missing logo, CTA or copy is never a finding; a logo that is drawn and broken is. stdout carries `verdict` (`ready` | `ready_with_notes` | `needs_fixes` | `not_reviewed`), `judge` (the per-candidate scores) and hints that end with what the run made; the findings are stored on the run as its `review`. `needs_fixes` means the ad is not done even though every node completed, and the run is recorded with `presentable: false` so it is never shown as a version; every fix is an edit to `prompt.json` and a re-run (wrong words: the lines in `copy`; wrong picture: the `scene`; a bad roll: `--regenerate static_variants`; one size wrong while the chosen picture is right: `--regenerate adapt_<size>`, which re-lays it out, named in the hints); a blocking defect is first corrected by the run itself (`--autofix`, above). The checks rank the variants before the pick and the judge only breaks an exact tie, comparing pairwise against the compiled brief, knowing the brand and the viewer; every variant stays on offer to the person in Baker. Within one chat turn an ad gets two runs you start (each with its automatic corrections) and about 12 minutes in all: a correction round that would take it past that is not started (`[autofix] not started`), the version shown as it stands, and no render starts once it is spent; once the ad is `ready` or `ready_with_notes` only a correction of it starts (`--fix`, `--regenerate adapt_<size>`, or an edit of its words or colours), within the same two runs, and anything else is refused (`CONFLICT`, exit 2) with what to show instead; the person's next message starts a new turn (`turn-renders.ts`). When a defect still stands after the automatic rounds, the hints say to fix it with a `--fix`, then by changing the spec or the approach, and if it still cannot be fixed to show the best version and name what is left in one plain sentence, without a question.
|
|
6106
6106
|
|
|
6107
6107
|
The render prompt is **model-aware**: each model's profile (`src/engine/lib/prompt-profiles.ts`) sets its shape, word budget, picture order and request params. gpt-image gets short labelled sections with the constraints last; Gemini gets sentences that give the reason and a positive closing list of the only words allowed. A profile change, or a new model on the router (`src/engine/lib/image-model-router.ts`), is re-run on the static bench (`scripts/creative-evals`, `--job static`) before it ships. Run `baker canvas critique` on the scaffolded canvas for an advisory read before you spend.
|
|
6108
6108
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CHATGPT_ADS_REFERENCE,
|
|
3
3
|
runChatgptRead
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FTWJFDIN.js";
|
|
5
5
|
import "./chunk-VFIOJD5M.js";
|
|
6
6
|
import {
|
|
7
7
|
apiGet
|
|
@@ -67,7 +67,7 @@ Examples:
|
|
|
67
67
|
},
|
|
68
68
|
subCommands: {
|
|
69
69
|
show: accountShowCommand,
|
|
70
|
-
update: () => import("./account-writes-
|
|
70
|
+
update: () => import("./account-writes-AK42HGRM.js").then((m) => m.accountUpdateCommand)
|
|
71
71
|
},
|
|
72
72
|
// A parent must never declare `run`: citty falls through to it after the matched subcommand.
|
|
73
73
|
args: SHOW_ARGS,
|
|
@@ -77,4 +77,4 @@ export {
|
|
|
77
77
|
accountCommand,
|
|
78
78
|
accountHints
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=account-
|
|
80
|
+
//# sourceMappingURL=account-4H7QVBRK.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
csvOrJson,
|
|
3
3
|
handleLinkedinError,
|
|
4
4
|
resolveAccountIdArg
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-QVJDPOEB.js";
|
|
6
6
|
import {
|
|
7
7
|
writeAdsJson,
|
|
8
8
|
writeAdsOutput
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
NO_CACHE_ARG
|
|
12
12
|
} from "./chunk-X7ZODEXJ.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-K6WVV74H.js";
|
|
14
14
|
import "./chunk-GXDLWBOY.js";
|
|
15
15
|
import "./chunk-TEINLN64.js";
|
|
16
16
|
import "./chunk-ZJWUBJYQ.js";
|
|
@@ -68,7 +68,7 @@ Examples:
|
|
|
68
68
|
},
|
|
69
69
|
subCommands: {
|
|
70
70
|
detail: accountDetailCommand,
|
|
71
|
-
"url-params": () => import("./write-commands-
|
|
71
|
+
"url-params": () => import("./write-commands-CE4FIQ6Y.js").then((m) => m.accountUrlParamsCommand)
|
|
72
72
|
},
|
|
73
73
|
args: accountDetailCommand.args,
|
|
74
74
|
default: "detail"
|
|
@@ -76,4 +76,4 @@ Examples:
|
|
|
76
76
|
export {
|
|
77
77
|
accountCommand
|
|
78
78
|
};
|
|
79
|
-
//# sourceMappingURL=account-
|
|
79
|
+
//# sourceMappingURL=account-DTHGTZCN.js.map
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
compact,
|
|
3
3
|
schemaArgs,
|
|
4
4
|
stageChatgptOp
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7J6EHOH6.js";
|
|
6
6
|
import {
|
|
7
7
|
CHATGPT_ADS_REFERENCE,
|
|
8
8
|
chatgptFailure
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-FTWJFDIN.js";
|
|
10
10
|
import {
|
|
11
11
|
writeJsonEnvelope
|
|
12
12
|
} from "./chunk-VFIOJD5M.js";
|
|
@@ -63,4 +63,4 @@ Examples:
|
|
|
63
63
|
export {
|
|
64
64
|
accountUpdateCommand
|
|
65
65
|
};
|
|
66
|
-
//# sourceMappingURL=account-writes-
|
|
66
|
+
//# sourceMappingURL=account-writes-AK42HGRM.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
csvOrJson,
|
|
3
3
|
handleLinkedinError
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-QVJDPOEB.js";
|
|
5
5
|
import {
|
|
6
6
|
connectedResourceHints
|
|
7
7
|
} from "./chunk-P4NSJS54.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
import {
|
|
17
17
|
NO_CACHE_ARG
|
|
18
18
|
} from "./chunk-X7ZODEXJ.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-K6WVV74H.js";
|
|
20
20
|
import "./chunk-GXDLWBOY.js";
|
|
21
21
|
import "./chunk-TEINLN64.js";
|
|
22
22
|
import "./chunk-ZJWUBJYQ.js";
|
|
@@ -74,4 +74,4 @@ Examples:
|
|
|
74
74
|
export {
|
|
75
75
|
accountsCommand
|
|
76
76
|
};
|
|
77
|
-
//# sourceMappingURL=accounts-
|
|
77
|
+
//# sourceMappingURL=accounts-5RLG6BBA.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
accountsInfluencedRequestSchema,
|
|
10
10
|
influenceParams,
|
|
11
11
|
warmAccounts
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-RB5CVIK6.js";
|
|
13
13
|
import "./chunk-GRQ2AXDX.js";
|
|
14
14
|
import {
|
|
15
15
|
TABLE_OUTPUT_FORMATS,
|
|
@@ -19,8 +19,8 @@ import {
|
|
|
19
19
|
} from "./chunk-VFIOJD5M.js";
|
|
20
20
|
import {
|
|
21
21
|
failApi
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-ZDNOCKKY.js";
|
|
23
|
+
import "./chunk-K6WVV74H.js";
|
|
24
24
|
import "./chunk-GXDLWBOY.js";
|
|
25
25
|
import "./chunk-TEINLN64.js";
|
|
26
26
|
import "./chunk-ZJWUBJYQ.js";
|
|
@@ -602,10 +602,10 @@ var accountsCommand = defineCommand({
|
|
|
602
602
|
warm: warmCommand,
|
|
603
603
|
company: companyCommand,
|
|
604
604
|
campaigns: campaignsCommand,
|
|
605
|
-
crm: () => import("./crm-
|
|
605
|
+
crm: () => import("./crm-SNIUADNK.js").then((m) => m.crmCommand)
|
|
606
606
|
}
|
|
607
607
|
});
|
|
608
608
|
export {
|
|
609
609
|
accountsCommand
|
|
610
610
|
};
|
|
611
|
-
//# sourceMappingURL=accounts-
|
|
611
|
+
//# sourceMappingURL=accounts-6LSBBXKA.js.map
|
|
@@ -30,26 +30,26 @@ Examples:
|
|
|
30
30
|
Full guide: __tooling__/docs/tools/baker/actions.md`
|
|
31
31
|
},
|
|
32
32
|
subCommands: {
|
|
33
|
-
list: () => import("./list-
|
|
34
|
-
log: () => import("./log-
|
|
35
|
-
draft: () => import("./draft-
|
|
36
|
-
get: () => import("./get-
|
|
37
|
-
status: () => import("./status-
|
|
38
|
-
claim: () => import("./claim-
|
|
39
|
-
release: () => import("./release-
|
|
40
|
-
create: () => import("./create-
|
|
41
|
-
update: () => import("./update-
|
|
42
|
-
complete: () => import("./complete-
|
|
43
|
-
discard: () => import("./discard-
|
|
44
|
-
reopen: () => import("./reopen-
|
|
45
|
-
assign: () => import("./assign-
|
|
46
|
-
members: () => import("./members-
|
|
47
|
-
link: () => import("./link-
|
|
48
|
-
unlink: () => import("./unlink-
|
|
49
|
-
tags: () => import("./tags-
|
|
33
|
+
list: () => import("./list-AQMGXI4N.js").then((m) => m.listCommand),
|
|
34
|
+
log: () => import("./log-MUPKKYSJ.js").then((m) => m.logCommand),
|
|
35
|
+
draft: () => import("./draft-GCUXNPVH.js").then((m) => m.draftCommand),
|
|
36
|
+
get: () => import("./get-6RQFDAIN.js").then((m) => m.getCommand),
|
|
37
|
+
status: () => import("./status-ZX5WM5PJ.js").then((m) => m.statusCommand),
|
|
38
|
+
claim: () => import("./claim-25JJM4AG.js").then((m) => m.claimCommand),
|
|
39
|
+
release: () => import("./release-C74JOYDA.js").then((m) => m.releaseCommand),
|
|
40
|
+
create: () => import("./create-2D7AIFJI.js").then((m) => m.createCommand),
|
|
41
|
+
update: () => import("./update-PNRNYXUW.js").then((m) => m.updateCommand),
|
|
42
|
+
complete: () => import("./complete-DRMOTC2W.js").then((m) => m.completeCommand),
|
|
43
|
+
discard: () => import("./discard-JS2YJUIM.js").then((m) => m.discardCommand),
|
|
44
|
+
reopen: () => import("./reopen-XI53RP7R.js").then((m) => m.reopenCommand),
|
|
45
|
+
assign: () => import("./assign-O6QNAZD5.js").then((m) => m.assignCommand),
|
|
46
|
+
members: () => import("./members-3U6GINDF.js").then((m) => m.membersCommand),
|
|
47
|
+
link: () => import("./link-4GGAQAVH.js").then((m) => m.linkCommand),
|
|
48
|
+
unlink: () => import("./unlink-KMWDKVIC.js").then((m) => m.unlinkCommand),
|
|
49
|
+
tags: () => import("./tags-4PXXFIPU.js").then((m) => m.tagsCommand)
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
52
|
export {
|
|
53
53
|
actionsCommand
|
|
54
54
|
};
|
|
55
|
-
//# sourceMappingURL=actions-
|
|
55
|
+
//# sourceMappingURL=actions-WH5C6Q7I.js.map
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
schemaArgs,
|
|
10
10
|
stageChatgptOp,
|
|
11
11
|
statusCommand
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-7J6EHOH6.js";
|
|
13
13
|
import {
|
|
14
14
|
CHATGPT_ADS_REFERENCE
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-FTWJFDIN.js";
|
|
16
16
|
import "./chunk-VFIOJD5M.js";
|
|
17
17
|
import "./chunk-XBOK23HI.js";
|
|
18
18
|
import "./chunk-IFWP3ZDO.js";
|
|
@@ -167,4 +167,4 @@ export {
|
|
|
167
167
|
audienceBidsArg,
|
|
168
168
|
contextHintsArg
|
|
169
169
|
};
|
|
170
|
-
//# sourceMappingURL=ad-group-writes-
|
|
170
|
+
//# sourceMappingURL=ad-group-writes-QQS4223F.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CHATGPT_ADS_REFERENCE,
|
|
3
3
|
runChatgptListRead
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FTWJFDIN.js";
|
|
5
5
|
import "./chunk-VFIOJD5M.js";
|
|
6
6
|
import "./chunk-XBOK23HI.js";
|
|
7
7
|
import "./chunk-IFWP3ZDO.js";
|
|
@@ -52,11 +52,11 @@ Examples:
|
|
|
52
52
|
},
|
|
53
53
|
subCommands: {
|
|
54
54
|
list: adGroupsListCommand,
|
|
55
|
-
create: () => import("./ad-group-writes-
|
|
56
|
-
update: () => import("./ad-group-writes-
|
|
57
|
-
pause: () => import("./ad-group-writes-
|
|
58
|
-
resume: () => import("./ad-group-writes-
|
|
59
|
-
archive: () => import("./ad-group-writes-
|
|
55
|
+
create: () => import("./ad-group-writes-QQS4223F.js").then((m) => m.adGroupsCreateCommand),
|
|
56
|
+
update: () => import("./ad-group-writes-QQS4223F.js").then((m) => m.adGroupsUpdateCommand),
|
|
57
|
+
pause: () => import("./ad-group-writes-QQS4223F.js").then((m) => m.adGroupsPauseCommand),
|
|
58
|
+
resume: () => import("./ad-group-writes-QQS4223F.js").then((m) => m.adGroupsResumeCommand),
|
|
59
|
+
archive: () => import("./ad-group-writes-QQS4223F.js").then((m) => m.adGroupsArchiveCommand)
|
|
60
60
|
},
|
|
61
61
|
// A parent must never declare `run`: citty falls through to it after the matched subcommand.
|
|
62
62
|
args,
|
|
@@ -65,4 +65,4 @@ Examples:
|
|
|
65
65
|
export {
|
|
66
66
|
adGroupsCommand
|
|
67
67
|
};
|
|
68
|
-
//# sourceMappingURL=ad-groups-
|
|
68
|
+
//# sourceMappingURL=ad-groups-WGPDPUI2.js.map
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
schemaArgs,
|
|
8
8
|
stageChatgptOp,
|
|
9
9
|
statusCommand
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-7J6EHOH6.js";
|
|
11
11
|
import {
|
|
12
12
|
CHATGPT_ADS_REFERENCE
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-FTWJFDIN.js";
|
|
14
14
|
import "./chunk-VFIOJD5M.js";
|
|
15
15
|
import "./chunk-XBOK23HI.js";
|
|
16
16
|
import "./chunk-IFWP3ZDO.js";
|
|
@@ -171,4 +171,4 @@ export {
|
|
|
171
171
|
adsUpdateCommand,
|
|
172
172
|
productAdCreateOp
|
|
173
173
|
};
|
|
174
|
-
//# sourceMappingURL=ad-writes-
|
|
174
|
+
//# sourceMappingURL=ad-writes-XE2IE4DS.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
testimonialSourceRefreshIntervalSchema,
|
|
8
8
|
testimonialSourceTypeSchema,
|
|
9
9
|
testimonialSourcesAddRequestSchema
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-K6WVV74H.js";
|
|
11
11
|
import "./chunk-GXDLWBOY.js";
|
|
12
12
|
import "./chunk-TEINLN64.js";
|
|
13
13
|
import "./chunk-ZJWUBJYQ.js";
|
|
@@ -101,4 +101,4 @@ export {
|
|
|
101
101
|
addCommand,
|
|
102
102
|
addSourceHints
|
|
103
103
|
};
|
|
104
|
-
//# sourceMappingURL=add-
|
|
104
|
+
//# sourceMappingURL=add-BZ4QPLK4.js.map
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
stepNameKey,
|
|
7
7
|
walkNodes,
|
|
8
8
|
writeFlowTree
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-L5J3S6B6.js";
|
|
10
10
|
import {
|
|
11
11
|
flowCatalogEntry,
|
|
12
12
|
flowCatalogTypes,
|
|
13
13
|
flowNodeTriggers
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-K6WVV74H.js";
|
|
15
15
|
import "./chunk-GXDLWBOY.js";
|
|
16
16
|
import "./chunk-TEINLN64.js";
|
|
17
17
|
import "./chunk-ZJWUBJYQ.js";
|
|
@@ -149,6 +149,29 @@ function freeSideEffectId(type, taken) {
|
|
|
149
149
|
if (!taken.has(candidate)) return candidate;
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
+
function sameTrackingSideEffect(node, type, triggerId) {
|
|
153
|
+
if (flowCatalogEntry("side-effect", type)?.owners?.tagIds !== "tags") return null;
|
|
154
|
+
const effects = Array.isArray(node.sideEffects) ? node.sideEffects : [];
|
|
155
|
+
for (const raw of effects) {
|
|
156
|
+
const effect = raw;
|
|
157
|
+
if (effect?.type === type && effect.triggerId === triggerId) return effect;
|
|
158
|
+
}
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
function refuseSecondPixel(slug, node, type, triggerId) {
|
|
162
|
+
const already = sameTrackingSideEffect(node, type, triggerId);
|
|
163
|
+
if (!already) return;
|
|
164
|
+
const event = typeof already.eventName === "string" ? ` (event "${already.eventName}")` : "";
|
|
165
|
+
writeJson({
|
|
166
|
+
ok: false,
|
|
167
|
+
error: {
|
|
168
|
+
code: "VALIDATION_ERROR",
|
|
169
|
+
message: `"${String(node.name ?? node.id)}" already reports \`${triggerId}\` to ${type} as "${String(already.id)}"${event}. A second one would count every conversion twice.`,
|
|
170
|
+
fix: `Edit "${String(already.id)}" in ${flowDataPath(slug)} instead of adding another.`
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
process.exit(1);
|
|
174
|
+
}
|
|
152
175
|
function pendingItem(target, nodeId, kind, sideEffectId) {
|
|
153
176
|
return {
|
|
154
177
|
target,
|
|
@@ -167,7 +190,7 @@ function configureHints(slug, nodeId, id, type, needsCard) {
|
|
|
167
190
|
}
|
|
168
191
|
registerSchema({
|
|
169
192
|
command: "flows.add-side-effect",
|
|
170
|
-
description: "Add a side effect to a step with a valid skeleton \u2014 encryptedConfig:null for a CRM, a tagIds slot for a pixel, and no oauthProviderId key.
|
|
193
|
+
description: "Add a side effect to a step with a valid skeleton \u2014 encryptedConfig:null for a CRM, a tagIds slot for a pixel, and no oauthProviderId key. Then set where it sends with `baker flows connect` (an email: --email/--subject, written by you); only a typed secret goes to request_flow_input.",
|
|
171
194
|
args: {
|
|
172
195
|
slug: { type: "positional", description: "Form slug", required: true },
|
|
173
196
|
node: { type: "string", description: "Id of the step that fires it", required: true },
|
|
@@ -239,6 +262,7 @@ var addSideEffectCommand = defineCommand({
|
|
|
239
262
|
process.exit(1);
|
|
240
263
|
}
|
|
241
264
|
const triggerId = trigger.triggerId;
|
|
265
|
+
refuseSecondPixel(slug, node, type, triggerId);
|
|
242
266
|
const sideEffect = concrete(entry.skeleton, { id, triggerId });
|
|
243
267
|
existing.push(sideEffect);
|
|
244
268
|
writeFlowTree(slug, tree);
|
|
@@ -260,7 +284,7 @@ var addSideEffectCommand = defineCommand({
|
|
|
260
284
|
String(node.id),
|
|
261
285
|
id,
|
|
262
286
|
type,
|
|
263
|
-
needsUser.some(([, owner]) => owner === "request_flow_input")
|
|
287
|
+
needsUser.some(([, owner]) => owner === "request_flow_input" || owner === "connect")
|
|
264
288
|
),
|
|
265
289
|
...needsUser.some(([, owner]) => owner === "tags") ? [
|
|
266
290
|
"Fill `tagIds` with a real ref from `baker tags list`, or stage the tag first with the `tags` skill. Never invent one."
|
|
@@ -275,6 +299,7 @@ export {
|
|
|
275
299
|
addSideEffectCommand,
|
|
276
300
|
freeSideEffectId,
|
|
277
301
|
resolveTrigger,
|
|
302
|
+
sameTrackingSideEffect,
|
|
278
303
|
stepNameRefusal
|
|
279
304
|
};
|
|
280
|
-
//# sourceMappingURL=add-
|
|
305
|
+
//# sourceMappingURL=add-TRSKOIO6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/flows/add.ts"],"sourcesContent":["/**\n * `add-node` and `add-side-effect`: emit a valid skeleton and splice it in.\n *\n * The point is not to save typing — it is that the skeleton is right. A node\n * needs a fresh UUID, an explicit `condition: null`, the correct `nodeData`\n * discriminator, and — for a widget — `form.external: null` rather than an\n * invented resource. A side effect needs `encryptedConfig: null` and no\n * `oauthProviderId` key at all. Every one of those is a rule the flow-builder\n * skill used to spend prose on, and each was a real defect when got wrong.\n *\n * Deliberately scoped to creating the skeleton. Copy, conditions, autofill and\n * the `ai` field stay hand-edited: they are judgement, and a flag-based API for\n * them would be worse than JSON.\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport { type FlowConfigStatus, flowCatalogEntry, flowCatalogTypes, flowNodeTriggers } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport {\n flowDataPath,\n isUsableStepNameKey,\n readFlowTree,\n requestFlowInputCall,\n stepNameKey,\n walkNodes,\n writeFlowTree,\n} from \"./shared.ts\";\n\ntype AnyRecord = Record<string, unknown>;\n\nfunction unknownType(kind: \"node\" | \"side-effect\", type: string): never {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: `No ${kind} type \"${type}\".`,\n fix: `Known types: ${flowCatalogTypes(kind).join(\", \")}. See: baker flows schema ${kind}`,\n },\n });\n process.exit(1);\n}\n\n/** Replace the catalog's `<placeholder>` strings with real values where we have them. */\nfunction concrete(skeleton: AnyRecord, replacements: Record<string, unknown>): AnyRecord {\n return { ...structuredClone(skeleton), ...replacements };\n}\n\n/**\n * Whether this name can be a step in this form, and why not when it cannot.\n *\n * Both answers are about the same fact: the name becomes a constant in the\n * form's generated `_query.ts` (`export const <KEY> = \"<node id>\";`), and\n * `flow-typed.mjs` writes it without checking either that it parses or that no\n * other step already produced it. So both failures land on a generated file\n * rather than on the name that caused them — one as a syntax error, one as\n * `Duplicate flow node name` — and `_query.ts` stops regenerating for the whole\n * form. A name is minted once, here, which makes here the only cheap place to\n * say so.\n *\n * Returns `null` when the name is fine.\n */\nexport function stepNameRefusal(nodes: readonly AnyRecord[], name: string): { message: string; fix: string } | null {\n const key = stepNameKey(name);\n if (!isUsableStepNameKey(key)) {\n return {\n message: `\"${name}\" cannot be a step name: it becomes the constant \\`${key || \"(empty)\"}\\`, which is not a valid identifier.`,\n fix: 'A step name becomes `export const <NAME> = …` in the form\\'s generated code, so it must start with a letter and hold only letters, digits, spaces and dashes. Try \"Your Details\" rather than \"1. Your details\".',\n };\n }\n const clash = nodes.find((node) => typeof node.name === \"string\" && stepNameKey(node.name) === key);\n if (!clash) return null;\n return {\n message: `This form already has a step named \"${clash.name}\", which collides with \"${name}\".`,\n fix: `Both become the constant \\`${key}\\`, and the form's generated code cannot hold it twice. Pick a name that differs by more than case, spacing or punctuation.`,\n };\n}\n\nregisterSchema({\n command: \"flows.add-node\",\n description:\n \"Add a step to a form with a valid skeleton — fresh UUID, explicit condition, correct nodeData discriminator, and form.external:null for a widget. Author its copy and conditions afterwards by editing _data.json.\",\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n type: { type: \"string\", description: \"Node type (see: baker flows schema node)\", required: true },\n name: { type: \"string\", description: \"Step name — unique, Title Case\", required: true },\n parent: { type: \"string\", description: \"Parent node id. Omit to append to the root's children.\", required: false },\n },\n});\n\nexport const addNodeCommand = defineCommand({\n meta: {\n name: \"add-node\",\n description:\n 'Add a step to a form, with the skeleton its type requires. Example: baker flows add-node contact --type customForm --name \"Contact Info\"',\n },\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n type: { type: \"string\", description: \"Node type\", required: true },\n name: { type: \"string\", description: \"Step name — unique, Title Case\", required: true },\n parent: { type: \"string\", description: \"Parent node id (default: the root)\" },\n },\n run: ({ args }) => {\n const slug = String(args.slug);\n const type = String(args.type);\n // Trimmed before anything reads it, because the generator does not trim:\n // ` Contact Info ` becomes the constant `_CONTACT_INFO_`, which is legal,\n // permanent, and not what anyone typed.\n const name = String(args.name).trim();\n const entry = flowCatalogEntry(\"node\", type) ?? unknownType(\"node\", type);\n\n const tree = readFlowTree(slug);\n const nodes = walkNodes(tree);\n\n const refusal = stepNameRefusal(nodes, name);\n if (refusal) {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: refusal.message.replace(\"This form\", `\"${slug}\"`),\n fix: refusal.fix,\n },\n });\n process.exit(1);\n }\n\n const parent = args.parent ? nodes.find((node) => node.id === String(args.parent)) : tree;\n if (!parent) {\n writeJson({\n ok: false,\n error: {\n code: \"NOT_FOUND\",\n message: `No node with id \"${args.parent}\" in \"${slug}\".`,\n fix: `Nodes in this form: ${nodes.map((node) => `${node.id} (${node.name})`).join(\", \")}`,\n },\n });\n process.exit(1);\n }\n\n const node = concrete(entry.skeleton, { id: randomUUID(), name });\n if (!Array.isArray(parent.children)) parent.children = [];\n (parent.children as AnyRecord[]).push(node);\n writeFlowTree(slug, tree);\n\n writeJson({\n ok: true,\n data: { slug, nodeId: node.id, type, parentId: parent.id ?? null, path: flowDataPath(slug) },\n hints: [\n `Now fill in this step's \\`ai\\` field and its copy by editing ${flowDataPath(slug)}.`,\n // Said on every step added, because the moment a Form's shape changes\n // is the moment its outcome can move — and a Form nobody named an\n // outcome for reports zero conversions rather than an error.\n `Say what this Form counts before you finish: \\`baker analytics conversions --flow ${slug}\\` lists every ending already spelled as an event key, including this step's. Nothing in _data.json decides it.`,\n ...(entry.owners?.[\"nodeData.form.external\"] === \"request_flow_input\"\n ? [\n `Pick this ${type} step's resource: ${requestFlowInputCall(slug, pendingItem(\"node\", String(node.id), type))}.`,\n ]\n : []),\n ...(entry.gotcha ? [entry.gotcha] : []),\n ],\n });\n },\n});\n\n/**\n * The `triggerId` a side effect on this step has to carry.\n *\n * This is the one field on a side effect that is decided by its STEP rather\n * than by its own type, and getting it wrong is silent in every direction:\n * `fireSideEffects` filters on `triggerId` equality, so a mismatch means the\n * side effect never runs — no error, no log, nothing half-written. Every\n * validator in the repo passes, because the file is valid; it just does nothing.\n *\n * Taking the skeleton's default was that failure. `SIDE_EFFECT_ENVELOPE` carries\n * `customForm.onFormSubmitted`, which is right for a `customForm` step and wrong\n * for the five widget types that raise an id of their own — so the command that\n * exists to emit a skeleton the agent cannot get wrong emitted a dead side\n * effect on any booking or embedded-form step.\n */\nexport type TriggerChoice = { ok: true; triggerId: string } | { ok: false; message: string; fix: string };\n\nexport function resolveTrigger(node: AnyRecord, requested: string | undefined): TriggerChoice {\n const triggers = flowNodeTriggers(node.nodeData);\n const where = `Step \"${String(node.name ?? node.id)}\"${triggers.type ? ` (a ${triggers.type} step)` : \"\"}`;\n const raises = triggers.available.length > 0 ? `It raises: ${triggers.available.join(\", \")}.` : (triggers.why ?? \"\");\n const no = (message: string, fix: string): TriggerChoice => ({ ok: false, message, fix });\n\n // A node type the table does not cover is a table that has fallen behind, not\n // a form that is wrong — so an explicit trigger is taken at its word there.\n // Refusing instead would let a stale table reject a form the engine handles.\n if (!triggers.known) {\n return requested\n ? { ok: true, triggerId: requested }\n : no(`${where} is not a node type this command knows, so --trigger is required.`, triggers.why ?? \"\");\n }\n\n if (requested) {\n return triggers.available.includes(requested)\n ? { ok: true, triggerId: requested }\n : no(\n `${where} never raises \\`${requested}\\`, so a side effect carrying it would be written, pass every check, and never run.`,\n raises,\n );\n }\n\n return triggers.completion\n ? { ok: true, triggerId: triggers.completion }\n : no(`${where} has no trigger a side effect can answer.`, raises);\n}\n\n/**\n * The first `se-{type}-{n}` nobody is using.\n *\n * Counting the same-type side effects instead was wrong whenever the numbering\n * had a gap — a form holding `se-hubspotForm-1` and `se-hubspotForm-3`, or one\n * where `se-meta-1` was deleted and `se-meta-2` left behind. The count then\n * names an id that already exists and the command refuses, which is the one\n * outcome a skeleton-minting command should never produce for a form it can see\n * in full.\n */\nexport function freeSideEffectId(type: string, taken: ReadonlySet<string>): string {\n for (let n = 1; ; n++) {\n const candidate = `se-${type}-${n}`;\n if (!taken.has(candidate)) return candidate;\n }\n}\n\n/**\n * The pixel already reporting this step's moment to the same platform, if any.\n *\n * A second one double-counts every conversion, and its own `--id` slips past the\n * id check. Only pixel types (those fed a tag ref) are one-per-moment: two\n * emails or two CRMs on one step are a real need.\n */\nexport function sameTrackingSideEffect(node: AnyRecord, type: string, triggerId: string): AnyRecord | null {\n if (flowCatalogEntry(\"side-effect\", type)?.owners?.tagIds !== \"tags\") return null;\n const effects = Array.isArray(node.sideEffects) ? (node.sideEffects as unknown[]) : [];\n for (const raw of effects) {\n const effect = raw as AnyRecord | null;\n if (effect?.type === type && effect.triggerId === triggerId) return effect;\n }\n return null;\n}\n\n/** Exits when this step already reports the moment to the same platform. */\nfunction refuseSecondPixel(slug: string, node: AnyRecord, type: string, triggerId: string): void {\n const already = sameTrackingSideEffect(node, type, triggerId);\n if (!already) return;\n const event = typeof already.eventName === \"string\" ? ` (event \"${already.eventName}\")` : \"\";\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: `\"${String(node.name ?? node.id)}\" already reports \\`${triggerId}\\` to ${type} as \"${String(already.id)}\"${event}. A second one would count every conversion twice.`,\n fix: `Edit \"${String(already.id)}\" in ${flowDataPath(slug)} instead of adding another.`,\n },\n });\n process.exit(1);\n}\n\n/** The one row `requestFlowInputCall` needs, for an item this command just added unconfigured. */\nfunction pendingItem(\n target: \"node\" | \"sideEffect\",\n nodeId: string,\n kind: string,\n sideEffectId?: string,\n): FlowConfigStatus {\n return {\n target,\n nodeId,\n kind,\n status: `${kind} — not configured`,\n needsInput: true,\n ...(sideEffectId ? { sideEffectId } : {}),\n };\n}\n\nfunction configureHints(slug: string, nodeId: string, id: string, type: string, needsCard: boolean): string[] {\n if (!needsCard) return [];\n return [\n `Configure it: ${requestFlowInputCall(slug, pendingItem(\"sideEffect\", nodeId, type, id))}. Read the destination off that call's result.`,\n ];\n}\n\nregisterSchema({\n command: \"flows.add-side-effect\",\n description:\n \"Add a side effect to a step with a valid skeleton — encryptedConfig:null for a CRM, a tagIds slot for a pixel, and no oauthProviderId key. Then set where it sends with `baker flows connect` (an email: --email/--subject, written by you); only a typed secret goes to request_flow_input.\",\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: { type: \"string\", description: \"Id of the step that fires it\", required: true },\n type: { type: \"string\", description: \"Side-effect type (see: baker flows schema side-effect)\", required: true },\n id: { type: \"string\", description: \"Side-effect id. Defaults to se-{type}-{n}.\", required: false },\n trigger: {\n type: \"string\",\n description:\n \"triggerId. Defaults to the moment the step named by --node completes, which is a different id per node type. Pass this only for a non-completion moment (a HubSpot form's onFormReady, a Calendly page view, one of several iframe events); an id the step never raises is refused.\",\n required: false,\n },\n },\n});\n\nexport const addSideEffectCommand = defineCommand({\n meta: {\n name: \"add-side-effect\",\n description:\n \"Add a side effect to a step, with the skeleton its type requires. Example: baker flows add-side-effect contact --node <id> --type googleSpreadsheet\",\n },\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: { type: \"string\", description: \"Id of the step that fires it\", required: true },\n type: { type: \"string\", description: \"Side-effect type\", required: true },\n id: { type: \"string\", description: \"Side-effect id (default se-{type}-{n})\" },\n trigger: {\n type: \"string\",\n description: \"triggerId, for a non-completion moment. Default: whatever the step named by --node raises\",\n },\n },\n run: ({ args }) => {\n const slug = String(args.slug);\n const type = String(args.type);\n const entry = flowCatalogEntry(\"side-effect\", type) ?? unknownType(\"side-effect\", type);\n\n const tree = readFlowTree(slug);\n const nodes = walkNodes(tree);\n const node = nodes.find((candidate) => candidate.id === String(args.node));\n if (!node) {\n writeJson({\n ok: false,\n error: {\n code: \"NOT_FOUND\",\n message: `No node with id \"${args.node}\" in \"${slug}\".`,\n fix: `Nodes in this form: ${nodes.map((candidate) => `${candidate.id} (${candidate.name})`).join(\", \")}`,\n },\n });\n process.exit(1);\n }\n\n if (!Array.isArray(node.sideEffects)) node.sideEffects = [];\n const existing = node.sideEffects as AnyRecord[];\n const takenIds = new Set(\n nodes.flatMap((n) => ((n.sideEffects as AnyRecord[] | undefined) ?? []).map((se) => String(se?.id ?? \"\"))),\n );\n const id = args.id ? String(args.id) : freeSideEffectId(type, takenIds);\n\n // Only an id the caller chose can still collide — the generated one is free\n // by construction.\n if (takenIds.has(id)) {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: `\"${slug}\" already has a side effect with id \"${id}\".`,\n fix: `Drop --id to be given a free one (${freeSideEffectId(type, takenIds)}), or pick another.`,\n },\n });\n process.exit(1);\n }\n\n const trigger = resolveTrigger(node, args.trigger ? String(args.trigger) : undefined);\n if (!trigger.ok) {\n writeJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: trigger.message, ...(trigger.fix ? { fix: trigger.fix } : {}) },\n });\n process.exit(1);\n }\n const triggerId = trigger.triggerId;\n\n refuseSecondPixel(slug, node, type, triggerId);\n\n const sideEffect = concrete(entry.skeleton, { id, triggerId });\n existing.push(sideEffect);\n writeFlowTree(slug, tree);\n\n const needsUser = Object.entries(entry.owners ?? {}).filter(([, owner]) => owner !== \"agent\");\n writeJson({\n ok: true,\n data: { slug, nodeId: node.id, sideEffectId: id, type, triggerId, path: flowDataPath(slug) },\n hints: [\n `Fires on \\`${triggerId}\\` — the moment \"${String(node.name ?? node.id)}\" raises. A side effect only runs when its triggerId is the one its own step raises, so this is set from the step, never from the side-effect type.`,\n // A pixel side effect is the thing most often mistaken for \"setting the\n // conversion\". It tells the ad platform; it tells Baker nothing, and a\n // Form can fire every pixel it has while every Baker report says it\n // converted nobody.\n ...(needsUser.some(([, owner]) => owner === \"tags\")\n ? [\n `This reports the conversion to ${type}. It does NOT make Baker count anything: what Baker counts is a named event, set with \\`baker analytics conversions --flow ${slug}\\`. Do both — they are two different systems asked the same question.`,\n ]\n : []),\n ...configureHints(\n slug,\n String(node.id),\n id,\n type,\n needsUser.some(([, owner]) => owner === \"request_flow_input\" || owner === \"connect\"),\n ),\n ...(needsUser.some(([, owner]) => owner === \"tags\")\n ? [\n \"Fill `tagIds` with a real ref from `baker tags list`, or stage the tag first with the `tags` skill. Never invent one.\",\n ]\n : []),\n ...(entry.gotcha ? [entry.gotcha] : []),\n ],\n });\n },\n});\n"],"mappings":"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","names":["node"]}
|
|
@@ -91,14 +91,14 @@ Examples:
|
|
|
91
91
|
},
|
|
92
92
|
subCommands: {
|
|
93
93
|
list: listCommand,
|
|
94
|
-
create: () => import("./write-commands-
|
|
95
|
-
update: () => import("./write-commands-
|
|
96
|
-
pause: () => import("./write-commands-
|
|
97
|
-
resume: () => import("./write-commands-
|
|
98
|
-
archive: () => import("./write-commands-
|
|
99
|
-
delete: () => import("./write-commands-
|
|
100
|
-
duplicate: () => import("./write-commands-
|
|
101
|
-
retag: () => import("./write-commands-
|
|
94
|
+
create: () => import("./write-commands-CT74VHH6.js").then((m) => m.adsCreateCommand),
|
|
95
|
+
update: () => import("./write-commands-CT74VHH6.js").then((m) => m.adsUpdateCommand),
|
|
96
|
+
pause: () => import("./write-commands-CT74VHH6.js").then((m) => m.adsPauseCommand),
|
|
97
|
+
resume: () => import("./write-commands-CT74VHH6.js").then((m) => m.adsResumeCommand),
|
|
98
|
+
archive: () => import("./write-commands-CT74VHH6.js").then((m) => m.adsArchiveCommand),
|
|
99
|
+
delete: () => import("./write-commands-CT74VHH6.js").then((m) => m.adsDeleteCommand),
|
|
100
|
+
duplicate: () => import("./write-commands-CT74VHH6.js").then((m) => m.adsDuplicateCommand),
|
|
101
|
+
retag: () => import("./write-commands-CT74VHH6.js").then((m) => m.adsRetagCommand)
|
|
102
102
|
},
|
|
103
103
|
// `args` stays even though the parent has no `run`: citty scans rawArgs for the
|
|
104
104
|
// subcommand name using THIS command's arg defs, so without them `--account-id act_1`
|
|
@@ -110,4 +110,4 @@ Examples:
|
|
|
110
110
|
export {
|
|
111
111
|
adsListCommand
|
|
112
112
|
};
|
|
113
|
-
//# sourceMappingURL=ads-
|
|
113
|
+
//# sourceMappingURL=ads-6UEDYT3O.js.map
|
|
@@ -27,14 +27,14 @@ Examples:
|
|
|
27
27
|
Full guides: __tooling__/docs/tools/baker/ads-<platform>.md (google|meta|linkedin|x|chatgpt)`
|
|
28
28
|
},
|
|
29
29
|
subCommands: {
|
|
30
|
-
google: () => import("./google-
|
|
31
|
-
meta: () => import("./meta-
|
|
32
|
-
linkedin: () => import("./linkedin-
|
|
33
|
-
x: () => import("./x-
|
|
34
|
-
chatgpt: () => import("./chatgpt-
|
|
30
|
+
google: () => import("./google-M7KEXVK5.js").then((m) => m.googleCommand),
|
|
31
|
+
meta: () => import("./meta-A7KM6TF5.js").then((m) => m.metaCommand),
|
|
32
|
+
linkedin: () => import("./linkedin-I6JDSTRB.js").then((m) => m.linkedinCommand),
|
|
33
|
+
x: () => import("./x-YXABYM5U.js").then((m) => m.xCommand),
|
|
34
|
+
chatgpt: () => import("./chatgpt-7W75X3ER.js").then((m) => m.chatgptCommand)
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
export {
|
|
38
38
|
adsCommand
|
|
39
39
|
};
|
|
40
|
-
//# sourceMappingURL=ads-
|
|
40
|
+
//# sourceMappingURL=ads-6UG66KA5.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CHATGPT_ADS_REFERENCE,
|
|
3
3
|
runChatgptListRead
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FTWJFDIN.js";
|
|
5
5
|
import "./chunk-VFIOJD5M.js";
|
|
6
6
|
import "./chunk-XBOK23HI.js";
|
|
7
7
|
import "./chunk-IFWP3ZDO.js";
|
|
@@ -60,12 +60,12 @@ Examples:
|
|
|
60
60
|
},
|
|
61
61
|
subCommands: {
|
|
62
62
|
list: adsListCommand,
|
|
63
|
-
create: () => import("./ad-writes-
|
|
64
|
-
update: () => import("./ad-writes-
|
|
65
|
-
pause: () => import("./ad-writes-
|
|
66
|
-
resume: () => import("./ad-writes-
|
|
67
|
-
archive: () => import("./ad-writes-
|
|
68
|
-
"create-product": () => import("./ad-writes-
|
|
63
|
+
create: () => import("./ad-writes-XE2IE4DS.js").then((m) => m.adsCreateCommand),
|
|
64
|
+
update: () => import("./ad-writes-XE2IE4DS.js").then((m) => m.adsUpdateCommand),
|
|
65
|
+
pause: () => import("./ad-writes-XE2IE4DS.js").then((m) => m.adsPauseCommand),
|
|
66
|
+
resume: () => import("./ad-writes-XE2IE4DS.js").then((m) => m.adsResumeCommand),
|
|
67
|
+
archive: () => import("./ad-writes-XE2IE4DS.js").then((m) => m.adsArchiveCommand),
|
|
68
|
+
"create-product": () => import("./ad-writes-XE2IE4DS.js").then((m) => m.adsCreateProductCommand)
|
|
69
69
|
},
|
|
70
70
|
// A parent must never declare `run`: citty falls through to it after the matched subcommand.
|
|
71
71
|
args,
|
|
@@ -74,4 +74,4 @@ Examples:
|
|
|
74
74
|
export {
|
|
75
75
|
adsCommand
|
|
76
76
|
};
|
|
77
|
-
//# sourceMappingURL=ads-
|
|
77
|
+
//# sourceMappingURL=ads-BCOSQALY.js.map
|
|
@@ -27,17 +27,17 @@ import {
|
|
|
27
27
|
} from "./chunk-VFIOJD5M.js";
|
|
28
28
|
import {
|
|
29
29
|
holdUnbilledSpend
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-WTOYCUKH.js";
|
|
31
31
|
import {
|
|
32
32
|
findWorkspaceRoot
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-DZSIUEGH.js";
|
|
34
34
|
import {
|
|
35
35
|
NO_CACHE_ARG
|
|
36
36
|
} from "./chunk-X7ZODEXJ.js";
|
|
37
37
|
import "./chunk-5HYSKH77.js";
|
|
38
38
|
import "./chunk-KIGGMKAE.js";
|
|
39
39
|
import "./chunk-VAJBWA2U.js";
|
|
40
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-HRYOZUSK.js";
|
|
41
41
|
import "./chunk-VVZBBKRC.js";
|
|
42
42
|
import "./chunk-YBMVHGY3.js";
|
|
43
43
|
import {
|
|
@@ -155,13 +155,13 @@ Examples:
|
|
|
155
155
|
},
|
|
156
156
|
subCommands: {
|
|
157
157
|
list: listCommand,
|
|
158
|
-
create: () => import("./write-commands-
|
|
159
|
-
update: () => import("./write-commands-
|
|
160
|
-
pause: () => import("./write-commands-
|
|
161
|
-
resume: () => import("./write-commands-
|
|
162
|
-
archive: () => import("./write-commands-
|
|
163
|
-
delete: () => import("./write-commands-
|
|
164
|
-
duplicate: () => import("./write-commands-
|
|
158
|
+
create: () => import("./write-commands-CT74VHH6.js").then((m) => m.adSetsCreateCommand),
|
|
159
|
+
update: () => import("./write-commands-CT74VHH6.js").then((m) => m.adSetsUpdateCommand),
|
|
160
|
+
pause: () => import("./write-commands-CT74VHH6.js").then((m) => m.adSetsPauseCommand),
|
|
161
|
+
resume: () => import("./write-commands-CT74VHH6.js").then((m) => m.adSetsResumeCommand),
|
|
162
|
+
archive: () => import("./write-commands-CT74VHH6.js").then((m) => m.adSetsArchiveCommand),
|
|
163
|
+
delete: () => import("./write-commands-CT74VHH6.js").then((m) => m.adSetsDeleteCommand),
|
|
164
|
+
duplicate: () => import("./write-commands-CT74VHH6.js").then((m) => m.adSetsDuplicateCommand)
|
|
165
165
|
},
|
|
166
166
|
// `args` stays even though the parent has no `run`: citty scans rawArgs for the
|
|
167
167
|
// subcommand name using THIS command's arg defs, so without them `--account-id act_1`
|
|
@@ -173,4 +173,4 @@ Examples:
|
|
|
173
173
|
export {
|
|
174
174
|
adsetsCommand
|
|
175
175
|
};
|
|
176
|
-
//# sourceMappingURL=adsets-
|
|
176
|
+
//# sourceMappingURL=adsets-Q5DWGANV.js.map
|