@koda-sl/baker-cli 0.447.0-dev.f5788a631 → 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 +12 -8
- package/dist/{account-PCEZQUK7.js → account-DTHGTZCN.js} +6 -6
- package/dist/{accounts-5AXLYU7P.js → accounts-5RLG6BBA.js} +5 -5
- package/dist/{accounts-OSXDZZLY.js → accounts-6LSBBXKA.js} +7 -7
- package/dist/{actions-HM4VVTGW.js → actions-WH5C6Q7I.js} +18 -18
- package/dist/{add-4J2EF54O.js → add-BZ4QPLK4.js} +4 -4
- package/dist/{add-VZAY57M4.js → add-TRSKOIO6.js} +32 -7
- package/dist/add-TRSKOIO6.js.map +1 -0
- package/dist/{ads-NUME2UXH.js → ads-6UG66KA5.js} +4 -4
- package/dist/{advertisers-WSNHNCBQ.js → advertisers-OABQDELT.js} +12 -8
- package/dist/advertisers-OABQDELT.js.map +1 -0
- package/dist/{analytics-QTR2ZITZ.js → analytics-3YAWQF5K.js} +8 -8
- package/dist/{analytics-PHU7H5VY.js → analytics-BCZGSSXP.js} +5 -5
- package/dist/{animate-3Z7HXOLE.js → animate-AIZ3GS4J.js} +4 -4
- package/dist/{assign-IIAVNATI.js → assign-O6QNAZD5.js} +5 -5
- package/dist/{audience-size-2L7XMYJL.js → audience-size-CXPWERR3.js} +5 -5
- package/dist/{audit-ZCUFJLUG.js → audit-MNOQK3U4.js} +5 -5
- package/dist/{autocomplete-6PYFCOMX.js → autocomplete-TRCMPNW4.js} +10 -6
- package/dist/{autocomplete-6PYFCOMX.js.map → autocomplete-TRCMPNW4.js.map} +1 -1
- package/dist/{avatars-OEK3FYKK.js → avatars-P3WX5TQP.js} +4 -4
- package/dist/{bid-pricing-FDW3IY6G.js → bid-pricing-6XXSM7C2.js} +5 -5
- package/dist/{brand-OXYFSNA5.js → brand-LXU7YNCF.js} +2 -2
- package/dist/{brief-TBSXPEXI.js → brief-Y4F37TH5.js} +21 -22
- package/dist/{brief-TBSXPEXI.js.map → brief-Y4F37TH5.js.map} +1 -1
- package/dist/{campaign-groups-5GCFQT2W.js → campaign-groups-CEAM3WRO.js} +10 -10
- package/dist/{campaign-writes-3SJQSCUK.js → campaign-writes-D6BJAULL.js} +5 -5
- package/dist/{campaigns-SYEOFKFV.js → campaigns-CXOKBCPS.js} +13 -13
- package/dist/{campaigns-7QDDWZ76.js → campaigns-V3SWBM4E.js} +5 -5
- package/dist/{canvas-B6DPRQGN.js → canvas-VH3Q26TK.js} +14 -14
- package/dist/{capabilities-GVHPHH2G.js → capabilities-NZPSSS6T.js} +5 -5
- package/dist/{catalog-TNNG66MH.js → catalog-GWN3WT7J.js} +6 -7
- package/dist/{catalog-TNNG66MH.js.map → catalog-GWN3WT7J.js.map} +1 -1
- package/dist/{changes-6QBJMGJC.js → changes-TP7ZZHB3.js} +4 -4
- package/dist/{chats-54CWM7DL.js → chats-GN3PBFX4.js} +5 -5
- package/dist/{chunk-SKT3SAHG.js → chunk-2BKVVCCV.js} +2 -2
- package/dist/{chunk-YUPRCOEN.js → chunk-2GTYAHDN.js} +2 -2
- package/dist/{chunk-E5IFTZJ3.js → chunk-3OFVFHKT.js} +2 -2
- package/dist/{chunk-5EEDEVOR.js → chunk-4QEY2L6U.js} +2 -2
- package/dist/{chunk-7JUUKYKG.js → chunk-4Z7DEN75.js} +2 -2
- package/dist/{chunk-RCQJHKK5.js → chunk-6Y7SIP2D.js} +33 -24
- package/dist/chunk-6Y7SIP2D.js.map +1 -0
- package/dist/{chunk-GTK46DE3.js → chunk-7ED5TAFP.js} +3 -3
- package/dist/{chunk-654U6NU6.js → chunk-BNCW67EM.js} +2 -2
- package/dist/{chunk-OBDAYP2P.js → chunk-CAMX6OHF.js} +30 -3
- package/dist/chunk-CAMX6OHF.js.map +1 -0
- package/dist/{chunk-J5IU4OX2.js → chunk-CFHIW5QZ.js} +4 -4
- package/dist/{chunk-V2X3KK52.js → chunk-D6744YSX.js} +26 -6
- package/dist/chunk-D6744YSX.js.map +1 -0
- package/dist/{chunk-FGH4Z5K5.js → chunk-DQMZXK27.js} +2 -2
- package/dist/{chunk-XV6XCFF7.js → chunk-E4NCRGY3.js} +2 -2
- package/dist/{chunk-IH4UQ2OK.js → chunk-EAEOPERX.js} +18 -19
- package/dist/chunk-EAEOPERX.js.map +1 -0
- package/dist/{chunk-7FVWIZHM.js → chunk-ESB5DLIP.js} +2 -2
- package/dist/{chunk-NK2UFFVH.js → chunk-FVF5SXTZ.js} +2 -2
- package/dist/{chunk-KWAOTV7F.js → chunk-GX6VAHY7.js} +2 -2
- package/dist/{chunk-6TCDQSM7.js → chunk-GYU7BWEN.js} +3 -3
- package/dist/{chunk-HYCIBVDW.js → chunk-HZUDRKGR.js} +2 -2
- package/dist/{chunk-FYQPB2SS.js → chunk-IGQZ5U3C.js} +6 -6
- package/dist/{chunk-OAQPHP6V.js → chunk-IYU4X5A7.js} +3 -3
- package/dist/{chunk-HYUUH4BE.js → chunk-JVLAV62J.js} +27 -29
- package/dist/{chunk-HYUUH4BE.js.map → chunk-JVLAV62J.js.map} +1 -1
- package/dist/{chunk-6HJAHLLA.js → chunk-K6WVV74H.js} +96 -4
- package/dist/chunk-K6WVV74H.js.map +1 -0
- package/dist/{chunk-EPMN4BK7.js → chunk-L5J3S6B6.js} +47 -4
- package/dist/chunk-L5J3S6B6.js.map +1 -0
- package/dist/{chunk-2SCPDSFN.js → chunk-LIQ4SQ2T.js} +2 -2
- package/dist/{chunk-KMEMA7AZ.js → chunk-LLOOWRBB.js} +2 -2
- package/dist/{chunk-NSA6HRG6.js → chunk-ND5MJ3AA.js} +2 -2
- package/dist/{chunk-XML7AJM3.js → chunk-NE4F3FHN.js} +1 -1
- package/dist/chunk-NE4F3FHN.js.map +1 -0
- package/dist/{chunk-PIWMNKWI.js → chunk-NECTN6N7.js} +45 -3
- package/dist/{chunk-PIWMNKWI.js.map → chunk-NECTN6N7.js.map} +1 -1
- package/dist/{chunk-ACFWVULZ.js → chunk-NIJSXVFT.js} +3 -3
- package/dist/{chunk-H2QNBOPS.js → chunk-NJXNU2G6.js} +3 -3
- package/dist/{chunk-XDNEG2H6.js → chunk-OKJWBB2K.js} +11 -11
- package/dist/{chunk-XDNEG2H6.js.map → chunk-OKJWBB2K.js.map} +1 -1
- package/dist/{chunk-AO5UQQLJ.js → chunk-ORO7VAXB.js} +2 -2
- package/dist/{chunk-V5WSJP5A.js → chunk-OUTF5JFG.js} +3 -3
- package/dist/{chunk-XG3XCHN6.js → chunk-P5T7OZKV.js} +2 -2
- package/dist/{chunk-DE6ANJLU.js → chunk-PTCIM35Y.js} +2 -2
- package/dist/{chunk-VJZHVOA4.js → chunk-PVUZWHNQ.js} +7 -7
- package/dist/{chunk-CLMM6P6B.js → chunk-PZXCWSKV.js} +85 -6
- package/dist/chunk-PZXCWSKV.js.map +1 -0
- package/dist/{chunk-CKU4WYTF.js → chunk-QVJDPOEB.js} +2 -2
- package/dist/{chunk-KV5BCSUR.js → chunk-R5RIH3N5.js} +2 -2
- package/dist/{chunk-RB5DB3WN.js → chunk-RB5CVIK6.js} +2 -2
- package/dist/{chunk-EAHP7L2R.js → chunk-RZT263H7.js} +2 -2
- package/dist/{chunk-WYCVJIHD.js → chunk-TEINLN64.js} +13 -2
- package/dist/{chunk-WYCVJIHD.js.map → chunk-TEINLN64.js.map} +1 -1
- package/dist/{chunk-HDWKLFF5.js → chunk-TUB34FVS.js} +4 -4
- package/dist/{chunk-4SJDDGPV.js → chunk-TX7LZWZD.js} +3 -3
- package/dist/{chunk-6YYEBLYI.js → chunk-V7CTQOHG.js} +4 -4
- package/dist/{chunk-IKYNOT57.js → chunk-VNUNE5AB.js} +36 -7
- package/dist/chunk-VNUNE5AB.js.map +1 -0
- package/dist/{chunk-TBEUMOEL.js → chunk-WNFIJAUO.js} +5 -2
- package/dist/chunk-WNFIJAUO.js.map +1 -0
- package/dist/{chunk-EVYXTT7V.js → chunk-XCM6XWOB.js} +2 -2
- package/dist/{chunk-ZNBDKK4Y.js → chunk-XFGAUP5B.js} +2 -2
- package/dist/{chunk-4SNOWJV7.js → chunk-XQIKDODN.js} +2 -2
- package/dist/{chunk-WRIC2RPQ.js → chunk-XTRAI6CL.js} +2 -2
- package/dist/{chunk-3X3446TG.js → chunk-XVOI4BIS.js} +2 -2
- package/dist/{chunk-NTPXZU3V.js → chunk-ZDNOCKKY.js} +12 -3
- package/dist/{chunk-NTPXZU3V.js.map → chunk-ZDNOCKKY.js.map} +1 -1
- package/dist/{chunk-F46KAIBS.js → chunk-ZGTCZ6H4.js} +3 -3
- package/dist/{chunk-5VC6IK7B.js → chunk-ZJLETAOO.js} +106 -12
- package/dist/chunk-ZJLETAOO.js.map +1 -0
- package/dist/{claim-CIASHKMC.js → claim-25JJM4AG.js} +5 -5
- package/dist/cli.js +29 -29
- package/dist/{companies-ECVMO24S.js → companies-VR5M5PAN.js} +5 -5
- package/dist/{complete-32CPBFIG.js → complete-DRMOTC2W.js} +5 -5
- package/dist/{connect-OJSOM6PY.js → connect-WUDJR2GH.js} +12 -8
- package/dist/{conversation-7FHN5ESN.js → conversation-K6LYF2ZP.js} +5 -5
- package/dist/{conversion-upload-command-BBUXLFT3.js → conversion-upload-command-AUF3LNTH.js} +4 -4
- package/dist/{conversions-7YJDNZ7Y.js → conversions-GF32XOWY.js} +9 -9
- package/dist/{countries-FYHM3IMJ.js → countries-ESAKTQAE.js} +2 -2
- package/dist/{create-OYT76OMJ.js → create-2D7AIFJI.js} +5 -5
- package/dist/{create-ZGRL7YCV.js → create-4TFAD6HY.js} +5 -5
- package/dist/{create-FE5QLW7V.js → create-IXYXYLLE.js} +4 -4
- package/dist/{create-2TBDXHAM.js → create-PKJVFJMO.js} +5 -5
- package/dist/{creatives-IUB57I3T.js → creatives-OHCFHRZ5.js} +10 -10
- package/dist/{creatives-5MUTX4DQ.js → creatives-QLSZFOMB.js} +10 -10
- package/dist/{credentials-AETHKP5T.js → credentials-WSLR5VU4.js} +5 -5
- package/dist/{critique-T7HJ42D4.js → critique-5PCQ2CJH.js} +5 -5
- package/dist/{critique-C53EJDPA.js → critique-WDO6SKK2.js} +13 -14
- package/dist/{critique-C53EJDPA.js.map → critique-WDO6SKK2.js.map} +1 -1
- package/dist/{crm-KH6XX2TT.js → crm-HNUOHXAN.js} +6 -6
- package/dist/{crm-JP4UOPMN.js → crm-SNIUADNK.js} +6 -6
- package/dist/{currency-DJDVIR3C.js → currency-XCGKQ7FE.js} +4 -4
- package/dist/{customers-7I7UY5PS.js → customers-72L2KZHO.js} +9 -9
- package/dist/{delete-6IOUDEWY.js → delete-EVGM5B36.js} +5 -5
- package/dist/{delete-ODFKNHAI.js → delete-PA2GY5EC.js} +5 -5
- package/dist/{delete-RAETUVO2.js → delete-YNNFTFYV.js} +4 -4
- package/dist/{demographics-2FTDKPBD.js → demographics-SYS2E7QC.js} +5 -5
- package/dist/{discard-ZX5TLFYH.js → discard-JS2YJUIM.js} +5 -5
- package/dist/{discover-M3ZKKFEL.js → discover-BJPZNXUQ.js} +4 -4
- package/dist/{domain-TH7KIC2T.js → domain-XKKH5NCL.js} +5 -5
- package/dist/{draft-YHUIFDDR.js → draft-4AO4YH3V.js} +6 -6
- package/dist/{draft-SH25PKST.js → draft-5YAYCEYY.js} +4 -4
- package/dist/{draft-S2FSQOJN.js → draft-GCUXNPVH.js} +5 -5
- package/dist/{draft-CRE2Y24G.js → draft-WWWKSEEE.js} +5 -5
- package/dist/engine/index.js +5 -6
- package/dist/{facets-6B2U4BSM.js → facets-NVBX5WDT.js} +5 -5
- package/dist/{feedback-QGSAJJVC.js → feedback-OGAPR45R.js} +3 -3
- package/dist/feedback-OGAPR45R.js.map +1 -0
- package/dist/{feedback-record-NUAJ6UBL.js → feedback-record-GVXGDY5Y.js} +15 -16
- package/dist/feedback-record-GVXGDY5Y.js.map +1 -0
- package/dist/{fetch-UTTJAOLC.js → fetch-U4TJIHZU.js} +8 -3
- package/dist/{fetch-UTTJAOLC.js.map → fetch-U4TJIHZU.js.map} +1 -1
- package/dist/{fit-FJ5CLQS4.js → fit-BOQL6OK3.js} +7 -5
- package/dist/{flows-OGGSWWGT.js → flows-XVZJ6GOI.js} +39 -19
- package/dist/flows-XVZJ6GOI.js.map +1 -0
- package/dist/{follow-DUIEGDVK.js → follow-FN7LV3WV.js} +2 -2
- package/dist/{follow-competitors-IT5ZVJPE.js → follow-competitors-MKXFHLXB.js} +2 -2
- package/dist/{fonts-GCJRLEGD.js → fonts-64T6KRZS.js} +7 -7
- package/dist/{forecast-2AGTFMXH.js → forecast-YIIGTHRM.js} +5 -5
- package/dist/{funnel-7U55LNJ4.js → funnel-XHDCXXQ5.js} +6 -6
- package/dist/{generate-DMQUS665.js → generate-3XYYITU6.js} +3 -3
- package/dist/{get-N7FR6NFX.js → get-6RQFDAIN.js} +8 -6
- package/dist/get-6RQFDAIN.js.map +1 -0
- package/dist/{get-IRJIHOQK.js → get-XJ3AZX35.js} +5 -5
- package/dist/{google-NYRI2NDZ.js → google-M7KEXVK5.js} +18 -18
- package/dist/{google-NYRI2NDZ.js.map → google-M7KEXVK5.js.map} +1 -1
- package/dist/google-ads-7XAGJVNJ.js +195 -0
- package/dist/google-ads-7XAGJVNJ.js.map +1 -0
- package/dist/{history-PSNJAUTW.js → history-EUG4LE44.js} +5 -5
- package/dist/{hubspot-2NHL47R2.js → hubspot-UULVEYVO.js} +9 -9
- package/dist/{ideas-22MRXKT7.js → ideas-7LXYXS5G.js} +6 -6
- package/dist/{images-LXFWEON7.js → images-3SOTFMJV.js} +4 -4
- package/dist/{ingest-W7VEDEYD.js → ingest-HQUXSBWA.js} +4 -4
- package/dist/{ingest-ZN3DEZHY.js → ingest-HYSZC3EX.js} +5 -5
- package/dist/{inspect-3LBIHMMP.js → inspect-HZQ7GSVM.js} +5 -5
- package/dist/{inspiration-I4MMKAWA.js → inspiration-P265QJ2H.js} +1 -1
- package/dist/{intent-ICKFJRT2.js → intent-E3UIVZBN.js} +5 -5
- package/dist/{keyword-gap-NGPH32FN.js → keyword-gap-BG6M665A.js} +5 -5
- package/dist/{keyword-metrics-PZXFB4NG.js → keyword-metrics-YG3K7MQZ.js} +8 -8
- package/dist/{keywords-for-site-RH47P4GJ.js → keywords-for-site-V4K744TF.js} +10 -6
- package/dist/{keywords-for-site-RH47P4GJ.js.map → keywords-for-site-V4K744TF.js.map} +1 -1
- package/dist/{landing-D7QS42GK.js → landing-3SSX6WK6.js} +3 -3
- package/dist/{languages-JDYL2N5F.js → languages-HORKPDNH.js} +4 -4
- package/dist/{languages-JMVNOHMG.js → languages-JSGWCC7Z.js} +2 -2
- package/dist/{leads-E22XFSX2.js → leads-FAHQ6KJX.js} +5 -5
- package/dist/{learn-Y4KIZNRF.js → learn-XNHGNQE5.js} +13 -14
- package/dist/{learn-Y4KIZNRF.js.map → learn-XNHGNQE5.js.map} +1 -1
- package/dist/{lighthouse-NQBUCHTW.js → lighthouse-6ZC45E53.js} +2 -2
- package/dist/{line-item-writes-KA5PVKFO.js → line-item-writes-A6BPZQPL.js} +5 -5
- package/dist/{line-items-3ZFFZCNH.js → line-items-J7PXJHMD.js} +5 -5
- package/dist/{link-AEU6BV75.js → link-4GGAQAVH.js} +5 -5
- package/dist/{linkedin-WCB2H5NH.js → linkedin-I6JDSTRB.js} +28 -28
- package/dist/{list-OLX7AI3O.js → list-22HZ2S4W.js} +5 -5
- package/dist/{list-TOUUGHMS.js → list-AQMGXI4N.js} +5 -5
- package/dist/{list-PAMYQS4X.js → list-KAJZFHMN.js} +4 -4
- package/dist/{locations-S4U6IJIS.js → locations-J4G5RNPH.js} +4 -4
- package/dist/{log-UGVWSK7Z.js → log-MUPKKYSJ.js} +5 -5
- package/dist/{make-3PZLTEXT.js → make-3FO76LA7.js} +131 -54
- package/dist/make-3FO76LA7.js.map +1 -0
- package/dist/{map-BW4CHSIO.js → map-F4LXTAJV.js} +6 -6
- package/dist/{mcp-JOXKA5HY.js → mcp-NLAQJWG6.js} +4 -4
- package/dist/{media-sources-SJZUOMI2.js → media-sources-W2CQFSVQ.js} +2 -2
- package/dist/{members-VAX6KAFN.js → members-3U6GINDF.js} +5 -5
- package/dist/{metrics-AY4RP54F.js → metrics-SQDJ5NQO.js} +4 -4
- package/dist/{models-5NTC7A5G.js → models-3Z6MDHQW.js} +2 -2
- package/dist/{normalize-IVQ7I54Z.js → normalize-FQ6WP5E4.js} +5 -5
- package/dist/{options-V7C6CU6M.js → options-K6FNT5A3.js} +8 -8
- package/dist/{performance-L6RJZPXX.js → performance-ZA7VCHOU.js} +6 -6
- package/dist/{promoted-tweet-writes-DBATH765.js → promoted-tweet-writes-4H3ZFD6O.js} +5 -5
- package/dist/{promoted-tweets-AU3XF3JD.js → promoted-tweets-MCMKPIHM.js} +3 -3
- package/dist/{publish-G6DYVT4S.js → publish-CW5YSAAL.js} +5 -5
- package/dist/{query-CPZZNMDY.js → query-IEZRY6HV.js} +4 -4
- package/dist/{reddit-S2S6C4RT.js → reddit-P7LLO4TK.js} +7 -7
- package/dist/{refresh-ARJ2SOMY.js → refresh-IGHEOA6Y.js} +4 -4
- package/dist/{release-3WCBAHPO.js → release-C74JOYDA.js} +5 -5
- package/dist/{relevant-pages-MTMFMBPD.js → relevant-pages-OWMNUCP7.js} +5 -5
- package/dist/{remove-FUAARCSC.js → remove-HPN62MPQ.js} +4 -4
- package/dist/{reopen-PZI5H4X2.js → reopen-XI53RP7R.js} +5 -5
- package/dist/{rerun-AUP4XT6T.js → rerun-2ITYGAIT.js} +21 -22
- package/dist/{rerun-AUP4XT6T.js.map → rerun-2ITYGAIT.js.map} +1 -1
- package/dist/{research-SY3QRGOC.js → research-HAHUTFVJ.js} +4 -4
- package/dist/{research-TISR736S.js → research-O6QXFCD7.js} +18 -15
- package/dist/research-O6QXFCD7.js.map +1 -0
- package/dist/{reset-ZWM7DDD7.js → reset-BISRUHT4.js} +4 -4
- package/dist/{reset-E6F5NXOI.js → reset-YMKVEOS4.js} +4 -4
- package/dist/{resolve-I5R5ELMZ.js → resolve-D2VESQ45.js} +5 -5
- package/dist/{retry-JO3JXXT2.js → retry-CGBATPQX.js} +4 -4
- package/dist/{retry-7CFZTKWI.js → retry-SUKRXBHX.js} +4 -4
- package/dist/{run-UKB647DI.js → run-BFERU46Q.js} +5 -5
- package/dist/{run-JR6SILHL.js → run-HSZFWRYZ.js} +21 -22
- package/dist/{scaffold-ad-BYGVU7MT.js → scaffold-ad-BYQYVB2C.js} +21 -22
- package/dist/{scaffold-ad-BYGVU7MT.js.map → scaffold-ad-BYQYVB2C.js.map} +1 -1
- package/dist/{scaffold-static-ad-U57V5UV3.js → scaffold-static-ad-5MXVTMEE.js} +70 -52
- package/dist/scaffold-static-ad-5MXVTMEE.js.map +1 -0
- package/dist/{scaffold-video-POZTINEV.js → scaffold-video-KEIHX3UD.js} +17 -18
- package/dist/{scaffold-video-POZTINEV.js.map → scaffold-video-KEIHX3UD.js.map} +1 -1
- package/dist/{schedule-SOAHLZZF.js → schedule-XJ24PL3K.js} +4 -4
- package/dist/{scheduled-agents-K5WU7SVJ.js → scheduled-agents-HWEKBANT.js} +11 -11
- package/dist/{schema-SOPL6GJP.js → schema-TAAAJHOJ.js} +6 -6
- package/dist/{search-5VUDFOHI.js → search-NVCIIGQS.js} +4 -4
- package/dist/{search-XUIVHGAY.js → search-UO5KJTYS.js} +3 -3
- package/dist/{select-T36UH4HL.js → select-K3EMTTI3.js} +14 -15
- package/dist/{select-T36UH4HL.js.map → select-K3EMTTI3.js.map} +1 -1
- package/dist/{set-prompt-Y4X7GV2Q.js → set-prompt-PY7FWYX6.js} +14 -15
- package/dist/{set-prompt-Y4X7GV2Q.js.map → set-prompt-PY7FWYX6.js.map} +1 -1
- package/dist/{setup-links-KFROCISS.js → setup-links-5ZCASHAL.js} +5 -5
- package/dist/{site-MXPKMRQT.js → site-7PSCHITE.js} +6 -6
- package/dist/{sources-MLDLMEDT.js → sources-GEB6OEGY.js} +8 -8
- package/dist/{sources-FFHNWVLV.js → sources-ICMUQMCJ.js} +6 -6
- package/dist/{stale-UXL4X4AD.js → stale-KBY5WARW.js} +13 -14
- package/dist/{stale-UXL4X4AD.js.map → stale-KBY5WARW.js.map} +1 -1
- package/dist/{status-M47G5HD4.js → status-ZX5WM5PJ.js} +5 -5
- package/dist/{studio-HUEBE6DS.js → studio-RA7QQH4O.js} +4 -4
- package/dist/{sync-HS7VZJ2H.js → sync-TZNIPZRX.js} +4 -4
- package/dist/{sync-definition-PY6REQ4J.js → sync-definition-ADXXWWV5.js} +16 -17
- package/dist/{tag-manager-HREEYGVM.js → tag-manager-DYZUOIAS.js} +1 -1
- package/dist/{tags-WAW6MQAY.js → tags-4OZCALA3.js} +5 -5
- package/dist/{tags-MRG56YOE.js → tags-4PXXFIPU.js} +4 -4
- package/dist/{tags-DYRZTYHD.js → tags-KFVUEPL6.js} +5 -5
- package/dist/{tags-DIXLYB5P.js → tags-TESETZGC.js} +4 -4
- package/dist/{tags-Y4HHJJGE.js → tags-WIMUIZHU.js} +5 -5
- package/dist/{targeting-criteria-5UUESFWC.js → targeting-criteria-VRI7V6C5.js} +3 -3
- package/dist/{targets-COZPVG52.js → targets-ERVS2VEU.js} +5 -5
- package/dist/{templates-75VFYZ3E.js → templates-TE6LBUIP.js} +5 -5
- package/dist/{testimonials-WJBRWLNW.js → testimonials-FV7KPAPK.js} +6 -6
- package/dist/{top-companies-C2R4FG6H.js → top-companies-B5M43KGJ.js} +5 -5
- package/dist/{translate-RYAJAFV7.js → translate-OKADZCBC.js} +19 -20
- package/dist/{translate-RYAJAFV7.js.map → translate-OKADZCBC.js.map} +1 -1
- package/dist/{triggers-5UHVJPBV.js → triggers-JLJQOSKI.js} +5 -5
- package/dist/{unlink-PLOOAGM3.js → unlink-KMWDKVIC.js} +5 -5
- package/dist/{unstage-JIIOTBTF.js → unstage-M4IQKJIO.js} +5 -5
- package/dist/{update-RGVNTA5X.js → update-5MBR4TPK.js} +4 -4
- package/dist/{update-QYM6U7LL.js → update-AHDGHOCP.js} +5 -5
- package/dist/{update-G6R5ZHUI.js → update-K6LFJHNI.js} +5 -5
- package/dist/{update-RCP7F5L5.js → update-PNRNYXUW.js} +5 -5
- package/dist/{upload-EEJ34Q3Y.js → upload-KAQC4AH7.js} +5 -5
- package/dist/{url-options-QEWKRKZ3.js → url-options-GGXAL3J4.js} +4 -4
- package/dist/{url-params-2G5M2B3J.js → url-params-SM32OOXZ.js} +5 -5
- package/dist/{validate-M33VLUG4.js → validate-NCTK5BXD.js} +14 -15
- package/dist/{validate-M33VLUG4.js.map → validate-NCTK5BXD.js.map} +1 -1
- package/dist/{videos-FVVID55J.js → videos-A32DPGHD.js} +5 -5
- package/dist/{viewer-check-2Q3WHSEL.js → viewer-check-L4B4LIAX.js} +4 -5
- package/dist/{web-WUGLSULO.js → web-TZEIFUYY.js} +8 -3
- package/dist/{web-WUGLSULO.js.map → web-TZEIFUYY.js.map} +1 -1
- package/dist/{winning-ads-OSRFHVLV.js → winning-ads-THIR7E5S.js} +6 -6
- package/dist/{write-commands-CLJOD2XF.js → write-commands-CE4FIQ6Y.js} +6 -6
- package/dist/{x-EBKLJJPJ.js → x-YXABYM5U.js} +6 -6
- package/package.json +1 -1
- package/dist/add-VZAY57M4.js.map +0 -1
- package/dist/advertisers-WSNHNCBQ.js.map +0 -1
- package/dist/chunk-5VC6IK7B.js.map +0 -1
- package/dist/chunk-6HJAHLLA.js.map +0 -1
- package/dist/chunk-CLMM6P6B.js.map +0 -1
- package/dist/chunk-EPMN4BK7.js.map +0 -1
- package/dist/chunk-HO3IUJ4K.js +0 -70
- package/dist/chunk-HO3IUJ4K.js.map +0 -1
- package/dist/chunk-IH4UQ2OK.js.map +0 -1
- package/dist/chunk-IKYNOT57.js.map +0 -1
- package/dist/chunk-OBDAYP2P.js.map +0 -1
- package/dist/chunk-RCQJHKK5.js.map +0 -1
- package/dist/chunk-TBEUMOEL.js.map +0 -1
- package/dist/chunk-V2X3KK52.js.map +0 -1
- package/dist/chunk-XML7AJM3.js.map +0 -1
- package/dist/feedback-QGSAJJVC.js.map +0 -1
- package/dist/feedback-record-NUAJ6UBL.js.map +0 -1
- package/dist/flows-OGGSWWGT.js.map +0 -1
- package/dist/get-N7FR6NFX.js.map +0 -1
- package/dist/make-3PZLTEXT.js.map +0 -1
- package/dist/research-TISR736S.js.map +0 -1
- package/dist/scaffold-static-ad-U57V5UV3.js.map +0 -1
- /package/dist/{account-PCEZQUK7.js.map → account-DTHGTZCN.js.map} +0 -0
- /package/dist/{accounts-5AXLYU7P.js.map → accounts-5RLG6BBA.js.map} +0 -0
- /package/dist/{accounts-OSXDZZLY.js.map → accounts-6LSBBXKA.js.map} +0 -0
- /package/dist/{actions-HM4VVTGW.js.map → actions-WH5C6Q7I.js.map} +0 -0
- /package/dist/{add-4J2EF54O.js.map → add-BZ4QPLK4.js.map} +0 -0
- /package/dist/{ads-NUME2UXH.js.map → ads-6UG66KA5.js.map} +0 -0
- /package/dist/{analytics-QTR2ZITZ.js.map → analytics-3YAWQF5K.js.map} +0 -0
- /package/dist/{analytics-PHU7H5VY.js.map → analytics-BCZGSSXP.js.map} +0 -0
- /package/dist/{animate-3Z7HXOLE.js.map → animate-AIZ3GS4J.js.map} +0 -0
- /package/dist/{assign-IIAVNATI.js.map → assign-O6QNAZD5.js.map} +0 -0
- /package/dist/{audience-size-2L7XMYJL.js.map → audience-size-CXPWERR3.js.map} +0 -0
- /package/dist/{audit-ZCUFJLUG.js.map → audit-MNOQK3U4.js.map} +0 -0
- /package/dist/{avatars-OEK3FYKK.js.map → avatars-P3WX5TQP.js.map} +0 -0
- /package/dist/{bid-pricing-FDW3IY6G.js.map → bid-pricing-6XXSM7C2.js.map} +0 -0
- /package/dist/{brand-OXYFSNA5.js.map → brand-LXU7YNCF.js.map} +0 -0
- /package/dist/{campaign-groups-5GCFQT2W.js.map → campaign-groups-CEAM3WRO.js.map} +0 -0
- /package/dist/{campaign-writes-3SJQSCUK.js.map → campaign-writes-D6BJAULL.js.map} +0 -0
- /package/dist/{campaigns-SYEOFKFV.js.map → campaigns-CXOKBCPS.js.map} +0 -0
- /package/dist/{campaigns-7QDDWZ76.js.map → campaigns-V3SWBM4E.js.map} +0 -0
- /package/dist/{canvas-B6DPRQGN.js.map → canvas-VH3Q26TK.js.map} +0 -0
- /package/dist/{capabilities-GVHPHH2G.js.map → capabilities-NZPSSS6T.js.map} +0 -0
- /package/dist/{changes-6QBJMGJC.js.map → changes-TP7ZZHB3.js.map} +0 -0
- /package/dist/{chats-54CWM7DL.js.map → chats-GN3PBFX4.js.map} +0 -0
- /package/dist/{chunk-SKT3SAHG.js.map → chunk-2BKVVCCV.js.map} +0 -0
- /package/dist/{chunk-YUPRCOEN.js.map → chunk-2GTYAHDN.js.map} +0 -0
- /package/dist/{chunk-E5IFTZJ3.js.map → chunk-3OFVFHKT.js.map} +0 -0
- /package/dist/{chunk-5EEDEVOR.js.map → chunk-4QEY2L6U.js.map} +0 -0
- /package/dist/{chunk-7JUUKYKG.js.map → chunk-4Z7DEN75.js.map} +0 -0
- /package/dist/{chunk-GTK46DE3.js.map → chunk-7ED5TAFP.js.map} +0 -0
- /package/dist/{chunk-654U6NU6.js.map → chunk-BNCW67EM.js.map} +0 -0
- /package/dist/{chunk-J5IU4OX2.js.map → chunk-CFHIW5QZ.js.map} +0 -0
- /package/dist/{chunk-FGH4Z5K5.js.map → chunk-DQMZXK27.js.map} +0 -0
- /package/dist/{chunk-XV6XCFF7.js.map → chunk-E4NCRGY3.js.map} +0 -0
- /package/dist/{chunk-7FVWIZHM.js.map → chunk-ESB5DLIP.js.map} +0 -0
- /package/dist/{chunk-NK2UFFVH.js.map → chunk-FVF5SXTZ.js.map} +0 -0
- /package/dist/{chunk-KWAOTV7F.js.map → chunk-GX6VAHY7.js.map} +0 -0
- /package/dist/{chunk-6TCDQSM7.js.map → chunk-GYU7BWEN.js.map} +0 -0
- /package/dist/{chunk-HYCIBVDW.js.map → chunk-HZUDRKGR.js.map} +0 -0
- /package/dist/{chunk-FYQPB2SS.js.map → chunk-IGQZ5U3C.js.map} +0 -0
- /package/dist/{chunk-OAQPHP6V.js.map → chunk-IYU4X5A7.js.map} +0 -0
- /package/dist/{chunk-2SCPDSFN.js.map → chunk-LIQ4SQ2T.js.map} +0 -0
- /package/dist/{chunk-KMEMA7AZ.js.map → chunk-LLOOWRBB.js.map} +0 -0
- /package/dist/{chunk-NSA6HRG6.js.map → chunk-ND5MJ3AA.js.map} +0 -0
- /package/dist/{chunk-ACFWVULZ.js.map → chunk-NIJSXVFT.js.map} +0 -0
- /package/dist/{chunk-H2QNBOPS.js.map → chunk-NJXNU2G6.js.map} +0 -0
- /package/dist/{chunk-AO5UQQLJ.js.map → chunk-ORO7VAXB.js.map} +0 -0
- /package/dist/{chunk-V5WSJP5A.js.map → chunk-OUTF5JFG.js.map} +0 -0
- /package/dist/{chunk-XG3XCHN6.js.map → chunk-P5T7OZKV.js.map} +0 -0
- /package/dist/{chunk-DE6ANJLU.js.map → chunk-PTCIM35Y.js.map} +0 -0
- /package/dist/{chunk-VJZHVOA4.js.map → chunk-PVUZWHNQ.js.map} +0 -0
- /package/dist/{chunk-CKU4WYTF.js.map → chunk-QVJDPOEB.js.map} +0 -0
- /package/dist/{chunk-KV5BCSUR.js.map → chunk-R5RIH3N5.js.map} +0 -0
- /package/dist/{chunk-RB5DB3WN.js.map → chunk-RB5CVIK6.js.map} +0 -0
- /package/dist/{chunk-EAHP7L2R.js.map → chunk-RZT263H7.js.map} +0 -0
- /package/dist/{chunk-HDWKLFF5.js.map → chunk-TUB34FVS.js.map} +0 -0
- /package/dist/{chunk-4SJDDGPV.js.map → chunk-TX7LZWZD.js.map} +0 -0
- /package/dist/{chunk-6YYEBLYI.js.map → chunk-V7CTQOHG.js.map} +0 -0
- /package/dist/{chunk-EVYXTT7V.js.map → chunk-XCM6XWOB.js.map} +0 -0
- /package/dist/{chunk-ZNBDKK4Y.js.map → chunk-XFGAUP5B.js.map} +0 -0
- /package/dist/{chunk-4SNOWJV7.js.map → chunk-XQIKDODN.js.map} +0 -0
- /package/dist/{chunk-WRIC2RPQ.js.map → chunk-XTRAI6CL.js.map} +0 -0
- /package/dist/{chunk-3X3446TG.js.map → chunk-XVOI4BIS.js.map} +0 -0
- /package/dist/{chunk-F46KAIBS.js.map → chunk-ZGTCZ6H4.js.map} +0 -0
- /package/dist/{claim-CIASHKMC.js.map → claim-25JJM4AG.js.map} +0 -0
- /package/dist/{companies-ECVMO24S.js.map → companies-VR5M5PAN.js.map} +0 -0
- /package/dist/{complete-32CPBFIG.js.map → complete-DRMOTC2W.js.map} +0 -0
- /package/dist/{connect-OJSOM6PY.js.map → connect-WUDJR2GH.js.map} +0 -0
- /package/dist/{conversation-7FHN5ESN.js.map → conversation-K6LYF2ZP.js.map} +0 -0
- /package/dist/{conversion-upload-command-BBUXLFT3.js.map → conversion-upload-command-AUF3LNTH.js.map} +0 -0
- /package/dist/{conversions-7YJDNZ7Y.js.map → conversions-GF32XOWY.js.map} +0 -0
- /package/dist/{countries-FYHM3IMJ.js.map → countries-ESAKTQAE.js.map} +0 -0
- /package/dist/{create-OYT76OMJ.js.map → create-2D7AIFJI.js.map} +0 -0
- /package/dist/{create-ZGRL7YCV.js.map → create-4TFAD6HY.js.map} +0 -0
- /package/dist/{create-FE5QLW7V.js.map → create-IXYXYLLE.js.map} +0 -0
- /package/dist/{create-2TBDXHAM.js.map → create-PKJVFJMO.js.map} +0 -0
- /package/dist/{creatives-IUB57I3T.js.map → creatives-OHCFHRZ5.js.map} +0 -0
- /package/dist/{creatives-5MUTX4DQ.js.map → creatives-QLSZFOMB.js.map} +0 -0
- /package/dist/{credentials-AETHKP5T.js.map → credentials-WSLR5VU4.js.map} +0 -0
- /package/dist/{critique-T7HJ42D4.js.map → critique-5PCQ2CJH.js.map} +0 -0
- /package/dist/{crm-KH6XX2TT.js.map → crm-HNUOHXAN.js.map} +0 -0
- /package/dist/{crm-JP4UOPMN.js.map → crm-SNIUADNK.js.map} +0 -0
- /package/dist/{currency-DJDVIR3C.js.map → currency-XCGKQ7FE.js.map} +0 -0
- /package/dist/{customers-7I7UY5PS.js.map → customers-72L2KZHO.js.map} +0 -0
- /package/dist/{delete-6IOUDEWY.js.map → delete-EVGM5B36.js.map} +0 -0
- /package/dist/{delete-ODFKNHAI.js.map → delete-PA2GY5EC.js.map} +0 -0
- /package/dist/{delete-RAETUVO2.js.map → delete-YNNFTFYV.js.map} +0 -0
- /package/dist/{demographics-2FTDKPBD.js.map → demographics-SYS2E7QC.js.map} +0 -0
- /package/dist/{discard-ZX5TLFYH.js.map → discard-JS2YJUIM.js.map} +0 -0
- /package/dist/{discover-M3ZKKFEL.js.map → discover-BJPZNXUQ.js.map} +0 -0
- /package/dist/{domain-TH7KIC2T.js.map → domain-XKKH5NCL.js.map} +0 -0
- /package/dist/{draft-YHUIFDDR.js.map → draft-4AO4YH3V.js.map} +0 -0
- /package/dist/{draft-SH25PKST.js.map → draft-5YAYCEYY.js.map} +0 -0
- /package/dist/{draft-S2FSQOJN.js.map → draft-GCUXNPVH.js.map} +0 -0
- /package/dist/{draft-CRE2Y24G.js.map → draft-WWWKSEEE.js.map} +0 -0
- /package/dist/{facets-6B2U4BSM.js.map → facets-NVBX5WDT.js.map} +0 -0
- /package/dist/{fit-FJ5CLQS4.js.map → fit-BOQL6OK3.js.map} +0 -0
- /package/dist/{follow-DUIEGDVK.js.map → follow-FN7LV3WV.js.map} +0 -0
- /package/dist/{follow-competitors-IT5ZVJPE.js.map → follow-competitors-MKXFHLXB.js.map} +0 -0
- /package/dist/{fonts-GCJRLEGD.js.map → fonts-64T6KRZS.js.map} +0 -0
- /package/dist/{forecast-2AGTFMXH.js.map → forecast-YIIGTHRM.js.map} +0 -0
- /package/dist/{funnel-7U55LNJ4.js.map → funnel-XHDCXXQ5.js.map} +0 -0
- /package/dist/{generate-DMQUS665.js.map → generate-3XYYITU6.js.map} +0 -0
- /package/dist/{get-IRJIHOQK.js.map → get-XJ3AZX35.js.map} +0 -0
- /package/dist/{history-PSNJAUTW.js.map → history-EUG4LE44.js.map} +0 -0
- /package/dist/{hubspot-2NHL47R2.js.map → hubspot-UULVEYVO.js.map} +0 -0
- /package/dist/{ideas-22MRXKT7.js.map → ideas-7LXYXS5G.js.map} +0 -0
- /package/dist/{images-LXFWEON7.js.map → images-3SOTFMJV.js.map} +0 -0
- /package/dist/{ingest-W7VEDEYD.js.map → ingest-HQUXSBWA.js.map} +0 -0
- /package/dist/{ingest-ZN3DEZHY.js.map → ingest-HYSZC3EX.js.map} +0 -0
- /package/dist/{inspect-3LBIHMMP.js.map → inspect-HZQ7GSVM.js.map} +0 -0
- /package/dist/{inspiration-I4MMKAWA.js.map → inspiration-P265QJ2H.js.map} +0 -0
- /package/dist/{intent-ICKFJRT2.js.map → intent-E3UIVZBN.js.map} +0 -0
- /package/dist/{keyword-gap-NGPH32FN.js.map → keyword-gap-BG6M665A.js.map} +0 -0
- /package/dist/{keyword-metrics-PZXFB4NG.js.map → keyword-metrics-YG3K7MQZ.js.map} +0 -0
- /package/dist/{landing-D7QS42GK.js.map → landing-3SSX6WK6.js.map} +0 -0
- /package/dist/{languages-JDYL2N5F.js.map → languages-HORKPDNH.js.map} +0 -0
- /package/dist/{languages-JMVNOHMG.js.map → languages-JSGWCC7Z.js.map} +0 -0
- /package/dist/{leads-E22XFSX2.js.map → leads-FAHQ6KJX.js.map} +0 -0
- /package/dist/{lighthouse-NQBUCHTW.js.map → lighthouse-6ZC45E53.js.map} +0 -0
- /package/dist/{line-item-writes-KA5PVKFO.js.map → line-item-writes-A6BPZQPL.js.map} +0 -0
- /package/dist/{line-items-3ZFFZCNH.js.map → line-items-J7PXJHMD.js.map} +0 -0
- /package/dist/{link-AEU6BV75.js.map → link-4GGAQAVH.js.map} +0 -0
- /package/dist/{linkedin-WCB2H5NH.js.map → linkedin-I6JDSTRB.js.map} +0 -0
- /package/dist/{list-OLX7AI3O.js.map → list-22HZ2S4W.js.map} +0 -0
- /package/dist/{list-TOUUGHMS.js.map → list-AQMGXI4N.js.map} +0 -0
- /package/dist/{list-PAMYQS4X.js.map → list-KAJZFHMN.js.map} +0 -0
- /package/dist/{locations-S4U6IJIS.js.map → locations-J4G5RNPH.js.map} +0 -0
- /package/dist/{log-UGVWSK7Z.js.map → log-MUPKKYSJ.js.map} +0 -0
- /package/dist/{map-BW4CHSIO.js.map → map-F4LXTAJV.js.map} +0 -0
- /package/dist/{mcp-JOXKA5HY.js.map → mcp-NLAQJWG6.js.map} +0 -0
- /package/dist/{media-sources-SJZUOMI2.js.map → media-sources-W2CQFSVQ.js.map} +0 -0
- /package/dist/{members-VAX6KAFN.js.map → members-3U6GINDF.js.map} +0 -0
- /package/dist/{metrics-AY4RP54F.js.map → metrics-SQDJ5NQO.js.map} +0 -0
- /package/dist/{models-5NTC7A5G.js.map → models-3Z6MDHQW.js.map} +0 -0
- /package/dist/{normalize-IVQ7I54Z.js.map → normalize-FQ6WP5E4.js.map} +0 -0
- /package/dist/{options-V7C6CU6M.js.map → options-K6FNT5A3.js.map} +0 -0
- /package/dist/{performance-L6RJZPXX.js.map → performance-ZA7VCHOU.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-DBATH765.js.map → promoted-tweet-writes-4H3ZFD6O.js.map} +0 -0
- /package/dist/{promoted-tweets-AU3XF3JD.js.map → promoted-tweets-MCMKPIHM.js.map} +0 -0
- /package/dist/{publish-G6DYVT4S.js.map → publish-CW5YSAAL.js.map} +0 -0
- /package/dist/{query-CPZZNMDY.js.map → query-IEZRY6HV.js.map} +0 -0
- /package/dist/{reddit-S2S6C4RT.js.map → reddit-P7LLO4TK.js.map} +0 -0
- /package/dist/{refresh-ARJ2SOMY.js.map → refresh-IGHEOA6Y.js.map} +0 -0
- /package/dist/{release-3WCBAHPO.js.map → release-C74JOYDA.js.map} +0 -0
- /package/dist/{relevant-pages-MTMFMBPD.js.map → relevant-pages-OWMNUCP7.js.map} +0 -0
- /package/dist/{remove-FUAARCSC.js.map → remove-HPN62MPQ.js.map} +0 -0
- /package/dist/{reopen-PZI5H4X2.js.map → reopen-XI53RP7R.js.map} +0 -0
- /package/dist/{research-SY3QRGOC.js.map → research-HAHUTFVJ.js.map} +0 -0
- /package/dist/{reset-ZWM7DDD7.js.map → reset-BISRUHT4.js.map} +0 -0
- /package/dist/{reset-E6F5NXOI.js.map → reset-YMKVEOS4.js.map} +0 -0
- /package/dist/{resolve-I5R5ELMZ.js.map → resolve-D2VESQ45.js.map} +0 -0
- /package/dist/{retry-JO3JXXT2.js.map → retry-CGBATPQX.js.map} +0 -0
- /package/dist/{retry-7CFZTKWI.js.map → retry-SUKRXBHX.js.map} +0 -0
- /package/dist/{run-UKB647DI.js.map → run-BFERU46Q.js.map} +0 -0
- /package/dist/{run-JR6SILHL.js.map → run-HSZFWRYZ.js.map} +0 -0
- /package/dist/{schedule-SOAHLZZF.js.map → schedule-XJ24PL3K.js.map} +0 -0
- /package/dist/{scheduled-agents-K5WU7SVJ.js.map → scheduled-agents-HWEKBANT.js.map} +0 -0
- /package/dist/{schema-SOPL6GJP.js.map → schema-TAAAJHOJ.js.map} +0 -0
- /package/dist/{search-5VUDFOHI.js.map → search-NVCIIGQS.js.map} +0 -0
- /package/dist/{search-XUIVHGAY.js.map → search-UO5KJTYS.js.map} +0 -0
- /package/dist/{setup-links-KFROCISS.js.map → setup-links-5ZCASHAL.js.map} +0 -0
- /package/dist/{site-MXPKMRQT.js.map → site-7PSCHITE.js.map} +0 -0
- /package/dist/{sources-MLDLMEDT.js.map → sources-GEB6OEGY.js.map} +0 -0
- /package/dist/{sources-FFHNWVLV.js.map → sources-ICMUQMCJ.js.map} +0 -0
- /package/dist/{status-M47G5HD4.js.map → status-ZX5WM5PJ.js.map} +0 -0
- /package/dist/{studio-HUEBE6DS.js.map → studio-RA7QQH4O.js.map} +0 -0
- /package/dist/{sync-HS7VZJ2H.js.map → sync-TZNIPZRX.js.map} +0 -0
- /package/dist/{sync-definition-PY6REQ4J.js.map → sync-definition-ADXXWWV5.js.map} +0 -0
- /package/dist/{tag-manager-HREEYGVM.js.map → tag-manager-DYZUOIAS.js.map} +0 -0
- /package/dist/{tags-WAW6MQAY.js.map → tags-4OZCALA3.js.map} +0 -0
- /package/dist/{tags-MRG56YOE.js.map → tags-4PXXFIPU.js.map} +0 -0
- /package/dist/{tags-DYRZTYHD.js.map → tags-KFVUEPL6.js.map} +0 -0
- /package/dist/{tags-DIXLYB5P.js.map → tags-TESETZGC.js.map} +0 -0
- /package/dist/{tags-Y4HHJJGE.js.map → tags-WIMUIZHU.js.map} +0 -0
- /package/dist/{targeting-criteria-5UUESFWC.js.map → targeting-criteria-VRI7V6C5.js.map} +0 -0
- /package/dist/{targets-COZPVG52.js.map → targets-ERVS2VEU.js.map} +0 -0
- /package/dist/{templates-75VFYZ3E.js.map → templates-TE6LBUIP.js.map} +0 -0
- /package/dist/{testimonials-WJBRWLNW.js.map → testimonials-FV7KPAPK.js.map} +0 -0
- /package/dist/{top-companies-C2R4FG6H.js.map → top-companies-B5M43KGJ.js.map} +0 -0
- /package/dist/{triggers-5UHVJPBV.js.map → triggers-JLJQOSKI.js.map} +0 -0
- /package/dist/{unlink-PLOOAGM3.js.map → unlink-KMWDKVIC.js.map} +0 -0
- /package/dist/{unstage-JIIOTBTF.js.map → unstage-M4IQKJIO.js.map} +0 -0
- /package/dist/{update-RGVNTA5X.js.map → update-5MBR4TPK.js.map} +0 -0
- /package/dist/{update-QYM6U7LL.js.map → update-AHDGHOCP.js.map} +0 -0
- /package/dist/{update-G6R5ZHUI.js.map → update-K6LFJHNI.js.map} +0 -0
- /package/dist/{update-RCP7F5L5.js.map → update-PNRNYXUW.js.map} +0 -0
- /package/dist/{upload-EEJ34Q3Y.js.map → upload-KAQC4AH7.js.map} +0 -0
- /package/dist/{url-options-QEWKRKZ3.js.map → url-options-GGXAL3J4.js.map} +0 -0
- /package/dist/{url-params-2G5M2B3J.js.map → url-params-SM32OOXZ.js.map} +0 -0
- /package/dist/{videos-FVVID55J.js.map → videos-A32DPGHD.js.map} +0 -0
- /package/dist/{viewer-check-2Q3WHSEL.js.map → viewer-check-L4B4LIAX.js.map} +0 -0
- /package/dist/{winning-ads-OSRFHVLV.js.map → winning-ads-THIR7E5S.js.map} +0 -0
- /package/dist/{write-commands-CLJOD2XF.js.map → write-commands-CE4FIQ6Y.js.map} +0 -0
- /package/dist/{x-EBKLJJPJ.js.map → x-YXABYM5U.js.map} +0 -0
|
@@ -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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/actions/tagError.ts","../src/commands/actions/shared.ts"],"sourcesContent":["/**\n * Structured remediation for the one `actions` failure an agent cannot fix from\n * the message alone: an unknown `--tags` slug.\n *\n * The backend already inlines the valid taxonomy in the rejection text\n * (`unknownActionTagMessage`, packages/backend/convex/actionItems/tags/utils.ts),\n * but only `{ code, message }` crosses the HTTP boundary into `ApiError`. Parsing\n * the two lists back out here is what lets `error.fix` carry them as data, so the\n * agent retries in the same call instead of running `tags list` and trying again\n * — the \"list-then-retry dance\" this file exists to end.\n *\n * Fails closed: anything that doesn't match exactly returns `null` and the caller\n * emits the plain message it would have emitted anyway.\n */\n\nconst UNKNOWN_TAG_RE = /Unknown action tag\\(s\\): ([^.]+)\\. Valid tags: ([^.]+)\\./;\n\n// A type alias, not an interface: the envelope's `fix` slot is\n// `{ action, explanation } & Record<string, unknown>`, and only an alias is\n// structurally assignable to that index signature.\nexport type ActionTagFix = {\n action: \"retry_with_a_valid_tag\";\n explanation: string;\n unknownTags: string[];\n validTags: string[];\n mintCommand: string;\n listCommand: string;\n};\n\nfunction splitSlugs(list: string): string[] {\n return list\n .split(\",\")\n .map((slug) => slug.trim())\n .filter((slug) => slug.length > 0);\n}\n\nexport function actionTagFix(message: string): ActionTagFix | null {\n const match = UNKNOWN_TAG_RE.exec(message);\n if (!match) {\n return null;\n }\n const [, unknownList, validList] = match;\n const unknownTags = splitSlugs(unknownList ?? \"\");\n const validTags = splitSlugs(validList ?? \"\");\n const first = unknownTags[0];\n if (first === undefined || validTags.length === 0) {\n return null;\n }\n return {\n action: \"retry_with_a_valid_tag\",\n explanation:\n `The tag(s) ${unknownTags.join(\", \")} are not in this company's taxonomy. ` +\n `\\`validTags\\` below is the complete accepted set — pick from it and re-run the same command. ` +\n `Only mint a new tag when none of them names this work; a near-duplicate of an existing tag ` +\n `splits the backlog's filter instead of extending it.`,\n unknownTags,\n validTags,\n mintCommand: `baker actions tags create --slug ${first} --description \"<what ${first} groups>\"`,\n listCommand: \"baker actions tags list\",\n };\n}\n","import { ACTION_TEMP_ID_PREFIX } from \"@baker/api\";\nimport { ApiError } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport type { AdvisoryHint } from \"./advisory.ts\";\nimport { actionTagFix } from \"./tagError.ts\";\n\nexport function writeOk<T = null>(data?: T): void {\n writeJson({ ok: true, data: (data ?? null) as T });\n}\n\nexport function failValidation(message: string): never {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message } });\n process.exit(1);\n}\n\n// Every actions command routes its API failures through here, so attaching the\n// tag `fix` at this one point covers `create`, `update`, and any later write\n// path that hits the same strict tag gate. Non-tag errors are untouched.\nexport function failApi(err: unknown): never {\n if (err instanceof ApiError) {\n const fix = actionTagFix(err.message);\n writeJson({ ok: false, error: { code: err.code, message: err.message, ...(fix ? { fix } : {}) } });\n process.exit(1);\n }\n if (err instanceof Error) {\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: err.message } });\n process.exit(1);\n }\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n}\n\nexport function generateTempId(): string {\n return `${ACTION_TEMP_ID_PREFIX}${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n}\n\nexport function isTempId(id: string): boolean {\n return id.startsWith(ACTION_TEMP_ID_PREFIX);\n}\n\n// Parse a `--tags a,b,c` CSV flag into a deduped slug list. Returns undefined\n// when the flag was omitted so callers can distinguish \"not provided\" from\n// \"explicitly cleared\" (empty list).\nexport function parseTagList(value: unknown): string[] | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const tags = value\n .split(\",\")\n .map((t) => t.trim())\n .filter((t) => t.length > 0);\n return [...new Set(tags)];\n}\n\n// User priority for an action. Drives the dependency-aware \"Do first\" ordering\n// in `baker actions list`. Unset == \"normal\" (ranks as medium).\nexport const ACTION_PRIORITIES = [\"urgent\", \"high\", \"medium\", \"low\"] as const;\ntype ActionPriority = (typeof ACTION_PRIORITIES)[number];\n\n// Parse a `--priority` flag. Returns:\n// - undefined → flag omitted (leave unchanged on update; unset on create)\n// - null → explicit clear (only meaningful on update; \"\" or \"none\")\n// - one of ACTION_PRIORITIES on a valid value\n// Fails validation on any other string so the agent gets an immediate error.\nexport function parsePriority(\n value: unknown,\n { allowClear }: { allowClear: boolean },\n): ActionPriority | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n failValidation(\n `--priority must be one of: ${ACTION_PRIORITIES.join(\", \")}${allowClear ? \", or 'none' to clear\" : \"\"}.`,\n );\n }\n const trimmed = value.trim().toLowerCase();\n if (trimmed === \"\") {\n if (allowClear) {\n return null;\n }\n return undefined;\n }\n if (allowClear && (trimmed === \"none\" || trimmed === \"clear\")) {\n return null;\n }\n if ((ACTION_PRIORITIES as readonly string[]).includes(trimmed)) {\n return trimmed as ActionPriority;\n }\n failValidation(\n `Unknown --priority \"${value}\". Expected one of: ${ACTION_PRIORITIES.join(\", \")}${allowClear ? \", or 'none' to clear\" : \"\"}.`,\n );\n}\n\n// Two tiers, because the two counts want different amounts of words.\n//\n// The mean chat that files anything files ~2, and two Tasks is already above\n// the bar (\"a Task is the exception\"), so a 2→1 merge is the cheapest win\n// available — but firing the full paragraph on the modal chat is how you train\n// the model to skim `hints[]` and miss the do-it-now redirect above it. So 2\n// gets one sentence.\n//\n// Three is where \"capturing follow-ups\" stops looking like a backlog and\n// starts looking like a to-do list handed back to the user. That gets the\n// paragraph, from there on, every time — a legitimate 3-Task chat (an approved\n// plan) still benefits from being asked whether any two merge.\nexport const FAN_OUT_NUDGE_THRESHOLD = 2;\nexport const FAN_OUT_THRESHOLD = 3;\n\n// Every hint `create` returns, in reading order. The two that argue against\n// the action existing come first — by the time the agent reaches \"add tags\" it\n// has already accepted the action as a given.\nexport function buildCreateHints({\n advisory,\n description,\n tempId,\n tags,\n prioritySet,\n draftCreateCount,\n}: {\n /** What the Task reads as (`advisory.ts`), decided before: recurring work, or work a surface does now. */\n advisory: AdvisoryHint | null;\n description: string;\n tempId: string;\n tags: string[] | undefined;\n prioritySet: boolean;\n draftCreateCount: number;\n}): string[] {\n const hints: string[] = [];\n if (advisory) {\n hints.push(\n `${advisory.hint} If nothing actually blocks it: baker actions draft remove ${tempId}, then do the work.`,\n );\n }\n // The advisory reading is a judgment; this count is a fact. It keeps firing on\n // every further create — a chat that fanned out into a to-do list is the\n // failure the whole hint set exists to catch.\n if (draftCreateCount >= FAN_OUT_THRESHOLD) {\n hints.push(\n `${draftCreateCount} Tasks are staged in this chat. Re-read them with \\`baker actions draft\\`: can any be done now with a surface you already have, and do any two touch the same system (same container, same campaign, same page)? Those belong in ONE Task — fold them together with \\`baker actions update\\` and drop the extras with \\`baker actions draft remove <tempId>\\`.`,\n );\n } else if (draftCreateCount === FAN_OUT_NUDGE_THRESHOLD) {\n hints.push(\n `Second Task staged in this chat. If these two land on the same system (same container, same campaign, same page) they are ONE Task — fold them with \\`baker actions update\\` and drop the extra with \\`baker actions draft remove ${tempId}\\`.`,\n );\n }\n hints.push(`Link dependencies: baker actions link --blocker <id> --blocked ${tempId}`);\n if (!description) {\n hints.push(\"Add description: baker actions update <tempId> --description '...' (what/why/where/done-when)\");\n }\n if (!tags || tags.length === 0) {\n hints.push(\n \"MISSING --tags. This action is invisible to the backlog's tag filter. Re-run with --tags <slug,...> (`baker actions tags list` for the taxonomy, `baker actions tags create --slug <slug>` to mint) — or `baker actions update <tempId> --tags <slug,...>`.\",\n );\n }\n if (!prioritySet) {\n hints.push(\n `MISSING --priority. Without it this action ranks as 'normal' (medium) in the do-first ordering, so urgent/high client work won't surface first. Re-run with --priority ${ACTION_PRIORITIES.join(\"|\")} — or \\`baker actions update <tempId> --priority <level>\\`.`,\n );\n }\n return hints;\n}\n\n/**\n * How far back a flat `baker actions list` reads when the caller does not say.\n *\n * Sent explicitly rather than left to the server default so this side knows the\n * window it asked for, and can therefore tell when a read came back exactly full\n * — the only evidence available that older Tasks exist. Without that the agent\n * reads a truncated backlog as a complete one and reports finished work that was\n * never seen.\n */\nexport const ACTIONS_LIST_DEFAULT_LIMIT = 500;\n\nexport function buildListHints({ returned, limit }: { returned: number; limit: number }): string[] {\n if (returned < limit) {\n return [];\n }\n return [\n `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 — re-run with --limit ${limit * 2} (or narrow with --status / --search).`,\n ];\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/commands/actions/tagError.ts","../src/commands/actions/shared.ts"],"sourcesContent":["/**\n * Structured remediation for the one `actions` failure an agent cannot fix from\n * the message alone: an unknown `--tags` slug.\n *\n * The backend already inlines the valid taxonomy in the rejection text\n * (`unknownActionTagMessage`, packages/backend/convex/actionItems/tags/utils.ts),\n * but only `{ code, message }` crosses the HTTP boundary into `ApiError`. Parsing\n * the two lists back out here is what lets `error.fix` carry them as data, so the\n * agent retries in the same call instead of running `tags list` and trying again\n * — the \"list-then-retry dance\" this file exists to end.\n *\n * Fails closed: anything that doesn't match exactly returns `null` and the caller\n * emits the plain message it would have emitted anyway.\n */\n\nconst UNKNOWN_TAG_RE = /Unknown action tag\\(s\\): ([^.]+)\\. Valid tags: ([^.]+)\\./;\n\n// A type alias, not an interface: the envelope's `fix` slot is\n// `{ action, explanation } & Record<string, unknown>`, and only an alias is\n// structurally assignable to that index signature.\nexport type ActionTagFix = {\n action: \"retry_with_a_valid_tag\";\n explanation: string;\n unknownTags: string[];\n validTags: string[];\n mintCommand: string;\n listCommand: string;\n};\n\nfunction splitSlugs(list: string): string[] {\n return list\n .split(\",\")\n .map((slug) => slug.trim())\n .filter((slug) => slug.length > 0);\n}\n\nexport function actionTagFix(message: string): ActionTagFix | null {\n const match = UNKNOWN_TAG_RE.exec(message);\n if (!match) {\n return null;\n }\n const [, unknownList, validList] = match;\n const unknownTags = splitSlugs(unknownList ?? \"\");\n const validTags = splitSlugs(validList ?? \"\");\n const first = unknownTags[0];\n if (first === undefined || validTags.length === 0) {\n return null;\n }\n return {\n action: \"retry_with_a_valid_tag\",\n explanation:\n `The tag(s) ${unknownTags.join(\", \")} are not in this company's taxonomy. ` +\n `\\`validTags\\` below is the complete accepted set — pick from it and re-run the same command. ` +\n `Only mint a new tag when none of them names this work; a near-duplicate of an existing tag ` +\n `splits the backlog's filter instead of extending it.`,\n unknownTags,\n validTags,\n mintCommand: `baker actions tags create --slug ${first} --description \"<what ${first} groups>\"`,\n listCommand: \"baker actions tags list\",\n };\n}\n","import { ACTION_TEMP_ID_PREFIX } from \"@baker/api\";\nimport { ApiError } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport type { AdvisoryHint } from \"./advisory.ts\";\nimport { actionTagFix } from \"./tagError.ts\";\n\nexport function writeOk<T = null>(data?: T): void {\n writeJson({ ok: true, data: (data ?? null) as T });\n}\n\nexport function failValidation(message: string): never {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message } });\n process.exit(1);\n}\n\n// Every actions command routes its API failures through here, so attaching the\n// tag `fix` at this one point covers `create`, `update`, and any later write\n// path that hits the same strict tag gate. Non-tag errors are untouched.\nexport function failApi(err: unknown): never {\n if (err instanceof ApiError) {\n const fix = actionTagFix(err.message);\n writeJson({ ok: false, error: { code: err.code, message: err.message, ...(fix ? { fix } : {}) } });\n process.exit(1);\n }\n if (err instanceof Error) {\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: err.message } });\n process.exit(1);\n }\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n}\n\nexport function generateTempId(): string {\n return `${ACTION_TEMP_ID_PREFIX}${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n}\n\nexport function isTempId(id: string): boolean {\n return id.startsWith(ACTION_TEMP_ID_PREFIX);\n}\n\n// Parse a `--tags a,b,c` CSV flag into a deduped slug list. Returns undefined\n// when the flag was omitted so callers can distinguish \"not provided\" from\n// \"explicitly cleared\" (empty list).\nexport function parseTagList(value: unknown): string[] | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const tags = value\n .split(\",\")\n .map((t) => t.trim())\n .filter((t) => t.length > 0);\n return [...new Set(tags)];\n}\n\n// User priority for an action. Drives the dependency-aware \"Do first\" ordering\n// in `baker actions list`. Unset == \"normal\" (ranks as medium).\nexport const ACTION_PRIORITIES = [\"urgent\", \"high\", \"medium\", \"low\"] as const;\ntype ActionPriority = (typeof ACTION_PRIORITIES)[number];\n\n// Parse a `--priority` flag. Returns:\n// - undefined → flag omitted (leave unchanged on update; unset on create)\n// - null → explicit clear (only meaningful on update; \"\" or \"none\")\n// - one of ACTION_PRIORITIES on a valid value\n// Fails validation on any other string so the agent gets an immediate error.\nexport function parsePriority(\n value: unknown,\n { allowClear }: { allowClear: boolean },\n): ActionPriority | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n failValidation(\n `--priority must be one of: ${ACTION_PRIORITIES.join(\", \")}${allowClear ? \", or 'none' to clear\" : \"\"}.`,\n );\n }\n const trimmed = value.trim().toLowerCase();\n if (trimmed === \"\") {\n if (allowClear) {\n return null;\n }\n return undefined;\n }\n if (allowClear && (trimmed === \"none\" || trimmed === \"clear\")) {\n return null;\n }\n if ((ACTION_PRIORITIES as readonly string[]).includes(trimmed)) {\n return trimmed as ActionPriority;\n }\n failValidation(\n `Unknown --priority \"${value}\". Expected one of: ${ACTION_PRIORITIES.join(\", \")}${allowClear ? \", or 'none' to clear\" : \"\"}.`,\n );\n}\n\n// Two tiers, because the two counts want different amounts of words.\n//\n// The mean chat that files anything files ~2, and two Tasks is already above\n// the bar (\"a Task is the exception\"), so a 2→1 merge is the cheapest win\n// available — but firing the full paragraph on the modal chat is how you train\n// the model to skim `hints[]` and miss the do-it-now redirect above it. So 2\n// gets one sentence.\n//\n// Three is where \"capturing follow-ups\" stops looking like a backlog and\n// starts looking like a to-do list handed back to the user. That gets the\n// paragraph, from there on, every time — a legitimate 3-Task chat (an approved\n// plan) still benefits from being asked whether any two merge.\nexport const FAN_OUT_NUDGE_THRESHOLD = 2;\nexport const FAN_OUT_THRESHOLD = 3;\n\n// Every hint `create` returns, in reading order. The two that argue against\n// the action existing come first — by the time the agent reaches \"add tags\" it\n// has already accepted the action as a given.\nexport function buildCreateHints({\n advisory,\n description,\n tempId,\n tags,\n prioritySet,\n draftCreateCount,\n}: {\n /** What the Task reads as (`advisory.ts`), decided before: recurring work, or work a surface does now. */\n advisory: AdvisoryHint | null;\n description: string;\n tempId: string;\n tags: string[] | undefined;\n prioritySet: boolean;\n draftCreateCount: number;\n}): string[] {\n const hints: string[] = [];\n if (advisory) {\n hints.push(\n `${advisory.hint} If nothing actually blocks it: baker actions draft remove ${tempId}, then do the work.`,\n );\n }\n // The advisory reading is a judgment; this count is a fact. It keeps firing on\n // every further create — a chat that fanned out into a to-do list is the\n // failure the whole hint set exists to catch.\n if (draftCreateCount >= FAN_OUT_THRESHOLD) {\n hints.push(\n `${draftCreateCount} Tasks are staged in this chat. Re-read them with \\`baker actions draft\\`: can any be done now with a surface you already have, and do any two touch the same system (same container, same campaign, same page)? Those belong in ONE Task — fold them together with \\`baker actions update\\` and drop the extras with \\`baker actions draft remove <tempId>\\`.`,\n );\n } else if (draftCreateCount === FAN_OUT_NUDGE_THRESHOLD) {\n hints.push(\n `Second Task staged in this chat. If these two land on the same system (same container, same campaign, same page) they are ONE Task — fold them with \\`baker actions update\\` and drop the extra with \\`baker actions draft remove ${tempId}\\`.`,\n );\n }\n hints.push(`Link dependencies: baker actions link --blocker <id> --blocked ${tempId}`);\n if (!description) {\n hints.push(\"Add description: baker actions update <tempId> --description '...' (what/why/where/done-when)\");\n }\n if (!tags || tags.length === 0) {\n hints.push(\n \"MISSING --tags. This action is invisible to the backlog's tag filter. Re-run with --tags <slug,...> (`baker actions tags list` for the taxonomy, `baker actions tags create --slug <slug>` to mint) — or `baker actions update <tempId> --tags <slug,...>`.\",\n );\n }\n if (!prioritySet) {\n hints.push(\n `MISSING --priority. Without it this action ranks as 'normal' (medium) in the do-first ordering, so urgent/high client work won't surface first. Re-run with --priority ${ACTION_PRIORITIES.join(\"|\")} — or \\`baker actions update <tempId> --priority <level>\\`.`,\n );\n }\n return hints;\n}\n\n/**\n * How far back a flat `baker actions list` reads when the caller does not say.\n *\n * Sent explicitly rather than left to the server default so this side knows the\n * window it asked for, and can therefore tell when a read came back exactly full\n * — the only evidence available that older Tasks exist. Without that the agent\n * reads a truncated backlog as a complete one and reports finished work that was\n * never seen.\n */\nexport const ACTIONS_LIST_DEFAULT_LIMIT = 500;\n\nexport function buildListHints({ returned, limit }: { returned: number; limit: number }): string[] {\n if (returned < limit) {\n return [];\n }\n return [\n `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 — re-run with --limit ${limit * 2} (or narrow with --status / --search).`,\n ];\n}\n\n/**\n * A pending Task nobody is working on is one the agent was most likely asked to\n * solve: without a claim the dashboard shows no work in progress on it.\n */\nexport function buildGetHints(\n detail: { action: { _id: string; status: string }; activeChat: unknown } | null,\n): string[] {\n if (!detail || detail.action.status !== \"pending\" || detail.activeChat !== null) {\n return [];\n }\n return [\n `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}`,\n ];\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
failApi
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZDNOCKKY.js";
|
|
4
4
|
import {
|
|
5
5
|
CREATIVE_PERFORMANCE_DEFAULT_DAYS,
|
|
6
6
|
CREATIVE_PERFORMANCE_MAX_DAYS
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-K6WVV74H.js";
|
|
8
8
|
import {
|
|
9
9
|
apiPost
|
|
10
10
|
} from "./chunk-XBOK23HI.js";
|
|
@@ -156,4 +156,4 @@ export {
|
|
|
156
156
|
parseDays,
|
|
157
157
|
performanceCommand
|
|
158
158
|
};
|
|
159
|
-
//# sourceMappingURL=chunk-
|
|
159
|
+
//# sourceMappingURL=chunk-ZGTCZ6H4.js.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
hubspotRefusal
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OUTF5JFG.js";
|
|
4
4
|
import {
|
|
5
5
|
collectSideEffects,
|
|
6
6
|
readFlowTree,
|
|
7
7
|
walkNodes,
|
|
8
8
|
writeFlowTree
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-L5J3S6B6.js";
|
|
10
10
|
import {
|
|
11
11
|
failApi
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-ZDNOCKKY.js";
|
|
13
13
|
import {
|
|
14
14
|
FLOW_AGENT_DESTINATION_KINDS,
|
|
15
15
|
FLOW_PROVIDER_TYPE
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-K6WVV74H.js";
|
|
17
17
|
import {
|
|
18
18
|
ApiError,
|
|
19
19
|
apiPost
|
|
@@ -53,11 +53,59 @@ function isSet(value) {
|
|
|
53
53
|
return typeof value === "string" && value.length > 0;
|
|
54
54
|
}
|
|
55
55
|
function unwiredSideEffects(tree, type) {
|
|
56
|
-
return collectSideEffects(tree).filter(({ sideEffect }) => sideEffect.type === type).filter(
|
|
56
|
+
return collectSideEffects(tree).filter(({ sideEffect }) => sideEffect.type === type).filter(
|
|
57
|
+
({ sideEffect }) => OAUTH_SIDE_EFFECTS.has(type) && !isSet(sideEffect.oauthProviderId) || !isSet(sideEffect.encryptedConfig)
|
|
58
|
+
).map(({ sideEffect }) => String(sideEffect.id));
|
|
57
59
|
}
|
|
58
60
|
function unwiredHubspotForms(tree) {
|
|
59
61
|
return unwiredSideEffects(tree, "hubspotForm");
|
|
60
62
|
}
|
|
63
|
+
var STATED_KINDS = /* @__PURE__ */ new Set(["email", "httpWebhook"]);
|
|
64
|
+
function statedKind(args) {
|
|
65
|
+
if (typeof args.email === "string" || typeof args.subject === "string") return "email";
|
|
66
|
+
if (typeof args.url === "string") return "httpWebhook";
|
|
67
|
+
return void 0;
|
|
68
|
+
}
|
|
69
|
+
function sealRequestFor(kind, args) {
|
|
70
|
+
const text = (key) => typeof args[key] === "string" && args[key].trim() ? args[key].trim() : void 0;
|
|
71
|
+
if (kind === "email") {
|
|
72
|
+
const email = text("email");
|
|
73
|
+
const subject = text("subject");
|
|
74
|
+
if (!email || !subject) {
|
|
75
|
+
return {
|
|
76
|
+
ok: false,
|
|
77
|
+
message: "An email destination needs both who receives it and its subject.",
|
|
78
|
+
fix: 'Pass --email "a@x.com, b@x.com" --subject "New lead \u2014 <Form name>". Write the subject yourself from the Form; ask the user only for an address you were not given.'
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return { ok: true, request: { type: "email", email, subject } };
|
|
82
|
+
}
|
|
83
|
+
if (kind === "httpWebhook") {
|
|
84
|
+
const apiUrl = text("url");
|
|
85
|
+
if (!apiUrl) {
|
|
86
|
+
return { ok: false, message: "A webhook destination needs its address.", fix: "Pass --url https://\u2026" };
|
|
87
|
+
}
|
|
88
|
+
return { ok: true, request: { type: "httpWebhook", apiUrl } };
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
ok: false,
|
|
92
|
+
message: `A ${kind} destination holds a credential, so it is not one you can state.`,
|
|
93
|
+
fix: "Its token or URL is the user's to enter: request_flow_input."
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function attachSettings(tree, id, encryptedConfig, type) {
|
|
97
|
+
const chosen = collectSideEffects(tree).find((entry) => entry.sideEffect.id === id);
|
|
98
|
+
if (!chosen || chosen.sideEffect.type !== type) {
|
|
99
|
+
const ofType = collectSideEffects(tree).filter((entry) => entry.sideEffect.type === type);
|
|
100
|
+
return {
|
|
101
|
+
ok: false,
|
|
102
|
+
message: chosen ? `Side effect "${id}" is a ${String(chosen.sideEffect.type)}, not a ${type}.` : `No side effect with id "${id}" in this form.`,
|
|
103
|
+
fix: `${type} side effects in this form: ${ofType.map((entry) => String(entry.sideEffect.id)).join(", ") || "none"}`
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
chosen.sideEffect.encryptedConfig = encryptedConfig;
|
|
107
|
+
return { ok: true, nodeId: String(chosen.node.id), sideEffectId: id };
|
|
108
|
+
}
|
|
61
109
|
function stepType(node) {
|
|
62
110
|
const type = node?.nodeData?.type;
|
|
63
111
|
return typeof type === "string" ? type : void 0;
|
|
@@ -138,7 +186,13 @@ function refuse(message, fix, code = "VALIDATION_ERROR") {
|
|
|
138
186
|
function allTargets(tree, kind) {
|
|
139
187
|
if (!kind) refuse("--all needs --type <kind> to know what to wire.", "e.g. --all --type googleSpreadsheet");
|
|
140
188
|
const on = STEP_KINDS.has(kind) ? "node" : "sideEffect";
|
|
141
|
-
const ids = on === "node" ? unpickedSteps(tree, kind) : unwiredSideEffects(tree, kind);
|
|
189
|
+
const ids = STATED_KINDS.has(kind) ? collectSideEffects(tree).filter(({ sideEffect }) => sideEffect.type === kind).map(({ sideEffect }) => String(sideEffect.id)) : on === "node" ? unpickedSteps(tree, kind) : unwiredSideEffects(tree, kind);
|
|
190
|
+
if (ids.length === 0 && STATED_KINDS.has(kind)) {
|
|
191
|
+
refuse(
|
|
192
|
+
`This Form has no ${kind} destination.`,
|
|
193
|
+
`Add one: baker flows add-side-effect <slug> --node <stepId> --type ${kind}`
|
|
194
|
+
);
|
|
195
|
+
}
|
|
142
196
|
if (ids.length === 0) {
|
|
143
197
|
refuse(
|
|
144
198
|
`Every ${kind} in this Form is already wired.`,
|
|
@@ -169,12 +223,14 @@ function targetsFor(tree, args) {
|
|
|
169
223
|
refuse("Pass one of --node, --side-effect or --all.", "One target per call; --all for every unwired one.");
|
|
170
224
|
}
|
|
171
225
|
if (args.all === true) {
|
|
172
|
-
const kind = typeof args.type === "string" ? args.type : args["hubspot-form"] ? "hubspotForm" :
|
|
226
|
+
const kind = typeof args.type === "string" ? args.type : args["hubspot-form"] ? "hubspotForm" : statedKind(args);
|
|
173
227
|
return allTargets(tree, kind);
|
|
174
228
|
}
|
|
175
229
|
if (node) return stepTarget(tree, node);
|
|
176
230
|
if (named) return sideEffectTarget(tree, named);
|
|
177
231
|
if (args["hubspot-form"]) return { kind: "hubspotForm", on: "sideEffect", ids: [onlyOfType(tree, "hubspotForm")] };
|
|
232
|
+
const stated = statedKind(args);
|
|
233
|
+
if (stated) return { kind: stated, on: "sideEffect", ids: [onlyOfType(tree, stated)] };
|
|
178
234
|
return refuse(
|
|
179
235
|
"Name what to fill: --node <stepId>, --side-effect <id>, or --all --type <kind>.",
|
|
180
236
|
"Ids: baker flows show <slug>"
|
|
@@ -269,6 +325,24 @@ function sheetHints(slug, data) {
|
|
|
269
325
|
columns ? `Columns: ${columns}. Map by letter: baker flows map ${slug} --side-effect <id> --map A=<value> \u2026 --write.` : `The "${sheet.tab}" tab has no header row. Map by letter anyway, and say which column holds what.`
|
|
270
326
|
];
|
|
271
327
|
}
|
|
328
|
+
async function fromStated(tree, target, args) {
|
|
329
|
+
const plan = sealRequestFor(target.kind, args);
|
|
330
|
+
if (!plan.ok) refuse(plan.message, plan.fix);
|
|
331
|
+
let sealed;
|
|
332
|
+
try {
|
|
333
|
+
sealed = (await apiPost("/api/flows/destinations/seal", plan.request)).data;
|
|
334
|
+
} catch (err) {
|
|
335
|
+
failApi(err);
|
|
336
|
+
}
|
|
337
|
+
const wired = applyAll(target, (id) => attachSettings(tree, id, sealed.encryptedConfig, target.kind));
|
|
338
|
+
return {
|
|
339
|
+
wired,
|
|
340
|
+
destination: sealed.settings,
|
|
341
|
+
hints: [
|
|
342
|
+
target.kind === "email" ? `Leads from these steps now go to ${String(sealed.settings.email)} with the subject "${String(sealed.settings.subject)}". Tell the user in those words.` : `Submissions now go to ${String(sealed.settings.apiUrl)}.`
|
|
343
|
+
]
|
|
344
|
+
};
|
|
345
|
+
}
|
|
272
346
|
async function fromPlatform(tree, target, args, slug) {
|
|
273
347
|
const kind = target.kind;
|
|
274
348
|
if (!isAgentKind(kind)) {
|
|
@@ -297,7 +371,7 @@ async function fromPlatform(tree, target, args, slug) {
|
|
|
297
371
|
}
|
|
298
372
|
registerSchema({
|
|
299
373
|
command: "flows.connect",
|
|
300
|
-
description:
|
|
374
|
+
description: 'Fill a Form\'s step or destination yourself \u2014 no card for the user. Steps: Calendly, SavvyCal, GoHighLevel calendar/form (`--node <id> --resource <id>`). Destinations: HubSpot form (`--hubspot-form <id>`), Google Sheets (`--resource <spreadsheetId>` or `--new-sheet <title> --columns \u2026`), Pipedrive and GoHighLevel contact (no resource: the connected account is the destination), email (`--email "a@x.com, b@x.com" --subject "New lead \u2014 <Form>"`, never a card), webhook without a credential (`--url`). `--same-as <slug>:<id>` copies what another Form already has. `--all --type <kind>` fills every unwired one of that kind at once. Ids come from `baker flows options <kind>`. Fall back to request_flow_input only when nothing is connected, the sheet was never chosen, or several resources plausibly match.',
|
|
301
375
|
args: {
|
|
302
376
|
slug: { type: "positional", description: "Form slug", required: true },
|
|
303
377
|
node: {
|
|
@@ -334,13 +408,28 @@ registerSchema({
|
|
|
334
408
|
type: "string",
|
|
335
409
|
description: "Connection id, when more than one account of the platform is connected",
|
|
336
410
|
required: false
|
|
411
|
+
},
|
|
412
|
+
email: {
|
|
413
|
+
type: "string",
|
|
414
|
+
description: 'Email destination: who receives each lead, comma-separated for several (--email "ana@x.com, luis@x.com"). Never a card: you state it.',
|
|
415
|
+
required: false
|
|
416
|
+
},
|
|
417
|
+
subject: {
|
|
418
|
+
type: "string",
|
|
419
|
+
description: 'Email destination: the subject line. Write it yourself from the Form ("New lead \u2014 Private events").',
|
|
420
|
+
required: false
|
|
421
|
+
},
|
|
422
|
+
url: {
|
|
423
|
+
type: "string",
|
|
424
|
+
description: "Webhook destination with no credential: its https address. One that needs a token goes to request_flow_input.",
|
|
425
|
+
required: false
|
|
337
426
|
}
|
|
338
427
|
}
|
|
339
428
|
});
|
|
340
429
|
var connectCommand = defineCommand({
|
|
341
430
|
meta: {
|
|
342
431
|
name: "connect",
|
|
343
|
-
description: 'Fill a step or destination yourself. Start here: baker flows options calendly, then baker flows connect contact --node book --resource <id>. Sheets: --side-effect se-gsheet-1 --new-sheet "Leads" --columns "Name,Email". Same as another Form: --same-as madrid:se-gsheet-1'
|
|
432
|
+
description: 'Fill a step or destination yourself. Start here: baker flows options calendly, then baker flows connect contact --node book --resource <id>. Email: --side-effect se-email-1 --email "ana@x.com, luis@x.com" --subject "New lead \u2014 Contact". Sheets: --side-effect se-gsheet-1 --new-sheet "Leads" --columns "Name,Email". Same as another Form: --same-as madrid:se-gsheet-1'
|
|
344
433
|
},
|
|
345
434
|
args: {
|
|
346
435
|
slug: { type: "positional", description: "Form slug", required: true },
|
|
@@ -354,13 +443,16 @@ var connectCommand = defineCommand({
|
|
|
354
443
|
columns: { type: "string", description: "Header row for --new-sheet, comma-separated" },
|
|
355
444
|
tab: { type: "string", description: "Sheet tab (default: the first)" },
|
|
356
445
|
"same-as": { type: "string", description: "<slug>:<id> to copy" },
|
|
357
|
-
account: { type: "string", description: "Connection id when several are connected" }
|
|
446
|
+
account: { type: "string", description: "Connection id when several are connected" },
|
|
447
|
+
email: { type: "string", description: "Email destination: recipients, comma-separated" },
|
|
448
|
+
subject: { type: "string", description: "Email destination: subject line" },
|
|
449
|
+
url: { type: "string", description: "Webhook destination with no credential: its address" }
|
|
358
450
|
},
|
|
359
451
|
run: async ({ args }) => {
|
|
360
452
|
const slug = String(args.slug);
|
|
361
453
|
const target = targetsFor(readFlowTree(slug), args);
|
|
362
454
|
const tree = readFlowTree(slug);
|
|
363
|
-
const result = typeof args["same-as"] === "string" ? sameAs(tree, target, args["same-as"]) : typeof args["hubspot-form"] === "string" ? await fromHubspot(tree, target, args["hubspot-form"], slug) : await fromPlatform(tree, target, args, slug);
|
|
455
|
+
const result = typeof args["same-as"] === "string" ? sameAs(tree, target, args["same-as"]) : typeof args["hubspot-form"] === "string" ? await fromHubspot(tree, target, args["hubspot-form"], slug) : STATED_KINDS.has(target.kind) ? await fromStated(tree, target, args) : await fromPlatform(tree, target, args, slug);
|
|
364
456
|
writeFlowTree(slug, tree);
|
|
365
457
|
writeJson({
|
|
366
458
|
ok: true,
|
|
@@ -380,6 +472,8 @@ export {
|
|
|
380
472
|
attachDestination,
|
|
381
473
|
unwiredSideEffects,
|
|
382
474
|
unwiredHubspotForms,
|
|
475
|
+
sealRequestFor,
|
|
476
|
+
attachSettings,
|
|
383
477
|
attachStep,
|
|
384
478
|
unpickedSteps,
|
|
385
479
|
copyDestination,
|
|
@@ -387,4 +481,4 @@ export {
|
|
|
387
481
|
destinationRefusal,
|
|
388
482
|
connectCommand
|
|
389
483
|
};
|
|
390
|
-
//# sourceMappingURL=chunk-
|
|
484
|
+
//# sourceMappingURL=chunk-ZJLETAOO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/flows/connect.ts"],"sourcesContent":["/**\n * `connect`: fill a Form's step or destination yourself once you know which\n * resource is meant, instead of parking the turn on the chat's picker card.\n *\n * Three sources, one write:\n * - `--hubspot-form <id>` — a HubSpot form as a `hubspotForm` destination.\n * - `--resource <id>` / `--new-sheet <title>` / nothing — Calendly, SavvyCal\n * and GoHighLevel steps; Google Sheets, Pipedrive and GoHighLevel\n * destinations. The backend reads the resource through the company's\n * connected account and answers with exactly what the card would write,\n * sealed under the flow key where it is a destination — so this command\n * writes ciphertext it cannot read.\n * - `--same-as <slug>:<id>` — the destination or step another Form already\n * has, copied as-is. No platform is asked anything.\n *\n * `request_flow_input` stays the path when nothing is connected, when a\n * spreadsheet has never been chosen, or when the agent cannot tell which\n * resource is meant.\n */\n\nimport {\n FLOW_AGENT_DESTINATION_KINDS,\n FLOW_PROVIDER_TYPE,\n type FlowAgentDestinationKind,\n type FlowsResolveResponse,\n type FlowsSealRequest,\n type FlowsSealResponse,\n type HubspotFormsDestinationResponse,\n} from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi } from \"../actions/shared.ts\";\nimport { hubspotRefusal } from \"../hubspot/refusal.ts\";\nimport { collectSideEffects, readFlowTree, walkNodes, writeFlowTree } from \"./shared.ts\";\n\ntype AnyRecord = Record<string, unknown>;\n\ntype Sealed = { oauthProviderId: string; encryptedConfig: string };\n\ntype Attached = { ok: true; nodeId: string; sideEffectId: string } | { ok: false; message: string; fix: string };\n\ntype Stepped = { ok: true; nodeId: string; type: string } | { ok: false; message: string; fix: string };\n\nconst STEP_KINDS = new Set([\"calendly\", \"savvycal\", \"highlevel\", \"highlevelForm\", \"hubspot\", \"hubspotMeeting\"]);\nconst OAUTH_SIDE_EFFECTS = new Set([\"hubspotForm\", \"googleSpreadsheet\", \"pipedrive\", \"goHighlevelContact\"]);\n\n/**\n * Put the sealed destination on the side effect `named` picks — or, with no\n * name, on the form's only one of `type`. Mutates `tree`; the caller writes it.\n */\nexport function attachDestination(\n tree: AnyRecord,\n named: string | undefined,\n sealed: Sealed,\n type = \"hubspotForm\",\n): Attached {\n const ofType = collectSideEffects(tree).filter((entry) => entry.sideEffect.type === type);\n const inventory = ofType.map((entry) => String(entry.sideEffect.id)).join(\", \") || \"none\";\n const chosen = named\n ? collectSideEffects(tree).find((entry) => entry.sideEffect.id === named)\n : ofType.length === 1\n ? ofType[0]\n : undefined;\n if (!chosen) {\n return {\n ok: false,\n message: named\n ? `No side effect with id \"${named}\" in this form.`\n : `This form has ${ofType.length} ${type} side effects — name one with --side-effect <id>.`,\n fix:\n ofType.length === 0\n ? `Add one first: baker flows add-side-effect <slug> --node <stepId> --type ${type}`\n : `${type} side effects in this form: ${inventory}`,\n };\n }\n if (chosen.sideEffect.type !== type) {\n return {\n ok: false,\n message: `Side effect \"${named}\" is a ${String(chosen.sideEffect.type)}, not a ${type}.`,\n fix: `${type} side effects in this form: ${inventory}`,\n };\n }\n chosen.sideEffect.oauthProviderId = sealed.oauthProviderId;\n chosen.sideEffect.encryptedConfig = sealed.encryptedConfig;\n return { ok: true, nodeId: String(chosen.node.id), sideEffectId: String(chosen.sideEffect.id) };\n}\n\nfunction isSet(value: unknown): boolean {\n return typeof value === \"string\" && value.length > 0;\n}\n\n/**\n * Every side effect of `type` that still lacks its account or its config — what\n * `--all` wires. One already wired is left alone, so re-running after a partial\n * setup never repoints a destination someone chose.\n */\nexport function unwiredSideEffects(tree: AnyRecord, type: string): string[] {\n return collectSideEffects(tree)\n .filter(({ sideEffect }) => sideEffect.type === type)\n .filter(\n ({ sideEffect }) =>\n (OAUTH_SIDE_EFFECTS.has(type) && !isSet(sideEffect.oauthProviderId)) || !isSet(sideEffect.encryptedConfig),\n )\n .map(({ sideEffect }) => String(sideEffect.id));\n}\n\nexport function unwiredHubspotForms(tree: AnyRecord): string[] {\n return unwiredSideEffects(tree, \"hubspotForm\");\n}\n\n/** Destinations with nothing confidential in them: the agent states them, no card. */\nconst STATED_KINDS = new Set([\"email\", \"httpWebhook\"]);\n\n/** The stated kind an `--email` / `--subject` / `--url` call is about. */\nfunction statedKind(args: AnyRecord): string | undefined {\n if (typeof args.email === \"string\" || typeof args.subject === \"string\") return \"email\";\n if (typeof args.url === \"string\") return \"httpWebhook\";\n return undefined;\n}\n\ntype SealPlan = { ok: true; request: FlowsSealRequest } | { ok: false; message: string; fix: string };\n\n/** What `--email/--subject` or `--url` say, as the request the backend seals — or why not. */\nexport function sealRequestFor(kind: string, args: AnyRecord): SealPlan {\n const text = (key: string) => (typeof args[key] === \"string\" && args[key].trim() ? args[key].trim() : undefined);\n if (kind === \"email\") {\n const email = text(\"email\");\n const subject = text(\"subject\");\n if (!email || !subject) {\n return {\n ok: false,\n message: \"An email destination needs both who receives it and its subject.\",\n fix: 'Pass --email \"a@x.com, b@x.com\" --subject \"New lead — <Form name>\". Write the subject yourself from the Form; ask the user only for an address you were not given.',\n };\n }\n return { ok: true, request: { type: \"email\", email, subject } };\n }\n if (kind === \"httpWebhook\") {\n const apiUrl = text(\"url\");\n if (!apiUrl) {\n return { ok: false, message: \"A webhook destination needs its address.\", fix: \"Pass --url https://…\" };\n }\n return { ok: true, request: { type: \"httpWebhook\", apiUrl } };\n }\n return {\n ok: false,\n message: `A ${kind} destination holds a credential, so it is not one you can state.`,\n fix: \"Its token or URL is the user's to enter: request_flow_input.\",\n };\n}\n\n/** Write sealed settings onto a destination that has no account (email, webhook). Mutates `tree`. */\nexport function attachSettings(tree: AnyRecord, id: string, encryptedConfig: string, type: string): Attached {\n const chosen = collectSideEffects(tree).find((entry) => entry.sideEffect.id === id);\n if (!chosen || chosen.sideEffect.type !== type) {\n const ofType = collectSideEffects(tree).filter((entry) => entry.sideEffect.type === type);\n return {\n ok: false,\n message: chosen\n ? `Side effect \"${id}\" is a ${String(chosen.sideEffect.type)}, not a ${type}.`\n : `No side effect with id \"${id}\" in this form.`,\n fix: `${type} side effects in this form: ${ofType.map((entry) => String(entry.sideEffect.id)).join(\", \") || \"none\"}`,\n };\n }\n chosen.sideEffect.encryptedConfig = encryptedConfig;\n return { ok: true, nodeId: String(chosen.node.id), sideEffectId: id };\n}\n\nfunction stepType(node: AnyRecord | undefined): string | undefined {\n const type = (node?.nodeData as AnyRecord | undefined)?.type;\n return typeof type === \"string\" ? type : undefined;\n}\n\nfunction findStep(tree: AnyRecord, nodeId: string): AnyRecord | undefined {\n return walkNodes(tree).find((node) => node.id === nodeId);\n}\n\n/** Write a picked resource into a step's `form.external`, keeping what the step autofills. */\nexport function attachStep(tree: AnyRecord, nodeId: string, external: AnyRecord): Stepped {\n const node = findStep(tree, nodeId);\n const type = stepType(node);\n if (!node || !type) {\n return {\n ok: false,\n message: `No step with id \"${nodeId}\" in this form.`,\n fix: \"Step ids: baker flows show <slug>\",\n };\n }\n if (!STEP_KINDS.has(type)) {\n return {\n ok: false,\n message: `Step \"${nodeId}\" is a ${type}, which embeds nothing from another platform.`,\n fix: \"Only calendly, savvycal, highlevel, highlevelForm, hubspot and hubspotMeeting steps take a resource.\",\n };\n }\n const nodeData = node.nodeData as AnyRecord;\n const form = (nodeData.form as AnyRecord | undefined) ?? {};\n nodeData.form = { autofilledFields: {}, ...form, external };\n return { ok: true, nodeId, type };\n}\n\n/** Steps of `type` with nothing picked yet — what `--all` fills for a step kind. */\nexport function unpickedSteps(tree: AnyRecord, type: string): string[] {\n return walkNodes(tree)\n .filter((node) => stepType(node) === type)\n .filter((node) => ((node.nodeData as AnyRecord).form as AnyRecord | undefined)?.external == null)\n .map((node) => String(node.id));\n}\n\n/**\n * Give `targetId` exactly the destination (or picked resource) `sourceId`\n * already has in another Form. Only between the same type: a sheet's sealed\n * config means nothing to Pipedrive.\n */\nexport function copyDestination(source: AnyRecord, sourceId: string, target: AnyRecord, targetId: string): Stepped {\n const from = collectSideEffects(source).find((entry) => entry.sideEffect.id === sourceId);\n if (from) {\n const type = String(from.sideEffect.type);\n if (!isSet(from.sideEffect.oauthProviderId) || !isSet(from.sideEffect.encryptedConfig)) {\n return {\n ok: false,\n message: `\"${sourceId}\" is not wired itself — nothing to copy.`,\n fix: \"Copy from one that is.\",\n };\n }\n const attached = attachDestination(\n target,\n targetId,\n {\n oauthProviderId: String(from.sideEffect.oauthProviderId),\n encryptedConfig: String(from.sideEffect.encryptedConfig),\n },\n type,\n );\n return attached.ok ? { ok: true, nodeId: attached.nodeId, type } : attached;\n }\n const step = findStep(source, sourceId);\n const external = ((step?.nodeData as AnyRecord | undefined)?.form as AnyRecord | undefined)?.external;\n if (!step || external == null || typeof external !== \"object\") {\n return {\n ok: false,\n message: `No wired side effect or picked step \"${sourceId}\" in the source form.`,\n fix: \"Ids: baker flows show <slug>\",\n };\n }\n const targetType = stepType(findStep(target, targetId));\n if (targetType !== stepType(step)) {\n return {\n ok: false,\n message: `\"${sourceId}\" is a ${String(stepType(step))} and \"${targetId}\" a ${String(targetType)} — copy only between the same type.`,\n fix: \"Pick a source of the same type.\",\n };\n }\n return attachStep(target, targetId, structuredClone(external as AnyRecord));\n}\n\nfunction refuse(\n message: string,\n fix: string | { action: string; explanation: string },\n code = \"VALIDATION_ERROR\",\n): never {\n writeJson({ ok: false, error: { code, message, fix } });\n process.exit(1);\n}\n\ntype Target = { kind: string; on: \"node\" | \"sideEffect\"; ids: string[] };\n\nfunction allTargets(tree: AnyRecord, kind: string | undefined): Target {\n if (!kind) refuse(\"--all needs --type <kind> to know what to wire.\", \"e.g. --all --type googleSpreadsheet\");\n const on = STEP_KINDS.has(kind) ? \"node\" : \"sideEffect\";\n // A stated destination is restated whole (\"every lead to Vicente and Fran\"), set or not.\n const ids = STATED_KINDS.has(kind)\n ? collectSideEffects(tree)\n .filter(({ sideEffect }) => sideEffect.type === kind)\n .map(({ sideEffect }) => String(sideEffect.id))\n : on === \"node\"\n ? unpickedSteps(tree, kind)\n : unwiredSideEffects(tree, kind);\n if (ids.length === 0 && STATED_KINDS.has(kind)) {\n refuse(\n `This Form has no ${kind} destination.`,\n `Add one: baker flows add-side-effect <slug> --node <stepId> --type ${kind}`,\n );\n }\n if (ids.length === 0) {\n refuse(\n `Every ${kind} in this Form is already wired.`,\n \"Repoint one by naming it with --node / --side-effect instead of --all.\",\n );\n }\n return { kind, on, ids };\n}\n\nfunction onlyOfType(tree: AnyRecord, type: string): string {\n const probe = attachDestination(tree, undefined, { oauthProviderId: \"\", encryptedConfig: \"\" }, type);\n if (!probe.ok) refuse(probe.message, probe.fix);\n return probe.sideEffectId;\n}\n\nfunction stepTarget(tree: AnyRecord, node: string): Target {\n const type = stepType(findStep(tree, node));\n if (!type) refuse(`No step with id \"${node}\" in this form.`, \"Step ids: baker flows show <slug>\");\n return { kind: type, on: \"node\", ids: [node] };\n}\n\nfunction sideEffectTarget(tree: AnyRecord, named: string): Target {\n const found = collectSideEffects(tree).find((entry) => entry.sideEffect.id === named);\n if (!found) refuse(`No side effect with id \"${named}\" in this form.`, \"Side-effect ids: baker flows show <slug>\");\n return { kind: String(found.sideEffect.type), on: \"sideEffect\", ids: [named] };\n}\n\n/** Which steps or side effects this call fills, resolved before any platform is asked anything. */\nexport function targetsFor(tree: AnyRecord, args: AnyRecord): Target {\n const node = typeof args.node === \"string\" ? args.node : undefined;\n const named = typeof args[\"side-effect\"] === \"string\" ? args[\"side-effect\"] : undefined;\n if ([node, named, args.all === true ? \"all\" : undefined].filter(Boolean).length > 1) {\n refuse(\"Pass one of --node, --side-effect or --all.\", \"One target per call; --all for every unwired one.\");\n }\n if (args.all === true) {\n const kind = typeof args.type === \"string\" ? args.type : args[\"hubspot-form\"] ? \"hubspotForm\" : statedKind(args);\n return allTargets(tree, kind);\n }\n if (node) return stepTarget(tree, node);\n if (named) return sideEffectTarget(tree, named);\n if (args[\"hubspot-form\"]) return { kind: \"hubspotForm\", on: \"sideEffect\", ids: [onlyOfType(tree, \"hubspotForm\")] };\n const stated = statedKind(args);\n if (stated) return { kind: stated, on: \"sideEffect\", ids: [onlyOfType(tree, stated)] };\n return refuse(\n \"Name what to fill: --node <stepId>, --side-effect <id>, or --all --type <kind>.\",\n \"Ids: baker flows show <slug>\",\n );\n}\n\nasync function sealHubspotForm(formId: string): Promise<HubspotFormsDestinationResponse[\"data\"]> {\n try {\n return (await apiPost<HubspotFormsDestinationResponse>(\"/api/hubspot/forms/destination\", { formId })).data;\n } catch (err) {\n const refusal = err instanceof ApiError ? hubspotRefusal(err.code, err.message) : null;\n if (err instanceof ApiError && refusal !== null) refuse(err.message, refusal.fix, refusal.code);\n failApi(err);\n }\n}\n\nfunction isAgentKind(kind: string): kind is FlowAgentDestinationKind {\n return (FLOW_AGENT_DESTINATION_KINDS as readonly string[]).includes(kind);\n}\n\n/**\n * The refusals only the user can clear, as the call that clears them: nothing\n * connected is the connect card; two accounts is a question only when the\n * agent cannot tell which one the user means.\n */\nexport function destinationRefusal(\n kind: FlowAgentDestinationKind,\n err: ApiError,\n): { code: string; fix: string } | null {\n if (err.code === \"NOT_FOUND\" && err.message.includes(\"is connected to this company\")) {\n return {\n code: \"NOT_CONNECTED\",\n fix: `AGENT INSTRUCTION: only the user can connect it. Call request_connection with { platform: \"${FLOW_PROVIDER_TYPE[kind]}\", reason } — reason in their words — then run this again. Keep going with the rest of the task meanwhile.`,\n };\n }\n if (err.code === \"CONFLICT\" && err.message.includes(\"--account\")) {\n return {\n code: \"SEVERAL_ACCOUNTS\",\n fix: \"Pass --account <id> when the user or the brief makes clear which one; otherwise ask them which (AskUserQuestion), naming the accounts above.\",\n };\n }\n return null;\n}\n\nfunction resolveBody(kind: FlowAgentDestinationKind, args: AnyRecord): AnyRecord {\n const columns =\n typeof args.columns === \"string\"\n ? args.columns\n .split(\",\")\n .map((column) => column.trim())\n .filter(Boolean)\n : undefined;\n return {\n kind,\n ...(typeof args.account === \"string\" ? { account: args.account } : {}),\n ...(typeof args.resource === \"string\" ? { resourceId: args.resource } : {}),\n ...(typeof args.tab === \"string\" ? { tab: args.tab } : {}),\n ...(typeof args[\"new-sheet\"] === \"string\" ? { newSheet: { title: args[\"new-sheet\"], columns } } : {}),\n };\n}\n\nasync function resolveDestination(\n kind: FlowAgentDestinationKind,\n args: AnyRecord,\n): Promise<FlowsResolveResponse[\"data\"]> {\n try {\n return (await apiPost<FlowsResolveResponse>(\"/api/flows/destinations/resolve\", resolveBody(kind, args))).data;\n } catch (err) {\n const refusal = err instanceof ApiError ? destinationRefusal(kind, err) : null;\n if (err instanceof ApiError && refusal !== null) refuse(err.message, refusal.fix, refusal.code);\n failApi(err);\n }\n}\n\ntype Wired = { wired: { nodeId: string; sideEffectId?: string }[]; destination: unknown; hints: string[] };\n\nfunction applyAll(target: Target, apply: (id: string) => Stepped | Attached): Wired[\"wired\"] {\n return target.ids.map((id) => {\n const done = apply(id);\n if (!done.ok) refuse(done.message, done.fix);\n return \"sideEffectId\" in done ? { nodeId: done.nodeId, sideEffectId: done.sideEffectId } : { nodeId: done.nodeId };\n });\n}\n\nfunction sameAs(tree: AnyRecord, target: Target, ref: string): Wired {\n const [slug, id] = ref.split(\":\");\n if (!slug || !id) refuse(`--same-as takes <slug>:<id>, got \"${ref}\".`, \"e.g. --same-as madrid:se-gsheet-1\");\n const source = readFlowTree(slug);\n const wired = applyAll(target, (targetId) => copyDestination(source, id, tree, targetId));\n return { wired, destination: { sameAs: ref }, hints: [] };\n}\n\nasync function fromHubspot(tree: AnyRecord, target: Target, formId: string, slug: string): Promise<Wired> {\n if (target.kind !== \"hubspotForm\") {\n refuse(\n `--hubspot-form wires a hubspotForm side effect, not a ${target.kind}.`,\n \"A HubSpot step takes `baker hubspot forms view <id> --as-node` (or `meetings view <slug> --as-node`).\",\n );\n }\n const sealed = await sealHubspotForm(formId);\n const wired = applyAll(target, (id) => attachDestination(tree, id, sealed));\n return {\n wired,\n destination: { formGuid: sealed.formGuid, formName: sealed.formName, portalId: sealed.portalId },\n hints: [\n `Now map each step's answers onto it: baker flows map ${slug} --side-effect <id> --hubspot-form ${sealed.formGuid} --map email=<value> … --write. Field names come from \\`baker hubspot forms view ${sealed.formGuid}\\`.`,\n ],\n };\n}\n\nfunction sheetHints(slug: string, data: Extract<FlowsResolveResponse[\"data\"], { target: \"sideEffect\" }>): string[] {\n const sheet = data.destination;\n if (!sheet)\n return [`Now map the fields: baker flows map ${slug} --side-effect <id> --map <fieldKey>=<value> … --write.`];\n const columns = sheet.columns.map((column) => `${column.letter}=${column.header}`).join(\", \");\n return [\n ...(sheet.created\n ? [\n `Created \"${sheet.name}\" in the connected Google account${sheet.url ? ` (${sheet.url})` : \"\"} — tell the user where their leads will land.`,\n ]\n : []),\n columns\n ? `Columns: ${columns}. Map by letter: baker flows map ${slug} --side-effect <id> --map A=<value> … --write.`\n : `The \"${sheet.tab}\" tab has no header row. Map by letter anyway, and say which column holds what.`,\n ];\n}\n\nasync function fromStated(tree: AnyRecord, target: Target, args: AnyRecord): Promise<Wired> {\n const plan = sealRequestFor(target.kind, args);\n if (!plan.ok) refuse(plan.message, plan.fix);\n let sealed: FlowsSealResponse[\"data\"];\n try {\n sealed = (await apiPost<FlowsSealResponse>(\"/api/flows/destinations/seal\", plan.request)).data;\n } catch (err) {\n failApi(err);\n }\n const wired = applyAll(target, (id) => attachSettings(tree, id, sealed.encryptedConfig, target.kind));\n return {\n wired,\n destination: sealed.settings,\n hints: [\n target.kind === \"email\"\n ? `Leads from these steps now go to ${String(sealed.settings.email)} with the subject \"${String(sealed.settings.subject)}\". Tell the user in those words.`\n : `Submissions now go to ${String(sealed.settings.apiUrl)}.`,\n ],\n };\n}\n\nasync function fromPlatform(tree: AnyRecord, target: Target, args: AnyRecord, slug: string): Promise<Wired> {\n const kind = target.kind;\n if (!isAgentKind(kind)) {\n const hubspotStep = kind === \"hubspot\" || kind === \"hubspotMeeting\";\n refuse(\n `A ${kind} ${target.on === \"node\" ? \"step\" : \"side effect\"} is not something this command can fill from a platform.`,\n hubspotStep\n ? \"Write the blob from `baker hubspot forms view <id> --as-node` (or `meetings view <slug> --as-node`) into the step's form.external.\"\n : OAUTH_SIDE_EFFECTS.has(kind)\n ? \"Pass --hubspot-form <formId>.\"\n : \"It takes typed credentials only the user has: request_flow_input.\",\n );\n }\n const data = await resolveDestination(kind, args);\n if (data.target === \"node\") {\n const wired = applyAll(target, (id) => attachStep(tree, id, data.external));\n return {\n wired,\n destination: { name: data.name, account: data.account },\n hints: [`Picked \"${data.name}\". Autofill its fields from earlier answers in the step's form.autofilledFields.`],\n };\n }\n const sealed = { oauthProviderId: data.oauthProviderId, encryptedConfig: data.encryptedConfig };\n const wired = applyAll(target, (id) => attachDestination(tree, id, sealed, kind));\n return {\n wired,\n destination: data.destination ? { ...data.destination, account: data.account } : { account: data.account },\n hints: sheetHints(slug, data),\n };\n}\n\nregisterSchema({\n command: \"flows.connect\",\n description:\n 'Fill a Form\\'s step or destination yourself — no card for the user. Steps: Calendly, SavvyCal, GoHighLevel calendar/form (`--node <id> --resource <id>`). Destinations: HubSpot form (`--hubspot-form <id>`), Google Sheets (`--resource <spreadsheetId>` or `--new-sheet <title> --columns …`), Pipedrive and GoHighLevel contact (no resource: the connected account is the destination), email (`--email \"a@x.com, b@x.com\" --subject \"New lead — <Form>\"`, never a card), webhook without a credential (`--url`). `--same-as <slug>:<id>` copies what another Form already has. `--all --type <kind>` fills every unwired one of that kind at once. Ids come from `baker flows options <kind>`. Fall back to request_flow_input only when nothing is connected, the sheet was never chosen, or several resources plausibly match.',\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: {\n type: \"string\",\n description: \"Step id to fill (calendly, savvycal, highlevel, highlevelForm)\",\n required: false,\n },\n \"side-effect\": { type: \"string\", description: \"Side-effect id to wire\", required: false },\n all: { type: \"boolean\", description: \"Every unwired one of --type in this Form\", required: false, default: false },\n type: { type: \"string\", description: \"The kind --all wires (e.g. googleSpreadsheet, calendly)\", required: false },\n resource: { type: \"string\", description: \"Option id from `baker flows options <kind>`\", required: false },\n \"hubspot-form\": {\n type: \"string\",\n description: \"HubSpot form id (from `baker hubspot forms list`)\",\n required: false,\n },\n \"new-sheet\": {\n type: \"string\",\n description: \"Create a Google spreadsheet with this title and wire it\",\n required: false,\n },\n columns: {\n type: \"string\",\n description: \"With --new-sheet: header row, comma-separated, from column A\",\n required: false,\n },\n tab: { type: \"string\", description: \"Google Sheets tab to append to (default: the first)\", required: false },\n \"same-as\": {\n type: \"string\",\n description: \"<slug>:<id> — copy another Form's wired destination or picked step\",\n required: false,\n },\n account: {\n type: \"string\",\n description: \"Connection id, when more than one account of the platform is connected\",\n required: false,\n },\n email: {\n type: \"string\",\n description:\n 'Email destination: who receives each lead, comma-separated for several (--email \"ana@x.com, luis@x.com\"). Never a card: you state it.',\n required: false,\n },\n subject: {\n type: \"string\",\n description:\n 'Email destination: the subject line. Write it yourself from the Form (\"New lead — Private events\").',\n required: false,\n },\n url: {\n type: \"string\",\n description:\n \"Webhook destination with no credential: its https address. One that needs a token goes to request_flow_input.\",\n required: false,\n },\n },\n});\n\nexport const connectCommand = defineCommand({\n meta: {\n name: \"connect\",\n description:\n 'Fill a step or destination yourself. Start here: baker flows options calendly, then baker flows connect contact --node book --resource <id>. Email: --side-effect se-email-1 --email \"ana@x.com, luis@x.com\" --subject \"New lead — Contact\". Sheets: --side-effect se-gsheet-1 --new-sheet \"Leads\" --columns \"Name,Email\". Same as another Form: --same-as madrid:se-gsheet-1',\n },\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: { type: \"string\", description: \"Step id to fill\" },\n \"side-effect\": { type: \"string\", description: \"Side-effect id to wire\" },\n all: { type: \"boolean\", description: \"Every unwired one of --type\" },\n type: { type: \"string\", description: \"The kind --all wires\" },\n resource: { type: \"string\", description: \"Option id from baker flows options <kind>\" },\n \"hubspot-form\": { type: \"string\", description: \"HubSpot form id (from baker hubspot forms list)\" },\n \"new-sheet\": { type: \"string\", description: \"Create a spreadsheet with this title\" },\n columns: { type: \"string\", description: \"Header row for --new-sheet, comma-separated\" },\n tab: { type: \"string\", description: \"Sheet tab (default: the first)\" },\n \"same-as\": { type: \"string\", description: \"<slug>:<id> to copy\" },\n account: { type: \"string\", description: \"Connection id when several are connected\" },\n email: { type: \"string\", description: \"Email destination: recipients, comma-separated\" },\n subject: { type: \"string\", description: \"Email destination: subject line\" },\n url: { type: \"string\", description: \"Webhook destination with no credential: its address\" },\n },\n run: async ({ args }) => {\n const slug = String(args.slug);\n const target = targetsFor(readFlowTree(slug), args);\n\n const tree = readFlowTree(slug);\n const result =\n typeof args[\"same-as\"] === \"string\"\n ? sameAs(tree, target, args[\"same-as\"])\n : typeof args[\"hubspot-form\"] === \"string\"\n ? await fromHubspot(tree, target, args[\"hubspot-form\"], slug)\n : STATED_KINDS.has(target.kind)\n ? await fromStated(tree, target, args)\n : await fromPlatform(tree, target, args, slug);\n writeFlowTree(slug, tree);\n\n writeJson({\n ok: true,\n data: {\n slug,\n kind: target.kind,\n [target.on === \"node\" ? \"steps\" : \"sideEffects\"]: result.wired,\n destination: result.destination,\n connected: true,\n },\n hints: [...result.hints, \"Staged like any other edit in this chat: it goes live when the chat is published.\"],\n });\n },\n});\n"],"mappings":"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","names":["wired"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
failApi,
|
|
3
3
|
failValidation
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-ZDNOCKKY.js";
|
|
5
|
+
import "./chunk-K6WVV74H.js";
|
|
6
6
|
import "./chunk-GXDLWBOY.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-TEINLN64.js";
|
|
8
8
|
import "./chunk-ZJWUBJYQ.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-NE4F3FHN.js";
|
|
10
10
|
import {
|
|
11
11
|
apiPost,
|
|
12
12
|
validateConvexId
|
|
@@ -194,4 +194,4 @@ var claimCommand = defineCommand({
|
|
|
194
194
|
export {
|
|
195
195
|
claimCommand
|
|
196
196
|
};
|
|
197
|
-
//# sourceMappingURL=claim-
|
|
197
|
+
//# sourceMappingURL=claim-25JJM4AG.js.map
|
package/dist/cli.js
CHANGED
|
@@ -106,38 +106,38 @@ Formats: --output json works on every command that prints the envelope. --output
|
|
|
106
106
|
Introspection: Run 'baker schema <command>' to inspect argument schemas.`
|
|
107
107
|
},
|
|
108
108
|
subCommands: {
|
|
109
|
-
capabilities: () => import("./capabilities-
|
|
110
|
-
actions: () => import("./actions-
|
|
111
|
-
"scheduled-agents": () => import("./scheduled-agents-
|
|
112
|
-
ads: () => import("./ads-
|
|
113
|
-
brand: () => import("./brand-
|
|
114
|
-
analytics: () => import("./analytics-
|
|
109
|
+
capabilities: () => import("./capabilities-NZPSSS6T.js").then((m) => m.capabilitiesCommand),
|
|
110
|
+
actions: () => import("./actions-WH5C6Q7I.js").then((m) => m.actionsCommand),
|
|
111
|
+
"scheduled-agents": () => import("./scheduled-agents-HWEKBANT.js").then((m) => m.scheduledAgentsCommand),
|
|
112
|
+
ads: () => import("./ads-6UG66KA5.js").then((m) => m.adsCommand),
|
|
113
|
+
brand: () => import("./brand-LXU7YNCF.js").then((m) => m.brandCommand),
|
|
114
|
+
analytics: () => import("./analytics-3YAWQF5K.js").then((m) => m.analyticsCommand),
|
|
115
115
|
experiment: () => import("./experiment-LKK77YAN.js").then((m) => m.experimentCommand),
|
|
116
116
|
ga4: () => import("./ga4-UDQ2HA2J.js").then((m) => m.ga4Command),
|
|
117
117
|
gsc: () => import("./gsc-P3QYGDV2.js").then((m) => m.gscCommand),
|
|
118
|
-
research: () => import("./research-
|
|
119
|
-
creatives: () => import("./creatives-
|
|
120
|
-
flows: () => import("./flows-
|
|
121
|
-
funnel: () => import("./funnel-
|
|
122
|
-
images: () => import("./images-
|
|
123
|
-
studio: () => import("./studio-
|
|
124
|
-
avatars: () => import("./avatars-
|
|
125
|
-
landing: () => import("./landing-
|
|
126
|
-
videos: () => import("./videos-
|
|
127
|
-
testimonials: () => import("./testimonials-
|
|
128
|
-
canvas: () => import("./canvas-
|
|
129
|
-
tags: () => import("./tags-
|
|
130
|
-
"tag-manager": () => import("./tag-manager-
|
|
131
|
-
chats: () => import("./chats-
|
|
132
|
-
history: () => import("./history-
|
|
133
|
-
credentials: () => import("./credentials-
|
|
134
|
-
hubspot: () => import("./hubspot-
|
|
135
|
-
accounts: () => import("./accounts-
|
|
136
|
-
"winning-ads": () => import("./winning-ads-
|
|
137
|
-
"media-sources": () => import("./media-sources-
|
|
138
|
-
site: () => import("./site-
|
|
139
|
-
mcp: () => import("./mcp-
|
|
140
|
-
"setup-links": () => import("./setup-links-
|
|
118
|
+
research: () => import("./research-O6QXFCD7.js").then((m) => m.researchCommand),
|
|
119
|
+
creatives: () => import("./creatives-QLSZFOMB.js").then((m) => m.creativesCommand),
|
|
120
|
+
flows: () => import("./flows-XVZJ6GOI.js").then((m) => m.flowsCommand),
|
|
121
|
+
funnel: () => import("./funnel-XHDCXXQ5.js").then((m) => m.funnelCommand),
|
|
122
|
+
images: () => import("./images-3SOTFMJV.js").then((m) => m.imagesCommand),
|
|
123
|
+
studio: () => import("./studio-RA7QQH4O.js").then((m) => m.studioCommand),
|
|
124
|
+
avatars: () => import("./avatars-P3WX5TQP.js").then((m) => m.avatarsCommand),
|
|
125
|
+
landing: () => import("./landing-3SSX6WK6.js").then((m) => m.landingCommand),
|
|
126
|
+
videos: () => import("./videos-A32DPGHD.js").then((m) => m.videosCommand),
|
|
127
|
+
testimonials: () => import("./testimonials-FV7KPAPK.js").then((m) => m.testimonialsCommand),
|
|
128
|
+
canvas: () => import("./canvas-VH3Q26TK.js").then((m) => m.canvasCommand),
|
|
129
|
+
tags: () => import("./tags-TESETZGC.js").then((m) => m.tagsCommand),
|
|
130
|
+
"tag-manager": () => import("./tag-manager-DYZUOIAS.js").then((m) => m.tagManagerCommand),
|
|
131
|
+
chats: () => import("./chats-GN3PBFX4.js").then((m) => m.chatsCommand),
|
|
132
|
+
history: () => import("./history-EUG4LE44.js").then((m) => m.historyCommand),
|
|
133
|
+
credentials: () => import("./credentials-WSLR5VU4.js").then((m) => m.credentialsCommand),
|
|
134
|
+
hubspot: () => import("./hubspot-UULVEYVO.js").then((m) => m.hubspotCommand),
|
|
135
|
+
accounts: () => import("./accounts-6LSBBXKA.js").then((m) => m.accountsCommand),
|
|
136
|
+
"winning-ads": () => import("./winning-ads-THIR7E5S.js").then((m) => m.winningAdsCommand),
|
|
137
|
+
"media-sources": () => import("./media-sources-W2CQFSVQ.js").then((m) => m.mediaSourcesCommand),
|
|
138
|
+
site: () => import("./site-7PSCHITE.js").then((m) => m.siteCommand),
|
|
139
|
+
mcp: () => import("./mcp-NLAQJWG6.js").then((m) => m.mcpCommand),
|
|
140
|
+
"setup-links": () => import("./setup-links-5ZCASHAL.js").then((m) => m.setupLinksCommand),
|
|
141
141
|
schema: () => import("./schema-6GR77VJG.js").then((m) => m.schemaCommand)
|
|
142
142
|
}
|
|
143
143
|
});
|
|
@@ -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
|
TABLE_OUTPUT_FORMATS,
|
|
7
7
|
outputFormatRefusal,
|
|
@@ -14,11 +14,11 @@ import {
|
|
|
14
14
|
} from "./chunk-X7ZODEXJ.js";
|
|
15
15
|
import {
|
|
16
16
|
linkedinCompaniesRequestSchema
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-K6WVV74H.js";
|
|
18
18
|
import "./chunk-GXDLWBOY.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-TEINLN64.js";
|
|
20
20
|
import "./chunk-ZJWUBJYQ.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-NE4F3FHN.js";
|
|
22
22
|
import {
|
|
23
23
|
apiPost
|
|
24
24
|
} from "./chunk-XBOK23HI.js";
|
|
@@ -192,4 +192,4 @@ export {
|
|
|
192
192
|
companiesCommand,
|
|
193
193
|
companiesHints
|
|
194
194
|
};
|
|
195
|
-
//# sourceMappingURL=companies-
|
|
195
|
+
//# sourceMappingURL=companies-VR5M5PAN.js.map
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
failValidation,
|
|
4
4
|
isTempId,
|
|
5
5
|
writeOk
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZDNOCKKY.js";
|
|
7
7
|
import {
|
|
8
8
|
ACTION_COMPLETE_NOTE_MIN
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-K6WVV74H.js";
|
|
10
10
|
import "./chunk-GXDLWBOY.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-TEINLN64.js";
|
|
12
12
|
import "./chunk-ZJWUBJYQ.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-NE4F3FHN.js";
|
|
14
14
|
import {
|
|
15
15
|
apiPost,
|
|
16
16
|
validateConvexId
|
|
@@ -78,4 +78,4 @@ var completeCommand = defineCommand({
|
|
|
78
78
|
export {
|
|
79
79
|
completeCommand
|
|
80
80
|
};
|
|
81
|
-
//# sourceMappingURL=complete-
|
|
81
|
+
//# sourceMappingURL=complete-DRMOTC2W.js.map
|