@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
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
mediaTagsCreateRequestSchema,
|
|
3
3
|
mediaTagsDeleteRequestSchema,
|
|
4
4
|
mediaTagsUpdateRequestSchema
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-K6WVV74H.js";
|
|
6
6
|
import {
|
|
7
7
|
ApiError,
|
|
8
8
|
apiGet,
|
|
@@ -194,4 +194,4 @@ Examples:
|
|
|
194
194
|
export {
|
|
195
195
|
makeTagsCommand
|
|
196
196
|
};
|
|
197
|
-
//# sourceMappingURL=chunk-
|
|
197
|
+
//# sourceMappingURL=chunk-ORO7VAXB.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
failApi
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZDNOCKKY.js";
|
|
4
4
|
import {
|
|
5
5
|
HUBSPOT_MISSING_GRANT_MARKER,
|
|
6
6
|
HUBSPOT_NOT_CONNECTED_MESSAGE
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-K6WVV74H.js";
|
|
8
8
|
import {
|
|
9
9
|
ApiError
|
|
10
10
|
} from "./chunk-XBOK23HI.js";
|
|
@@ -48,4 +48,4 @@ export {
|
|
|
48
48
|
hubspotRefusal,
|
|
49
49
|
failNotConnected
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
51
|
+
//# sourceMappingURL=chunk-OUTF5JFG.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
DEFAULT_VIDEO_GENERATE_MODEL,
|
|
3
3
|
clipAudioMode,
|
|
4
4
|
spokenWordsIn
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-CAMX6OHF.js";
|
|
6
6
|
|
|
7
7
|
// src/commands/studio/avatarModel.ts
|
|
8
8
|
function pinnedModelHint(input) {
|
|
@@ -23,4 +23,4 @@ export {
|
|
|
23
23
|
pinnedModelHint,
|
|
24
24
|
silentModelHint
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
26
|
+
//# sourceMappingURL=chunk-P5T7OZKV.js.map
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
onlyCondition,
|
|
13
13
|
triggerProblem,
|
|
14
14
|
validateEventName
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-K6WVV74H.js";
|
|
16
16
|
|
|
17
17
|
// ../api/src/event-sources/hubspot.ts
|
|
18
18
|
var HUBSPOT_CONTACT_ID_VARIABLE = "id";
|
|
@@ -307,4 +307,4 @@ export {
|
|
|
307
307
|
hubspotDefaultMapping,
|
|
308
308
|
hubspotTriggerInputSchema
|
|
309
309
|
};
|
|
310
|
-
//# sourceMappingURL=chunk-
|
|
310
|
+
//# sourceMappingURL=chunk-PTCIM35Y.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
finalOutputLabelsFromCanvas,
|
|
3
3
|
parseDefinitionStrategyFields
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-NIJSXVFT.js";
|
|
5
5
|
import {
|
|
6
6
|
readRenderState
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-GYU7BWEN.js";
|
|
8
8
|
import {
|
|
9
9
|
STATIC_AD_ROLE,
|
|
10
10
|
formatOfAdaptId,
|
|
@@ -12,14 +12,15 @@ import {
|
|
|
12
12
|
isSignatureLine,
|
|
13
13
|
sameTag,
|
|
14
14
|
seriesMemberAd
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-EAEOPERX.js";
|
|
16
16
|
import {
|
|
17
17
|
fetchRunRecord
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-XTRAI6CL.js";
|
|
19
19
|
import {
|
|
20
20
|
localPathParam
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-DZSIUEGH.js";
|
|
22
22
|
import {
|
|
23
|
+
NodeDecl,
|
|
23
24
|
STATIC_ADAPT_FORMAT_ROLE,
|
|
24
25
|
STATIC_FIX_ROLE,
|
|
25
26
|
STATIC_MASTER_ROLE,
|
|
@@ -30,11 +31,15 @@ import {
|
|
|
30
31
|
nodesWithRole,
|
|
31
32
|
relaidPictureRole,
|
|
32
33
|
rolesById
|
|
33
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-6Y7SIP2D.js";
|
|
34
35
|
import {
|
|
35
36
|
isAdSpec,
|
|
36
37
|
readAdSpec
|
|
37
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-PZXCWSKV.js";
|
|
39
|
+
import {
|
|
40
|
+
sha256Hex,
|
|
41
|
+
toModelSafeImage
|
|
42
|
+
} from "./chunk-HRYOZUSK.js";
|
|
38
43
|
|
|
39
44
|
// src/commands/baker-child.ts
|
|
40
45
|
import { execFile } from "child_process";
|
|
@@ -81,6 +86,7 @@ function isStaticAdCanvas(parsed) {
|
|
|
81
86
|
// src/commands/canvas/static-fix.ts
|
|
82
87
|
import { readFile } from "fs/promises";
|
|
83
88
|
import path from "path";
|
|
89
|
+
import { z } from "zod";
|
|
84
90
|
async function previousAdImage(canvasRoot, runId, fetchRecord = fetchRunRecord, roles = {}) {
|
|
85
91
|
try {
|
|
86
92
|
const manifest = JSON.parse(await readFile(path.join(canvasRoot, runId, "manifest.json"), "utf8"));
|
|
@@ -140,7 +146,9 @@ function chosenUrl(byNode) {
|
|
|
140
146
|
return null;
|
|
141
147
|
}
|
|
142
148
|
function correctedUrl(byNode) {
|
|
143
|
-
|
|
149
|
+
const editNumber = (id) => Number(id.match(/^edit_(\d+)$/)?.[1] ?? 0);
|
|
150
|
+
const entries = Object.entries(byNode).sort(([a], [b]) => editNumber(b) - editNumber(a));
|
|
151
|
+
for (const [id, out] of entries) {
|
|
144
152
|
if (id === "fix" || id === "chosen" || out.role === STATIC_FIX_ROLE) {
|
|
145
153
|
const url = urlOf(out);
|
|
146
154
|
if (url) return url;
|
|
@@ -148,6 +156,59 @@ function correctedUrl(byNode) {
|
|
|
148
156
|
}
|
|
149
157
|
return null;
|
|
150
158
|
}
|
|
159
|
+
async function fetchGraph(url) {
|
|
160
|
+
const res = await fetch(url);
|
|
161
|
+
return res.ok ? res.json() : null;
|
|
162
|
+
}
|
|
163
|
+
var HISTORY = { record: fetchRunRecord, graph: fetchGraph };
|
|
164
|
+
var VersionGraph = z.object({ nodes: z.array(NodeDecl) });
|
|
165
|
+
var VersionManifest = z.object({
|
|
166
|
+
canvas: VersionGraph,
|
|
167
|
+
outputs_by_node: z.record(z.string(), z.record(z.string(), z.unknown()))
|
|
168
|
+
});
|
|
169
|
+
async function versionRun(canvasRoot, runId, sources = HISTORY) {
|
|
170
|
+
try {
|
|
171
|
+
const manifest = VersionManifest.safeParse(JSON.parse(await readFile(path.join(canvasRoot, runId, "manifest.json"), "utf8")));
|
|
172
|
+
if (manifest.success) return { canvas: manifest.data.canvas, outputs: manifest.data.outputs_by_node };
|
|
173
|
+
} catch {
|
|
174
|
+
}
|
|
175
|
+
const record = await sources.record(runId).catch(() => null);
|
|
176
|
+
const graph = record?.graphUrl ? await sources.graph(record.graphUrl).catch(() => null) : null;
|
|
177
|
+
const canvas = VersionGraph.safeParse(graph);
|
|
178
|
+
return record && canvas.success ? { canvas: canvas.data, outputs: outputsByNode(record.nodes) } : null;
|
|
179
|
+
}
|
|
180
|
+
async function ingestedNow(files, canvasDir) {
|
|
181
|
+
const entries = await Promise.all(
|
|
182
|
+
files.map(async (file) => {
|
|
183
|
+
const bytes = await readFile(path.resolve(canvasDir, file.path)).catch(() => null);
|
|
184
|
+
if (!bytes) return [file.id, []];
|
|
185
|
+
const own = sha256Hex(bytes);
|
|
186
|
+
if (file.expect !== "image") return [file.id, [own]];
|
|
187
|
+
const raster = await toModelSafeImage(bytes).catch(() => null);
|
|
188
|
+
return [file.id, raster ? [.../* @__PURE__ */ new Set([own, sha256Hex(raster.bytes)])] : [own]];
|
|
189
|
+
})
|
|
190
|
+
);
|
|
191
|
+
return Object.fromEntries(entries);
|
|
192
|
+
}
|
|
193
|
+
function outputsByNode(nodes) {
|
|
194
|
+
const byNode = {};
|
|
195
|
+
for (const node of nodes) {
|
|
196
|
+
const outputs = {};
|
|
197
|
+
for (const out of node.outputs) {
|
|
198
|
+
const [slot = "", index] = String(out.slot ?? "").split("#");
|
|
199
|
+
const { slot: _slot, label: _label, durationMs, ...ref } = out;
|
|
200
|
+
const asset = { ...ref, ...typeof durationMs === "number" ? { duration_ms: durationMs } : {} };
|
|
201
|
+
if (index === void 0) outputs[slot] = asset;
|
|
202
|
+
else {
|
|
203
|
+
const list = Array.isArray(outputs[slot]) ? outputs[slot] : [];
|
|
204
|
+
list[Number(index)] = asset;
|
|
205
|
+
outputs[slot] = list;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
if (Object.keys(outputs).length > 0) byNode[node.nodeId] = outputs;
|
|
209
|
+
}
|
|
210
|
+
return byNode;
|
|
211
|
+
}
|
|
151
212
|
async function correctedPicture(canvasRoot, runId, fetchRecord = fetchRunRecord) {
|
|
152
213
|
try {
|
|
153
214
|
const manifest = JSON.parse(await readFile(path.join(canvasRoot, runId, "manifest.json"), "utf8"));
|
|
@@ -432,6 +493,8 @@ export {
|
|
|
432
493
|
isStaticAdCanvas,
|
|
433
494
|
previousAdImage,
|
|
434
495
|
previousDelivered,
|
|
496
|
+
versionRun,
|
|
497
|
+
ingestedNow,
|
|
435
498
|
correctedPicture,
|
|
436
499
|
pictureRecord,
|
|
437
500
|
keepsChosen,
|
|
@@ -443,4 +506,4 @@ export {
|
|
|
443
506
|
writeSeriesMemberCanvas,
|
|
444
507
|
seriesRunHints
|
|
445
508
|
};
|
|
446
|
-
//# sourceMappingURL=chunk-
|
|
509
|
+
//# sourceMappingURL=chunk-PVUZWHNQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/baker-child.ts","../src/commands/canvas/static-ad-canvas.ts","../src/commands/canvas/static-fix.ts","../src/commands/canvas/series-member.ts"],"sourcesContent":["/**\n * Another `baker` command run from this one, as a child process of the same CLI, read back by its\n * JSON answer: `creatives make` scaffolds through it, and `canvas run --series` renders each ad of\n * a series through it, all at once.\n */\nimport { execFile } from \"node:child_process\";\nimport { promisify } from \"node:util\";\n\nconst run = promisify(execFile);\n\n/** The last JSON object a command printed, after any progress lines. Pure. */\nexport function lastJsonObject(stdout: string): Record<string, unknown> | null {\n for (let at = stdout.lastIndexOf(\"{\"); at >= 0; at = stdout.lastIndexOf(\"{\", at - 1)) {\n if (at > 0 && stdout[at - 1] !== \"\\n\") continue;\n try {\n const parsed: unknown = JSON.parse(stdout.slice(at));\n if (parsed && typeof parsed === \"object\" && !Array.isArray(parsed)) return parsed as Record<string, unknown>;\n } catch {\n // Not the start of the final object: keep looking further back.\n }\n if (at === 0) break;\n }\n return null;\n}\n\n/** Run another `baker` command in this same CLI and read its JSON answer. */\nexport async function runBaker(args: string[], signal?: AbortSignal): Promise<Record<string, unknown>> {\n const entry = process.argv[1];\n const [file, argv] = entry ? [process.execPath, [...process.execArgv, entry, ...args]] : [\"baker\", args];\n try {\n const { stdout } = await run(file, argv, { maxBuffer: 32 * 1024 * 1024, ...(signal ? { signal } : {}) });\n return lastJsonObject(stdout) ?? { ok: false, error: { code: \"INTERNAL_ERROR\", message: \"no answer\" } };\n } catch (err) {\n // A scaffold reports its failure on stderr, other commands on stdout.\n const { stdout = \"\", stderr = \"\" } = err as { stdout?: string; stderr?: string };\n return (\n lastJsonObject(stdout) ??\n lastJsonObject(stderr) ?? {\n ok: false,\n error: { code: \"INTERNAL_ERROR\", message: err instanceof Error ? err.message.slice(0, 300) : String(err) },\n }\n );\n }\n}\n","import { STATIC_AD_ROLE } from \"../../engine/scaffold/static-render-briefs.ts\";\nimport { STATIC_VARIANTS_ROLE } from \"../../engine/scaffold/static-topology.ts\";\n\n/**\n * A static ad canvas, by role: an ingest tagged as the static ad's blueprint, or a node that\n * renders a static ad's variants. A canvas scaffolded by the overlay engine (a `compose_spec`\n * ingest) still counts, so a creative already in a client workspace reads as one until it is\n * re-scaffolded.\n */\nexport function isStaticAdCanvas(parsed: unknown): boolean {\n const nodes = (parsed as { nodes?: unknown } | null)?.nodes;\n if (!Array.isArray(nodes)) return false;\n return nodes.some((n) => {\n const role = (n as { tags?: { role?: unknown } } | null)?.tags?.role;\n if (role === STATIC_VARIANTS_ROLE) return true;\n return n?.type === \"ingest\" && (role === STATIC_AD_ROLE || n?.id === \"compose_spec\");\n });\n}\n","import { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { z } from \"zod\";\nimport { toModelSafeImage } from \"../../engine/nodes/ingest.ts\";\nimport type { VariantFile, VersionRun } from \"../../engine/scaffold/static-history.ts\";\nimport { NodeDecl } from \"../../engine/schema/canvas.ts\";\nimport { sha256Hex } from \"../../engine/storage/sha256.ts\";\nimport { fetchRunRecord } from \"./run-history.ts\";\n\nimport {\n rolesById,\n STATIC_ADAPT_FORMAT_ROLE,\n STATIC_FIX_ROLE,\n STATIC_MASTER_ROLE,\n STATIC_PICK_ROLE,\n STATIC_SAFE_FIT_ROLE,\n STATIC_SIZE_ROLE,\n STATIC_VARIANTS_ROLE,\n} from \"../../engine/scaffold/static-topology.ts\";\n\ntype Output = { url?: unknown; slot?: unknown; sha256?: unknown; path?: unknown };\n/** One node's outputs as a run keeps them: a list (`images`) or a single image, and its role when known. */\n/** A node's outputs by slot: a generation's `images`, a tool's `image`, an ingest's `asset`. */\ntype NodeOutputs = { images?: Output[]; image?: Output; asset?: Output; role?: string };\n\n/**\n * The finished ad a run chose, as the durable URL its record holds: its master (the chosen\n * picture before any logo is placed on it), or, on a run of the older graph, the judge's pick\n * or the lone take. Read from the local run folder first (`manifest.json`, outputs by node id,\n * given roles by `roles` — the canvas's), then from the company's run history (whose nodes\n * carry their roles), so a version rendered in another chat can be corrected too. Null when\n * the run is unknown or made no ad.\n */\nexport async function previousAdImage(\n canvasRoot: string,\n runId: string,\n fetchRecord: (\n runId: string,\n ) => Promise<{ nodes: Array<{ nodeId: string; role?: string; outputs: Output[] }> } | null> = fetchRunRecord,\n roles: Readonly<Record<string, string>> = {},\n): Promise<string | null> {\n try {\n const manifest = JSON.parse(await readFile(path.join(canvasRoot, runId, \"manifest.json\"), \"utf8\")) as {\n outputs_by_node?: Record<string, NodeOutputs>;\n };\n const byNode = Object.fromEntries(\n Object.entries(manifest.outputs_by_node ?? {}).map(([id, out]) => [id, { ...out, ...(roles[id] ? { role: roles[id] } : {}) }]),\n );\n const local = chosenUrl(byNode);\n if (local) return local;\n } catch {\n // Not rendered here: ask the run history.\n }\n const record = await fetchRecord(runId).catch(() => null);\n if (!record) return null;\n return chosenUrl(\n Object.fromEntries(\n record.nodes.map((n) => {\n const role = n.role ?? roles[n.nodeId];\n return [n.nodeId, { images: n.outputs, ...(role ? { role } : {}) }];\n }),\n ),\n );\n}\n\n/**\n * The sizes a run delivered (its `output` collect, `finalNode`), each with the format `labels`\n * gives it, from the local run folder: its local file, or its durable URL first (`prefer: \"url\"`).\n * Empty when the run was not rendered here.\n */\nexport async function previousDelivered(\n canvasRoot: string,\n runId: string,\n finalNode: string,\n labels: readonly (string | undefined)[],\n opts: { prefer?: \"url\" } = {},\n): Promise<Array<{ format: string; path: string }>> {\n try {\n const manifest = JSON.parse(await readFile(path.join(canvasRoot, runId, \"manifest.json\"), \"utf8\")) as {\n outputs_by_node?: Record<string, NodeOutputs>;\n };\n const images = manifest.outputs_by_node?.[finalNode]?.images ?? [];\n return images.flatMap((image, i) => {\n const local = typeof image.path === \"string\" ? image.path : null;\n const durable = typeof image.url === \"string\" ? image.url : null;\n const source = opts.prefer === \"url\" ? (durable ?? local) : (local ?? durable);\n const format = labels[i];\n return source && format ? [{ format, path: source }] : [];\n });\n } catch {\n return [];\n }\n}\n\n/** Which node holds the chosen ad, best first: by role on the one-picture graph, by id on an older one. */\nconst CHOSEN: ReadonlyArray<(id: string, out: NodeOutputs) => boolean> = [\n (_, out) => out.role === STATIC_MASTER_ROLE,\n (_, out) => out.role === STATIC_PICK_ROLE,\n (_, out) => out.role === STATIC_FIX_ROLE,\n (id, out) => id === \"pick\" && out.role === undefined,\n (id, out) => id === \"ad\" && out.role === undefined,\n];\n\nfunction urlOf(out: NodeOutputs): string | null {\n const url = out.images?.find((o) => typeof o?.url === \"string\")?.url ?? out.image?.url ?? out.asset?.url;\n return typeof url === \"string\" ? url : null;\n}\n\n/** The chosen ad among a run's node outputs (see `previousAdImage`). Never a variant the judge did not keep. Pure. */\nexport function chosenUrl(byNode: Record<string, NodeOutputs>): string | null {\n const entries = Object.entries(byNode).filter(([, out]) => out.role !== STATIC_VARIANTS_ROLE);\n for (const matches of CHOSEN) {\n for (const [id, out] of entries) {\n if (!matches(id, out)) continue;\n const url = urlOf(out);\n if (url) return url;\n }\n }\n return null;\n}\n\n/**\n * The picture a correction (`--fix`) or a person's choice (`--use-variant`) put in place of the\n * variants, the input its master was made from. Null for a plain render: the scaffolded graph\n * already reaches that picture through its own cache. Ids are the ones `fixStaticAd` and\n * `rederiveFromVariant` give those nodes; a run record also carries the correction's role. Pure.\n */\nexport function correctedUrl(byNode: Record<string, NodeOutputs>): string | null {\n // A version grown on top of others (`static-history.ts`) keeps every correction: it shows its last.\n // `fix` and `chosen` never share a graph with an `edit_<n>`: a chosen variant drops the edits before it.\n const editNumber = (id: string) => Number(id.match(/^edit_(\\d+)$/)?.[1] ?? 0);\n const entries = Object.entries(byNode).sort(([a], [b]) => editNumber(b) - editNumber(a));\n for (const [id, out] of entries) {\n if (id === \"fix\" || id === \"chosen\" || out.role === STATIC_FIX_ROLE) {\n const url = urlOf(out);\n if (url) return url;\n }\n }\n return null;\n}\n\n/** A run as the run history keeps it: each node's recorded outputs, and where the graph it ran is kept. */\ntype RecordedRun = {\n graphUrl?: string;\n nodes: ReadonlyArray<{ nodeId: string; outputs: ReadonlyArray<Record<string, unknown>> }>;\n};\n\ntype VersionSources = {\n record: (runId: string) => Promise<RecordedRun | null>;\n graph: (url: string) => Promise<unknown>;\n};\n\nasync function fetchGraph(url: string): Promise<unknown> {\n const res = await fetch(url);\n return res.ok ? res.json() : null;\n}\n\nconst HISTORY: VersionSources = { record: fetchRunRecord, graph: fetchGraph };\n\n/** The graph a version ran, as its manifest or the run history keeps it. */\nconst VersionGraph = z.object({ nodes: z.array(NodeDecl) });\n/** The part of a run's manifest a version grows from: the graph it ran and every node's outputs. */\nconst VersionManifest = z.object({\n canvas: VersionGraph,\n outputs_by_node: z.record(z.string(), z.record(z.string(), z.unknown())),\n});\n\n/**\n * The graph run `runId` ran and every node's outputs, so the next version can be grown on top of\n * it (`growFromVersion`): from its run folder here, else, for a version rendered in another\n * workspace (\"Edit creative …\" from a new chat), from the run history and the graph it kept. Null\n * when neither has it (a run recorded before graphs were kept): the caller corrects by URL.\n */\nexport async function versionRun(\n canvasRoot: string,\n runId: string,\n sources: VersionSources = HISTORY,\n): Promise<VersionRun | null> {\n try {\n const manifest = VersionManifest.safeParse(JSON.parse(await readFile(path.join(canvasRoot, runId, \"manifest.json\"), \"utf8\")));\n if (manifest.success) return { canvas: manifest.data.canvas, outputs: manifest.data.outputs_by_node };\n } catch {\n // Not rendered here: ask the run history.\n }\n const record = await sources.record(runId).catch(() => null);\n const graph = record?.graphUrl ? await sources.graph(record.graphUrl).catch(() => null) : null;\n const canvas = VersionGraph.safeParse(graph);\n return record && canvas.success ? { canvas: canvas.data, outputs: outputsByNode(record.nodes) } : null;\n}\n\n/**\n * What each workspace file the variants read is ingested as now, by node id (`makesSameVariants`):\n * the sha256 of its bytes, and for a picture also of the raster the ingest makes it into (an SVG\n * logo is ingested as a PNG). A file that cannot be read matches nothing.\n */\nexport async function ingestedNow(files: readonly VariantFile[], canvasDir: string): Promise<Record<string, string[]>> {\n const entries = await Promise.all(\n files.map(async (file): Promise<[string, string[]]> => {\n const bytes = await readFile(path.resolve(canvasDir, file.path)).catch(() => null);\n if (!bytes) return [file.id, []];\n const own = sha256Hex(bytes);\n if (file.expect !== \"image\") return [file.id, [own]];\n const raster = await toModelSafeImage(bytes).catch(() => null);\n return [file.id, raster ? [...new Set([own, sha256Hex(raster.bytes)])] : [own]];\n }),\n );\n return Object.fromEntries(entries);\n}\n\n/**\n * Each node's outputs as the engine hands them on, from the run record's flat list: `images#1`\n * back into `images[1]`, `image` as it is, each an asset ref. A node that recorded none is left out.\n * Pure.\n */\nfunction outputsByNode(nodes: RecordedRun[\"nodes\"]): Record<string, Record<string, unknown>> {\n const byNode: Record<string, Record<string, unknown>> = {};\n for (const node of nodes) {\n const outputs: Record<string, unknown> = {};\n for (const out of node.outputs) {\n const [slot = \"\", index] = String(out.slot ?? \"\").split(\"#\");\n const { slot: _slot, label: _label, durationMs, ...ref } = out;\n const asset = { ...ref, ...(typeof durationMs === \"number\" ? { duration_ms: durationMs } : {}) };\n if (index === undefined) outputs[slot] = asset;\n else {\n const list = (Array.isArray(outputs[slot]) ? outputs[slot] : []) as unknown[];\n list[Number(index)] = asset;\n outputs[slot] = list;\n }\n }\n if (Object.keys(outputs).length > 0) byNode[node.nodeId] = outputs;\n }\n return byNode;\n}\n\n/**\n * `correctedUrl` of a run: the local run folder first, then the company's run history, so a\n * version corrected in another chat is found too. Null for a plain render or an unknown run.\n */\nexport async function correctedPicture(\n canvasRoot: string,\n runId: string,\n fetchRecord: (\n runId: string,\n ) => Promise<{ nodes: Array<{ nodeId: string; role?: string; outputs: Output[] }> } | null> = fetchRunRecord,\n): Promise<string | null> {\n try {\n const manifest = JSON.parse(await readFile(path.join(canvasRoot, runId, \"manifest.json\"), \"utf8\")) as {\n outputs_by_node?: Record<string, NodeOutputs>;\n };\n if (manifest.outputs_by_node) return correctedUrl(manifest.outputs_by_node);\n } catch {\n // Not rendered here: ask the run history.\n }\n const record = await fetchRecord(runId).catch(() => null);\n if (!record) return null;\n return correctedUrl(\n Object.fromEntries(record.nodes.map((n) => [n.nodeId, { images: n.outputs, ...(n.role ? { role: n.role } : {}) }])),\n );\n}\n\n/**\n * How a version's picture came to be, where its canvas alone would not say: `chosen`, the person\n * picked it (`--use-variant`), so it is only ever corrected, never replaced, through every fix and\n * re-layout of it; `redrawn`, a new picture told what the last one got wrong (an autofix round),\n * which the scaffolded graph would not draw again.\n */\nexport type PictureRecord = { runId: string; chosen?: true; redrawn?: true };\n\n/**\n * The record of run `runId`'s picture: `chose`, the person picked it now; `keeps`, the run kept the\n * picture of version `from` (a fix, an edit, a re-layout), whose record `of` is. Pure.\n */\nexport function pictureRecord(\n runId: string,\n opts: { chose?: boolean; of?: PictureRecord | undefined; from?: string | undefined; keeps?: boolean; redrawn?: boolean },\n): PictureRecord {\n const chosen = opts.chose === true || (opts.keeps === true && keepsChosen(opts.of, opts.from));\n return { runId, ...(chosen ? { chosen: true as const } : {}), ...(opts.redrawn ? { redrawn: true as const } : {}) };\n}\n\n/** Whether version `from` shows a picture the person chose. Pure. */\nexport function keepsChosen(picture: PictureRecord | undefined, from: string | undefined): boolean {\n return picture?.chosen === true && from !== undefined && picture.runId === from;\n}\n\n/**\n * Whether `--regenerate` forces only re-laid-out sizes (their fills and safe fits): work that must start\n * from the picture the version already shows, never from new variants. Pure.\n */\nexport function relaysSizesOnly(canvas: unknown, ids: readonly string[]): boolean {\n const roles = rolesById(canvas);\n const sizing = new Set([STATIC_ADAPT_FORMAT_ROLE, STATIC_SIZE_ROLE, STATIC_SAFE_FIT_ROLE]);\n return ids.length > 0 && ids.every((id) => sizing.has(roles[id] ?? \"\"));\n}\n\n/** A sha256 or a unique prefix of one (at least 8 hex characters). */\nconst SHA_PREFIX = /^[0-9a-f]{8,64}$/;\n\n/** The URL of the variant whose sha256 starts with `sha` among one node's outputs; null when none or several match. */\nfunction matchVariant(outputs: readonly Output[], sha: string): string | null {\n const hits = outputs.filter((o) => typeof o?.sha256 === \"string\" && o.sha256.startsWith(sha) && typeof o.url === \"string\");\n const urls = [...new Set(hits.map((o) => o.url as string))];\n return urls.length === 1 ? (urls[0] as string) : null;\n}\n\n/**\n * The durable URL of the variant to make every size from instead of the judge's pick (`--use-variant`),\n * found by its sha256 among the run's variants, never by position: the local run folder first\n * (its outputs keyed by node id, given roles by `roles`), then the run history. Null when the\n * run or the variant is unknown.\n */\nexport async function variantImage(\n canvasRoot: string,\n runId: string,\n sha256: string,\n fetchRecord: (\n runId: string,\n ) => Promise<{ nodes: Array<{ nodeId: string; role?: string; outputs: Output[] }> } | null> = fetchRunRecord,\n roles: Readonly<Record<string, string>> = {},\n): Promise<string | null> {\n const sha = sha256.trim().toLowerCase();\n if (!SHA_PREFIX.test(sha)) return null;\n try {\n const manifest = JSON.parse(await readFile(path.join(canvasRoot, runId, \"manifest.json\"), \"utf8\")) as {\n outputs_by_node?: Record<string, NodeOutputs>;\n };\n for (const [id, out] of Object.entries(manifest.outputs_by_node ?? {})) {\n if (roles[id] !== STATIC_VARIANTS_ROLE) continue;\n const url = matchVariant(out.images ?? [], sha);\n if (url) return url;\n }\n } catch {\n // Not rendered here: ask the run history.\n }\n const record = await fetchRecord(runId).catch(() => null);\n const variants = record?.nodes.find((n) => n.role === STATIC_VARIANTS_ROLE);\n return variants ? matchVariant(variants.outputs, sha) : null;\n}\n","/**\n * An ad of a series, on disk: `src/creatives/<slug>/` holds its own words (`prompt.json`) and a\n * `_definition.md` naming its lead (`series: <lead>`); its canvas is written from the lead's,\n * every run, as an edit of the lead's ready version (`seriesMemberAd`). The ad never designs a\n * picture of its own, so ten messages in one style come out as one ad ten times.\n */\nimport { existsSync } from \"node:fs\";\nimport { readdir, readFile, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport type { CreativesRunData } from \"@baker/api\";\nimport { isAdSpec, readAdSpec } from \"../../engine/scaffold/static-ad-spec.ts\";\nimport { isCustomersWords, isSignatureLine } from \"../../engine/scaffold/static-proof.ts\";\nimport { sameTag } from \"../../language.ts\";\nimport { formatOfAdaptId } from \"../../engine/scaffold/static-adapt-briefs.ts\";\nimport {\n nodesWithRole,\n relaidPictureRole,\n rolesById,\n STATIC_ADAPT_FORMAT_ROLE,\n} from \"../../engine/scaffold/static-topology.ts\";\nimport { type SeriesLead, seriesMemberAd } from \"../../engine/scaffold/staticAd.ts\";\nimport { parseDefinitionStrategyFields } from \"./creative-definition.ts\";\nimport { localPathParam } from \"./resolve-paths.ts\";\nimport { readRenderState } from \"./render-state.ts\";\nimport { fetchRunRecord } from \"./run-history.ts\";\nimport { finalOutputLabelsFromCanvas } from \"./run-record.ts\";\nimport { isStaticAdCanvas } from \"./static-ad-canvas.ts\";\nimport { previousAdImage, previousDelivered } from \"./static-fix.ts\";\n\n/** Why a series ad cannot be made yet: what to tell the agent, and what to do. */\nexport type SeriesRefusal = { refused: { code: string; message: string; fix: string } };\n\ntype Fetch = (runId: string) => Promise<CreativesRunData | null>;\n\nconst creativeDir = (root: string, slug: string) => path.join(root, \"src\", \"creatives\", slug);\nconst canvasFile = (root: string, slug: string) => path.join(creativeDir(root, slug), `${slug}.canvas.json`);\n\n/** What a creative's `_definition.md` says of its series: its lead (`series:`) and the language its words are in. */\nasync function seriesFieldsOf(root: string, slug: string): Promise<{ seriesLead?: string; language?: string }> {\n const raw = await readFile(path.join(creativeDir(root, slug), \"_definition.md\"), \"utf8\").catch(() => null);\n return raw === null ? {} : parseDefinitionStrategyFields(raw);\n}\n\n/** The lead a creative's `_definition.md` names (`series:`); null when it is no ad of a series. */\nexport async function seriesLeadOf(root: string, slug: string): Promise<string | null> {\n return (await seriesFieldsOf(root, slug)).seriesLead ?? null;\n}\n\n/** The language a translation's words are in: its own, when it is not its lead's. Undefined on any other ad. */\nasync function translatedInto(root: string, slug: string, lead: string): Promise<string | undefined> {\n const own = (await seriesFieldsOf(root, slug)).language;\n const leads = (await seriesFieldsOf(root, lead)).language;\n return own && !(leads && sameTag(own, leads)) ? own : undefined;\n}\n\n/** How many leads up a series may chain: a design, its angle ads, their translations. */\nexport const SERIES_DEPTH = 3;\n\n/**\n * The leads above `slug`, nearest first, up to the ad whose design the whole series has (an angle\n * ad, then the design it was made from). Bounded and cycle-safe; empty for an ad in no series.\n */\nexport async function seriesLeadsAbove(root: string, slug: string): Promise<string[]> {\n const leads: string[] = [];\n let at = await seriesLeadOf(root, slug);\n while (at && at !== slug && !leads.includes(at) && leads.length < SERIES_DEPTH) {\n leads.push(at);\n at = await seriesLeadOf(root, at);\n }\n return leads;\n}\n\n/** Every ad of the series led by `lead`, by slug, in folder order. */\nexport async function seriesMembers(root: string, lead: string): Promise<string[]> {\n const slugs = await readdir(path.join(root, \"src\", \"creatives\")).catch(() => [] as string[]);\n const members: string[] = [];\n for (const slug of slugs.sort()) {\n if (slug !== lead && (await seriesLeadOf(root, slug)) === lead) members.push(slug);\n }\n return members;\n}\n\nfunction refusal(code: string, message: string, fix: string): SeriesRefusal {\n return { refused: { code, message, fix } };\n}\n\n/**\n * The lead's ready version: the one this workspace shows (its render state), its words as that\n * render drew them, its chosen picture and every size it delivered. A lead never rendered, or\n * whose version still needs fixes, is refused: every ad of the series copies it.\n */\nexport async function leadVersion(\n root: string,\n lead: string,\n fetchRecord: Fetch = fetchRunRecord,\n): Promise<{ lead: SeriesLead; canvas: unknown; spec: unknown } | SeriesRefusal> {\n const file = canvasFile(root, lead);\n const canvas: unknown = existsSync(file) ? JSON.parse(await readFile(file, \"utf8\")) : null;\n if (!canvas || !isStaticAdCanvas(canvas)) {\n return refusal(\n \"series_lead_not_found\",\n `The lead ad \"${lead}\" is not a static ad in this workspace.`,\n \"Name a static ad of this workspace as the lead: make it with `baker creatives make <idea>` and render it first.\",\n );\n }\n const canvasRoot = path.join(root, \"canvas\");\n const state = await readRenderState(canvasRoot, lead);\n const runId = state.rendered?.runId;\n if (!runId) {\n return refusal(\n \"series_lead_not_rendered\",\n `The lead ad \"${lead}\" has no finished version yet: every ad of its series is made from it.`,\n `Render the lead first and get it ready: baker canvas run --slug ${lead}. Then make the series.`,\n );\n }\n if ((state.blocking ?? []).length > 0) {\n return refusal(\n \"series_lead_not_ready\",\n `The lead ad \"${lead}\" still needs fixes (${(state.blocking ?? []).join(\" | \")}): the series would copy them.`,\n `Correct the lead until its verdict is ready (baker canvas run --slug ${lead}, or --fix \"<what to change>\"), then run the series again.`,\n );\n }\n const record = (): Promise<CreativesRunData | null> => fetchRecord(runId).catch(() => null);\n const picture = await previousAdImage(canvasRoot, runId, record, { ...rolesById(canvas), ...relaidPictureRole(canvas) });\n const sizes = await deliveredSizes(canvasRoot, runId, canvas, record);\n if (!picture) {\n return refusal(\n \"series_lead_not_rendered\",\n `The finished picture of the lead's version (${runId}) is not available.`,\n `Render the lead again (baker canvas run --slug ${lead}), then run the series.`,\n );\n }\n const drawn = state.prompt ?? JSON.parse(await readFile(path.join(creativeDir(root, lead), \"prompt.json\"), \"utf8\"));\n const copy = readAdSpec(drawn).copy.map((l) => ({ text: l.text, ...(l.role ? { role: l.role } : {}) }));\n return { lead: { slug: lead, runId, copy, picture, sizes }, canvas, spec: drawn };\n}\n\n/** Each re-laid-out size the lead's version delivered, by format: its local run folder first, else its record. */\nasync function deliveredSizes(\n canvasRoot: string,\n runId: string,\n canvas: unknown,\n record: () => Promise<CreativesRunData | null>,\n): Promise<Record<string, string>> {\n const wanted = new Set(nodesWithRole(canvas, STATIC_ADAPT_FORMAT_ROLE).flatMap((n) => formatOfAdaptId(n.id) ?? []));\n const labels = finalOutputLabelsFromCanvas(canvas);\n const local = await previousDelivered(canvasRoot, runId, labels?.nodeId ?? \"final\", labels?.labels ?? [], {\n prefer: \"url\",\n });\n const found = local.length > 0 ? local : ((await record())?.finalOutputs ?? []).flatMap((o) =>\n o.label && o.url ? [{ format: o.label, path: o.url }] : [],\n );\n return Object.fromEntries(found.filter((d) => wanted.has(d.format)).map((d) => [d.format, d.path]));\n}\n\n/**\n * The lead's canvas with its local paths read from the member's folder: the brand's font and\n * logo are the same files, the member's own `prompt.json` stays its own. Pure.\n */\nexport function rebaseLeadPaths<T>(canvas: T, leadDir: string, memberDir: string): T {\n const out = structuredClone(canvas) as { nodes?: Array<{ id?: unknown; type?: unknown; params?: Record<string, unknown> }> };\n for (const node of out.nodes ?? []) {\n const key = localPathParam(node);\n const value = key ? node.params?.[key] : undefined;\n if (!key || !node.params || typeof value !== \"string\" || node.id === \"prompt\" || path.isAbsolute(value)) continue;\n const rel = path.relative(memberDir, path.resolve(leadDir, value)).split(path.sep).join(\"/\");\n node.params[key] = rel.startsWith(\".\") ? rel : `./${rel}`;\n }\n return out as T;\n}\n\n/** What every ad of a series shares with its lead: everything in prompt.json but its words and who it speaks to. */\nconst DESIGN_FIELDS = [\n \"scene\",\n \"brand\",\n \"colors\",\n \"references\",\n \"logo\",\n \"logo_position\",\n \"third_party_brands\",\n \"formats\",\n \"direction\",\n] as const;\n\n/** The design a spec draws, as one comparable string; null when it does not read as an ad spec. Pure. */\nexport function seriesDesignOf(spec: unknown): string | null {\n try {\n const read = readAdSpec(spec) as Record<string, unknown>;\n return JSON.stringify(DESIGN_FIELDS.map((key) => read[key] ?? null));\n } catch {\n return null;\n }\n}\n\n/** `memberSpec` with the lead's design and its own words, viewer and message. Pure. */\nfunction withLeadDesign(memberSpec: unknown, leadSpec: unknown): Record<string, unknown> {\n // An older blueprint names its design in its own shape: each is taken as the ad spec it reads as.\n const asSpec = (spec: unknown): Record<string, unknown> =>\n isAdSpec(spec) ? (spec as Record<string, unknown>) : readAdSpec(spec);\n const lead = asSpec(leadSpec);\n const out = { ...asSpec(memberSpec) };\n for (const key of DESIGN_FIELDS) {\n if (key in lead) out[key] = lead[key];\n else delete out[key];\n }\n return out;\n}\n\n/** A series ad whose words are still the lead's renders the lead again: refused before anything bills. Pure. */\nexport function unchangedCopyRefusal(lead: SeriesLead, memberSpec: unknown): SeriesRefusal | null {\n const words = (copy: ReadonlyArray<{ text: string }>) => copy.map((l) => l.text.trim()).join(\"\\n\");\n let copy: ReadonlyArray<{ text: string }>;\n try {\n copy = readAdSpec(memberSpec).copy;\n } catch {\n return null;\n }\n if (words(copy) !== words(lead.copy)) return null;\n return refusal(\n \"series_copy_unchanged\",\n `This ad's words are still the lead's (\"${lead.copy[0]?.text ?? \"\"}\"): it would render the lead again.`,\n \"Write this ad's own words in its prompt.json `copy`, one line for each of the lead's (same roles), saying this ad's message. Keep everything else: the design is the lead's.\",\n );\n}\n\n/**\n * A translation whose lines the lead holds as a customer's words (a quote, signed by its shape or\n * its role, or by a signature on the line below) are not those words as the lead has them: the\n * translation puts words the customer never said under their name. Null when every one is kept. Pure.\n */\nexport function changedCustomerWordsRefusal(lead: SeriesLead, memberSpec: unknown): SeriesRefusal | null {\n let copy: ReadonlyArray<{ text: string }>;\n try {\n copy = readAdSpec(memberSpec).copy;\n } catch {\n return null;\n }\n const said = new Set(copy.map((l) => l.text.trim()));\n const changed = lead.copy.filter((line, i) => {\n const below = lead.copy[i + 1];\n const theirs = isCustomersWords(line) || (below !== undefined && isSignatureLine(below));\n return theirs && !said.has(line.text.trim());\n });\n if (changed.length === 0) return null;\n return refusal(\n \"series_customer_words_changed\",\n `This translation changed a customer's own words: ${changed.map((l) => `\"${l.text}\"`).join(\", \")} is how they said it, and translated it would be words they never said under their name.`,\n `Put ${changed.length === 1 ? \"that line\" : \"those lines\"} back in this ad's prompt.json exactly as the lead has ${changed.length === 1 ? \"it\" : \"them\"}: ${changed.map((l) => `\"${l.text}\"`).join(\", \")}. Translate only the advertiser's own lines.`,\n );\n}\n\n/**\n * A design edited on an ad of a series: it is made once, on the ad whose design the whole series\n * has (the last of `leads`), then carried down each series run, the farthest first. Pure.\n */\nexport function designChangedRefusal(lead: string, leads: readonly string[]): SeriesRefusal {\n const chain = leads.length > 0 ? leads : [lead];\n const design = chain[chain.length - 1] ?? lead;\n const runs = [...chain].reverse().map((l) => `baker canvas run --series ${l}`);\n return refusal(\n \"series_design_changed\",\n `This ad's design (its scene, colours, pictures or logo in prompt.json) was changed on the ad itself, but every ad of the series has the design of \"${design}\".`,\n `Make the change once, on ${design}: edit src/creatives/${design}/prompt.json (or baker canvas run --slug ${design} --fix \"<the change>\"), then ${runs.join(\", then \")}: every ad takes the new design, its own words kept. Only this ad's copy belongs in its own prompt.json.`,\n );\n}\n\n/**\n * Write the canvas of series ad `slug` from its lead's ready version. Null when `slug` is no ad\n * of a series; a refusal when its lead is not ready or its words are still the lead's (allowed\n * only when the ad is first made, before its words are written: `leadWords`).\n */\nexport async function writeSeriesMemberCanvas(\n root: string,\n slug: string,\n opts: { fetchRecord?: Fetch; leadWords?: boolean; takeLeadDesign?: boolean } = {},\n): Promise<\n | {\n lead: string;\n leadRunId: string;\n canvasPath: string;\n written: boolean;\n designFromLead: boolean;\n /** The ad was last made from an older version of its lead: this run is a new version of the ad. */\n newLeadVersion: boolean;\n }\n | SeriesRefusal\n | null\n> {\n const lead = await seriesLeadOf(root, slug);\n if (!lead) return null;\n const version = await leadVersion(root, lead, opts.fetchRecord);\n if (\"refused\" in version) return version;\n const dir = creativeDir(root, slug);\n const promptPath = path.join(dir, \"prompt.json\");\n let memberSpec = JSON.parse(await readFile(promptPath, \"utf8\").catch(() => \"null\"));\n const unchanged = opts.leadWords ? null : unchangedCopyRefusal(version.lead, memberSpec);\n if (unchanged) return unchanged;\n const language = await translatedInto(root, slug, lead);\n const rewritten = language ? changedCustomerWordsRefusal(version.lead, memberSpec) : null;\n if (rewritten) return rewritten;\n const file = canvasFile(root, slug);\n const before = await readFile(file, \"utf8\").catch(() => null);\n // The design is the lead's. A new version of the lead carries it to an ad untouched since; a\n // design edited on the ad itself is refused, unless the series run is asked to take the lead's back.\n const leadDesign = seriesDesignOf(version.spec);\n const ownDesign = seriesDesignOf(memberSpec);\n const previous = before\n ? (JSON.parse(before) as { metadata?: { series?: { design?: string; run_id?: string } } }).metadata?.series\n : undefined;\n const synced = previous?.design;\n let designFromLead = false;\n if (leadDesign !== null && ownDesign !== null && ownDesign !== leadDesign) {\n if (!opts.takeLeadDesign && ownDesign !== synced) {\n return designChangedRefusal(lead, await seriesLeadsAbove(root, slug));\n }\n memberSpec = withLeadDesign(memberSpec, version.spec);\n await writeFile(promptPath, `${JSON.stringify(memberSpec, null, 2)}\\n`, \"utf8\");\n designFromLead = true;\n }\n const canvas = seriesMemberAd(\n rebaseLeadPaths(version.canvas, creativeDir(root, lead), dir),\n { ...version.lead, ...(leadDesign !== null ? { design: leadDesign } : {}) },\n language ? { language } : {},\n );\n const text = `${JSON.stringify(canvas, null, 2)}\\n`;\n if (before !== text) await writeFile(file, text, \"utf8\");\n const madeFrom = (await readRenderState(path.join(root, \"canvas\"), slug)).seriesLeadRun;\n const newLeadVersion = madeFrom !== undefined && madeFrom !== version.lead.runId;\n return { lead, leadRunId: version.lead.runId, canvasPath: file, written: before !== text, designFromLead, newLeadVersion };\n}\n\n/**\n * What a run of an ad of a series, or of its lead, says to do next: a new version of the lead\n * reaches the series only through a series run, and a change to the design every ad shares is\n * made once, on the lead. Empty for an ad in no series. Pure.\n */\nexport function seriesRunHints(\n slug: string,\n series: { lead?: string | null; leads?: readonly string[]; members: readonly string[] },\n): string[] {\n // Nearest lead first: a translation of an angle ad takes its design from the ad at the top.\n const leads = series.leads?.length ? series.leads : series.lead ? [series.lead] : [];\n const root = leads[leads.length - 1];\n if (root) {\n const runs = [...leads].reverse().map((lead) => `baker canvas run --series ${lead}`);\n return [\n `This ad is one of the series led by ${leads[0]}: its picture is ${root}'s with its own words. A change to what every ad shares (the picture, colours, layout, logo) is made once, on ${root} (src/creatives/${root}/prompt.json, or baker canvas run --slug ${root} --fix \"<the change>\"), then ${runs.join(\", then \")}. Correct only this ad's own words or its own defect here.`,\n ];\n }\n if (series.members.length === 0) return [];\n return [\n `This ad leads a series of ${series.members.length + 1}: baker canvas run --series ${slug} makes ${series.members.join(\", \")} again from this version, each with its own words. Until then they show the lead's earlier version; an ad of the series run by itself (baker canvas run --slug ${series.members[0]}) is made from this version too, its design included.`,\n ];\n}\n"],"mappings":"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","names":["readFile","path","path","readFile","copy"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
REFERENCE_SHEET_MODEL
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CAMX6OHF.js";
|
|
4
4
|
import {
|
|
5
5
|
askJev
|
|
6
6
|
} from "./chunk-VAJBWA2U.js";
|
|
@@ -1827,4 +1827,4 @@ export {
|
|
|
1827
1827
|
adSpecFromBlueprint,
|
|
1828
1828
|
adSpecJsonSchema
|
|
1829
1829
|
};
|
|
1830
|
-
//# sourceMappingURL=chunk-
|
|
1830
|
+
//# sourceMappingURL=chunk-PZXCWSKV.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
LINKEDIN_SEARCH_STATUSES,
|
|
8
8
|
unsupportedLinkedinSearchStatuses
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-K6WVV74H.js";
|
|
10
10
|
import {
|
|
11
11
|
ApiError
|
|
12
12
|
} from "./chunk-XBOK23HI.js";
|
|
@@ -172,4 +172,4 @@ export {
|
|
|
172
172
|
statusesArgDescription,
|
|
173
173
|
resolveStatusFilter
|
|
174
174
|
};
|
|
175
|
-
//# sourceMappingURL=chunk-
|
|
175
|
+
//# sourceMappingURL=chunk-QVJDPOEB.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
holdUnbilledSpend
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WTOYCUKH.js";
|
|
4
4
|
import {
|
|
5
5
|
askAboutText
|
|
6
6
|
} from "./chunk-RX6F3GEA.js";
|
|
7
7
|
import {
|
|
8
8
|
brandTokensSchema
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-K6WVV74H.js";
|
|
10
10
|
|
|
11
11
|
// src/engine/landing/lib/brand-tokens.ts
|
|
12
12
|
import { readFile as readFile2 } from "fs/promises";
|
|
@@ -334,4 +334,4 @@ export {
|
|
|
334
334
|
brandCommitsAiHue,
|
|
335
335
|
brandCommitsCream
|
|
336
336
|
};
|
|
337
|
-
//# sourceMappingURL=chunk-
|
|
337
|
+
//# sourceMappingURL=chunk-R5RIH3N5.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
calendarDaySchema,
|
|
7
7
|
todayUtc,
|
|
8
8
|
windowTooLong
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-K6WVV74H.js";
|
|
10
10
|
|
|
11
11
|
// ../api/src/accounts/crm.ts
|
|
12
12
|
import { z } from "zod";
|
|
@@ -1076,4 +1076,4 @@ export {
|
|
|
1076
1076
|
accountsCampaignsRequestSchema,
|
|
1077
1077
|
ACCOUNTS_NO_SETTINGS_MESSAGE
|
|
1078
1078
|
};
|
|
1079
|
-
//# sourceMappingURL=chunk-
|
|
1079
|
+
//# sourceMappingURL=chunk-RB5CVIK6.js.map
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
} from "./chunk-VVZBBKRC.js";
|
|
24
24
|
import {
|
|
25
25
|
videosIngestRequestSchema
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-K6WVV74H.js";
|
|
27
27
|
import {
|
|
28
28
|
ApiError,
|
|
29
29
|
apiPost
|
|
@@ -360,4 +360,4 @@ export {
|
|
|
360
360
|
runVideoIngest,
|
|
361
361
|
ingestHints
|
|
362
362
|
};
|
|
363
|
-
//# sourceMappingURL=chunk-
|
|
363
|
+
//# sourceMappingURL=chunk-RZT263H7.js.map
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
} from "./chunk-F2S5BLPE.js";
|
|
12
12
|
import {
|
|
13
13
|
holdUnbilledSpend
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-WTOYCUKH.js";
|
|
15
15
|
import {
|
|
16
16
|
findWorkspaceRoot
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-DZSIUEGH.js";
|
|
18
18
|
import {
|
|
19
19
|
CAPABILITY_SURFACE_SPECS
|
|
20
20
|
} from "./chunk-ZJWUBJYQ.js";
|
|
@@ -163,4 +163,4 @@ export {
|
|
|
163
163
|
capabilityFix,
|
|
164
164
|
adCopyHints
|
|
165
165
|
};
|
|
166
|
-
//# sourceMappingURL=chunk-
|
|
166
|
+
//# sourceMappingURL=chunk-T4DD5YMP.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
loadCompositionMeta
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OKJWBB2K.js";
|
|
4
4
|
import {
|
|
5
5
|
parseRefExpr
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6Y7SIP2D.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveAdaptFormats
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-CAMX6OHF.js";
|
|
10
10
|
|
|
11
11
|
// src/commands/canvas/output-ratio.ts
|
|
12
12
|
import { readFile } from "fs/promises";
|
|
@@ -93,4 +93,4 @@ async function outputRatioWarningsFor(canvas, canvasPath) {
|
|
|
93
93
|
export {
|
|
94
94
|
outputRatioWarningsFor
|
|
95
95
|
};
|
|
96
|
-
//# sourceMappingURL=chunk-
|
|
96
|
+
//# sourceMappingURL=chunk-TUB34FVS.js.map
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
citedPlatforms,
|
|
7
7
|
jevCitationJudge,
|
|
8
8
|
namedPlatform
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-PZXCWSKV.js";
|
|
10
10
|
import {
|
|
11
11
|
AD_PLACEMENTS,
|
|
12
12
|
TEXT_BOX_READER_MODEL,
|
|
13
13
|
verticalCover
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-CAMX6OHF.js";
|
|
15
15
|
import {
|
|
16
16
|
FINDING_DEFECTS,
|
|
17
17
|
FINDING_ELEMENTS,
|
|
@@ -1408,4 +1408,4 @@ export {
|
|
|
1408
1408
|
checkStaticImage,
|
|
1409
1409
|
reviewRenderedStatic
|
|
1410
1410
|
};
|
|
1411
|
-
//# sourceMappingURL=chunk-
|
|
1411
|
+
//# sourceMappingURL=chunk-TX7LZWZD.js.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
claimNewCreativeInWorkspace,
|
|
3
3
|
creativeLimitRefusal
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ZZQXVYUY.js";
|
|
5
5
|
import {
|
|
6
6
|
leadVersion,
|
|
7
7
|
writeSeriesMemberCanvas
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-PVUZWHNQ.js";
|
|
9
9
|
import {
|
|
10
10
|
definitionFieldsOf,
|
|
11
11
|
setDefinitionFields,
|
|
12
12
|
setSpecMessage
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-VNUNE5AB.js";
|
|
14
14
|
import {
|
|
15
15
|
IDEAS_DIR
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-4QEY2L6U.js";
|
|
17
17
|
|
|
18
18
|
// src/commands/creatives/make-series.ts
|
|
19
19
|
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
@@ -89,4 +89,4 @@ export {
|
|
|
89
89
|
makeSeriesAd,
|
|
90
90
|
seriesMadeEnvelope
|
|
91
91
|
};
|
|
92
|
-
//# sourceMappingURL=chunk-
|
|
92
|
+
//# sourceMappingURL=chunk-V7CTQOHG.js.map
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
IDEA_VIDEO_FORMATS,
|
|
3
3
|
figuresIn,
|
|
4
4
|
unsourcedClaims
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4QEY2L6U.js";
|
|
6
6
|
import {
|
|
7
7
|
AD_SPEC_SCHEMA
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-PZXCWSKV.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/creatives/make-model.ts
|
|
11
11
|
import { parse, parseDocument, Scalar, visit } from "yaml";
|
|
@@ -157,4 +157,4 @@ export {
|
|
|
157
157
|
unsourcedCopyLines,
|
|
158
158
|
ideaSpec
|
|
159
159
|
};
|
|
160
|
-
//# sourceMappingURL=chunk-
|
|
160
|
+
//# sourceMappingURL=chunk-VNUNE5AB.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
findWorkspaceRoot
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DZSIUEGH.js";
|
|
4
4
|
|
|
5
5
|
// src/commands/canvas/unbilled-spend.ts
|
|
6
6
|
import { randomUUID } from "crypto";
|
|
@@ -81,4 +81,4 @@ export {
|
|
|
81
81
|
sendBillingSpend,
|
|
82
82
|
holdWhenSettled
|
|
83
83
|
};
|
|
84
|
-
//# sourceMappingURL=chunk-
|
|
84
|
+
//# sourceMappingURL=chunk-WTOYCUKH.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MODEL_REGISTRY,
|
|
3
3
|
isRegisteredModel
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-CAMX6OHF.js";
|
|
5
5
|
|
|
6
6
|
// src/commands/canvas/scaffold-common.ts
|
|
7
7
|
import { access, readFile } from "fs/promises";
|
|
@@ -73,4 +73,4 @@ export {
|
|
|
73
73
|
fail,
|
|
74
74
|
fileExists
|
|
75
75
|
};
|
|
76
|
-
//# sourceMappingURL=chunk-
|
|
76
|
+
//# sourceMappingURL=chunk-XFGAUP5B.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
SITE_COLLECTION_MODES,
|
|
3
3
|
SITE_CONSENT_MODES,
|
|
4
4
|
SITE_HOME_MODES
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-K6WVV74H.js";
|
|
6
6
|
import {
|
|
7
7
|
ApiError
|
|
8
8
|
} from "./chunk-XBOK23HI.js";
|
|
@@ -100,4 +100,4 @@ export {
|
|
|
100
100
|
parseSetArgs,
|
|
101
101
|
failSite
|
|
102
102
|
};
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
103
|
+
//# sourceMappingURL=chunk-XQIKDODN.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
creativesRunResponseSchema
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K6WVV74H.js";
|
|
4
4
|
import {
|
|
5
5
|
ApiError,
|
|
6
6
|
apiPost
|
|
@@ -20,4 +20,4 @@ async function fetchRunRecord(runId, post = apiPost) {
|
|
|
20
20
|
export {
|
|
21
21
|
fetchRunRecord
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
23
|
+
//# sourceMappingURL=chunk-XTRAI6CL.js.map
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
X_DRAFT_BATCH_MAX,
|
|
13
13
|
xDraftOpInputSchema
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-K6WVV74H.js";
|
|
15
15
|
import {
|
|
16
16
|
ApiError,
|
|
17
17
|
apiPost
|
|
@@ -166,4 +166,4 @@ export {
|
|
|
166
166
|
requireTarget,
|
|
167
167
|
requireTargets
|
|
168
168
|
};
|
|
169
|
-
//# sourceMappingURL=chunk-
|
|
169
|
+
//# sourceMappingURL=chunk-XVOI4BIS.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ACTION_TEMP_ID_PREFIX
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K6WVV74H.js";
|
|
4
4
|
import {
|
|
5
5
|
ApiError
|
|
6
6
|
} from "./chunk-XBOK23HI.js";
|
|
@@ -146,6 +146,14 @@ function buildListHints({ returned, limit }) {
|
|
|
146
146
|
`This list is capped at ${limit} Tasks and came back full, so older Tasks exist that are NOT shown. Do not treat it as the whole backlog \u2014 re-run with --limit ${limit * 2} (or narrow with --status / --search).`
|
|
147
147
|
];
|
|
148
148
|
}
|
|
149
|
+
function buildGetHints(detail) {
|
|
150
|
+
if (!detail || detail.action.status !== "pending" || detail.activeChat !== null) {
|
|
151
|
+
return [];
|
|
152
|
+
}
|
|
153
|
+
return [
|
|
154
|
+
`If you are working on this Task in this chat, claim it first so the Tasks page shows it in progress: baker actions claim ${detail.action._id}`
|
|
155
|
+
];
|
|
156
|
+
}
|
|
149
157
|
|
|
150
158
|
export {
|
|
151
159
|
writeOk,
|
|
@@ -158,6 +166,7 @@ export {
|
|
|
158
166
|
parsePriority,
|
|
159
167
|
buildCreateHints,
|
|
160
168
|
ACTIONS_LIST_DEFAULT_LIMIT,
|
|
161
|
-
buildListHints
|
|
169
|
+
buildListHints,
|
|
170
|
+
buildGetHints
|
|
162
171
|
};
|
|
163
|
-
//# sourceMappingURL=chunk-
|
|
172
|
+
//# sourceMappingURL=chunk-ZDNOCKKY.js.map
|