@koda-sl/baker-cli 0.571.0-dev.6a3439a0a → 0.572.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/account-52WDLW4Z.js +82 -0
- package/dist/account-SGHH4SIM.js +82 -0
- package/dist/account-reads-CQIJCPCH.js +219 -0
- package/dist/account-users-KP6A43DU.js +64 -0
- package/dist/account-writes-3BJSUM2V.js +68 -0
- package/dist/accounts-FV5FPX3X.js +80 -0
- package/dist/accounts-LQFSNBIC.js +713 -0
- package/dist/accounts-ZV4IXOF5.js +119 -0
- package/dist/actions-RZ62K3WT.js +55 -0
- package/dist/activecampaign-E6PM6YNO.js +938 -0
- package/dist/ad-group-writes-KU4QMQZP.js +172 -0
- package/dist/ad-groups-NMW2G32A.js +70 -0
- package/dist/ad-writes-7NOFTOM4.js +176 -0
- package/dist/add-HMAQJG4J.js +305 -0
- package/dist/add-MLTE6PPC.js +107 -0
- package/dist/ads-P4Z3MLKS.js +79 -0
- package/dist/ads-T6J6QQKX.js +48 -0
- package/dist/advertisers-FP7MTMUI.js +123 -0
- package/dist/analytics-AYYFKMF6.js +2437 -0
- package/dist/analytics-D2IA2P5E.js +447 -0
- package/dist/animate-VX7E7KJE.js +480 -0
- package/dist/assign-EE4EDOPX.js +80 -0
- package/dist/audience-size-SRNH57FA.js +76 -0
- package/dist/audiences-P3SPTAJT.js +280 -0
- package/dist/audit-R5JG3ABY.js +154 -0
- package/dist/autocomplete-AIKXLHME.js +114 -0
- package/dist/avatars-3CAQ5OBN.js +38 -0
- package/dist/bid-pricing-PDZIJGOX.js +103 -0
- package/dist/brand-2SN7MM72.js +22 -0
- package/dist/brief-S4R3NZMS.js +543 -0
- package/dist/campaign-groups-OHL6POG2.js +99 -0
- package/dist/campaign-writes-P5XPFTRK.js +176 -0
- package/dist/campaign-writes-RKCE4MSZ.js +168 -0
- package/dist/campaigns-HGMQSYUM.js +113 -0
- package/dist/campaigns-SWZJVE2T.js +78 -0
- package/dist/campaigns-UWUEENB6.js +111 -0
- package/dist/canvas-RAPLCU3Y.js +46 -0
- package/dist/capabilities-FF6NNJ5L.js +147 -0
- package/dist/catalog-TOHUVBEU.js +66 -0
- package/dist/catalogs-V7PTEJBO.js +130 -0
- package/dist/changes-5OW3UYMF.js +167 -0
- package/dist/chatgpt-JBMYNVJB.js +47 -0
- package/dist/chats-XVAFLM47.js +589 -0
- package/dist/chats-XVAFLM47.js.map +1 -0
- package/dist/check-FFRPBGUH.js +107 -0
- package/dist/chunk-22RM3UOO.js +63 -0
- package/dist/chunk-2EEDKWYY.js +479 -0
- package/dist/chunk-2JAO7PMI.js +2235 -0
- package/dist/chunk-2JAO7PMI.js.map +1 -0
- package/dist/chunk-2K5GSSPU.js +1920 -0
- package/dist/chunk-2K5GSSPU.js.map +1 -0
- package/dist/chunk-2KQQHBBQ.js +547 -0
- package/dist/chunk-2N7TB346.js +5368 -0
- package/dist/chunk-2N7TB346.js.map +1 -0
- package/dist/chunk-33ZP44QR.js +103 -0
- package/dist/chunk-34RDCDCF.js +207 -0
- package/dist/chunk-47VWQ7FQ.js +843 -0
- package/dist/chunk-4SAO6RT2.js +962 -0
- package/dist/chunk-5XB352F5.js +197 -0
- package/dist/chunk-7GFGFBWZ.js +344 -0
- package/dist/chunk-7MIOMG22.js +685 -0
- package/dist/chunk-7YEP3NFN.js +163 -0
- package/dist/chunk-AP7X3ONA.js +297 -0
- package/dist/chunk-ARCQQUEL.js +220 -0
- package/dist/chunk-AXJ2DMM4.js +19 -0
- package/dist/chunk-BFAPSFS7.js +1518 -0
- package/dist/chunk-BMMXYR7A.js +238 -0
- package/dist/chunk-BNEWJXKU.js +638 -0
- package/dist/chunk-C4BPAMAJ.js +8954 -0
- package/dist/chunk-C4BPAMAJ.js.map +1 -0
- package/dist/chunk-C57CXCTI.js +455 -0
- package/dist/chunk-C7KV5O5J.js +274 -0
- package/dist/chunk-CKN4HQZM.js +89 -0
- package/dist/chunk-CTAXKC5J.js +66 -0
- package/dist/chunk-DXQ5DUFU.js +392 -0
- package/dist/chunk-EV2HVFTJ.js +224 -0
- package/dist/chunk-GQUBM3Z6.js +249 -0
- package/dist/chunk-H7LKYGLJ.js +24026 -0
- package/dist/chunk-H7LKYGLJ.js.map +1 -0
- package/dist/chunk-HM4NWA72.js +5471 -0
- package/dist/chunk-IB6VWG32.js +755 -0
- package/dist/chunk-IB6VWG32.js.map +1 -0
- package/dist/chunk-ICASR3ES.js +7901 -0
- package/dist/chunk-ICASR3ES.js.map +1 -0
- package/dist/chunk-IGCS3X4F.js +150 -0
- package/dist/chunk-IJ6WA2JW.js +148 -0
- package/dist/chunk-ITIUWJGQ.js +131 -0
- package/dist/chunk-J4BJLHLQ.js +3510 -0
- package/dist/chunk-J4BJLHLQ.js.map +1 -0
- package/dist/chunk-JAC6JVCI.js +26 -0
- package/dist/chunk-JCFICJWI.js +831 -0
- package/dist/chunk-JGK2FDZW.js +1919 -0
- package/dist/chunk-JJBO7QIR.js +604 -0
- package/dist/chunk-K7APGDEO.js +430 -0
- package/dist/chunk-KJXKLEJ7.js +91 -0
- package/dist/chunk-L2LGHWJN.js +156 -0
- package/dist/chunk-LAOCXV6Z.js +98 -0
- package/dist/chunk-M2RXXLK3.js +51 -0
- package/dist/chunk-MCJ5I5LR.js +3187 -0
- package/dist/chunk-MCJ5I5LR.js.map +1 -0
- package/dist/chunk-MKG57P2E.js +783 -0
- package/dist/chunk-MYGPWKEI.js +170 -0
- package/dist/chunk-MZPS46OR.js +76 -0
- package/dist/chunk-N7EHQNNG.js +312 -0
- package/dist/chunk-NAZ7A7LN.js +930 -0
- package/dist/chunk-OHVXHNUR.js +57 -0
- package/dist/chunk-OJRS3TGS.js +399 -0
- package/dist/chunk-OJZKY5UM.js +46 -0
- package/dist/chunk-PRZBEZBA.js +203 -0
- package/dist/chunk-PTE6BNCH.js +334 -0
- package/dist/chunk-Q5DLTIYL.js +142 -0
- package/dist/chunk-QVHZTCB5.js +1254 -0
- package/dist/chunk-QVO5VPNA.js +169 -0
- package/dist/chunk-RBR5PHYJ.js +91 -0
- package/dist/chunk-RHBCKOF2.js +61 -0
- package/dist/chunk-S3XCG55E.js +454 -0
- package/dist/chunk-SPNF2V46.js +468 -0
- package/dist/chunk-SPNY52S5.js +494 -0
- package/dist/chunk-TEQEZAJI.js +1320 -0
- package/dist/chunk-U6AWJIFP.js +225 -0
- package/dist/chunk-VAV5CCDD.js +167 -0
- package/dist/chunk-VSALEVXN.js +23 -0
- package/dist/chunk-W3TZPHZO.js +285 -0
- package/dist/chunk-XHWHBGKX.js +4277 -0
- package/dist/chunk-XHWHBGKX.js.map +1 -0
- package/dist/chunk-Z3RGBLVJ.js +64 -0
- package/dist/claim-YABJMHON.js +200 -0
- package/dist/cli.js +32 -32
- package/dist/companies-K2IVXNC5.js +198 -0
- package/dist/company-6JAVJPSU.js +308 -0
- package/dist/complete-4R6O7TAF.js +84 -0
- package/dist/connect-FWT2IC5N.js +45 -0
- package/dist/conversation-DSRM4JIU.js +96 -0
- package/dist/conversion-report-2FREFML5.js +127 -0
- package/dist/conversion-upload-command-JAGV6GMG.js +439 -0
- package/dist/conversion-writes-JZIJSQ7T.js +122 -0
- package/dist/conversions-4D5TEPO4.js +140 -0
- package/dist/conversions-Q5EBTEXA.js +78 -0
- package/dist/create-3OYFSUR5.js +62 -0
- package/dist/create-FMGLMQZC.js +218 -0
- package/dist/create-SDFDKJGJ.js +239 -0
- package/dist/create-VW23RNWT.js +135 -0
- package/dist/creatives-E33LXJG7.js +229 -0
- package/dist/creatives-SLKVFR4Y.js +58 -0
- package/dist/credentials-WGGZFBDJ.js +290 -0
- package/dist/critique-EOYMGUIK.js +232 -0
- package/dist/critique-US4B3ZY5.js +1451 -0
- package/dist/crm-T4XPJZTR.js +229 -0
- package/dist/crm-UBQ735O6.js +323 -0
- package/dist/currency-EFDQYW5B.js +88 -0
- package/dist/customers-HHQUU3MA.js +65 -0
- package/dist/delete-JPIV5E2Y.js +67 -0
- package/dist/delete-UC5XQZWC.js +69 -0
- package/dist/delete-X5TD7P3U.js +57 -0
- package/dist/demographics-6GQYZIVR.js +141 -0
- package/dist/discard-5UNX5TEZ.js +69 -0
- package/dist/discover-BPUUWRBP.js +172 -0
- package/dist/domain-7BOPJLTP.js +101 -0
- package/dist/download-B4IV43AJ.js +172 -0
- package/dist/draft-FVB6SEP3.js +332 -0
- package/dist/draft-GCOCG4PO.js +315 -0
- package/dist/draft-GSDDK6FO.js +614 -0
- package/dist/draft-GSDDK6FO.js.map +1 -0
- package/dist/draft-QT6MVG47.js +220 -0
- package/dist/draft-VRE52N6B.js +374 -0
- package/dist/engine/index.js +8 -8
- package/dist/experiments-3JSDRY5W.js +236 -0
- package/dist/extract-BVSL6H3S.js +143 -0
- package/dist/facets-NN33WFSR.js +117 -0
- package/dist/feedback-BYXZEEW3.js +114 -0
- package/dist/feedback-P7ZGD7JV.js +115 -0
- package/dist/feedback-record-ZFEXC54P.js +269 -0
- package/dist/fetch-3JPN4QAJ.js +204 -0
- package/dist/fit-2R5NGB7E.js +65 -0
- package/dist/flows-XM7GBTIU.js +340 -0
- package/dist/fonts-IO4X2AKN.js +39 -0
- package/dist/forecast-HMNQZFVL.js +169 -0
- package/dist/forecast-MOFJ3BKH.js +121 -0
- package/dist/funnel-FR7JQUZW.js +397 -0
- package/dist/generate-KAWRRYTT.js +263 -0
- package/dist/get-BMJIYS25.js +62 -0
- package/dist/get-MXXANBI3.js +82 -0
- package/dist/google-3CAUWNWE.js +3300 -0
- package/dist/google-MHFI5OGW.js +163 -0
- package/dist/google-ads-ULZRFDZU.js +198 -0
- package/dist/history-F3U3WNEJ.js +102 -0
- package/dist/history-SGFTHPT2.js +153 -0
- package/dist/history-YQSYXBJH.js +69 -0
- package/dist/hubspot-FASIF5U5.js +814 -0
- package/dist/ideas-TKCOPOMS.js +45 -0
- package/dist/images-K4EPTLTF.js +92 -0
- package/dist/ingest-MCCJBWYC.js +131 -0
- package/dist/ingest-T3AV5OR4.js +28 -0
- package/dist/insights-UVCFOB3N.js +132 -0
- package/dist/inspect-3OHTBHNO.js +192 -0
- package/dist/intent-F5NTOSQC.js +95 -0
- package/dist/keyword-gap-EB5QATYN.js +130 -0
- package/dist/keyword-metrics-E4PPLUYX.js +200 -0
- package/dist/keywords-for-site-HD2FOBMH.js +131 -0
- package/dist/landing-NC2A277E.js +28 -0
- package/dist/languages-4S26FJDP.js +40 -0
- package/dist/leads-LL2S6ENL.js +115 -0
- package/dist/learn-2CP2SROJ.js +207 -0
- package/dist/line-item-writes-56A4ITU6.js +211 -0
- package/dist/line-items-AIIDDTTH.js +107 -0
- package/dist/link-BIXBY5KG.js +67 -0
- package/dist/linkedin-TXX22PPH.js +1344 -0
- package/dist/linkedin-person-5KEGEX6G.js +139 -0
- package/dist/list-C5AT3LF4.js +306 -0
- package/dist/list-UQNU4QUE.js +154 -0
- package/dist/list-YBHQ3HIB.js +67 -0
- package/dist/locations-UWBQLHXW.js +40 -0
- package/dist/locations-WXGOI3VV.js +69 -0
- package/dist/log-FZJTWN3S.js +95 -0
- package/dist/make-CGWFHT3N.js +1367 -0
- package/dist/map-WDOBMEAW.js +445 -0
- package/dist/mcp-JJZ5YGSS.js +729 -0
- package/dist/media-sources-AJ5USQXV.js +35 -0
- package/dist/members-NSR7S62Y.js +47 -0
- package/dist/metrics-4AFEEDVP.js +152 -0
- package/dist/models-2ZEM64H5.js +155 -0
- package/dist/normalize-RQEHHRES.js +144 -0
- package/dist/options-4BW4P6JD.js +125 -0
- package/dist/organization-TKGXZYH6.js +949 -0
- package/dist/performance-27VHB3UA.js +27 -0
- package/dist/performance-XGHZDQGU.js +5565 -0
- package/dist/pixels-HEI5WVAO.js +62 -0
- package/dist/preview-2YRMPWI2.js +101 -0
- package/dist/promoted-tweet-writes-PT6BW64X.js +183 -0
- package/dist/promoted-tweets-SBZXEU7S.js +119 -0
- package/dist/publish-Z7ZK3XB7.js +350 -0
- package/dist/query-K7MYBRTS.js +62 -0
- package/dist/reddit-L4RQNJBL.js +29 -0
- package/dist/refresh-EWALAFUQ.js +97 -0
- package/dist/release-C2H2KBNY.js +63 -0
- package/dist/relevant-pages-XYQKVX3U.js +99 -0
- package/dist/remove-JOXARFD3.js +53 -0
- package/dist/reopen-WRW4JVO2.js +66 -0
- package/dist/rerun-3I7MF3FV.js +97 -0
- package/dist/research-422BF4O4.js +265 -0
- package/dist/research-MCTV6ZJZ.js +75 -0
- package/dist/reset-7ANRT4I3.js +57 -0
- package/dist/reset-MZDRR5VP.js +57 -0
- package/dist/resolve-KKRG65WF.js +124 -0
- package/dist/retry-PDKRPWIZ.js +63 -0
- package/dist/retry-YZCBWAHT.js +65 -0
- package/dist/revenue-F7E5ZRLB.js +91 -0
- package/dist/rules-GRLAFAZU.js +99 -0
- package/dist/rules-add-3C7LW4HD.js +465 -0
- package/dist/run-HJQ4KAWX.js +72 -0
- package/dist/run-ZV73UQ3E.js +69 -0
- package/dist/scaffold-ad-LBLEARDJ.js +1513 -0
- package/dist/scaffold-static-ad-GBRLIWKP.js +1012 -0
- package/dist/scaffold-static-ad-GBRLIWKP.js.map +1 -0
- package/dist/scaffold-video-EINW32ZH.js +885 -0
- package/dist/schedule-X5ZKZXPC.js +64 -0
- package/dist/scheduled-agents-APZA42K2.js +55 -0
- package/dist/schema-6JF4ZNGY.js +135 -0
- package/dist/search-4VAIJA2O.js +177 -0
- package/dist/select-YZO5DDY6.js +110 -0
- package/dist/set-prompt-GU3HPWWZ.js +199 -0
- package/dist/setup-links-ORBZ5T4H.js +144 -0
- package/dist/shopify-SN3TBTL5.js +4009 -0
- package/dist/site-3ZORNMAE.js +180 -0
- package/dist/sources-WGEC6FGZ.js +457 -0
- package/dist/sources-WT6M3QIX.js +30 -0
- package/dist/stale-BOT3VZCB.js +90 -0
- package/dist/status-WED3AXTZ.js +65 -0
- package/dist/stock-33GHQWNQ.js +212 -0
- package/dist/studio-4EV5S7PR.js +49 -0
- package/dist/sync-2GLGCSRQ.js +57 -0
- package/dist/sync-definition-SNUWHPGO.js +70 -0
- package/dist/tags-AQNOA7X5.js +23 -0
- package/dist/tags-CVPMOYKI.js +23 -0
- package/dist/tags-IQY7GYMU.js +227 -0
- package/dist/tags-MYUCES3W.js +26 -0
- package/dist/tags-SCMHCPF4.js +23 -0
- package/dist/targeting-criteria-RVJHW22S.js +113 -0
- package/dist/targets-G6SN6VTL.js +106 -0
- package/dist/testimonials-JALUWWLB.js +32 -0
- package/dist/themes-FW3VWZJE.js +95 -0
- package/dist/top-companies-WR6TXTNM.js +111 -0
- package/dist/transcript-JMRRJEET.js +165 -0
- package/dist/translate-YNOS5HTV.js +603 -0
- package/dist/triggers-UUSPHGXX.js +144 -0
- package/dist/unlink-U5VBTO7P.js +70 -0
- package/dist/unstage-KSYT7FOP.js +88 -0
- package/dist/update-GFKDIJRE.js +66 -0
- package/dist/update-QF6BLM5F.js +101 -0
- package/dist/update-VBQKI72I.js +192 -0
- package/dist/update-ZIKHDZRT.js +155 -0
- package/dist/upload-UYE73VLK.js +137 -0
- package/dist/url-options-AHJPR5VY.js +131 -0
- package/dist/url-params-P6MV2HKB.js +101 -0
- package/dist/validate-TTVHWWX5.js +135 -0
- package/dist/videos-XGQL37V4.js +41 -0
- package/dist/viewer-check-UPLR7C2K.js +83 -0
- package/dist/web-PIMTCU4V.js +173 -0
- package/dist/winning-ads-P4MXWYK6.js +86 -0
- package/dist/write-commands-24EOSYWL.js +1524 -0
- package/dist/x-HBA6AJJA.js +47 -0
- package/package.json +1 -1
- package/dist/account-EXGRZIXS.js +0 -82
- package/dist/account-JVDP5ERG.js +0 -82
- package/dist/account-reads-Z467VAL4.js +0 -219
- package/dist/account-users-342OZALE.js +0 -64
- package/dist/account-writes-KEXINJ5D.js +0 -68
- package/dist/accounts-QESGQJGZ.js +0 -713
- package/dist/accounts-QR6OQ3GC.js +0 -119
- package/dist/accounts-UWC2TT6R.js +0 -80
- package/dist/actions-NT3HXFFA.js +0 -55
- package/dist/activecampaign-EYRHDSXY.js +0 -938
- package/dist/ad-group-writes-SVR4RCKB.js +0 -172
- package/dist/ad-groups-C726HUXS.js +0 -70
- package/dist/ad-writes-RWJIWGEL.js +0 -176
- package/dist/add-EPOHDTUO.js +0 -305
- package/dist/add-NSW26HIM.js +0 -107
- package/dist/ads-3KK7VQPU.js +0 -79
- package/dist/ads-EWZGIC4T.js +0 -48
- package/dist/advertisers-AHOWL3YL.js +0 -123
- package/dist/analytics-7H6NDVUQ.js +0 -447
- package/dist/analytics-GFFXCMLV.js +0 -2437
- package/dist/animate-GTUI7XX4.js +0 -480
- package/dist/assign-SDPPWP3Q.js +0 -80
- package/dist/audience-size-LKDDHKED.js +0 -76
- package/dist/audiences-6L43K2T2.js +0 -280
- package/dist/audit-TSZIQTUB.js +0 -154
- package/dist/autocomplete-5BSAOAMZ.js +0 -114
- package/dist/avatars-S6RRD7M3.js +0 -38
- package/dist/bid-pricing-5KUAINH4.js +0 -103
- package/dist/brand-KFK2MQWW.js +0 -22
- package/dist/brief-6DV2PKAU.js +0 -543
- package/dist/campaign-groups-5RPZPDNW.js +0 -99
- package/dist/campaign-writes-FUIGN5OR.js +0 -176
- package/dist/campaign-writes-XMYBEVZF.js +0 -168
- package/dist/campaigns-5A3IE735.js +0 -111
- package/dist/campaigns-JNP3VDZK.js +0 -113
- package/dist/campaigns-N2SWSBYT.js +0 -78
- package/dist/canvas-CHFNQTLY.js +0 -46
- package/dist/capabilities-2W3SRZ2I.js +0 -147
- package/dist/catalog-6BER3SF7.js +0 -66
- package/dist/catalogs-G5NOKL4L.js +0 -130
- package/dist/changes-AS4RVEAL.js +0 -167
- package/dist/chatgpt-O6EEAYLF.js +0 -47
- package/dist/chats-4JLWMUAC.js +0 -584
- package/dist/chats-4JLWMUAC.js.map +0 -1
- package/dist/check-BOKLY5WG.js +0 -107
- package/dist/chunk-3KUNRKNV.js +0 -430
- package/dist/chunk-3UNMVVSI.js +0 -917
- package/dist/chunk-3UNMVVSI.js.map +0 -1
- package/dist/chunk-4INBMXUS.js +0 -930
- package/dist/chunk-5NMKNHJI.js +0 -46
- package/dist/chunk-6D7WTUF3.js +0 -98
- package/dist/chunk-6DSPB6YA.js +0 -7904
- package/dist/chunk-6DSPB6YA.js.map +0 -1
- package/dist/chunk-6FQ7CJEX.js +0 -57
- package/dist/chunk-6OIKNJ7G.js +0 -26
- package/dist/chunk-6OZDN2FI.js +0 -19
- package/dist/chunk-75OGTGC4.js +0 -89
- package/dist/chunk-AXLKR3E4.js +0 -66
- package/dist/chunk-BEZEZHQ6.js +0 -455
- package/dist/chunk-BMK4F4CU.js +0 -169
- package/dist/chunk-C52Q3L4C.js +0 -51
- package/dist/chunk-CST52ZME.js +0 -142
- package/dist/chunk-CUTTTFAU.js +0 -783
- package/dist/chunk-D32EWSMB.js +0 -150
- package/dist/chunk-DW3H2XQA.js +0 -91
- package/dist/chunk-EAA273XW.js +0 -2250
- package/dist/chunk-EAA273XW.js.map +0 -1
- package/dist/chunk-EM5R3BYC.js +0 -131
- package/dist/chunk-EMR5KGNY.js +0 -685
- package/dist/chunk-EONUZOJV.js +0 -962
- package/dist/chunk-F3CZFUXZ.js +0 -3187
- package/dist/chunk-F3CZFUXZ.js.map +0 -1
- package/dist/chunk-GRX3JXSR.js +0 -843
- package/dist/chunk-H4RHZJ65.js +0 -207
- package/dist/chunk-HFIHXIYY.js +0 -547
- package/dist/chunk-HOA74TOS.js +0 -249
- package/dist/chunk-HQDNDKNR.js +0 -5471
- package/dist/chunk-HXSYWXLH.js +0 -709
- package/dist/chunk-HXSYWXLH.js.map +0 -1
- package/dist/chunk-I3QLWGKS.js +0 -64
- package/dist/chunk-IMS53EQU.js +0 -4277
- package/dist/chunk-IMS53EQU.js.map +0 -1
- package/dist/chunk-J4AWNWKN.js +0 -1919
- package/dist/chunk-JAK5VDSG.js +0 -103
- package/dist/chunk-JGSEHX2Q.js +0 -3107
- package/dist/chunk-JGSEHX2Q.js.map +0 -1
- package/dist/chunk-JLAFNORO.js +0 -285
- package/dist/chunk-KG5VNPKU.js +0 -91
- package/dist/chunk-KJHG2DWS.js +0 -170
- package/dist/chunk-LAMSUL26.js +0 -1518
- package/dist/chunk-LLTHDEM2.js +0 -479
- package/dist/chunk-M5PZ6QQB.js +0 -312
- package/dist/chunk-MFGUR5OD.js +0 -334
- package/dist/chunk-MZLPOYCC.js +0 -10058
- package/dist/chunk-MZLPOYCC.js.map +0 -1
- package/dist/chunk-NOCBNING.js +0 -638
- package/dist/chunk-NWLK5RPA.js +0 -197
- package/dist/chunk-PR5OPERY.js +0 -167
- package/dist/chunk-QGAUDVMR.js +0 -148
- package/dist/chunk-QRRAMUKV.js +0 -468
- package/dist/chunk-QZ4YHQLW.js +0 -63
- package/dist/chunk-RGLTITIH.js +0 -494
- package/dist/chunk-RIVQ4PQQ.js +0 -225
- package/dist/chunk-RLLPY62L.js +0 -163
- package/dist/chunk-RQHXWPET.js +0 -61
- package/dist/chunk-RULW4627.js +0 -23
- package/dist/chunk-S4RCF3YT.js +0 -156
- package/dist/chunk-SIKCVWM3.js +0 -76
- package/dist/chunk-TCLJRWST.js +0 -831
- package/dist/chunk-UVUY6FLV.js +0 -1254
- package/dist/chunk-V4HS5JRL.js +0 -1320
- package/dist/chunk-WTOBG3YL.js +0 -392
- package/dist/chunk-WYMX3F47.js +0 -399
- package/dist/chunk-WZXMZFVB.js +0 -238
- package/dist/chunk-X5YHMGAT.js +0 -224
- package/dist/chunk-X7USE7IA.js +0 -24026
- package/dist/chunk-X7USE7IA.js.map +0 -1
- package/dist/chunk-XA7JN7YE.js +0 -297
- package/dist/chunk-XHAGX4J4.js +0 -604
- package/dist/chunk-XY7W6MQN.js +0 -274
- package/dist/chunk-YAINUFSC.js +0 -203
- package/dist/chunk-Z5BG47PO.js +0 -5752
- package/dist/chunk-Z5BG47PO.js.map +0 -1
- package/dist/chunk-Z7ICQKC2.js +0 -344
- package/dist/chunk-ZBXV2KOQ.js +0 -220
- package/dist/chunk-ZMNRSTNV.js +0 -454
- package/dist/claim-L4WLCVUL.js +0 -200
- package/dist/companies-HW46BRQG.js +0 -198
- package/dist/company-KCIDE7SL.js +0 -308
- package/dist/complete-JXM25FVW.js +0 -84
- package/dist/connect-7TX7AAM5.js +0 -45
- package/dist/conversation-YIDUB6GL.js +0 -96
- package/dist/conversion-report-33SG7SHU.js +0 -127
- package/dist/conversion-upload-command-N3OMLLF2.js +0 -439
- package/dist/conversion-writes-XGGTBML5.js +0 -122
- package/dist/conversions-F4OZYUCT.js +0 -140
- package/dist/conversions-PPP4QK7U.js +0 -78
- package/dist/create-6EAKNERA.js +0 -239
- package/dist/create-772LZHZR.js +0 -218
- package/dist/create-FDNMIVFX.js +0 -62
- package/dist/create-X2QM7GA7.js +0 -135
- package/dist/creatives-K2AAW6EL.js +0 -58
- package/dist/creatives-SNYN4KIM.js +0 -229
- package/dist/credentials-KZZVBO42.js +0 -290
- package/dist/critique-G5QXRHPF.js +0 -1451
- package/dist/critique-PUHOJI7V.js +0 -232
- package/dist/crm-4LZZVT4N.js +0 -229
- package/dist/crm-M6NXDU5B.js +0 -323
- package/dist/currency-HK2ZW2VW.js +0 -88
- package/dist/customers-V5NT4W7X.js +0 -65
- package/dist/delete-GQIKNO53.js +0 -57
- package/dist/delete-LFZIPQEO.js +0 -69
- package/dist/delete-YOEI63OT.js +0 -67
- package/dist/demographics-CEQ74O74.js +0 -141
- package/dist/discard-5GDF3TP3.js +0 -69
- package/dist/discover-Q5PAOIQQ.js +0 -172
- package/dist/domain-PKOUPHHF.js +0 -101
- package/dist/download-2WNTN7JQ.js +0 -172
- package/dist/draft-CF4XNJG5.js +0 -578
- package/dist/draft-CF4XNJG5.js.map +0 -1
- package/dist/draft-F4CVSL2I.js +0 -332
- package/dist/draft-L2NXCIYT.js +0 -315
- package/dist/draft-RZCTAOI2.js +0 -374
- package/dist/draft-UEVBUNKV.js +0 -220
- package/dist/experiments-DWC6L72S.js +0 -236
- package/dist/extract-6HJXSOZW.js +0 -143
- package/dist/facets-TBOXGYJT.js +0 -117
- package/dist/feedback-MSMFYAEY.js +0 -114
- package/dist/feedback-WAC6S42V.js +0 -115
- package/dist/feedback-record-XRQ2R2WD.js +0 -269
- package/dist/fetch-LGX7B3IC.js +0 -204
- package/dist/fit-RVWPRBNO.js +0 -65
- package/dist/flows-LA6EYMLS.js +0 -340
- package/dist/fonts-WRC34VSV.js +0 -39
- package/dist/forecast-6VHRGBJG.js +0 -121
- package/dist/forecast-OVKXBLJB.js +0 -169
- package/dist/funnel-U3GQIGND.js +0 -397
- package/dist/generate-Y4NJEYIH.js +0 -263
- package/dist/get-AHI247JG.js +0 -82
- package/dist/get-PF3HGECD.js +0 -62
- package/dist/google-BMUJKAUO.js +0 -3300
- package/dist/google-ZVAIFXQZ.js +0 -163
- package/dist/google-ads-6Z7P3SCD.js +0 -198
- package/dist/history-4QUV45ZJ.js +0 -102
- package/dist/history-PD7FCTDD.js +0 -153
- package/dist/history-VKRYKQ4C.js +0 -69
- package/dist/hubspot-WEFAFKVJ.js +0 -814
- package/dist/ideas-SMSEXKIA.js +0 -45
- package/dist/images-KAT4BPYV.js +0 -92
- package/dist/ingest-IHKTSJ4H.js +0 -28
- package/dist/ingest-TOHQ6MZA.js +0 -131
- package/dist/insights-3IPSEBYW.js +0 -132
- package/dist/inspect-5MZBPDYS.js +0 -192
- package/dist/intent-ZM4K623V.js +0 -95
- package/dist/keyword-gap-FAAF2I6V.js +0 -130
- package/dist/keyword-metrics-EXNJRJBY.js +0 -200
- package/dist/keywords-for-site-5LW77QWF.js +0 -131
- package/dist/landing-ZH4SD3DW.js +0 -28
- package/dist/languages-ZGDTERIQ.js +0 -40
- package/dist/leads-736RILZN.js +0 -115
- package/dist/learn-BESXWXEN.js +0 -207
- package/dist/line-item-writes-FA72DHNQ.js +0 -211
- package/dist/line-items-XVYE3IYT.js +0 -107
- package/dist/link-6FPKFVC3.js +0 -67
- package/dist/linkedin-TE6P4RYN.js +0 -1344
- package/dist/linkedin-person-TZJ6VEXE.js +0 -139
- package/dist/list-4R5EMKUQ.js +0 -154
- package/dist/list-MN2FPF3T.js +0 -306
- package/dist/list-ORO4WDF4.js +0 -67
- package/dist/locations-A65MFB7Q.js +0 -69
- package/dist/locations-WN6B3IJK.js +0 -40
- package/dist/log-ABBZLPRU.js +0 -95
- package/dist/make-QAFKU6WO.js +0 -1367
- package/dist/map-52P35OKE.js +0 -445
- package/dist/mcp-PZ3VBIF4.js +0 -729
- package/dist/media-sources-TT374PLN.js +0 -35
- package/dist/members-CF6VG6ZW.js +0 -47
- package/dist/metrics-3U3ZO2RF.js +0 -152
- package/dist/models-VOSJJFO2.js +0 -155
- package/dist/normalize-4LZCLMTQ.js +0 -144
- package/dist/options-6IRL7CL6.js +0 -125
- package/dist/organization-WMLLJE66.js +0 -949
- package/dist/performance-A7CYFBW2.js +0 -5565
- package/dist/performance-HYSTXLTS.js +0 -27
- package/dist/pixels-U6UA662G.js +0 -62
- package/dist/preview-76ZP2QA3.js +0 -101
- package/dist/promoted-tweet-writes-I5G4IDL5.js +0 -183
- package/dist/promoted-tweets-X5XNO7IT.js +0 -119
- package/dist/publish-S2Z4EF4H.js +0 -350
- package/dist/query-SAQADBM2.js +0 -62
- package/dist/reddit-S2L5WDY7.js +0 -29
- package/dist/refresh-K2YTJSH3.js +0 -97
- package/dist/release-FX76IIVN.js +0 -63
- package/dist/relevant-pages-KTSODNNW.js +0 -99
- package/dist/remove-LOVWPLDO.js +0 -53
- package/dist/reopen-DXV2Y6Z3.js +0 -66
- package/dist/rerun-TFQCRRFK.js +0 -97
- package/dist/research-7PGDAKC7.js +0 -265
- package/dist/research-HY5PSUCC.js +0 -75
- package/dist/reset-MEHUQJA4.js +0 -57
- package/dist/reset-Y5VZJRDQ.js +0 -57
- package/dist/resolve-FAVABEJW.js +0 -124
- package/dist/retry-5IY4MNDW.js +0 -65
- package/dist/retry-OMJ3C3AX.js +0 -63
- package/dist/revenue-S4KFZCOI.js +0 -91
- package/dist/rules-66IGR2KA.js +0 -99
- package/dist/rules-add-G7YGOYZJ.js +0 -465
- package/dist/run-LJVBH3JS.js +0 -72
- package/dist/run-XJBWDWN6.js +0 -69
- package/dist/scaffold-ad-GNMCB3QY.js +0 -1513
- package/dist/scaffold-static-ad-QIWKWURL.js +0 -1013
- package/dist/scaffold-static-ad-QIWKWURL.js.map +0 -1
- package/dist/scaffold-video-G6G2NPUF.js +0 -885
- package/dist/schedule-OX5XHXLH.js +0 -64
- package/dist/scheduled-agents-A5ZFQB5X.js +0 -55
- package/dist/schema-NTGHAPR2.js +0 -135
- package/dist/search-WCXQBMMM.js +0 -177
- package/dist/select-5ZD7FVBT.js +0 -110
- package/dist/set-prompt-NGCVMQIQ.js +0 -199
- package/dist/setup-links-4HCSF55G.js +0 -144
- package/dist/shopify-GDR5WGHH.js +0 -4009
- package/dist/site-B7LT6KAO.js +0 -180
- package/dist/sources-6DPUEROC.js +0 -30
- package/dist/sources-OSUXCLID.js +0 -457
- package/dist/stale-YKFKPPOH.js +0 -90
- package/dist/status-KIC3P5JV.js +0 -65
- package/dist/stock-VWFUFRYV.js +0 -212
- package/dist/studio-XLC37YGX.js +0 -49
- package/dist/sync-QBW4XH2H.js +0 -57
- package/dist/sync-definition-4KMJK46H.js +0 -70
- package/dist/tags-4F5UBPYG.js +0 -227
- package/dist/tags-4O5FPEEY.js +0 -26
- package/dist/tags-7RKKCQ4X.js +0 -23
- package/dist/tags-CB4MWI3A.js +0 -23
- package/dist/tags-QZJIP4LJ.js +0 -23
- package/dist/targeting-criteria-65UU7EYD.js +0 -113
- package/dist/targets-T742OPQI.js +0 -106
- package/dist/testimonials-HKJJXONO.js +0 -32
- package/dist/themes-Q6LVMEMF.js +0 -95
- package/dist/top-companies-T6AMU4C6.js +0 -111
- package/dist/transcript-DOUYMZAP.js +0 -165
- package/dist/translate-WKOXFZTQ.js +0 -603
- package/dist/triggers-EYY4GSUL.js +0 -144
- package/dist/unlink-JNM4WRZK.js +0 -70
- package/dist/unstage-QF4JT5YP.js +0 -88
- package/dist/update-6V3RBRIE.js +0 -101
- package/dist/update-J4DURR4K.js +0 -192
- package/dist/update-J7Y6LZC5.js +0 -155
- package/dist/update-MQ4NYIU6.js +0 -66
- package/dist/upload-CEIYYPID.js +0 -137
- package/dist/url-options-6WC2XQKB.js +0 -131
- package/dist/url-params-OVBIP6UA.js +0 -101
- package/dist/validate-UHXI2ESE.js +0 -135
- package/dist/videos-Z72RXCRB.js +0 -41
- package/dist/viewer-check-655BZRML.js +0 -83
- package/dist/web-4QN6QB7L.js +0 -173
- package/dist/winning-ads-2J2RIOLR.js +0 -86
- package/dist/write-commands-V7B4FBMX.js +0 -1524
- package/dist/x-7KXNCWTJ.js +0 -47
- /package/dist/{account-JVDP5ERG.js.map → account-52WDLW4Z.js.map} +0 -0
- /package/dist/{account-EXGRZIXS.js.map → account-SGHH4SIM.js.map} +0 -0
- /package/dist/{account-reads-Z467VAL4.js.map → account-reads-CQIJCPCH.js.map} +0 -0
- /package/dist/{account-users-342OZALE.js.map → account-users-KP6A43DU.js.map} +0 -0
- /package/dist/{account-writes-KEXINJ5D.js.map → account-writes-3BJSUM2V.js.map} +0 -0
- /package/dist/{accounts-UWC2TT6R.js.map → accounts-FV5FPX3X.js.map} +0 -0
- /package/dist/{accounts-QESGQJGZ.js.map → accounts-LQFSNBIC.js.map} +0 -0
- /package/dist/{accounts-QR6OQ3GC.js.map → accounts-ZV4IXOF5.js.map} +0 -0
- /package/dist/{actions-NT3HXFFA.js.map → actions-RZ62K3WT.js.map} +0 -0
- /package/dist/{activecampaign-EYRHDSXY.js.map → activecampaign-E6PM6YNO.js.map} +0 -0
- /package/dist/{ad-group-writes-SVR4RCKB.js.map → ad-group-writes-KU4QMQZP.js.map} +0 -0
- /package/dist/{ad-groups-C726HUXS.js.map → ad-groups-NMW2G32A.js.map} +0 -0
- /package/dist/{ad-writes-RWJIWGEL.js.map → ad-writes-7NOFTOM4.js.map} +0 -0
- /package/dist/{add-EPOHDTUO.js.map → add-HMAQJG4J.js.map} +0 -0
- /package/dist/{add-NSW26HIM.js.map → add-MLTE6PPC.js.map} +0 -0
- /package/dist/{ads-3KK7VQPU.js.map → ads-P4Z3MLKS.js.map} +0 -0
- /package/dist/{ads-EWZGIC4T.js.map → ads-T6J6QQKX.js.map} +0 -0
- /package/dist/{advertisers-AHOWL3YL.js.map → advertisers-FP7MTMUI.js.map} +0 -0
- /package/dist/{analytics-GFFXCMLV.js.map → analytics-AYYFKMF6.js.map} +0 -0
- /package/dist/{analytics-7H6NDVUQ.js.map → analytics-D2IA2P5E.js.map} +0 -0
- /package/dist/{animate-GTUI7XX4.js.map → animate-VX7E7KJE.js.map} +0 -0
- /package/dist/{assign-SDPPWP3Q.js.map → assign-EE4EDOPX.js.map} +0 -0
- /package/dist/{audience-size-LKDDHKED.js.map → audience-size-SRNH57FA.js.map} +0 -0
- /package/dist/{audiences-6L43K2T2.js.map → audiences-P3SPTAJT.js.map} +0 -0
- /package/dist/{audit-TSZIQTUB.js.map → audit-R5JG3ABY.js.map} +0 -0
- /package/dist/{autocomplete-5BSAOAMZ.js.map → autocomplete-AIKXLHME.js.map} +0 -0
- /package/dist/{avatars-S6RRD7M3.js.map → avatars-3CAQ5OBN.js.map} +0 -0
- /package/dist/{bid-pricing-5KUAINH4.js.map → bid-pricing-PDZIJGOX.js.map} +0 -0
- /package/dist/{brand-KFK2MQWW.js.map → brand-2SN7MM72.js.map} +0 -0
- /package/dist/{brief-6DV2PKAU.js.map → brief-S4R3NZMS.js.map} +0 -0
- /package/dist/{campaign-groups-5RPZPDNW.js.map → campaign-groups-OHL6POG2.js.map} +0 -0
- /package/dist/{campaign-writes-FUIGN5OR.js.map → campaign-writes-P5XPFTRK.js.map} +0 -0
- /package/dist/{campaign-writes-XMYBEVZF.js.map → campaign-writes-RKCE4MSZ.js.map} +0 -0
- /package/dist/{campaigns-JNP3VDZK.js.map → campaigns-HGMQSYUM.js.map} +0 -0
- /package/dist/{campaigns-N2SWSBYT.js.map → campaigns-SWZJVE2T.js.map} +0 -0
- /package/dist/{campaigns-5A3IE735.js.map → campaigns-UWUEENB6.js.map} +0 -0
- /package/dist/{canvas-CHFNQTLY.js.map → canvas-RAPLCU3Y.js.map} +0 -0
- /package/dist/{capabilities-2W3SRZ2I.js.map → capabilities-FF6NNJ5L.js.map} +0 -0
- /package/dist/{catalog-6BER3SF7.js.map → catalog-TOHUVBEU.js.map} +0 -0
- /package/dist/{catalogs-G5NOKL4L.js.map → catalogs-V7PTEJBO.js.map} +0 -0
- /package/dist/{changes-AS4RVEAL.js.map → changes-5OW3UYMF.js.map} +0 -0
- /package/dist/{chatgpt-O6EEAYLF.js.map → chatgpt-JBMYNVJB.js.map} +0 -0
- /package/dist/{check-BOKLY5WG.js.map → check-FFRPBGUH.js.map} +0 -0
- /package/dist/{chunk-QZ4YHQLW.js.map → chunk-22RM3UOO.js.map} +0 -0
- /package/dist/{chunk-LLTHDEM2.js.map → chunk-2EEDKWYY.js.map} +0 -0
- /package/dist/{chunk-HFIHXIYY.js.map → chunk-2KQQHBBQ.js.map} +0 -0
- /package/dist/{chunk-JAK5VDSG.js.map → chunk-33ZP44QR.js.map} +0 -0
- /package/dist/{chunk-H4RHZJ65.js.map → chunk-34RDCDCF.js.map} +0 -0
- /package/dist/{chunk-GRX3JXSR.js.map → chunk-47VWQ7FQ.js.map} +0 -0
- /package/dist/{chunk-EONUZOJV.js.map → chunk-4SAO6RT2.js.map} +0 -0
- /package/dist/{chunk-NWLK5RPA.js.map → chunk-5XB352F5.js.map} +0 -0
- /package/dist/{chunk-Z7ICQKC2.js.map → chunk-7GFGFBWZ.js.map} +0 -0
- /package/dist/{chunk-EMR5KGNY.js.map → chunk-7MIOMG22.js.map} +0 -0
- /package/dist/{chunk-RLLPY62L.js.map → chunk-7YEP3NFN.js.map} +0 -0
- /package/dist/{chunk-XA7JN7YE.js.map → chunk-AP7X3ONA.js.map} +0 -0
- /package/dist/{chunk-ZBXV2KOQ.js.map → chunk-ARCQQUEL.js.map} +0 -0
- /package/dist/{chunk-6OZDN2FI.js.map → chunk-AXJ2DMM4.js.map} +0 -0
- /package/dist/{chunk-LAMSUL26.js.map → chunk-BFAPSFS7.js.map} +0 -0
- /package/dist/{chunk-WZXMZFVB.js.map → chunk-BMMXYR7A.js.map} +0 -0
- /package/dist/{chunk-NOCBNING.js.map → chunk-BNEWJXKU.js.map} +0 -0
- /package/dist/{chunk-BEZEZHQ6.js.map → chunk-C57CXCTI.js.map} +0 -0
- /package/dist/{chunk-XY7W6MQN.js.map → chunk-C7KV5O5J.js.map} +0 -0
- /package/dist/{chunk-75OGTGC4.js.map → chunk-CKN4HQZM.js.map} +0 -0
- /package/dist/{chunk-AXLKR3E4.js.map → chunk-CTAXKC5J.js.map} +0 -0
- /package/dist/{chunk-WTOBG3YL.js.map → chunk-DXQ5DUFU.js.map} +0 -0
- /package/dist/{chunk-X5YHMGAT.js.map → chunk-EV2HVFTJ.js.map} +0 -0
- /package/dist/{chunk-HOA74TOS.js.map → chunk-GQUBM3Z6.js.map} +0 -0
- /package/dist/{chunk-HQDNDKNR.js.map → chunk-HM4NWA72.js.map} +0 -0
- /package/dist/{chunk-D32EWSMB.js.map → chunk-IGCS3X4F.js.map} +0 -0
- /package/dist/{chunk-QGAUDVMR.js.map → chunk-IJ6WA2JW.js.map} +0 -0
- /package/dist/{chunk-EM5R3BYC.js.map → chunk-ITIUWJGQ.js.map} +0 -0
- /package/dist/{chunk-6OIKNJ7G.js.map → chunk-JAC6JVCI.js.map} +0 -0
- /package/dist/{chunk-TCLJRWST.js.map → chunk-JCFICJWI.js.map} +0 -0
- /package/dist/{chunk-J4AWNWKN.js.map → chunk-JGK2FDZW.js.map} +0 -0
- /package/dist/{chunk-XHAGX4J4.js.map → chunk-JJBO7QIR.js.map} +0 -0
- /package/dist/{chunk-3KUNRKNV.js.map → chunk-K7APGDEO.js.map} +0 -0
- /package/dist/{chunk-DW3H2XQA.js.map → chunk-KJXKLEJ7.js.map} +0 -0
- /package/dist/{chunk-S4RCF3YT.js.map → chunk-L2LGHWJN.js.map} +0 -0
- /package/dist/{chunk-6D7WTUF3.js.map → chunk-LAOCXV6Z.js.map} +0 -0
- /package/dist/{chunk-C52Q3L4C.js.map → chunk-M2RXXLK3.js.map} +0 -0
- /package/dist/{chunk-CUTTTFAU.js.map → chunk-MKG57P2E.js.map} +0 -0
- /package/dist/{chunk-KJHG2DWS.js.map → chunk-MYGPWKEI.js.map} +0 -0
- /package/dist/{chunk-SIKCVWM3.js.map → chunk-MZPS46OR.js.map} +0 -0
- /package/dist/{chunk-M5PZ6QQB.js.map → chunk-N7EHQNNG.js.map} +0 -0
- /package/dist/{chunk-4INBMXUS.js.map → chunk-NAZ7A7LN.js.map} +0 -0
- /package/dist/{chunk-6FQ7CJEX.js.map → chunk-OHVXHNUR.js.map} +0 -0
- /package/dist/{chunk-WYMX3F47.js.map → chunk-OJRS3TGS.js.map} +0 -0
- /package/dist/{chunk-5NMKNHJI.js.map → chunk-OJZKY5UM.js.map} +0 -0
- /package/dist/{chunk-YAINUFSC.js.map → chunk-PRZBEZBA.js.map} +0 -0
- /package/dist/{chunk-MFGUR5OD.js.map → chunk-PTE6BNCH.js.map} +0 -0
- /package/dist/{chunk-CST52ZME.js.map → chunk-Q5DLTIYL.js.map} +0 -0
- /package/dist/{chunk-UVUY6FLV.js.map → chunk-QVHZTCB5.js.map} +0 -0
- /package/dist/{chunk-BMK4F4CU.js.map → chunk-QVO5VPNA.js.map} +0 -0
- /package/dist/{chunk-KG5VNPKU.js.map → chunk-RBR5PHYJ.js.map} +0 -0
- /package/dist/{chunk-RQHXWPET.js.map → chunk-RHBCKOF2.js.map} +0 -0
- /package/dist/{chunk-ZMNRSTNV.js.map → chunk-S3XCG55E.js.map} +0 -0
- /package/dist/{chunk-QRRAMUKV.js.map → chunk-SPNF2V46.js.map} +0 -0
- /package/dist/{chunk-RGLTITIH.js.map → chunk-SPNY52S5.js.map} +0 -0
- /package/dist/{chunk-V4HS5JRL.js.map → chunk-TEQEZAJI.js.map} +0 -0
- /package/dist/{chunk-RIVQ4PQQ.js.map → chunk-U6AWJIFP.js.map} +0 -0
- /package/dist/{chunk-PR5OPERY.js.map → chunk-VAV5CCDD.js.map} +0 -0
- /package/dist/{chunk-RULW4627.js.map → chunk-VSALEVXN.js.map} +0 -0
- /package/dist/{chunk-JLAFNORO.js.map → chunk-W3TZPHZO.js.map} +0 -0
- /package/dist/{chunk-I3QLWGKS.js.map → chunk-Z3RGBLVJ.js.map} +0 -0
- /package/dist/{claim-L4WLCVUL.js.map → claim-YABJMHON.js.map} +0 -0
- /package/dist/{companies-HW46BRQG.js.map → companies-K2IVXNC5.js.map} +0 -0
- /package/dist/{company-KCIDE7SL.js.map → company-6JAVJPSU.js.map} +0 -0
- /package/dist/{complete-JXM25FVW.js.map → complete-4R6O7TAF.js.map} +0 -0
- /package/dist/{connect-7TX7AAM5.js.map → connect-FWT2IC5N.js.map} +0 -0
- /package/dist/{conversation-YIDUB6GL.js.map → conversation-DSRM4JIU.js.map} +0 -0
- /package/dist/{conversion-report-33SG7SHU.js.map → conversion-report-2FREFML5.js.map} +0 -0
- /package/dist/{conversion-upload-command-N3OMLLF2.js.map → conversion-upload-command-JAGV6GMG.js.map} +0 -0
- /package/dist/{conversion-writes-XGGTBML5.js.map → conversion-writes-JZIJSQ7T.js.map} +0 -0
- /package/dist/{conversions-F4OZYUCT.js.map → conversions-4D5TEPO4.js.map} +0 -0
- /package/dist/{conversions-PPP4QK7U.js.map → conversions-Q5EBTEXA.js.map} +0 -0
- /package/dist/{create-FDNMIVFX.js.map → create-3OYFSUR5.js.map} +0 -0
- /package/dist/{create-772LZHZR.js.map → create-FMGLMQZC.js.map} +0 -0
- /package/dist/{create-6EAKNERA.js.map → create-SDFDKJGJ.js.map} +0 -0
- /package/dist/{create-X2QM7GA7.js.map → create-VW23RNWT.js.map} +0 -0
- /package/dist/{creatives-SNYN4KIM.js.map → creatives-E33LXJG7.js.map} +0 -0
- /package/dist/{creatives-K2AAW6EL.js.map → creatives-SLKVFR4Y.js.map} +0 -0
- /package/dist/{credentials-KZZVBO42.js.map → credentials-WGGZFBDJ.js.map} +0 -0
- /package/dist/{critique-PUHOJI7V.js.map → critique-EOYMGUIK.js.map} +0 -0
- /package/dist/{critique-G5QXRHPF.js.map → critique-US4B3ZY5.js.map} +0 -0
- /package/dist/{crm-4LZZVT4N.js.map → crm-T4XPJZTR.js.map} +0 -0
- /package/dist/{crm-M6NXDU5B.js.map → crm-UBQ735O6.js.map} +0 -0
- /package/dist/{currency-HK2ZW2VW.js.map → currency-EFDQYW5B.js.map} +0 -0
- /package/dist/{customers-V5NT4W7X.js.map → customers-HHQUU3MA.js.map} +0 -0
- /package/dist/{delete-YOEI63OT.js.map → delete-JPIV5E2Y.js.map} +0 -0
- /package/dist/{delete-LFZIPQEO.js.map → delete-UC5XQZWC.js.map} +0 -0
- /package/dist/{delete-GQIKNO53.js.map → delete-X5TD7P3U.js.map} +0 -0
- /package/dist/{demographics-CEQ74O74.js.map → demographics-6GQYZIVR.js.map} +0 -0
- /package/dist/{discard-5GDF3TP3.js.map → discard-5UNX5TEZ.js.map} +0 -0
- /package/dist/{discover-Q5PAOIQQ.js.map → discover-BPUUWRBP.js.map} +0 -0
- /package/dist/{domain-PKOUPHHF.js.map → domain-7BOPJLTP.js.map} +0 -0
- /package/dist/{download-2WNTN7JQ.js.map → download-B4IV43AJ.js.map} +0 -0
- /package/dist/{draft-F4CVSL2I.js.map → draft-FVB6SEP3.js.map} +0 -0
- /package/dist/{draft-L2NXCIYT.js.map → draft-GCOCG4PO.js.map} +0 -0
- /package/dist/{draft-UEVBUNKV.js.map → draft-QT6MVG47.js.map} +0 -0
- /package/dist/{draft-RZCTAOI2.js.map → draft-VRE52N6B.js.map} +0 -0
- /package/dist/{experiments-DWC6L72S.js.map → experiments-3JSDRY5W.js.map} +0 -0
- /package/dist/{extract-6HJXSOZW.js.map → extract-BVSL6H3S.js.map} +0 -0
- /package/dist/{facets-TBOXGYJT.js.map → facets-NN33WFSR.js.map} +0 -0
- /package/dist/{feedback-MSMFYAEY.js.map → feedback-BYXZEEW3.js.map} +0 -0
- /package/dist/{feedback-WAC6S42V.js.map → feedback-P7ZGD7JV.js.map} +0 -0
- /package/dist/{feedback-record-XRQ2R2WD.js.map → feedback-record-ZFEXC54P.js.map} +0 -0
- /package/dist/{fetch-LGX7B3IC.js.map → fetch-3JPN4QAJ.js.map} +0 -0
- /package/dist/{fit-RVWPRBNO.js.map → fit-2R5NGB7E.js.map} +0 -0
- /package/dist/{flows-LA6EYMLS.js.map → flows-XM7GBTIU.js.map} +0 -0
- /package/dist/{fonts-WRC34VSV.js.map → fonts-IO4X2AKN.js.map} +0 -0
- /package/dist/{forecast-OVKXBLJB.js.map → forecast-HMNQZFVL.js.map} +0 -0
- /package/dist/{forecast-6VHRGBJG.js.map → forecast-MOFJ3BKH.js.map} +0 -0
- /package/dist/{funnel-U3GQIGND.js.map → funnel-FR7JQUZW.js.map} +0 -0
- /package/dist/{generate-Y4NJEYIH.js.map → generate-KAWRRYTT.js.map} +0 -0
- /package/dist/{get-PF3HGECD.js.map → get-BMJIYS25.js.map} +0 -0
- /package/dist/{get-AHI247JG.js.map → get-MXXANBI3.js.map} +0 -0
- /package/dist/{google-BMUJKAUO.js.map → google-3CAUWNWE.js.map} +0 -0
- /package/dist/{google-ZVAIFXQZ.js.map → google-MHFI5OGW.js.map} +0 -0
- /package/dist/{google-ads-6Z7P3SCD.js.map → google-ads-ULZRFDZU.js.map} +0 -0
- /package/dist/{history-4QUV45ZJ.js.map → history-F3U3WNEJ.js.map} +0 -0
- /package/dist/{history-PD7FCTDD.js.map → history-SGFTHPT2.js.map} +0 -0
- /package/dist/{history-VKRYKQ4C.js.map → history-YQSYXBJH.js.map} +0 -0
- /package/dist/{hubspot-WEFAFKVJ.js.map → hubspot-FASIF5U5.js.map} +0 -0
- /package/dist/{ideas-SMSEXKIA.js.map → ideas-TKCOPOMS.js.map} +0 -0
- /package/dist/{images-KAT4BPYV.js.map → images-K4EPTLTF.js.map} +0 -0
- /package/dist/{ingest-TOHQ6MZA.js.map → ingest-MCCJBWYC.js.map} +0 -0
- /package/dist/{ingest-IHKTSJ4H.js.map → ingest-T3AV5OR4.js.map} +0 -0
- /package/dist/{insights-3IPSEBYW.js.map → insights-UVCFOB3N.js.map} +0 -0
- /package/dist/{inspect-5MZBPDYS.js.map → inspect-3OHTBHNO.js.map} +0 -0
- /package/dist/{intent-ZM4K623V.js.map → intent-F5NTOSQC.js.map} +0 -0
- /package/dist/{keyword-gap-FAAF2I6V.js.map → keyword-gap-EB5QATYN.js.map} +0 -0
- /package/dist/{keyword-metrics-EXNJRJBY.js.map → keyword-metrics-E4PPLUYX.js.map} +0 -0
- /package/dist/{keywords-for-site-5LW77QWF.js.map → keywords-for-site-HD2FOBMH.js.map} +0 -0
- /package/dist/{landing-ZH4SD3DW.js.map → landing-NC2A277E.js.map} +0 -0
- /package/dist/{languages-ZGDTERIQ.js.map → languages-4S26FJDP.js.map} +0 -0
- /package/dist/{leads-736RILZN.js.map → leads-LL2S6ENL.js.map} +0 -0
- /package/dist/{learn-BESXWXEN.js.map → learn-2CP2SROJ.js.map} +0 -0
- /package/dist/{line-item-writes-FA72DHNQ.js.map → line-item-writes-56A4ITU6.js.map} +0 -0
- /package/dist/{line-items-XVYE3IYT.js.map → line-items-AIIDDTTH.js.map} +0 -0
- /package/dist/{link-6FPKFVC3.js.map → link-BIXBY5KG.js.map} +0 -0
- /package/dist/{linkedin-TE6P4RYN.js.map → linkedin-TXX22PPH.js.map} +0 -0
- /package/dist/{linkedin-person-TZJ6VEXE.js.map → linkedin-person-5KEGEX6G.js.map} +0 -0
- /package/dist/{list-MN2FPF3T.js.map → list-C5AT3LF4.js.map} +0 -0
- /package/dist/{list-4R5EMKUQ.js.map → list-UQNU4QUE.js.map} +0 -0
- /package/dist/{list-ORO4WDF4.js.map → list-YBHQ3HIB.js.map} +0 -0
- /package/dist/{locations-WN6B3IJK.js.map → locations-UWBQLHXW.js.map} +0 -0
- /package/dist/{locations-A65MFB7Q.js.map → locations-WXGOI3VV.js.map} +0 -0
- /package/dist/{log-ABBZLPRU.js.map → log-FZJTWN3S.js.map} +0 -0
- /package/dist/{make-QAFKU6WO.js.map → make-CGWFHT3N.js.map} +0 -0
- /package/dist/{map-52P35OKE.js.map → map-WDOBMEAW.js.map} +0 -0
- /package/dist/{mcp-PZ3VBIF4.js.map → mcp-JJZ5YGSS.js.map} +0 -0
- /package/dist/{media-sources-TT374PLN.js.map → media-sources-AJ5USQXV.js.map} +0 -0
- /package/dist/{members-CF6VG6ZW.js.map → members-NSR7S62Y.js.map} +0 -0
- /package/dist/{metrics-3U3ZO2RF.js.map → metrics-4AFEEDVP.js.map} +0 -0
- /package/dist/{models-VOSJJFO2.js.map → models-2ZEM64H5.js.map} +0 -0
- /package/dist/{normalize-4LZCLMTQ.js.map → normalize-RQEHHRES.js.map} +0 -0
- /package/dist/{options-6IRL7CL6.js.map → options-4BW4P6JD.js.map} +0 -0
- /package/dist/{organization-WMLLJE66.js.map → organization-TKGXZYH6.js.map} +0 -0
- /package/dist/{performance-HYSTXLTS.js.map → performance-27VHB3UA.js.map} +0 -0
- /package/dist/{performance-A7CYFBW2.js.map → performance-XGHZDQGU.js.map} +0 -0
- /package/dist/{pixels-U6UA662G.js.map → pixels-HEI5WVAO.js.map} +0 -0
- /package/dist/{preview-76ZP2QA3.js.map → preview-2YRMPWI2.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-I5G4IDL5.js.map → promoted-tweet-writes-PT6BW64X.js.map} +0 -0
- /package/dist/{promoted-tweets-X5XNO7IT.js.map → promoted-tweets-SBZXEU7S.js.map} +0 -0
- /package/dist/{publish-S2Z4EF4H.js.map → publish-Z7ZK3XB7.js.map} +0 -0
- /package/dist/{query-SAQADBM2.js.map → query-K7MYBRTS.js.map} +0 -0
- /package/dist/{reddit-S2L5WDY7.js.map → reddit-L4RQNJBL.js.map} +0 -0
- /package/dist/{refresh-K2YTJSH3.js.map → refresh-EWALAFUQ.js.map} +0 -0
- /package/dist/{release-FX76IIVN.js.map → release-C2H2KBNY.js.map} +0 -0
- /package/dist/{relevant-pages-KTSODNNW.js.map → relevant-pages-XYQKVX3U.js.map} +0 -0
- /package/dist/{remove-LOVWPLDO.js.map → remove-JOXARFD3.js.map} +0 -0
- /package/dist/{reopen-DXV2Y6Z3.js.map → reopen-WRW4JVO2.js.map} +0 -0
- /package/dist/{rerun-TFQCRRFK.js.map → rerun-3I7MF3FV.js.map} +0 -0
- /package/dist/{research-7PGDAKC7.js.map → research-422BF4O4.js.map} +0 -0
- /package/dist/{research-HY5PSUCC.js.map → research-MCTV6ZJZ.js.map} +0 -0
- /package/dist/{reset-Y5VZJRDQ.js.map → reset-7ANRT4I3.js.map} +0 -0
- /package/dist/{reset-MEHUQJA4.js.map → reset-MZDRR5VP.js.map} +0 -0
- /package/dist/{resolve-FAVABEJW.js.map → resolve-KKRG65WF.js.map} +0 -0
- /package/dist/{retry-OMJ3C3AX.js.map → retry-PDKRPWIZ.js.map} +0 -0
- /package/dist/{retry-5IY4MNDW.js.map → retry-YZCBWAHT.js.map} +0 -0
- /package/dist/{revenue-S4KFZCOI.js.map → revenue-F7E5ZRLB.js.map} +0 -0
- /package/dist/{rules-66IGR2KA.js.map → rules-GRLAFAZU.js.map} +0 -0
- /package/dist/{rules-add-G7YGOYZJ.js.map → rules-add-3C7LW4HD.js.map} +0 -0
- /package/dist/{run-LJVBH3JS.js.map → run-HJQ4KAWX.js.map} +0 -0
- /package/dist/{run-XJBWDWN6.js.map → run-ZV73UQ3E.js.map} +0 -0
- /package/dist/{scaffold-ad-GNMCB3QY.js.map → scaffold-ad-LBLEARDJ.js.map} +0 -0
- /package/dist/{scaffold-video-G6G2NPUF.js.map → scaffold-video-EINW32ZH.js.map} +0 -0
- /package/dist/{schedule-OX5XHXLH.js.map → schedule-X5ZKZXPC.js.map} +0 -0
- /package/dist/{scheduled-agents-A5ZFQB5X.js.map → scheduled-agents-APZA42K2.js.map} +0 -0
- /package/dist/{schema-NTGHAPR2.js.map → schema-6JF4ZNGY.js.map} +0 -0
- /package/dist/{search-WCXQBMMM.js.map → search-4VAIJA2O.js.map} +0 -0
- /package/dist/{select-5ZD7FVBT.js.map → select-YZO5DDY6.js.map} +0 -0
- /package/dist/{set-prompt-NGCVMQIQ.js.map → set-prompt-GU3HPWWZ.js.map} +0 -0
- /package/dist/{setup-links-4HCSF55G.js.map → setup-links-ORBZ5T4H.js.map} +0 -0
- /package/dist/{shopify-GDR5WGHH.js.map → shopify-SN3TBTL5.js.map} +0 -0
- /package/dist/{site-B7LT6KAO.js.map → site-3ZORNMAE.js.map} +0 -0
- /package/dist/{sources-OSUXCLID.js.map → sources-WGEC6FGZ.js.map} +0 -0
- /package/dist/{sources-6DPUEROC.js.map → sources-WT6M3QIX.js.map} +0 -0
- /package/dist/{stale-YKFKPPOH.js.map → stale-BOT3VZCB.js.map} +0 -0
- /package/dist/{status-KIC3P5JV.js.map → status-WED3AXTZ.js.map} +0 -0
- /package/dist/{stock-VWFUFRYV.js.map → stock-33GHQWNQ.js.map} +0 -0
- /package/dist/{studio-XLC37YGX.js.map → studio-4EV5S7PR.js.map} +0 -0
- /package/dist/{sync-QBW4XH2H.js.map → sync-2GLGCSRQ.js.map} +0 -0
- /package/dist/{sync-definition-4KMJK46H.js.map → sync-definition-SNUWHPGO.js.map} +0 -0
- /package/dist/{tags-QZJIP4LJ.js.map → tags-AQNOA7X5.js.map} +0 -0
- /package/dist/{tags-7RKKCQ4X.js.map → tags-CVPMOYKI.js.map} +0 -0
- /package/dist/{tags-4F5UBPYG.js.map → tags-IQY7GYMU.js.map} +0 -0
- /package/dist/{tags-4O5FPEEY.js.map → tags-MYUCES3W.js.map} +0 -0
- /package/dist/{tags-CB4MWI3A.js.map → tags-SCMHCPF4.js.map} +0 -0
- /package/dist/{targeting-criteria-65UU7EYD.js.map → targeting-criteria-RVJHW22S.js.map} +0 -0
- /package/dist/{targets-T742OPQI.js.map → targets-G6SN6VTL.js.map} +0 -0
- /package/dist/{testimonials-HKJJXONO.js.map → testimonials-JALUWWLB.js.map} +0 -0
- /package/dist/{themes-Q6LVMEMF.js.map → themes-FW3VWZJE.js.map} +0 -0
- /package/dist/{top-companies-T6AMU4C6.js.map → top-companies-WR6TXTNM.js.map} +0 -0
- /package/dist/{transcript-DOUYMZAP.js.map → transcript-JMRRJEET.js.map} +0 -0
- /package/dist/{translate-WKOXFZTQ.js.map → translate-YNOS5HTV.js.map} +0 -0
- /package/dist/{triggers-EYY4GSUL.js.map → triggers-UUSPHGXX.js.map} +0 -0
- /package/dist/{unlink-JNM4WRZK.js.map → unlink-U5VBTO7P.js.map} +0 -0
- /package/dist/{unstage-QF4JT5YP.js.map → unstage-KSYT7FOP.js.map} +0 -0
- /package/dist/{update-MQ4NYIU6.js.map → update-GFKDIJRE.js.map} +0 -0
- /package/dist/{update-6V3RBRIE.js.map → update-QF6BLM5F.js.map} +0 -0
- /package/dist/{update-J4DURR4K.js.map → update-VBQKI72I.js.map} +0 -0
- /package/dist/{update-J7Y6LZC5.js.map → update-ZIKHDZRT.js.map} +0 -0
- /package/dist/{upload-CEIYYPID.js.map → upload-UYE73VLK.js.map} +0 -0
- /package/dist/{url-options-6WC2XQKB.js.map → url-options-AHJPR5VY.js.map} +0 -0
- /package/dist/{url-params-OVBIP6UA.js.map → url-params-P6MV2HKB.js.map} +0 -0
- /package/dist/{validate-UHXI2ESE.js.map → validate-TTVHWWX5.js.map} +0 -0
- /package/dist/{videos-Z72RXCRB.js.map → videos-XGQL37V4.js.map} +0 -0
- /package/dist/{viewer-check-655BZRML.js.map → viewer-check-UPLR7C2K.js.map} +0 -0
- /package/dist/{web-4QN6QB7L.js.map → web-PIMTCU4V.js.map} +0 -0
- /package/dist/{winning-ads-2J2RIOLR.js.map → winning-ads-P4MXWYK6.js.map} +0 -0
- /package/dist/{write-commands-V7B4FBMX.js.map → write-commands-24EOSYWL.js.map} +0 -0
- /package/dist/{x-7KXNCWTJ.js.map → x-HBA6AJJA.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/chats/index.ts","../src/commands/chats/carry-files.ts","../src/commands/chats/publish-hints.ts"],"sourcesContent":["import type { ChatsDiffResponse, ChatsListResponse, ChatsTranscriptResponse, ChatsViewResponse } from \"@baker/api\";\nimport { CHAT_IMPORT_SURFACES, type ChatsImportResponse } from \"@baker/api/chats\";\n\ntype ChatImportSurface = (typeof CHAT_IMPORT_SURFACES)[number];\n\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { getEnv, requireChatId } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi } from \"../actions/shared.ts\";\nimport { applyPatch, patchRefusal, readSourceFiles, revertPatch, type SourceFiles } from \"./carry-files.ts\";\nimport { publishHints, stillPublishingHints } from \"./publish-hints.ts\";\n\nconst STATUS_GROUPS = [\"active\", \"archived\", \"all\"] as const;\nconst REPO_SURFACES = [\"knowledge\", \"company\", \"brand\", \"landings\", \"flows\", \"creatives\"] as const;\n\nfunction parseBoundedInt(raw: string | undefined, name: string, min: number, max: number): number | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const value = Number.parseInt(raw, 10);\n if (Number.isNaN(value) || value < min || value > max) {\n throw new Error(`--${name} must be an integer between ${min} and ${max}`);\n }\n return value;\n}\n\nregisterSchema({\n command: \"chats.list\",\n description:\n 'Start here: list other Sessions on this account (newest first) so you can reuse what was done before. Each row shows the Session id, title, status, and a count of what it produced (creatives, landings, actions, flows, reports…). Looking for one? `--search \"PMax Brasil\"` finds the Sessions whose title or conversation holds any of the words, newest first, each with the `match` it was found by; read the match before trusting a row, since more words match more Sessions. Then drill in with `baker chats view <id>`, `baker chats transcript <id>`, or `baker chats diff <id>`. Read-only.',\n args: {\n status: { type: \"string\", description: \"Filter: active|archived|all (default: all)\", required: false },\n limit: { type: \"string\", description: \"Max Sessions to return, 1-100 (default: 20)\", required: false },\n full: { type: \"boolean\", description: \"Include each Session's full change list\", required: false, default: false },\n search: {\n type: \"string\",\n description:\n 'Sessions whose title or conversation holds any of these words, newest first, each with its `match` (e.g. --search \"PMax Brasil\")',\n required: false,\n },\n },\n});\n\nconst listCommand = defineCommand({\n meta: { name: \"list\", description: \"List other Sessions on this account, newest first.\" },\n args: {\n status: { type: \"string\", description: \"Filter: active|archived|all (default: all)\", required: false },\n limit: { type: \"string\", description: \"Max Sessions (1-100, default 20)\", required: false },\n full: { type: \"boolean\", description: \"Include each Session's full change list\", required: false, default: false },\n search: {\n type: \"string\",\n description: \"Sessions whose title or conversation holds any of these words\",\n required: false,\n },\n },\n run: async ({ args }) => {\n try {\n const body: Record<string, unknown> = {};\n if (args.search) {\n body.search = args.search;\n }\n if (args.status) {\n if (!(STATUS_GROUPS as readonly string[]).includes(args.status)) {\n throw new Error(`--status must be one of: ${STATUS_GROUPS.join(\"|\")}`);\n }\n body.status = args.status;\n }\n const limit = parseBoundedInt(args.limit, \"limit\", 1, 100);\n if (limit !== undefined) {\n body.limit = limit;\n }\n if (args.full) {\n body.full = true;\n }\n // Exclude our own Session so we never list ourselves as a reusable \"other\".\n const selfChatId = getEnv().BAKER_CHAT_ID;\n if (selfChatId) {\n body.excludeChatId = selfChatId;\n }\n const response = await apiPost<ChatsListResponse>(\"/api/chats/list\", body);\n writeJson({\n ...response,\n meta: { count: response.data.chats.length },\n ...(response.data.chats.length === 0\n ? {\n hints: [\n args.search\n ? \"No Session's title or conversation holds any of those words. Try other words (a name, a figure), widen with --status all, or drop --search to list the newest.\"\n : \"No Sessions matched. Widen with --status all or a larger --limit.\",\n ],\n }\n : {\n hints: [\n \"Drill in: `baker chats view <id>` for outputs, `chats transcript <id>` for the conversation, `chats diff <id>` for the real file changes.\",\n ],\n }),\n });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nregisterSchema({\n command: \"chats.view\",\n description:\n \"Inspect one Session's FULL picture of what it changed — the unified `effects`: git content (landings, creatives, flows, knowledge, brand), plus DB-only effects that never touch the repo — Actions, Scheduled agents, Tags, Tag Manager, Google Analytics, ad-platform writes, the funnel (`funnel`: which steps it added, changed or removed, and which ways in it added or removed in `triggersAdded`/`triggersRemoved`), what counts as a conversion (`conversions`), conversion sends, event sources, and every other staged or already-applied change (`otherChanges`: A/B tests, recipes, library images) — each resolved to real detail (names, descriptions, priorities, tag types, ad operations) and, once published, its `outcome`. Also `publish` (what each external surface actually did, with the provider's own error), `activity` (the chat's own timeline: status changes, publish start/fail, workspace recoveries, timeouts), `usage` (per-thread cost and the Session's token totals), the kickoff (how it was asked), threads, and commits. Effects are `staged` (in-progress draft) or applied. A completed Session is NOT proof its external changes landed — read `publish`. Use after `baker chats list` to decide whether to reuse it. Read-only.\",\n args: {\n id: { type: \"positional\", description: \"The Session id (from `baker chats list`)\", required: true },\n full: {\n type: \"boolean\",\n description: \"Untruncated effect lists and full activity metadata (compact caps each list at 25)\",\n required: false,\n default: false,\n },\n },\n});\n\nconst viewCommand = defineCommand({\n meta: {\n name: \"view\",\n description: \"Inspect one Session's full effects — git content + actions/tags/ads, kickoff, commits.\",\n },\n args: {\n id: { type: \"positional\", description: \"The Session id\", required: true },\n full: { type: \"boolean\", description: \"Include full detail\", required: false, default: false },\n },\n run: async ({ args }) => {\n try {\n const response = await apiPost<ChatsViewResponse>(\"/api/chats/view\", {\n chatId: args.id,\n ...(args.full ? { full: true } : {}),\n });\n const hints: string[] = response.data.publish ? publishHints(response.data.publish) : [];\n if (response.data.diffAvailable) {\n hints.push(\"See the real file-level diff of the git content with `baker chats diff <id> --full`.\");\n } else if (response.data.status === \"in_progress\" || response.data.status === \"publishing\") {\n hints.push(\n \"This Session is still in progress — read its current file changes with `baker chats diff <id> --live`.\",\n );\n }\n hints.push(...stillPublishingHints(response.data.status));\n hints.push(\"Read the conversation with `baker chats transcript <id>`.\");\n writeJson({ ...response, hints });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nconst TRANSCRIPT_ROLES = [\"user\", \"assistant\"] as const;\n\nregisterSchema({\n command: \"chats.transcript\",\n description:\n \"Start here: read a Session's conversation (user + agent turns), the most recent messages last. Leave out the id to read THIS chat — the way to recover its own earlier words after a context summary (never grep the raw logs on disk). `--search \\\"5.700\\\"` returns only the messages holding the text, from the whole conversation however long; `--role user` keeps one side; `--turns` keeps each request and the agent's closing message of that turn (a recap). Compact truncates long messages (around the match when searching); add --full for verbatim text. Read-only.\",\n args: {\n id: {\n type: \"positional\",\n description: \"The Session id (from `baker chats list`). Default: this chat\",\n required: false,\n },\n search: {\n type: \"string\",\n description: 'Only messages containing this text, case-insensitive (e.g. --search \"5.700\")',\n required: false,\n },\n role: { type: \"string\", description: \"Only one side: user|assistant\", required: false },\n turns: {\n type: \"boolean\",\n description: \"Only each user message and the agent's closing message of that turn\",\n required: false,\n default: false,\n },\n limit: { type: \"string\", description: \"Max messages to return, 1-1000 (default: 100)\", required: false },\n full: {\n type: \"boolean\",\n description: \"Return verbatim (untruncated) message text\",\n required: false,\n default: false,\n },\n },\n});\n\nconst transcriptCommand = defineCommand({\n meta: { name: \"transcript\", description: \"Read a Session's conversation — another one, or this chat's own.\" },\n args: {\n id: { type: \"positional\", description: \"The Session id (default: this chat)\", required: false },\n search: { type: \"string\", description: \"Only messages containing this text\", required: false },\n role: { type: \"string\", description: \"Only one side: user|assistant\", required: false },\n turns: { type: \"boolean\", description: \"Each request + the closing reply\", required: false, default: false },\n limit: { type: \"string\", description: \"Max messages (1-1000, default 100)\", required: false },\n full: { type: \"boolean\", description: \"Verbatim message text\", required: false, default: false },\n },\n run: async ({ args }) => {\n try {\n // No id reads the caller's own chat, so its earlier words survive a context summary.\n const chatId = args.id ?? getEnv().BAKER_CHAT_ID;\n if (!chatId) {\n throw new Error(\"Pass the Session id: `baker chats transcript <id>` (find it with `baker chats list`).\");\n }\n const body: Record<string, unknown> = { chatId };\n if (args.search) {\n body.search = args.search;\n }\n if (args.role) {\n if (!(TRANSCRIPT_ROLES as readonly string[]).includes(args.role)) {\n throw new Error(`--role must be one of: ${TRANSCRIPT_ROLES.join(\"|\")}`);\n }\n body.role = args.role;\n }\n if (args.turns) {\n body.turns = true;\n }\n const limit = parseBoundedInt(args.limit, \"limit\", 1, 1000);\n if (limit !== undefined) {\n body.limit = limit;\n }\n if (args.full) {\n body.full = true;\n }\n const response = await apiPost<ChatsTranscriptResponse>(\"/api/chats/transcript\", body);\n const hints: string[] = [];\n if (response.data.truncated) {\n hints.push(\"Older messages were dropped to fit --limit. Raise --limit, or narrow with --search.\");\n }\n if (args.search && response.data.entries.length === 0) {\n hints.push(\n \"No message holds that text. The whole conversation was searched — try a shorter or differently written piece of it.\",\n );\n }\n writeJson({ ...response, meta: { count: response.data.entries.length }, ...(hints.length > 0 ? { hints } : {}) });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nregisterSchema({\n command: \"chats.diff\",\n description:\n \"See the real file-level changes a Session made (landings, creatives, brand, flows, knowledge). Published Sessions read from git; for an in-progress (unpublished) Session pass --live to read its changes straight from its running workspace. Without --live, an unpublished Session returns available:false — use `baker chats view` for the staged summary. Compact lists changed files with +/- counts; add --full for the actual diff text. Read-only.\",\n args: {\n id: { type: \"positional\", description: \"The Session id\", required: true },\n surface: {\n type: \"string\",\n description: \"Filter to one surface: knowledge|company|brand|landings|flows|creatives\",\n required: false,\n },\n full: {\n type: \"boolean\",\n description: \"Include the unified-diff patch text per file\",\n required: false,\n default: false,\n },\n live: {\n type: \"boolean\",\n description:\n \"For an in-progress Session, read its changes from the live workspace (slower; resumes the paused Runtime). Ignored for published Sessions.\",\n required: false,\n default: false,\n },\n },\n});\n\nconst diffCommand = defineCommand({\n meta: { name: \"diff\", description: \"See a published Session's real file-level changes.\" },\n args: {\n id: { type: \"positional\", description: \"The Session id\", required: true },\n surface: {\n type: \"string\",\n description: \"Filter: knowledge|company|brand|landings|flows|creatives\",\n required: false,\n },\n full: { type: \"boolean\", description: \"Include the diff patch text per file\", required: false, default: false },\n live: {\n type: \"boolean\",\n description: \"Read an in-progress Session's changes from its live workspace (slower)\",\n required: false,\n default: false,\n },\n },\n run: async ({ args }) => {\n try {\n const body: Record<string, unknown> = { chatId: args.id };\n if (args.surface) {\n if (!(REPO_SURFACES as readonly string[]).includes(args.surface)) {\n throw new Error(`--surface must be one of: ${REPO_SURFACES.join(\"|\")}`);\n }\n body.surface = args.surface;\n }\n if (args.full) {\n body.full = true;\n }\n if (args.live) {\n body.live = true;\n }\n const response = await apiPost<ChatsDiffResponse>(\"/api/chats/diff\", body);\n writeJson({\n ...response,\n meta: { count: response.data.files.length },\n ...(!response.data.available && response.data.reason ? { hints: [response.data.reason] } : {}),\n ...(response.data.available && !args.full && response.data.files.length > 0\n ? { hints: [\"Add --full to read the actual diff text for each file.\"] }\n : {}),\n });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nconst IMPORT_DESCRIPTION = `Bring another chat's unpublished work into this chat, in one call — and take it out of that chat, so publishing both can never apply anything twice.\n\nStart here when the user wants another chat's work brought into this one (\"bring over\", \"merge the two\nchats\", \"its publish keeps failing — carry it over\", \"recover what the discarded chat did\"):\n baker chats import --from-chat <chat-id> # everything: files and staged changes\n baker chats import --from-chat <chat-id> --only meta-ads,tasks # only these staged surfaces, no files\n baker chats import --from-chat <chat-id> --failed # a PUBLISHED chat: the ad changes its publish could not apply\n\nThe other chat may be open, its publish may have failed, or it may be discarded. Its file changes (Knowledge,\npages, Forms, pictures) are applied in this workspace exactly as it made them, and every staged surface moves\nexactly as staged: ads (Google, Meta, LinkedIn, X, ChatGPT), Shopify, Tag Manager, Google Analytics, tracking\ntags, Tasks, scheduled agents, ActiveCampaign, site settings, ad goals, the funnel, conversions, conversion\nsends, event sources and lead routes. When both chats change the same file or the same thing, nothing moves\nand the refusal names each clash — ask the user which version wins. A chat whose publish failed is then closed\nto publishing, so the same work never goes live twice.\n--failed takes the Google Ads, Meta, LinkedIn, X and ChatGPT changes a published chat's publish could not\napply (failed, or skipped because what they needed failed), stages them here as they were — naming what did\napply by its real id — and takes them out of that chat, so its Retry cannot apply them twice.\nA change moved here cannot go back: to leave one behind, ask the user first and use --only (Google Ads alone\ncan pick single changes: \\`baker ads google draft import --from-chat <id> --refs|--exclude\\`).\nFind chat ids with \\`baker chats list\\`; see what one staged with \\`baker chats view <id>\\`.`;\n\nregisterSchema({\n command: \"chats.import\",\n description: IMPORT_DESCRIPTION,\n args: {\n \"from-chat\": {\n type: \"string\",\n description: \"The other chat — open, publish failed or discarded; published with --failed\",\n required: true,\n },\n only: {\n type: \"string\",\n description: `Comma-separated staged surfaces to move, leaving its files there (default: everything): ${CHAT_IMPORT_SURFACES.join(\", \")}`,\n required: false,\n },\n failed: {\n type: \"boolean\",\n description: \"The other chat is published: stage here the ad changes its publish could not apply\",\n required: false,\n default: false,\n },\n },\n});\n\n/** What became of the other chat's files, and of that chat itself. */\nfunction filesHints(data: ChatsImportResponse[\"data\"], files: SourceFiles | undefined): string[] {\n const hints: string[] = [];\n if (files?.kind === \"patch\") {\n hints.push(\n `Its ${files.paths.length} changed file(s) are now in this workspace, exactly as that chat left them: ${files.paths.join(\", \")}. Check them in the preview; never rebuild them by hand.`,\n );\n }\n if (files?.kind === \"stayed\") {\n hints.push(\n `Its file changes (Knowledge, pages, Forms…) did not come along: ${files.reason} Tell the user what is missing; do not rebuild it from memory.`,\n );\n } else if (data.filesStayed > 0) {\n hints.push(\n `Chat ${data.fromChatId} also changed ${data.filesStayed} file(s) (Knowledge, pages, Forms…) that did not come along. Run the import without --only to bring them.`,\n );\n }\n if (data.carried) {\n hints.push(\n \"That chat holds nothing of its own any more and can no longer be published, so the same work never goes live twice. This chat publishes all of it.\",\n );\n } else if (files?.kind === \"patch\") {\n hints.push(\n \"That chat still has its own copy of these files: tell the user to publish only this chat, or the same file changes would go live twice.\",\n );\n }\n return hints;\n}\n\n/** What the agent needs after a move: what stayed behind in the other chat, and what to check next. */\nfunction importHints(data: ChatsImportResponse[\"data\"], files: SourceFiles | undefined, failed: boolean): string[] {\n const hints: string[] = [];\n const moved = data.surfaces.reduce((sum, surface) => sum + surface.moved, 0);\n const stayed = data.surfaces.filter((surface) => surface.left);\n if (moved === 0 && stayed.length === 0 && files?.kind !== \"patch\") {\n hints.push(\n failed\n ? `Every ad change of chat ${data.fromChatId} applied, so there was nothing to bring over.`\n : `Chat ${data.fromChatId} had no unpublished changes, so nothing moved.`,\n );\n }\n for (const surface of stayed) {\n hints.push(\n `${surface.left?.count ? `${surface.left.count} ` : \"\"}${surface.surface} change(s) stayed in chat ${data.fromChatId}: ${surface.left?.reason}`,\n );\n }\n hints.push(...filesHints(data, files));\n if (moved > 0) {\n hints.push(\n \"The moved changes are this chat's now and publish with it; the other chat no longer holds them. Review them with each surface's `draft list` (and `baker ads google draft validate` when Google Ads changes moved).\",\n );\n }\n if (moved > 0 && stayed.length === 0 && !data.carried) {\n hints.push(\n \"Nothing staged stayed in the other chat. Never tell the user to discard it for this: its other work is still there.\",\n );\n }\n if (failed && moved > 0) {\n hints.push(\n \"They failed once for a reason: read each one's error with `baker chats view <id>` (publish) and amend it here before the user publishes, or it can fail the same way.\",\n );\n }\n return hints;\n}\n\ntype OnlyFlag = { surfaces?: ChatImportSurface[] } | { refusal: string };\n\n/** The surfaces `--only` names; absent means every surface, and a list naming none is refused. */\nfunction onlyFlag(value: unknown): OnlyFlag {\n if (typeof value !== \"string\") return {};\n const named = value\n .split(\",\")\n .map((surface) => surface.trim())\n .filter((surface) => surface.length > 0);\n if (named.length === 0) return { refusal: \"--only names no surface\" };\n const unknown = named.filter((surface) => !(CHAT_IMPORT_SURFACES as readonly string[]).includes(surface));\n if (unknown.length > 0) return { refusal: `--only names ${unknown.join(\", \")}, which is not a surface` };\n return { surfaces: named as ChatImportSurface[] };\n}\n\nfunction refuse(message: string, fix: string): never {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message, fix } });\n process.exit(1);\n}\n\n/** The other chat's files, applied here before its staged changes move — or why they stay there, or clash. */\nasync function carryFiles(fromChatId: string): Promise<SourceFiles | { kind: \"clash\"; paths: string[] }> {\n const files = await readSourceFiles(fromChatId);\n if (files.kind !== \"patch\") return files;\n const clashes = patchRefusal(files.patch);\n if (clashes) return { kind: \"clash\", paths: clashes };\n applyPatch(files.patch);\n return files;\n}\n\nconst importCommand = defineCommand({\n meta: { name: \"import\", description: IMPORT_DESCRIPTION },\n args: {\n \"from-chat\": { type: \"string\", description: \"The other chat whose work comes here\" },\n only: { type: \"string\", description: \"Comma-separated staged surfaces to move, without files (default: all)\" },\n failed: {\n type: \"boolean\",\n description: \"From a published chat: the ad changes its publish could not apply\",\n default: false,\n },\n },\n run: async ({ args }) => {\n const fromChatId = typeof args[\"from-chat\"] === \"string\" ? args[\"from-chat\"].trim() : \"\";\n if (!fromChatId) {\n refuse(\n \"--from-chat is required\",\n \"Name the other chat: baker chats import --from-chat <chat-id> (ids from `baker chats list`).\",\n );\n }\n const only = onlyFlag(args.only);\n if (\"refusal\" in only) {\n // A list naming nothing must never widen to \"every surface\": the move takes them out of the other chat.\n refuse(\n only.refusal,\n `Name surfaces from: ${CHAT_IMPORT_SURFACES.join(\", \")} — or leave --only off to move them all.`,\n );\n }\n if (args.failed && only.surfaces) {\n refuse(\"--failed takes every ad platform's failed changes\", \"Leave --only off with --failed.\");\n }\n const chatId = requireChatId();\n let files: Awaited<ReturnType<typeof carryFiles>> | undefined;\n try {\n files = args.failed || only.surfaces ? undefined : await carryFiles(fromChatId);\n } catch (err) {\n failApi(err);\n }\n if (files?.kind === \"clash\") {\n refuse(\n `Nothing moved: these files changed in both chats, differently: ${files.paths.join(\", \")}.`,\n \"Ask the user which version should win. To bring only the other chat's staged changes and leave its files there, run the import again with --only and the surfaces it staged.\",\n );\n }\n try {\n const response = await apiPost<ChatsImportResponse>(\"/api/chats/import\", {\n chatId,\n fromChatId,\n ...(only.surfaces ? { surfaces: only.surfaces } : {}),\n ...(files?.kind === \"patch\" ? { filesCarried: true } : {}),\n ...(args.failed ? { failed: true } : {}),\n });\n writeJson({ ...response, hints: importHints(response.data, files, Boolean(args.failed)) });\n } catch (err) {\n // All or nothing: the files go back out when the staged changes could not come with them.\n if (files?.kind === \"patch\") revertPatch(files.patch);\n failApi(err);\n }\n },\n});\n\nexport const chatsCommand = defineCommand({\n meta: {\n name: \"chats\",\n description: `Inspect other Sessions on this account: list them, view what they produced, read their conversation, and see their real file changes — so you can reuse past work for a new goal. \\`import --from-chat <id>\\` moves another open Session's staged changes into this one.\nFull guide: __tooling__/docs/tools/baker/chats.md`,\n },\n subCommands: {\n list: listCommand,\n view: viewCommand,\n transcript: transcriptCommand,\n diff: diffCommand,\n import: importCommand,\n },\n});\n","/**\n * The file half of `baker chats import`: the other chat's changes to its files (Knowledge, pages,\n * Forms, pictures…), read from its workspace as one patch (`chats diff --live`'s `gitPatch`) and\n * applied here with `git apply` — exactly, or not at all.\n */\n\nimport { execFileSync } from \"node:child_process\";\nimport type { ChatsDiffResponse } from \"@baker/api\";\nimport { apiPost } from \"../../client.ts\";\n\nexport type SourceFiles =\n | { kind: \"none\" }\n | { kind: \"patch\"; patch: string; paths: string[] }\n | { kind: \"stayed\"; reason: string };\n\n/** What the other chat changed in its files, as something this workspace can apply — or why not. */\nexport async function readSourceFiles(fromChatId: string): Promise<SourceFiles> {\n const response = await apiPost<ChatsDiffResponse>(\"/api/chats/diff\", {\n chatId: fromChatId,\n live: true,\n gitPatch: true,\n });\n const { data } = response;\n if (!data.available) {\n return { kind: \"stayed\", reason: data.reason ?? \"its files could not be read.\" };\n }\n if (data.source === \"published\") {\n // Its changes reached the live site already, so there is nothing of them to carry.\n return { kind: \"none\" };\n }\n if (data.files.length === 0) {\n return { kind: \"none\" };\n }\n if (data.gitPatch === undefined) {\n return {\n kind: \"stayed\",\n reason: \"its file changes are too large to bring over in one piece, so none of them came along.\",\n };\n }\n return { kind: \"patch\", patch: data.gitPatch, paths: data.files.map((file) => file.path) };\n}\n\nfunction repoRoot(): string {\n return execFileSync(\"git\", [\"rev-parse\", \"--show-toplevel\"], { encoding: \"utf8\" }).trim();\n}\n\n/** `git apply` of the patch at this workspace's root; `check` changes nothing, `reverse` takes it back out. */\nfunction gitApply(patch: string, mode: \"check\" | \"apply\" | \"reverse\"): void {\n const flags = mode === \"check\" ? [\"--check\"] : mode === \"reverse\" ? [\"--reverse\"] : [];\n execFileSync(\"git\", [\"apply\", \"--whitespace=nowarn\", ...flags, \"-\"], {\n cwd: repoRoot(),\n input: patch,\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n });\n}\n\n/** The files `git apply --check` named as not applying here, or the whole message when it named none. */\nexport function clashingFiles(stderr: string): string[] {\n const named = [...stderr.matchAll(/^error: ([^:\\n]+): /gm)]\n .map((match) => match[1])\n .filter((path): path is string => path !== undefined && path !== \"patch failed\");\n return named.length > 0 ? [...new Set(named)] : [stderr.trim()];\n}\n\n/** Why the patch cannot apply here — the files this chat also changed — or undefined when it applies cleanly. */\nexport function patchRefusal(patch: string): string[] | undefined {\n try {\n gitApply(patch, \"check\");\n return undefined;\n } catch (error) {\n const stderr = (error as { stderr?: Buffer | string }).stderr;\n return clashingFiles(stderr === undefined ? String(error) : String(stderr));\n }\n}\n\nexport function applyPatch(patch: string): void {\n gitApply(patch, \"apply\");\n}\n\nexport function revertPatch(patch: string): void {\n gitApply(patch, \"reverse\");\n}\n","import type { ChatPublishSummary } from \"@baker/api/chats\";\n\n/**\n * What a reader must not conclude from a completed Session: that it published\n * everything it staged (better than one published draft in three did not), or\n * that every change it sent is now what the platform holds.\n */\nexport function publishHints(publish: ChatPublishSummary): string[] {\n const hints: string[] = [];\n // Not `complete`: a change a person chose not to send leaves the publish complete, and still never went live.\n const failed = publish.failedTotal;\n if (failed > 0) {\n hints.push(\n `This Session's publish left ${failed} change${failed === 1 ? \"\" : \"s\"} behind — see \\`publish.surfaces\\` for why each did not apply. Do not report those changes as live.`,\n );\n }\n const unconfirmed = publish.unconfirmedTotal ?? 0;\n if (unconfirmed > 0) {\n hints.push(\n `${unconfirmed} change${unconfirmed === 1 ? \"\" : \"s\"} went through but could not be confirmed when read back from the platform — \\`publish.surfaces[].unconfirmedChanges\\` says what it shows instead. Check before reporting them as done.`,\n );\n }\n return hints;\n}\n\n/**\n * A Session still publishing is not live yet, and nothing in this chat runs\n * once it is: work that has to wait for it is a Scheduled agent (BAKER-1743).\n */\nexport function stillPublishingHints(status: string): string[] {\n if (status !== \"publishing\") return [];\n return [\n \"This Session is still publishing: its changes are not live yet. Work that has to wait for it (a check on the live page, a test lead) is a Scheduled agent staged now with `baker scheduled-agents create --run-at <time>`, whose brief first checks this Session went live. It exists only once your own chat is published: a page trigger staged now misses this Session's publish, and a `--run-at` that has passed by then is created switched off, so leave hours of headroom, not minutes, and tell the user it runs only once they publish this chat. Never ask the user to come back and tell you when it is done.\",\n ];\n}\n"],"mappings":"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","names":[]}
|
package/dist/check-BOKLY5WG.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
readAdWords,
|
|
3
|
-
ruleRefusal
|
|
4
|
-
} from "./chunk-CST52ZME.js";
|
|
5
|
-
import "./chunk-75OGTGC4.js";
|
|
6
|
-
import "./chunk-6MJKVNLL.js";
|
|
7
|
-
import {
|
|
8
|
-
readAllRules
|
|
9
|
-
} from "./chunk-Z7ICQKC2.js";
|
|
10
|
-
import {
|
|
11
|
-
ruleTells
|
|
12
|
-
} from "./chunk-NOCBNING.js";
|
|
13
|
-
import "./chunk-EM5R3BYC.js";
|
|
14
|
-
import "./chunk-Q3G4ZI2U.js";
|
|
15
|
-
import {
|
|
16
|
-
findWorkspaceRoot
|
|
17
|
-
} from "./chunk-DGHSXHZR.js";
|
|
18
|
-
import "./chunk-J4AWNWKN.js";
|
|
19
|
-
import {
|
|
20
|
-
selectRules
|
|
21
|
-
} from "./chunk-GRX3JXSR.js";
|
|
22
|
-
import "./chunk-F3CZFUXZ.js";
|
|
23
|
-
import {
|
|
24
|
-
marketFromCompanyDoc
|
|
25
|
-
} from "./chunk-2WZI36D3.js";
|
|
26
|
-
import "./chunk-65Y3RCWP.js";
|
|
27
|
-
import "./chunk-Q736UFSD.js";
|
|
28
|
-
import "./chunk-CBVUO7SK.js";
|
|
29
|
-
import "./chunk-UK4XSLV2.js";
|
|
30
|
-
import "./chunk-O5VSYBUA.js";
|
|
31
|
-
import "./chunk-6DSPB6YA.js";
|
|
32
|
-
import "./chunk-QV6AST5T.js";
|
|
33
|
-
import "./chunk-WCU362Z6.js";
|
|
34
|
-
import "./chunk-GIWHHCD6.js";
|
|
35
|
-
import "./chunk-SOPVIIUW.js";
|
|
36
|
-
import "./chunk-G4FG5EQO.js";
|
|
37
|
-
import "./chunk-R7XDGNZD.js";
|
|
38
|
-
import "./chunk-IMS53EQU.js";
|
|
39
|
-
import "./chunk-LJEJCIHR.js";
|
|
40
|
-
import "./chunk-SIRRBWQ2.js";
|
|
41
|
-
import "./chunk-B64KJW5C.js";
|
|
42
|
-
import {
|
|
43
|
-
registerSchema,
|
|
44
|
-
writeJson
|
|
45
|
-
} from "./chunk-NXNOXZGB.js";
|
|
46
|
-
import "./chunk-YQSBHWOI.js";
|
|
47
|
-
|
|
48
|
-
// src/commands/creatives/check.ts
|
|
49
|
-
import { readdir, readFile } from "fs/promises";
|
|
50
|
-
import path from "path";
|
|
51
|
-
import { defineCommand } from "citty";
|
|
52
|
-
var DESCRIPTION = `Read every creative already made against the company's rules as they stand now: which ads say words a rule bans, or leave out words a rule requires. Run it after adding a rule (\`baker creatives rules add\`); nothing is re-rendered or marked stale, so ask the person which ads to correct.
|
|
53
|
-
Start here: baker creatives check
|
|
54
|
-
baker creatives check --slug mba-ia-online # one creative`;
|
|
55
|
-
var ARGS = {
|
|
56
|
-
slug: { type: "string", description: "One creative (src/creatives/<slug>/); left out, every one", required: false }
|
|
57
|
-
};
|
|
58
|
-
registerSchema({ command: "creatives.check", description: DESCRIPTION, args: ARGS });
|
|
59
|
-
function checkCreatives(ads, rules, companyLanguage) {
|
|
60
|
-
const breaking = ads.flatMap(({ slug, ad }) => {
|
|
61
|
-
const held = selectRules(
|
|
62
|
-
rules,
|
|
63
|
-
{
|
|
64
|
-
kind: ad.kind,
|
|
65
|
-
...ad.product ? { product: ad.product } : {},
|
|
66
|
-
...ad.platform ? { platform: ad.platform } : {},
|
|
67
|
-
...ad.platforms ? { platforms: ad.platforms } : {}
|
|
68
|
-
},
|
|
69
|
-
ad.waived
|
|
70
|
-
);
|
|
71
|
-
const refusal = ruleRefusal(ruleTells(ad.lines, held, ad.language ?? companyLanguage));
|
|
72
|
-
return refusal ? [{ creative: slug, broken: refusal.problems }] : [];
|
|
73
|
-
});
|
|
74
|
-
return { checked: ads.length, breaking };
|
|
75
|
-
}
|
|
76
|
-
async function readAds(root, slug) {
|
|
77
|
-
const dir = path.join(root, "src", "creatives");
|
|
78
|
-
const slugs = slug ? [slug] : (await readdir(dir, { withFileTypes: true }).catch(() => [])).filter((e) => e.isDirectory() && !e.name.startsWith("_")).map((e) => e.name).sort();
|
|
79
|
-
const ads = await Promise.all(slugs.map(async (s) => ({ slug: s, ad: await readAdWords(path.join(dir, s)) })));
|
|
80
|
-
return ads.flatMap(({ slug: s, ad }) => ad ? [{ slug: s, ad }] : []);
|
|
81
|
-
}
|
|
82
|
-
var checkCommand = defineCommand({
|
|
83
|
-
meta: { name: "check", description: DESCRIPTION },
|
|
84
|
-
args: ARGS,
|
|
85
|
-
async run({ args }) {
|
|
86
|
-
const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();
|
|
87
|
-
const slug = typeof args.slug === "string" && args.slug ? args.slug : void 0;
|
|
88
|
-
const [ads, rules, companyDoc] = await Promise.all([
|
|
89
|
-
readAds(root, slug),
|
|
90
|
-
readAllRules(root),
|
|
91
|
-
readFile(path.join(root, "COMPANY.md"), "utf8").catch(() => null)
|
|
92
|
-
]);
|
|
93
|
-
const report = checkCreatives(ads, rules, marketFromCompanyDoc(companyDoc)?.language);
|
|
94
|
-
writeJson({
|
|
95
|
-
ok: true,
|
|
96
|
-
data: report,
|
|
97
|
-
hints: report.breaking.length > 0 ? [
|
|
98
|
-
`${report.breaking.length} of ${report.checked} ads break a rule now in force. Tell the person which, and correct only the ones they want: edit the words in that ad's prompt.json and run it again, or waive the rule there if the person asked for those words.`
|
|
99
|
-
] : [`None of the ${report.checked} ads breaks a wording rule now in force.`]
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
export {
|
|
104
|
-
checkCommand,
|
|
105
|
-
checkCreatives
|
|
106
|
-
};
|
|
107
|
-
//# sourceMappingURL=check-BOKLY5WG.js.map
|
package/dist/chunk-3KUNRKNV.js
DELETED
|
@@ -1,430 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
agentProfile
|
|
3
|
-
} from "./chunk-XA76OGSL.js";
|
|
4
|
-
import {
|
|
5
|
-
AUTO_PUBLISH_REFUSAL,
|
|
6
|
-
MAX_AI_CONDITION_CHARS,
|
|
7
|
-
TRIGGER_KINDS,
|
|
8
|
-
TRIGGER_KIND_IDS,
|
|
9
|
-
TRIGGER_TARGETS,
|
|
10
|
-
TRIGGER_TARGET_FIELDS,
|
|
11
|
-
TRIGGER_TARGET_FIELD_IDS,
|
|
12
|
-
firstTimes,
|
|
13
|
-
isTriggerKind,
|
|
14
|
-
parseConditionsExpression
|
|
15
|
-
} from "./chunk-6DSPB6YA.js";
|
|
16
|
-
import {
|
|
17
|
-
ApiError,
|
|
18
|
-
validateConvexId
|
|
19
|
-
} from "./chunk-LJEJCIHR.js";
|
|
20
|
-
import {
|
|
21
|
-
getEnv
|
|
22
|
-
} from "./chunk-B64KJW5C.js";
|
|
23
|
-
import {
|
|
24
|
-
writeJson
|
|
25
|
-
} from "./chunk-NXNOXZGB.js";
|
|
26
|
-
|
|
27
|
-
// src/commands/scheduled-agents/shared.ts
|
|
28
|
-
var TEMP_SCHEDULED_AGENT_PREFIX = "temp_agent_";
|
|
29
|
-
var TEMP_ID_PREFIX = "temp_";
|
|
30
|
-
function writeOk(data, hints) {
|
|
31
|
-
writeJson({ ok: true, data: data ?? null, ...hints && hints.length > 0 ? { hints } : {} });
|
|
32
|
-
}
|
|
33
|
-
function failValidation(message) {
|
|
34
|
-
writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message } });
|
|
35
|
-
process.exit(1);
|
|
36
|
-
}
|
|
37
|
-
function failApi(err) {
|
|
38
|
-
if (err instanceof ApiError) {
|
|
39
|
-
writeJson({ ok: false, error: { code: err.code, message: err.message } });
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
if (err instanceof Error) {
|
|
43
|
-
writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: err.message } });
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: "Unexpected error" } });
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
49
|
-
var AUTO_PUBLISH_ARG = {
|
|
50
|
-
"auto-publish": {
|
|
51
|
-
type: "string",
|
|
52
|
-
description: "Not available to the agent: publishing every run unreviewed is switched on by the user, on the item, after this chat is published. Passing it is refused and tells you what to ask them.",
|
|
53
|
-
required: false
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
function refuseAutoPublish(args) {
|
|
57
|
-
if (args["auto-publish"] === void 0) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
writeJson({
|
|
61
|
-
ok: false,
|
|
62
|
-
error: {
|
|
63
|
-
code: "FORBIDDEN",
|
|
64
|
-
message: AUTO_PUBLISH_REFUSAL,
|
|
65
|
-
fix: {
|
|
66
|
-
action: "ask_user",
|
|
67
|
-
explanation: 'Run the command again without --auto-publish. After this chat is published, ask the user to open the item in Scheduled agents and switch on "Publish its work on its own" under "When a run finishes" \u2014 until then each run waits for their review.'
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
process.exit(1);
|
|
72
|
-
}
|
|
73
|
-
function isTempScheduledAgentId(id) {
|
|
74
|
-
return id.startsWith(TEMP_SCHEDULED_AGENT_PREFIX);
|
|
75
|
-
}
|
|
76
|
-
function isOtherTempId(id) {
|
|
77
|
-
return id.startsWith(TEMP_ID_PREFIX) && !isTempScheduledAgentId(id);
|
|
78
|
-
}
|
|
79
|
-
function validateScheduledAgentRef(ref) {
|
|
80
|
-
if (isOtherTempId(ref)) {
|
|
81
|
-
failValidation(`Scheduled agent temp IDs must start with ${TEMP_SCHEDULED_AGENT_PREFIX}.`);
|
|
82
|
-
}
|
|
83
|
-
if (!isTempScheduledAgentId(ref)) {
|
|
84
|
-
validateConvexId(ref);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
var TRIGGER_ARG_DESCRIPTION = `What makes this run. ${TRIGGER_KIND_IDS.map(
|
|
88
|
-
(id) => `${id}: ${TRIGGER_KINDS[id].description}`
|
|
89
|
-
).join(" ")} For the two time ones, pass --cron or --run-at instead and the kind is implied.`;
|
|
90
|
-
var TRIGGER_KIND_LIST = [...TRIGGER_KIND_IDS];
|
|
91
|
-
var NARROWING_DESCRIPTIONS = {
|
|
92
|
-
eventName: "With --trigger event.received: only this event name (a source's name, or one your site sends). Omit it to run on any event.",
|
|
93
|
-
toolkit: "With --trigger app.event (required): the connected tool, by its slug \u2014 gmail, slack, googlesheets.",
|
|
94
|
-
account: "With --trigger app.event (required): which connected account of that tool, by id (a tool can be connected more than once).",
|
|
95
|
-
appEvent: "With --trigger app.event (required): what happens in the tool, by the tool's own id \u2014 GMAIL_NEW_GMAIL_MESSAGE. `targets --field appEvent --app <tool>` lists them with the settings each needs.",
|
|
96
|
-
provider: "With --trigger connection.created, connection.removed or connection.needs_reconnect: only this tool (google-ads, hubspot, meta, or a connected tool's slug such as slack). Omit it for any tool.",
|
|
97
|
-
flowId: "With --trigger form.submitted or flow.step.submitted: which Form, by slug. Omit it on form.submitted for any Form.",
|
|
98
|
-
stepId: "With --trigger flow.step.submitted: which step of that Form, by id \u2014 `targets --field stepId --form <slug>` lists them by name.",
|
|
99
|
-
page: "With --trigger landing.created or landing.published: only this page, by slug. Omit it for any page.",
|
|
100
|
-
tag: "With --trigger task.created, task.claimed, task.completed, landing.created or landing.published: only ones carrying this tag. Omit it for any.",
|
|
101
|
-
experimentId: 'With --trigger experiment.decided, experiment.ended or experiment.concluded: only this test. Omit it for any test. Not for experiment.started \u2014 narrow that with --when "page = <page>".',
|
|
102
|
-
taskId: "With --trigger task.claimed or task.completed: only this Task, by id (a temp_ id of a Task staged in this chat works too). Omit it for any Task.",
|
|
103
|
-
agentId: "With --trigger session.published, session.publish_failed or session.publish_incomplete: only the runs of this scheduled agent, by id (a temp_agent_ id staged in this chat works too). Required on session.published from a chat \u2014 to follow up on this chat's own publish, use --trigger session.settled --session this.",
|
|
104
|
-
platform: "With --trigger session.publish_incomplete: only when this platform's changes did not all land \u2014 google-ads, meta-ads, linkedin-ads, x-ads, chatgpt-ads, tag-manager, ga4 or shopify. Omit it for any.",
|
|
105
|
-
collection: "With --trigger knowledge.updated: only this Knowledge collection. Omit it for any of them.",
|
|
106
|
-
sourceId: "With --trigger review.received: only reviews from this review source, by id. Omit it for any source.",
|
|
107
|
-
advertiserId: "With --trigger advertiser.new_ads: only this followed advertiser, by id. Omit it for any of them.",
|
|
108
|
-
adAccount: "With --trigger ad_alert.opened, ad_alert.claimed, ad_alert.fixed or ad_alert.closed: only alerts on this ad account, as <platform>:<ad account id> (meta:123). Omit it for any account.",
|
|
109
|
-
alertRule: 'With --trigger ad_alert.opened, ad_alert.claimed, ad_alert.fixed or ad_alert.closed: only this kind of alert, by the rule `baker ads performance attention` names (budget_cut, efficiency_degraded, tracking_broke). Omit it for any. Narrow by severity with --when "severity = critical".',
|
|
110
|
-
socialAccount: "With --trigger social.post_published: only posts by this followed account, by its key (linkedin:in/jacintofleta, instagram:nike \u2014 `baker media-sources list`). Omit it for any account.",
|
|
111
|
-
chatId: "With --trigger session.settled (required): `this` \u2014 the chat you are in. It runs once, after this chat is published and its work is fully live: pages served, every ad, Tag Manager, Analytics and store change landed or failed. Start here for any check or report on this chat's own work after it publishes.",
|
|
112
|
-
personRole: "With --trigger social.post_published: only posts by people with this role \u2014 ceo, founder, cto, cmo, head_of_sales, sales, marketing, employee, creator. Omit it for any account, pages included."
|
|
113
|
-
};
|
|
114
|
-
var NARROWING_ARGS = {
|
|
115
|
-
...Object.fromEntries(
|
|
116
|
-
TRIGGER_TARGET_FIELD_IDS.map((field) => [
|
|
117
|
-
TRIGGER_TARGET_FIELDS[field].flag,
|
|
118
|
-
{
|
|
119
|
-
type: "string",
|
|
120
|
-
description: `${NARROWING_DESCRIPTIONS[field]} \`baker scheduled-agents targets --trigger <kind> --field ${field}\` lists the values.`,
|
|
121
|
-
required: false
|
|
122
|
-
}
|
|
123
|
-
])
|
|
124
|
-
),
|
|
125
|
-
config: {
|
|
126
|
-
type: "string",
|
|
127
|
-
description: `With --trigger app.event: the event's own settings as a JSON object \u2014 they filter inside the tool, before anything is sent. A Gmail search ('{"query":"from:ana@acme.com"}'), a label, a Slack channel, a GitHub repository ('{"owner":"acme","repo":"site"}'). \`targets --field appEvent --app <tool> --event <id>\` lists each setting with its examples.`,
|
|
128
|
-
required: false
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
function validateRunAt(runAt) {
|
|
132
|
-
if (!runAt.endsWith("Z")) {
|
|
133
|
-
failValidation("--run-at must be an ISO UTC timestamp ending in Z.");
|
|
134
|
-
}
|
|
135
|
-
const parsed = Date.parse(runAt);
|
|
136
|
-
if (!Number.isFinite(parsed)) {
|
|
137
|
-
failValidation("--run-at must be a valid ISO timestamp.");
|
|
138
|
-
}
|
|
139
|
-
if (parsed <= Date.now()) {
|
|
140
|
-
failValidation(
|
|
141
|
-
`--run-at ${runAt} has already passed. A one-off item only runs at a time still to come \u2014 pass a later ISO UTC timestamp, and check which timezone you converted from if you worked it out from a local time.`
|
|
142
|
-
);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
function buildTriggerBody(args, options) {
|
|
146
|
-
const cron = args.cron;
|
|
147
|
-
const runAt = args["run-at"];
|
|
148
|
-
const timezone = args.timezone;
|
|
149
|
-
const kind = args.trigger;
|
|
150
|
-
const given = [cron, runAt, kind].filter(Boolean).length;
|
|
151
|
-
if (given > 1) {
|
|
152
|
-
failValidation("--cron, --run-at and --trigger are mutually exclusive.");
|
|
153
|
-
}
|
|
154
|
-
refuseNarrowingWithoutKind(args, kind, given);
|
|
155
|
-
if (runAt) {
|
|
156
|
-
validateRunAt(runAt);
|
|
157
|
-
return { runAt, ...timezone ? { timezone } : {} };
|
|
158
|
-
}
|
|
159
|
-
if (cron) {
|
|
160
|
-
return { cron, ...timezone ? { timezone } : {} };
|
|
161
|
-
}
|
|
162
|
-
if (kind) {
|
|
163
|
-
return { trigger: triggerFromFlags(kind, args), ...timezone ? { timezone } : {} };
|
|
164
|
-
}
|
|
165
|
-
if (timezone && !options.required) {
|
|
166
|
-
return { timezone };
|
|
167
|
-
}
|
|
168
|
-
if (options.required) {
|
|
169
|
-
failValidation(
|
|
170
|
-
`A trigger is required. Pass --cron or --run-at for a time-based one, or --trigger with one of: ${TRIGGER_KIND_IDS.join(", ")}.`
|
|
171
|
-
);
|
|
172
|
-
}
|
|
173
|
-
return void 0;
|
|
174
|
-
}
|
|
175
|
-
function flagText(args, key) {
|
|
176
|
-
const value = args[key];
|
|
177
|
-
return typeof value === "string" && value.trim().length > 0 ? value.trim() : void 0;
|
|
178
|
-
}
|
|
179
|
-
function refuseMisusedKinds(kind, args) {
|
|
180
|
-
if (kind === "time.once") {
|
|
181
|
-
failValidation("Use --run-at for a one-off, rather than --trigger time.once.");
|
|
182
|
-
}
|
|
183
|
-
if (kind === "time.cron") {
|
|
184
|
-
failValidation("Use --cron for a repeating schedule, rather than --trigger time.cron.");
|
|
185
|
-
}
|
|
186
|
-
if (kind === "experiment.started" && flagText(args, "experiment")) {
|
|
187
|
-
failValidation(
|
|
188
|
-
'A test that exists has already started, so --experiment never fires on experiment.started. Leave it off and add --when "page = <page>" to watch one page.'
|
|
189
|
-
);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
function refuseStrayFlags(kind, args) {
|
|
193
|
-
const allowed = new Set(TRIGGER_TARGETS[kind].map((target) => TRIGGER_TARGET_FIELDS[target.field].flag));
|
|
194
|
-
const stray = TRIGGER_TARGET_FIELD_IDS.map((field) => TRIGGER_TARGET_FIELDS[field].flag).filter(
|
|
195
|
-
(flag) => !allowed.has(flag) && flagText(args, flag) !== void 0 && !(kind === "experiment.started" && flag === "experiment")
|
|
196
|
-
);
|
|
197
|
-
if (stray.length === 0) {
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
failValidation(
|
|
201
|
-
`${stray.map((flag) => `--${flag}`).join(", ")} does not narrow ${kind}. ${allowed.size > 0 ? `It can be pointed with ${[...allowed].map((flag) => `--${flag}`).join(", ")}.` : "It runs every time it happens \u2014 narrow it with --when rules over its payload instead."}`
|
|
202
|
-
);
|
|
203
|
-
}
|
|
204
|
-
var NARROWING_FLAGS = [...TRIGGER_TARGET_FIELD_IDS.map((field) => TRIGGER_TARGET_FIELDS[field].flag), "config"];
|
|
205
|
-
function refuseNarrowingWithoutKind(args, kind, given) {
|
|
206
|
-
if (kind) {
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
const stray = NARROWING_FLAGS.filter((flag) => flagText(args, flag) !== void 0);
|
|
210
|
-
if (stray.length === 0) {
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
const flags = stray.map((flag) => `--${flag}`).join(", ");
|
|
214
|
-
failValidation(
|
|
215
|
-
given > 0 ? `${flags} does not narrow --cron or --run-at: a time trigger runs every time it comes round. Use --trigger <kind> with ${flags} instead, or leave ${flags} off.` : `${flags} narrows a trigger, and no trigger was given. Pass --trigger <kind> too \u2014 the item's whole trigger, with ${flags} \u2014 or leave ${flags} off.`
|
|
216
|
-
);
|
|
217
|
-
}
|
|
218
|
-
function configFromFlag(kind, args) {
|
|
219
|
-
const config = flagText(args, "config");
|
|
220
|
-
if (!config) {
|
|
221
|
-
return {};
|
|
222
|
-
}
|
|
223
|
-
if (kind !== "app.event") {
|
|
224
|
-
failValidation("--config is only for --trigger app.event: the settings of what happens in the tool.");
|
|
225
|
-
}
|
|
226
|
-
let parsed;
|
|
227
|
-
try {
|
|
228
|
-
parsed = JSON.parse(config);
|
|
229
|
-
} catch {
|
|
230
|
-
parsed = null;
|
|
231
|
-
}
|
|
232
|
-
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
233
|
-
failValidation(`--config must be a JSON object, e.g. '{"labelIds":"INBOX"}'.`);
|
|
234
|
-
}
|
|
235
|
-
return { configJson: config };
|
|
236
|
-
}
|
|
237
|
-
function withoutMetaActPrefix(adAccount) {
|
|
238
|
-
return adAccount.replace(/^meta:act_/i, "meta:");
|
|
239
|
-
}
|
|
240
|
-
function triggerFromFlags(kind, args) {
|
|
241
|
-
if (!isTriggerKind(kind)) {
|
|
242
|
-
failValidation(`--trigger must be one of: ${TRIGGER_KIND_IDS.join(", ")}.`);
|
|
243
|
-
}
|
|
244
|
-
refuseMisusedKinds(kind, args);
|
|
245
|
-
refuseStrayFlags(kind, args);
|
|
246
|
-
const narrowings = {};
|
|
247
|
-
for (const { field, required } of TRIGGER_TARGETS[kind]) {
|
|
248
|
-
const value = flagText(args, TRIGGER_TARGET_FIELDS[field].flag);
|
|
249
|
-
if (value) {
|
|
250
|
-
narrowings[field] = field === "adAccount" ? withoutMetaActPrefix(value) : value;
|
|
251
|
-
} else if (required) {
|
|
252
|
-
failValidation(
|
|
253
|
-
`--trigger ${kind} needs --${TRIGGER_TARGET_FIELDS[field].flag}. \`baker scheduled-agents targets --trigger ${kind} --field ${field}\` lists what it can be.`
|
|
254
|
-
);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
return { kind, ...narrowings, ...configFromFlag(kind, args) };
|
|
258
|
-
}
|
|
259
|
-
function parseOccurrences(raw) {
|
|
260
|
-
if (raw === void 0) {
|
|
261
|
-
return void 0;
|
|
262
|
-
}
|
|
263
|
-
if (typeof raw !== "string") {
|
|
264
|
-
failValidation("--occurrences must be a comma-separated list of whole numbers, e.g. 1 or 1,3.");
|
|
265
|
-
}
|
|
266
|
-
const parts = raw.split(",").map((part) => part.trim()).filter((part) => part.length > 0);
|
|
267
|
-
const numbers = parts.map((part) => Number(part));
|
|
268
|
-
if (numbers.length === 0 || numbers.some((n) => !Number.isInteger(n) || n <= 0)) {
|
|
269
|
-
failValidation("--occurrences must be a comma-separated list of whole numbers above zero, e.g. 1 or 1,3.");
|
|
270
|
-
}
|
|
271
|
-
return numbers;
|
|
272
|
-
}
|
|
273
|
-
function parseBooleanFlag(raw, flagName) {
|
|
274
|
-
if (raw === void 0) {
|
|
275
|
-
return void 0;
|
|
276
|
-
}
|
|
277
|
-
if (raw === true || raw === "true") {
|
|
278
|
-
return true;
|
|
279
|
-
}
|
|
280
|
-
if (raw === false || raw === "false") {
|
|
281
|
-
return false;
|
|
282
|
-
}
|
|
283
|
-
failValidation(`${flagName} must be true or false.`);
|
|
284
|
-
}
|
|
285
|
-
var REACTION_ARGS = {
|
|
286
|
-
when: {
|
|
287
|
-
type: "string",
|
|
288
|
-
description: "Only run when what arrived passes these rules: `<field> <operator> <value>` joined by AND or by OR (either case). Fields are the trigger's payload fields (`baker scheduled-agents triggers --trigger <kind>` lists them; a webhook's are whatever was posted; an app.event's are what `targets --field appEvent --app <tool> --event <id>` says it sends). Operators: =, !=, contains, does not contain, starts with, ends with, >, <, >=, <=, in (comma list), exists, missing. Example: --when \"deal.stage = won AND amount > 10000\". A payload that fails is not counted and starts nothing. `none` clears the rules.",
|
|
289
|
-
required: false
|
|
290
|
-
},
|
|
291
|
-
"ai-check": {
|
|
292
|
-
type: "string",
|
|
293
|
-
description: 'Only run when AI judges that what arrived meets this condition, in plain words \u2014 for what no --when rule can say: --ai-check "the person writes on behalf of a company, not as a student or for personal use". Checked after --when, on what passed it; a turned-down arrival is not counted and starts nothing, and shows in `history` with its score. Say the boundary cases ("a freelancer counts as a company"). Emails and phones are hidden from it, as from the run \u2014 an email domain is a --when rule. Not for a time-based start (--cron, --run-at). `none` removes it.',
|
|
294
|
-
required: false
|
|
295
|
-
},
|
|
296
|
-
times: {
|
|
297
|
-
type: "string",
|
|
298
|
-
description: "Only the first N times it fires (and its --when rules pass), then never again. `--times 1` is only the first time. Shorthand for --occurrences 1,2,\u2026,N.",
|
|
299
|
-
required: false
|
|
300
|
-
},
|
|
301
|
-
payload: {
|
|
302
|
-
type: "string",
|
|
303
|
-
description: "include (default) or omit. Whether the run's first message carries what arrived \u2014 the posted body, the event's properties, the Form's answers (emails and phones masked). Place single values in --prompt with {{payload.<field>}} instead; those are filled either way.",
|
|
304
|
-
required: false
|
|
305
|
-
},
|
|
306
|
-
cooldown: {
|
|
307
|
-
type: "string",
|
|
308
|
-
description: "At most one run per this many minutes, however often it fires. 0 removes it.",
|
|
309
|
-
required: false
|
|
310
|
-
}
|
|
311
|
-
};
|
|
312
|
-
var SLACK_ARG = {
|
|
313
|
-
slack: {
|
|
314
|
-
type: "string",
|
|
315
|
-
description: "Tell each run in Slack: `here` (the Slack conversation this chat came from), `me` (a direct message to the person in this chat), `#channel` (a channel linked to this company), or `off`. Each run opens its own thread there and Baker reports on it: what it found, what it needs, whether to publish.",
|
|
316
|
-
required: false
|
|
317
|
-
}
|
|
318
|
-
};
|
|
319
|
-
function companiesArg(profile = agentProfile()) {
|
|
320
|
-
return profile === "organization" ? {
|
|
321
|
-
companies: {
|
|
322
|
-
type: "string",
|
|
323
|
-
description: "The companies whose events it hears, by id, comma-separated (`baker organization companies` lists them), or `all`. Left out, it hears every company, including ones added later. Only on a trigger that happens in a company; one company's Form, page or tag is a --when rule instead.",
|
|
324
|
-
required: false
|
|
325
|
-
}
|
|
326
|
-
} : {};
|
|
327
|
-
}
|
|
328
|
-
function companiesBody(args) {
|
|
329
|
-
return typeof args.companies === "string" && args.companies.trim().length > 0 ? { companies: args.companies.trim() } : {};
|
|
330
|
-
}
|
|
331
|
-
function slackBody(args) {
|
|
332
|
-
return typeof args.slack === "string" && args.slack.trim().length > 0 ? { slack: args.slack.trim() } : {};
|
|
333
|
-
}
|
|
334
|
-
function wholeNumber(raw, flag, { min }) {
|
|
335
|
-
if (raw === void 0) {
|
|
336
|
-
return void 0;
|
|
337
|
-
}
|
|
338
|
-
const value = Number(raw);
|
|
339
|
-
if (!Number.isInteger(value) || value < min) {
|
|
340
|
-
failValidation(`${flag} must be a whole number of at least ${min}.`);
|
|
341
|
-
}
|
|
342
|
-
return value;
|
|
343
|
-
}
|
|
344
|
-
function reactionBody(args) {
|
|
345
|
-
const occurrences = occurrencesFromFlags(args);
|
|
346
|
-
const when = whenFromFlag(args.when);
|
|
347
|
-
const includePayload = payloadFromFlag(args.payload);
|
|
348
|
-
const cooldownMinutes = wholeNumber(args.cooldown, "--cooldown", { min: 0 });
|
|
349
|
-
const aiCondition = aiCheckFromFlag(args["ai-check"]);
|
|
350
|
-
return {
|
|
351
|
-
...occurrences !== void 0 ? { occurrences } : {},
|
|
352
|
-
...when !== void 0 ? { when } : {},
|
|
353
|
-
...aiCondition !== void 0 ? { aiCondition } : {},
|
|
354
|
-
...includePayload !== void 0 ? { includePayload } : {},
|
|
355
|
-
...cooldownMinutes !== void 0 ? { cooldownMinutes } : {}
|
|
356
|
-
};
|
|
357
|
-
}
|
|
358
|
-
function occurrencesFromFlags(args) {
|
|
359
|
-
const times = wholeNumber(args.times, "--times", { min: 1 });
|
|
360
|
-
const occurrences = parseOccurrences(args.occurrences);
|
|
361
|
-
if (times !== void 0 && occurrences !== void 0) {
|
|
362
|
-
failValidation("Pass --times or --occurrences, not both \u2014 --times 3 is --occurrences 1,2,3.");
|
|
363
|
-
}
|
|
364
|
-
return times !== void 0 ? firstTimes(times) : occurrences;
|
|
365
|
-
}
|
|
366
|
-
function whenFromFlag(raw) {
|
|
367
|
-
if (typeof raw !== "string") {
|
|
368
|
-
return void 0;
|
|
369
|
-
}
|
|
370
|
-
const text = raw.trim();
|
|
371
|
-
if (text.length === 0 || text.toLowerCase() === "none") {
|
|
372
|
-
return "none";
|
|
373
|
-
}
|
|
374
|
-
const parsed = parseConditionsExpression(text);
|
|
375
|
-
if (!parsed.ok) {
|
|
376
|
-
failValidation(parsed.error);
|
|
377
|
-
}
|
|
378
|
-
return text;
|
|
379
|
-
}
|
|
380
|
-
function aiCheckFromFlag(raw) {
|
|
381
|
-
if (typeof raw !== "string") {
|
|
382
|
-
return void 0;
|
|
383
|
-
}
|
|
384
|
-
const text = raw.trim();
|
|
385
|
-
if (text.length === 0 || text.toLowerCase() === "none") {
|
|
386
|
-
return "none";
|
|
387
|
-
}
|
|
388
|
-
if (text.length > MAX_AI_CONDITION_CHARS) {
|
|
389
|
-
failValidation(
|
|
390
|
-
`--ai-check is at most ${MAX_AI_CONDITION_CHARS} characters: say the condition, not the job. The job goes in --prompt.`
|
|
391
|
-
);
|
|
392
|
-
}
|
|
393
|
-
return text;
|
|
394
|
-
}
|
|
395
|
-
function payloadFromFlag(raw) {
|
|
396
|
-
if (raw === void 0) {
|
|
397
|
-
return void 0;
|
|
398
|
-
}
|
|
399
|
-
if (raw !== "include" && raw !== "omit") {
|
|
400
|
-
failValidation("--payload must be include or omit.");
|
|
401
|
-
}
|
|
402
|
-
return raw === "include";
|
|
403
|
-
}
|
|
404
|
-
function chatBody() {
|
|
405
|
-
const id = getEnv().BAKER_CHAT_ID;
|
|
406
|
-
return id ? { chatId: id } : {};
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
export {
|
|
410
|
-
writeOk,
|
|
411
|
-
failValidation,
|
|
412
|
-
failApi,
|
|
413
|
-
AUTO_PUBLISH_ARG,
|
|
414
|
-
refuseAutoPublish,
|
|
415
|
-
isTempScheduledAgentId,
|
|
416
|
-
validateScheduledAgentRef,
|
|
417
|
-
TRIGGER_ARG_DESCRIPTION,
|
|
418
|
-
TRIGGER_KIND_LIST,
|
|
419
|
-
NARROWING_ARGS,
|
|
420
|
-
buildTriggerBody,
|
|
421
|
-
parseBooleanFlag,
|
|
422
|
-
REACTION_ARGS,
|
|
423
|
-
SLACK_ARG,
|
|
424
|
-
companiesArg,
|
|
425
|
-
companiesBody,
|
|
426
|
-
slackBody,
|
|
427
|
-
reactionBody,
|
|
428
|
-
chatBody
|
|
429
|
-
};
|
|
430
|
-
//# sourceMappingURL=chunk-3KUNRKNV.js.map
|