@koda-sl/baker-cli 0.450.0-dev.b454c3dd2 → 0.450.0-dev.d6701597d
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 +10 -11
- package/dist/{account-XQXC7BR6.js → account-AL2ZDSR7.js} +4 -5
- package/dist/{account-XQXC7BR6.js.map → account-AL2ZDSR7.js.map} +1 -1
- package/dist/{accounts-722UY53A.js → accounts-HAFCLSR5.js} +3 -4
- package/dist/{accounts-722UY53A.js.map → accounts-HAFCLSR5.js.map} +1 -1
- package/dist/{accounts-E67BMK7T.js → accounts-O5MFO3QQ.js} +5 -6
- package/dist/{accounts-E67BMK7T.js.map → accounts-O5MFO3QQ.js.map} +1 -1
- package/dist/{actions-6TQMSVWD.js → actions-P35MEMGN.js} +18 -18
- package/dist/{add-2BEGRHUX.js → add-5GAN6CVO.js} +5 -28
- package/dist/add-5GAN6CVO.js.map +1 -0
- package/dist/{add-LEMKEOPO.js → add-6DTC6X5G.js} +2 -3
- package/dist/{add-LEMKEOPO.js.map → add-6DTC6X5G.js.map} +1 -1
- package/dist/{ads-AGYCVD62.js → ads-73PGA4YC.js} +4 -4
- package/dist/{advertisers-2VQKAYKG.js → advertisers-AE75CGVE.js} +3 -4
- package/dist/{advertisers-2VQKAYKG.js.map → advertisers-AE75CGVE.js.map} +1 -1
- package/dist/{analytics-IFELDWLL.js → analytics-FKCXIMPO.js} +20 -24
- package/dist/analytics-FKCXIMPO.js.map +1 -0
- package/dist/{analytics-OH5QEH7F.js → analytics-FPWQQGRM.js} +3 -4
- package/dist/{analytics-OH5QEH7F.js.map → analytics-FPWQQGRM.js.map} +1 -1
- package/dist/{assign-PTUJUCEL.js → assign-ABN2AQ4J.js} +3 -4
- package/dist/{assign-PTUJUCEL.js.map → assign-ABN2AQ4J.js.map} +1 -1
- package/dist/{audience-size-LRI6GJRT.js → audience-size-GNBJY35X.js} +3 -4
- package/dist/{audience-size-LRI6GJRT.js.map → audience-size-GNBJY35X.js.map} +1 -1
- package/dist/{audit-HWP7OPB7.js → audit-3VS63TBW.js} +3 -4
- package/dist/{audit-HWP7OPB7.js.map → audit-3VS63TBW.js.map} +1 -1
- package/dist/{autocomplete-J6DHU6MR.js → autocomplete-VS3XG3B7.js} +3 -4
- package/dist/{autocomplete-J6DHU6MR.js.map → autocomplete-VS3XG3B7.js.map} +1 -1
- package/dist/{avatars-467OSBD6.js → avatars-EKCKHCC3.js} +4 -4
- package/dist/{bid-pricing-EO5WLHGV.js → bid-pricing-Q72B65AY.js} +3 -4
- package/dist/{bid-pricing-EO5WLHGV.js.map → bid-pricing-Q72B65AY.js.map} +1 -1
- package/dist/{brand-YRTEPGBK.js → brand-C6PFGGQN.js} +2 -2
- package/dist/{brief-OSFJ2V7F.js → brief-YFJHQ5VQ.js} +7 -8
- package/dist/{brief-OSFJ2V7F.js.map → brief-YFJHQ5VQ.js.map} +1 -1
- package/dist/{campaign-groups-PQ6KSQJR.js → campaign-groups-KFFYQPU3.js} +8 -9
- package/dist/{campaign-groups-PQ6KSQJR.js.map → campaign-groups-KFFYQPU3.js.map} +1 -1
- package/dist/{campaign-writes-5OVLUD5E.js → campaign-writes-FHOS5XZY.js} +3 -4
- package/dist/{campaign-writes-5OVLUD5E.js.map → campaign-writes-FHOS5XZY.js.map} +1 -1
- package/dist/{campaigns-6T3NSUT2.js → campaigns-2NHWBF5C.js} +11 -12
- package/dist/{campaigns-6T3NSUT2.js.map → campaigns-2NHWBF5C.js.map} +1 -1
- package/dist/{campaigns-OYMXDGWX.js → campaigns-KZYZTXDS.js} +5 -5
- package/dist/{canvas-YQFG52IG.js → canvas-5NB27FX2.js} +13 -13
- package/dist/{capabilities-PXBKUN2G.js → capabilities-DJFTRJKS.js} +3 -4
- package/dist/{capabilities-PXBKUN2G.js.map → capabilities-DJFTRJKS.js.map} +1 -1
- package/dist/{catalog-XLXIM7IW.js → catalog-VSSY6FGI.js} +4 -4
- package/dist/{chats-UK47UE7C.js → chats-D2CSDX5Q.js} +3 -4
- package/dist/{chats-UK47UE7C.js.map → chats-D2CSDX5Q.js.map} +1 -1
- package/dist/{chunk-5ZNTADVR.js → chunk-3G3ZDLMI.js} +2 -2
- package/dist/{chunk-SJYEY5MV.js → chunk-3HJLHTWP.js} +3 -12
- package/dist/{chunk-SJYEY5MV.js.map → chunk-3HJLHTWP.js.map} +1 -1
- package/dist/{chunk-ZDMTXQ2Q.js → chunk-3IBYKLXR.js} +2 -2
- package/dist/{chunk-CWYAELVG.js → chunk-464O4MT2.js} +2 -2
- package/dist/{chunk-NA63BH7V.js → chunk-4AUMTNVB.js} +3 -3
- package/dist/{chunk-NDEE6G2J.js → chunk-4BQXAE7Z.js} +2 -2
- package/dist/{chunk-2AOE2MZQ.js → chunk-5ZDLTE5T.js} +3 -3
- package/dist/{chunk-ULG4QRTV.js → chunk-6NB47MRW.js} +2 -2
- package/dist/{chunk-24EB7EDR.js → chunk-7YCRFMXF.js} +3 -3
- package/dist/{chunk-WGUQHAJY.js → chunk-A4LOJ2VD.js} +2 -2
- package/dist/{chunk-6F7DVPOS.js → chunk-AEOSAVVL.js} +3 -3
- package/dist/{chunk-MACCF4JZ.js → chunk-CMPEUZOR.js} +22 -16
- package/dist/{chunk-MACCF4JZ.js.map → chunk-CMPEUZOR.js.map} +1 -1
- package/dist/{chunk-N4LAYIIN.js → chunk-CSYSX4D2.js} +2 -2
- package/dist/{chunk-RX2DKU3W.js → chunk-DGUNI37S.js} +2 -2
- package/dist/{chunk-QE7W555R.js → chunk-DWHIOO7E.js} +12 -163
- package/dist/chunk-DWHIOO7E.js.map +1 -0
- package/dist/{chunk-FPOGPFAG.js → chunk-EBWBG6YV.js} +51 -24
- package/dist/chunk-EBWBG6YV.js.map +1 -0
- package/dist/{chunk-NYIGXDUG.js → chunk-EDLZGTGN.js} +39 -1
- package/dist/chunk-EDLZGTGN.js.map +1 -0
- package/dist/{chunk-I3ZR655O.js → chunk-IR6D7K4H.js} +2 -2
- package/dist/{chunk-FUHN4MFY.js → chunk-JQJDXPCO.js} +2 -2
- package/dist/{chunk-7CTMH5AK.js → chunk-KAUOHQTF.js} +3 -3
- package/dist/{chunk-VYQ3QJ3C.js → chunk-KHRXPQID.js} +2 -2
- package/dist/{chunk-6Y7ZBENQ.js → chunk-LECGCWT5.js} +6 -6
- package/dist/{chunk-5WCSKQ7Z.js → chunk-LZ73CZGP.js} +6 -6
- package/dist/{chunk-R25YLW6H.js → chunk-MELOSESI.js} +2 -2
- package/dist/{chunk-DCRPXOJJ.js → chunk-MXYBTMKB.js} +2 -2
- package/dist/{chunk-54C6YDGJ.js → chunk-NPY4QUMQ.js} +2 -2
- package/dist/{chunk-LYQJ4PZW.js → chunk-OQ6663F4.js} +5 -5
- package/dist/{chunk-H3427GPU.js → chunk-OZRUJVIQ.js} +2 -2
- package/dist/{chunk-KMKEYI37.js → chunk-Q2V6E6SL.js} +3 -3
- package/dist/{chunk-VL43TNIP.js → chunk-QRP3PXWN.js} +2 -2
- package/dist/{chunk-HDLYPC6K.js → chunk-RPUSTYHL.js} +3 -5
- package/dist/{chunk-HDLYPC6K.js.map → chunk-RPUSTYHL.js.map} +1 -1
- package/dist/{chunk-C46GUI2S.js → chunk-RZBEK2VE.js} +2 -2
- package/dist/{chunk-2VPBIT65.js → chunk-S3A3YOKO.js} +8 -8
- package/dist/{chunk-FYGR3I2A.js → chunk-S77PZVYM.js} +3 -3
- package/dist/{chunk-VLMBTPXU.js → chunk-SHL7LOC3.js} +3 -3
- package/dist/{chunk-HR6IWNKE.js → chunk-SSJK7FEV.js} +1140 -1196
- package/dist/chunk-SSJK7FEV.js.map +1 -0
- package/dist/{chunk-KS2QY6MK.js → chunk-W3ZHJJVT.js} +4 -4
- package/dist/{chunk-7EPXVICM.js → chunk-XF4JUKVF.js} +5 -38
- package/dist/chunk-XF4JUKVF.js.map +1 -0
- package/dist/{chunk-RL5CP7N6.js → chunk-Y6O7EWYY.js} +5 -5
- package/dist/{chunk-6NY2GPR4.js → chunk-Y6ZQXUZ7.js} +3 -3
- package/dist/{chunk-HROZYQ5H.js → chunk-YRQYA2LR.js} +5 -63
- package/dist/chunk-YRQYA2LR.js.map +1 -0
- package/dist/{chunk-ASI4P6X2.js → chunk-YUCLMOEG.js} +6 -6
- package/dist/chunk-YUCLMOEG.js.map +1 -0
- package/dist/{chunk-WKQG6TER.js → chunk-ZEYEWPK6.js} +2 -2
- package/dist/{claim-W6G6VEG5.js → claim-FZ5OQLMU.js} +3 -4
- package/dist/{claim-W6G6VEG5.js.map → claim-FZ5OQLMU.js.map} +1 -1
- package/dist/cli.js +30 -30
- package/dist/{companies-TS6KBATJ.js → companies-DNI634RC.js} +3 -4
- package/dist/{companies-TS6KBATJ.js.map → companies-DNI634RC.js.map} +1 -1
- package/dist/{complete-LYR2HMQU.js → complete-2FZMGJV5.js} +3 -4
- package/dist/{complete-LYR2HMQU.js.map → complete-2FZMGJV5.js.map} +1 -1
- package/dist/{connect-FCXNVTXG.js → connect-QCOGEPP4.js} +6 -13
- package/dist/{conversation-6ZJGPCXM.js → conversation-6IOGV7B7.js} +3 -4
- package/dist/{conversation-6ZJGPCXM.js.map → conversation-6IOGV7B7.js.map} +1 -1
- package/dist/{conversions-UHB55MMQ.js → conversions-4SRZPBBX.js} +7 -8
- package/dist/{conversions-UHB55MMQ.js.map → conversions-4SRZPBBX.js.map} +1 -1
- package/dist/{create-EX6OWLNM.js → create-BJNMO6HT.js} +2 -3
- package/dist/{create-EX6OWLNM.js.map → create-BJNMO6HT.js.map} +1 -1
- package/dist/{create-JFSK4BOP.js → create-FX4OJ2XF.js} +3 -4
- package/dist/{create-JFSK4BOP.js.map → create-FX4OJ2XF.js.map} +1 -1
- package/dist/{create-JCA7JPLP.js → create-RM7HV77Y.js} +3 -4
- package/dist/{create-JCA7JPLP.js.map → create-RM7HV77Y.js.map} +1 -1
- package/dist/{create-WU22YYU2.js → create-VXM34ZWH.js} +3 -4
- package/dist/{create-WU22YYU2.js.map → create-VXM34ZWH.js.map} +1 -1
- package/dist/{creatives-FXUQ5WSD.js → creatives-B5NTXPUB.js} +10 -10
- package/dist/{creatives-KGXUOYPE.js → creatives-JSWBFQ5R.js} +8 -9
- package/dist/{creatives-KGXUOYPE.js.map → creatives-JSWBFQ5R.js.map} +1 -1
- package/dist/{credentials-MJC7PGKR.js → credentials-C33K6XCJ.js} +3 -4
- package/dist/{credentials-MJC7PGKR.js.map → credentials-C33K6XCJ.js.map} +1 -1
- package/dist/{critique-GS5VV5ZC.js → critique-4V5SKH7C.js} +6 -7
- package/dist/{critique-GS5VV5ZC.js.map → critique-4V5SKH7C.js.map} +1 -1
- package/dist/{critique-TPHR27KH.js → critique-ZS4ON3SU.js} +3 -4
- package/dist/{critique-TPHR27KH.js.map → critique-ZS4ON3SU.js.map} +1 -1
- package/dist/{crm-VK44O3ED.js → crm-52ROSWH5.js} +4 -5
- package/dist/{crm-VK44O3ED.js.map → crm-52ROSWH5.js.map} +1 -1
- package/dist/{crm-AVCM5D4G.js → crm-R5IXIFIV.js} +4 -5
- package/dist/{crm-AVCM5D4G.js.map → crm-R5IXIFIV.js.map} +1 -1
- package/dist/{customers-XH2DMTFH.js → customers-A36LOZOB.js} +5 -6
- package/dist/{delete-WI5E3DR3.js → delete-AIGE4Y4H.js} +3 -4
- package/dist/{delete-WI5E3DR3.js.map → delete-AIGE4Y4H.js.map} +1 -1
- package/dist/{delete-KRH2YMSZ.js → delete-HGHXY24R.js} +3 -4
- package/dist/{delete-KRH2YMSZ.js.map → delete-HGHXY24R.js.map} +1 -1
- package/dist/{delete-E3R3TKIL.js → delete-M2GDLPYN.js} +2 -3
- package/dist/{delete-E3R3TKIL.js.map → delete-M2GDLPYN.js.map} +1 -1
- package/dist/{demographics-XV5PBA77.js → demographics-NTWB2IMG.js} +3 -4
- package/dist/{demographics-XV5PBA77.js.map → demographics-NTWB2IMG.js.map} +1 -1
- package/dist/{discard-HTQUUHJR.js → discard-2WWQG6OU.js} +3 -4
- package/dist/{discard-HTQUUHJR.js.map → discard-2WWQG6OU.js.map} +1 -1
- package/dist/{domain-RECGZXJB.js → domain-Y2LT6JLT.js} +3 -4
- package/dist/{domain-RECGZXJB.js.map → domain-Y2LT6JLT.js.map} +1 -1
- package/dist/{draft-Q546QPPU.js → draft-EJXNNJ3Y.js} +4 -5
- package/dist/{draft-Q546QPPU.js.map → draft-EJXNNJ3Y.js.map} +1 -1
- package/dist/{draft-PVTX6QT6.js → draft-FJ7WHIXW.js} +3 -4
- package/dist/{draft-PVTX6QT6.js.map → draft-FJ7WHIXW.js.map} +1 -1
- package/dist/{draft-2IBSJEKC.js → draft-SLHAKJ2A.js} +3 -4
- package/dist/{draft-2IBSJEKC.js.map → draft-SLHAKJ2A.js.map} +1 -1
- package/dist/engine/index.js +3 -3
- package/dist/{facets-7EVPJMKS.js → facets-U7AQC4H6.js} +3 -4
- package/dist/{facets-7EVPJMKS.js.map → facets-U7AQC4H6.js.map} +1 -1
- package/dist/{feedback-EIZKS4JU.js → feedback-OLTCHE6C.js} +2 -2
- package/dist/{feedback-record-TKO54BOE.js → feedback-record-7WZ4H7EP.js} +8 -9
- package/dist/{feedback-record-TKO54BOE.js.map → feedback-record-7WZ4H7EP.js.map} +1 -1
- package/dist/{fetch-4BY6HYUM.js → fetch-W7NULDEO.js} +3 -4
- package/dist/{fetch-4BY6HYUM.js.map → fetch-W7NULDEO.js.map} +1 -1
- package/dist/{find-FRRHAPWX.js → find-OTDIX6V4.js} +4 -4
- package/dist/{flows-KTFAML22.js → flows-KABCBS3S.js} +17 -21
- package/dist/flows-KABCBS3S.js.map +1 -0
- package/dist/{fonts-MXR3ZKDX.js → fonts-EMMX3KII.js} +5 -6
- package/dist/{forecast-3QTJYVND.js → forecast-GNODEIIC.js} +3 -4
- package/dist/{forecast-3QTJYVND.js.map → forecast-GNODEIIC.js.map} +1 -1
- package/dist/{funnel-I6XIAEHG.js → funnel-AAX27NH4.js} +455 -11
- package/dist/funnel-AAX27NH4.js.map +1 -0
- package/dist/{ga4-DV2AXCSL.js → ga4-UDQ2HA2J.js} +1 -1
- package/dist/{get-5PKNKJ5S.js → get-QEYJRLV3.js} +4 -7
- package/dist/get-QEYJRLV3.js.map +1 -0
- package/dist/{get-72YPHJGV.js → get-RTVUZM6E.js} +3 -4
- package/dist/{get-72YPHJGV.js.map → get-RTVUZM6E.js.map} +1 -1
- package/dist/{google-QYYYSSXI.js → google-KTO3PLEU.js} +5 -5
- package/dist/{google-6OGZX47I.js → google-M7KEXVK5.js} +2 -2
- package/dist/{google-ads-QGMQKZQD.js → google-ads-OK6IG3UV.js} +3 -4
- package/dist/{google-ads-QGMQKZQD.js.map → google-ads-OK6IG3UV.js.map} +1 -1
- package/dist/{gsc-TAKOF7J5.js → gsc-P3QYGDV2.js} +1 -1
- package/dist/{history-6AVQX2OQ.js → history-PQUJKK26.js} +3 -4
- package/dist/{history-6AVQX2OQ.js.map → history-PQUJKK26.js.map} +1 -1
- package/dist/{hubspot-SVEMFK5S.js → hubspot-Y77VLY6Y.js} +8 -9
- package/dist/{hubspot-SVEMFK5S.js.map → hubspot-Y77VLY6Y.js.map} +1 -1
- package/dist/{icon-L4RSS6PZ.js → icon-I43F77FV.js} +4 -4
- package/dist/{ideas-NFOW3HKJ.js → ideas-MIDU7YOA.js} +2 -3
- package/dist/{images-2EFFUNNV.js → images-S254MS6O.js} +9 -9
- package/dist/{ingest-2SO62RRI.js → ingest-J4I3HKM3.js} +2 -3
- package/dist/{ingest-2SO62RRI.js.map → ingest-J4I3HKM3.js.map} +1 -1
- package/dist/{ingest-2EIKN4QC.js → ingest-YV2NLDBE.js} +3 -4
- package/dist/{inspect-4OOS4APT.js → inspect-Q5NHBBHX.js} +3 -4
- package/dist/{inspect-4OOS4APT.js.map → inspect-Q5NHBBHX.js.map} +1 -1
- package/dist/{inspiration-S3DU4CMQ.js → inspiration-P265QJ2H.js} +1 -1
- package/dist/{keyword-metrics-SF4CSNZ2.js → keyword-metrics-PDY4ZXSP.js} +3 -4
- package/dist/{keyword-metrics-SF4CSNZ2.js.map → keyword-metrics-PDY4ZXSP.js.map} +1 -1
- package/dist/{keywords-for-site-WDAOPNKC.js → keywords-for-site-GALSCV77.js} +3 -4
- package/dist/{keywords-for-site-WDAOPNKC.js.map → keywords-for-site-GALSCV77.js.map} +1 -1
- package/dist/{landing-2ZB46LXH.js → landing-CJYGWCK4.js} +3 -3
- package/dist/{leads-A4W5KTWB.js → leads-PHKG6CP3.js} +3 -4
- package/dist/{leads-A4W5KTWB.js.map → leads-PHKG6CP3.js.map} +1 -1
- package/dist/{learn-IPULBCOD.js → learn-FUQSY7DN.js} +4 -5
- package/dist/{learn-IPULBCOD.js.map → learn-FUQSY7DN.js.map} +1 -1
- package/dist/{line-item-writes-EMYSOJKM.js → line-item-writes-E6MZPIZZ.js} +3 -4
- package/dist/{line-item-writes-EMYSOJKM.js.map → line-item-writes-E6MZPIZZ.js.map} +1 -1
- package/dist/{line-items-5NECXUZT.js → line-items-7ZGIKEF2.js} +5 -5
- package/dist/{link-CI45HWFN.js → link-QYAW6A2W.js} +3 -4
- package/dist/{link-CI45HWFN.js.map → link-QYAW6A2W.js.map} +1 -1
- package/dist/{linkedin-B7SYR75X.js → linkedin-FFSDSGGS.js} +26 -27
- package/dist/{linkedin-B7SYR75X.js.map → linkedin-FFSDSGGS.js.map} +1 -1
- package/dist/{list-ZBT3EBVZ.js → list-5IC6KIKO.js} +3 -4
- package/dist/{list-ZBT3EBVZ.js.map → list-5IC6KIKO.js.map} +1 -1
- package/dist/{list-2BARXOT5.js → list-NVQC5SNY.js} +2 -3
- package/dist/{list-2BARXOT5.js.map → list-NVQC5SNY.js.map} +1 -1
- package/dist/{list-BIEVLEHS.js → list-SAV3LQHY.js} +3 -4
- package/dist/{list-BIEVLEHS.js.map → list-SAV3LQHY.js.map} +1 -1
- package/dist/{log-C23OOAJZ.js → log-XZPVOALD.js} +3 -4
- package/dist/{log-C23OOAJZ.js.map → log-XZPVOALD.js.map} +1 -1
- package/dist/{logo-Q5D7PZY6.js → logo-2IP663QO.js} +3 -3
- package/dist/{lookup-ETWY47F7.js → lookup-XK45W2SH.js} +5 -6
- package/dist/{make-TPKKJXGL.js → make-BMWRKIIY.js} +20 -18
- package/dist/{make-TPKKJXGL.js.map → make-BMWRKIIY.js.map} +1 -1
- package/dist/{map-SYZMPHLL.js → map-4J5WIWIG.js} +4 -5
- package/dist/{map-SYZMPHLL.js.map → map-4J5WIWIG.js.map} +1 -1
- package/dist/{mcp-6FQBVJ6F.js → mcp-XXD7ZQCP.js} +2 -3
- package/dist/{mcp-6FQBVJ6F.js.map → mcp-XXD7ZQCP.js.map} +1 -1
- package/dist/{media-sources-ZXHEEP6T.js → media-sources-O6ZRUA3N.js} +2 -2
- package/dist/{members-UDY4OOJW.js → members-D5ZYLS4Y.js} +3 -4
- package/dist/{members-UDY4OOJW.js.map → members-D5ZYLS4Y.js.map} +1 -1
- package/dist/{normalize-DAKHYS3V.js → normalize-PCNC6E2N.js} +3 -7
- package/dist/{normalize-DAKHYS3V.js.map → normalize-PCNC6E2N.js.map} +1 -1
- package/dist/{options-QL3ULED5.js → options-MQ65VEVD.js} +6 -7
- package/dist/{options-QL3ULED5.js.map → options-MQ65VEVD.js.map} +1 -1
- package/dist/{performance-UF5VTY2U.js → performance-6QW2KEEQ.js} +4 -5
- package/dist/{promoted-tweet-writes-7HGESJ46.js → promoted-tweet-writes-JPLHY3GM.js} +3 -4
- package/dist/{promoted-tweet-writes-7HGESJ46.js.map → promoted-tweet-writes-JPLHY3GM.js.map} +1 -1
- package/dist/{promoted-tweets-LZKS5JIF.js → promoted-tweets-SURKMHFI.js} +3 -3
- package/dist/{publish-NPD3SMZL.js → publish-HCQ6MXLB.js} +3 -4
- package/dist/{publish-NPD3SMZL.js.map → publish-HCQ6MXLB.js.map} +1 -1
- package/dist/{reddit-NU2N3LZD.js → reddit-GIP3ADMS.js} +4 -5
- package/dist/{refresh-EBVJ2C6L.js → refresh-UXQSLCR3.js} +2 -3
- package/dist/{refresh-EBVJ2C6L.js.map → refresh-UXQSLCR3.js.map} +1 -1
- package/dist/{release-V43YB2PY.js → release-5KVLXNP6.js} +3 -4
- package/dist/{release-V43YB2PY.js.map → release-5KVLXNP6.js.map} +1 -1
- package/dist/{remove-QPSWLFI4.js → remove-6FIVKCJI.js} +2 -3
- package/dist/{remove-QPSWLFI4.js.map → remove-6FIVKCJI.js.map} +1 -1
- package/dist/{reopen-GQ66NMWF.js → reopen-YM5LNOLB.js} +3 -4
- package/dist/{reopen-GQ66NMWF.js.map → reopen-YM5LNOLB.js.map} +1 -1
- package/dist/{rerun-PZK275DY.js → rerun-6XZG7BGK.js} +17 -18
- package/dist/{rerun-PZK275DY.js.map → rerun-6XZG7BGK.js.map} +1 -1
- package/dist/{research-FMM6AWZC.js → research-2BLEISBG.js} +10 -10
- package/dist/{research-GEOCUBXB.js → research-YOGE7GT2.js} +2 -3
- package/dist/{research-GEOCUBXB.js.map → research-YOGE7GT2.js.map} +1 -1
- package/dist/{reset-REXJ6AUK.js → reset-C4UHQ3EU.js} +2 -3
- package/dist/{reset-REXJ6AUK.js.map → reset-C4UHQ3EU.js.map} +1 -1
- package/dist/{reset-Y72IVESB.js → reset-OLVB6AE6.js} +2 -3
- package/dist/{reset-Y72IVESB.js.map → reset-OLVB6AE6.js.map} +1 -1
- package/dist/{resolve-OGX7C4TV.js → resolve-XYH2GDAE.js} +3 -4
- package/dist/{resolve-OGX7C4TV.js.map → resolve-XYH2GDAE.js.map} +1 -1
- package/dist/{retry-TCUBBFR5.js → retry-726GKI6V.js} +2 -3
- package/dist/{retry-TCUBBFR5.js.map → retry-726GKI6V.js.map} +1 -1
- package/dist/{retry-CD6JAQ3F.js → retry-7EELDEQP.js} +2 -3
- package/dist/{retry-CD6JAQ3F.js.map → retry-7EELDEQP.js.map} +1 -1
- package/dist/{run-EUO34T2J.js → run-MMEDKJDB.js} +17 -18
- package/dist/{run-A5ZDXTOI.js → run-P4KR2MXC.js} +3 -4
- package/dist/{run-A5ZDXTOI.js.map → run-P4KR2MXC.js.map} +1 -1
- package/dist/{scaffold-ad-SW2HEWM3.js → scaffold-ad-PBTEWDAC.js} +12 -13
- package/dist/{scaffold-ad-SW2HEWM3.js.map → scaffold-ad-PBTEWDAC.js.map} +1 -1
- package/dist/{scaffold-static-ad-ECTJL54Y.js → scaffold-static-ad-RM4M4X5U.js} +36 -37
- package/dist/scaffold-static-ad-RM4M4X5U.js.map +1 -0
- package/dist/{scaffold-video-EI7U7RBK.js → scaffold-video-O2TTKZIE.js} +11 -12
- package/dist/{scaffold-video-EI7U7RBK.js.map → scaffold-video-O2TTKZIE.js.map} +1 -1
- package/dist/{schedule-S5YZJZ5U.js → schedule-RDK4GEPI.js} +2 -3
- package/dist/{schedule-S5YZJZ5U.js.map → schedule-RDK4GEPI.js.map} +1 -1
- package/dist/{scheduled-agents-N4LJRM4C.js → scheduled-agents-6U44QE76.js} +11 -11
- package/dist/{schema-R7JWWOF4.js → schema-CHJDC7GQ.js} +4 -8
- package/dist/{schema-R7JWWOF4.js.map → schema-CHJDC7GQ.js.map} +1 -1
- package/dist/{search-KHMQH3AT.js → search-PMJRU3C4.js} +2 -3
- package/dist/{search-KHMQH3AT.js.map → search-PMJRU3C4.js.map} +1 -1
- package/dist/{select-O2FN2JEQ.js → select-OEUKOVZ5.js} +8 -9
- package/dist/{select-O2FN2JEQ.js.map → select-OEUKOVZ5.js.map} +1 -1
- package/dist/{sends-BQZM5PLS.js → sends-WGJVQUMF.js} +4 -5
- package/dist/{sends-BQZM5PLS.js.map → sends-WGJVQUMF.js.map} +1 -1
- package/dist/{set-prompt-2HASHGWC.js → set-prompt-5E5I7QAZ.js} +8 -9
- package/dist/{set-prompt-2HASHGWC.js.map → set-prompt-5E5I7QAZ.js.map} +1 -1
- package/dist/{setup-links-GYSE56GX.js → setup-links-REPREN3C.js} +3 -4
- package/dist/{setup-links-GYSE56GX.js.map → setup-links-REPREN3C.js.map} +1 -1
- package/dist/{site-4SKM7RKG.js → site-WFSWIA3S.js} +4 -5
- package/dist/{site-4SKM7RKG.js.map → site-WFSWIA3S.js.map} +1 -1
- package/dist/{sources-R2NKNC6J.js → sources-AMI2AWKZ.js} +9 -10
- package/dist/{sources-R2NKNC6J.js.map → sources-AMI2AWKZ.js.map} +1 -1
- package/dist/{sources-FQ2UZTHL.js → sources-YBQ6KPFM.js} +6 -6
- package/dist/{stale-W756ACKC.js → stale-IGFUKEN2.js} +7 -8
- package/dist/{stale-W756ACKC.js.map → stale-IGFUKEN2.js.map} +1 -1
- package/dist/{status-SE2VZJJB.js → status-7F2KHFGA.js} +3 -4
- package/dist/{status-SE2VZJJB.js.map → status-7F2KHFGA.js.map} +1 -1
- package/dist/{stock-KXJ26BY4.js → stock-2YCDN3N6.js} +5 -5
- package/dist/{studio-SYKOSNDB.js → studio-RA7QQH4O.js} +1 -1
- package/dist/{sync-LJGSODK3.js → sync-GWTLKZTU.js} +2 -3
- package/dist/{sync-LJGSODK3.js.map → sync-GWTLKZTU.js.map} +1 -1
- package/dist/{sync-definition-QR2N233R.js → sync-definition-UGSDX2SZ.js} +11 -12
- package/dist/{tags-PYWFSBTR.js → tags-3WPW6PTV.js} +4 -4
- package/dist/{tags-QQU3OKMZ.js → tags-6342FQEB.js} +3 -4
- package/dist/{tags-QQU3OKMZ.js.map → tags-6342FQEB.js.map} +1 -1
- package/dist/{tags-5SBMRC2A.js → tags-ABHSX6M5.js} +3 -4
- package/dist/{tags-5SBMRC2A.js.map → tags-ABHSX6M5.js.map} +1 -1
- package/dist/{tags-YYLNF3PK.js → tags-FJIBBBRG.js} +3 -4
- package/dist/{tags-YYLNF3PK.js.map → tags-FJIBBBRG.js.map} +1 -1
- package/dist/{tags-4BAVFH4S.js → tags-KFYLZLB3.js} +2 -3
- package/dist/{tags-4BAVFH4S.js.map → tags-KFYLZLB3.js.map} +1 -1
- package/dist/{targeting-criteria-RJFLFICN.js → targeting-criteria-NR47AF5C.js} +3 -3
- package/dist/{targets-S2MT2PNB.js → targets-L56KOVQE.js} +3 -4
- package/dist/{targets-S2MT2PNB.js.map → targets-L56KOVQE.js.map} +1 -1
- package/dist/{templates-ZE5TOGRT.js → templates-B6XGDYUF.js} +3 -4
- package/dist/{templates-ZE5TOGRT.js.map → templates-B6XGDYUF.js.map} +1 -1
- package/dist/{testimonials-DII5DYLR.js → testimonials-CVC4YIXO.js} +6 -6
- package/dist/{top-companies-PGIAEHDF.js → top-companies-45X3DT7Z.js} +3 -4
- package/dist/{top-companies-PGIAEHDF.js.map → top-companies-45X3DT7Z.js.map} +1 -1
- package/dist/{translate-GXTS633J.js → translate-VP5R67PL.js} +11 -12
- package/dist/{translate-GXTS633J.js.map → translate-VP5R67PL.js.map} +1 -1
- package/dist/{triggers-2PTONXRU.js → triggers-22EMIVFD.js} +3 -4
- package/dist/{triggers-2PTONXRU.js.map → triggers-22EMIVFD.js.map} +1 -1
- package/dist/{unlink-XRMYJ6DB.js → unlink-65KUN6ID.js} +3 -4
- package/dist/{unlink-XRMYJ6DB.js.map → unlink-65KUN6ID.js.map} +1 -1
- package/dist/{unstage-FY7A3YFF.js → unstage-2E3I5SWF.js} +3 -4
- package/dist/{unstage-FY7A3YFF.js.map → unstage-2E3I5SWF.js.map} +1 -1
- package/dist/{unstage-RM2RLXKD.js → unstage-4ZEULXEQ.js} +4 -5
- package/dist/{unstage-RM2RLXKD.js.map → unstage-4ZEULXEQ.js.map} +1 -1
- package/dist/{update-S4562V3O.js → update-2S7CSEAW.js} +3 -4
- package/dist/{update-S4562V3O.js.map → update-2S7CSEAW.js.map} +1 -1
- package/dist/{update-V6YVEUI2.js → update-7NCOTAQZ.js} +3 -4
- package/dist/{update-V6YVEUI2.js.map → update-7NCOTAQZ.js.map} +1 -1
- package/dist/{update-PJ67D2OG.js → update-D6DJC6T7.js} +2 -3
- package/dist/{update-PJ67D2OG.js.map → update-D6DJC6T7.js.map} +1 -1
- package/dist/{update-E5SRBXQR.js → update-KREBPGBH.js} +3 -4
- package/dist/{update-E5SRBXQR.js.map → update-KREBPGBH.js.map} +1 -1
- package/dist/{upload-R6CQVLKF.js → upload-O6NHRPS7.js} +3 -4
- package/dist/{upload-R6CQVLKF.js.map → upload-O6NHRPS7.js.map} +1 -1
- package/dist/{url-options-JOKU46F2.js → url-options-GGXAL3J4.js} +3 -4
- package/dist/{url-options-JOKU46F2.js.map → url-options-GGXAL3J4.js.map} +1 -1
- package/dist/{url-params-7U2XMOWF.js → url-params-3EFGVTZZ.js} +3 -4
- package/dist/{url-params-7U2XMOWF.js.map → url-params-3EFGVTZZ.js.map} +1 -1
- package/dist/{validate-7YPOUKPB.js → validate-CSJM7XZM.js} +9 -10
- package/dist/{validate-7YPOUKPB.js.map → validate-CSJM7XZM.js.map} +1 -1
- package/dist/{videos-LICG6ACJ.js → videos-YSXYGTBM.js} +5 -5
- package/dist/{web-BA2PGTWU.js → web-IGIGVEKS.js} +3 -4
- package/dist/{web-BA2PGTWU.js.map → web-IGIGVEKS.js.map} +1 -1
- package/dist/{winning-ads-C6S2C5VP.js → winning-ads-2WS7FI4E.js} +2 -2
- package/dist/{write-commands-7SJ3BOW5.js → write-commands-5C7FUOVN.js} +4 -5
- package/dist/{write-commands-7SJ3BOW5.js.map → write-commands-5C7FUOVN.js.map} +1 -1
- package/dist/{x-CZHRC6U7.js → x-BFSKFCZD.js} +6 -6
- package/package.json +1 -1
- package/dist/add-2BEGRHUX.js.map +0 -1
- package/dist/analytics-IFELDWLL.js.map +0 -1
- package/dist/chunk-4PDHHHUJ.js +0 -537
- package/dist/chunk-4PDHHHUJ.js.map +0 -1
- package/dist/chunk-7EPXVICM.js.map +0 -1
- package/dist/chunk-ASI4P6X2.js.map +0 -1
- package/dist/chunk-FPOGPFAG.js.map +0 -1
- package/dist/chunk-HR6IWNKE.js.map +0 -1
- package/dist/chunk-HROZYQ5H.js.map +0 -1
- package/dist/chunk-NYIGXDUG.js.map +0 -1
- package/dist/chunk-QE7W555R.js.map +0 -1
- package/dist/flows-KTFAML22.js.map +0 -1
- package/dist/funnel-I6XIAEHG.js.map +0 -1
- package/dist/get-5PKNKJ5S.js.map +0 -1
- package/dist/plan-FT632COT.js +0 -51
- package/dist/plan-FT632COT.js.map +0 -1
- package/dist/questionnaire-JNGYJTAY.js +0 -37
- package/dist/questionnaire-JNGYJTAY.js.map +0 -1
- package/dist/scaffold-static-ad-ECTJL54Y.js.map +0 -1
- /package/dist/{actions-6TQMSVWD.js.map → actions-P35MEMGN.js.map} +0 -0
- /package/dist/{ads-AGYCVD62.js.map → ads-73PGA4YC.js.map} +0 -0
- /package/dist/{avatars-467OSBD6.js.map → avatars-EKCKHCC3.js.map} +0 -0
- /package/dist/{brand-YRTEPGBK.js.map → brand-C6PFGGQN.js.map} +0 -0
- /package/dist/{campaigns-OYMXDGWX.js.map → campaigns-KZYZTXDS.js.map} +0 -0
- /package/dist/{canvas-YQFG52IG.js.map → canvas-5NB27FX2.js.map} +0 -0
- /package/dist/{catalog-XLXIM7IW.js.map → catalog-VSSY6FGI.js.map} +0 -0
- /package/dist/{chunk-5ZNTADVR.js.map → chunk-3G3ZDLMI.js.map} +0 -0
- /package/dist/{chunk-ZDMTXQ2Q.js.map → chunk-3IBYKLXR.js.map} +0 -0
- /package/dist/{chunk-CWYAELVG.js.map → chunk-464O4MT2.js.map} +0 -0
- /package/dist/{chunk-NA63BH7V.js.map → chunk-4AUMTNVB.js.map} +0 -0
- /package/dist/{chunk-NDEE6G2J.js.map → chunk-4BQXAE7Z.js.map} +0 -0
- /package/dist/{chunk-2AOE2MZQ.js.map → chunk-5ZDLTE5T.js.map} +0 -0
- /package/dist/{chunk-ULG4QRTV.js.map → chunk-6NB47MRW.js.map} +0 -0
- /package/dist/{chunk-24EB7EDR.js.map → chunk-7YCRFMXF.js.map} +0 -0
- /package/dist/{chunk-WGUQHAJY.js.map → chunk-A4LOJ2VD.js.map} +0 -0
- /package/dist/{chunk-6F7DVPOS.js.map → chunk-AEOSAVVL.js.map} +0 -0
- /package/dist/{chunk-N4LAYIIN.js.map → chunk-CSYSX4D2.js.map} +0 -0
- /package/dist/{chunk-RX2DKU3W.js.map → chunk-DGUNI37S.js.map} +0 -0
- /package/dist/{chunk-I3ZR655O.js.map → chunk-IR6D7K4H.js.map} +0 -0
- /package/dist/{chunk-FUHN4MFY.js.map → chunk-JQJDXPCO.js.map} +0 -0
- /package/dist/{chunk-7CTMH5AK.js.map → chunk-KAUOHQTF.js.map} +0 -0
- /package/dist/{chunk-VYQ3QJ3C.js.map → chunk-KHRXPQID.js.map} +0 -0
- /package/dist/{chunk-6Y7ZBENQ.js.map → chunk-LECGCWT5.js.map} +0 -0
- /package/dist/{chunk-5WCSKQ7Z.js.map → chunk-LZ73CZGP.js.map} +0 -0
- /package/dist/{chunk-R25YLW6H.js.map → chunk-MELOSESI.js.map} +0 -0
- /package/dist/{chunk-DCRPXOJJ.js.map → chunk-MXYBTMKB.js.map} +0 -0
- /package/dist/{chunk-54C6YDGJ.js.map → chunk-NPY4QUMQ.js.map} +0 -0
- /package/dist/{chunk-LYQJ4PZW.js.map → chunk-OQ6663F4.js.map} +0 -0
- /package/dist/{chunk-H3427GPU.js.map → chunk-OZRUJVIQ.js.map} +0 -0
- /package/dist/{chunk-KMKEYI37.js.map → chunk-Q2V6E6SL.js.map} +0 -0
- /package/dist/{chunk-VL43TNIP.js.map → chunk-QRP3PXWN.js.map} +0 -0
- /package/dist/{chunk-C46GUI2S.js.map → chunk-RZBEK2VE.js.map} +0 -0
- /package/dist/{chunk-2VPBIT65.js.map → chunk-S3A3YOKO.js.map} +0 -0
- /package/dist/{chunk-FYGR3I2A.js.map → chunk-S77PZVYM.js.map} +0 -0
- /package/dist/{chunk-VLMBTPXU.js.map → chunk-SHL7LOC3.js.map} +0 -0
- /package/dist/{chunk-KS2QY6MK.js.map → chunk-W3ZHJJVT.js.map} +0 -0
- /package/dist/{chunk-RL5CP7N6.js.map → chunk-Y6O7EWYY.js.map} +0 -0
- /package/dist/{chunk-6NY2GPR4.js.map → chunk-Y6ZQXUZ7.js.map} +0 -0
- /package/dist/{chunk-WKQG6TER.js.map → chunk-ZEYEWPK6.js.map} +0 -0
- /package/dist/{connect-FCXNVTXG.js.map → connect-QCOGEPP4.js.map} +0 -0
- /package/dist/{creatives-FXUQ5WSD.js.map → creatives-B5NTXPUB.js.map} +0 -0
- /package/dist/{customers-XH2DMTFH.js.map → customers-A36LOZOB.js.map} +0 -0
- /package/dist/{feedback-EIZKS4JU.js.map → feedback-OLTCHE6C.js.map} +0 -0
- /package/dist/{find-FRRHAPWX.js.map → find-OTDIX6V4.js.map} +0 -0
- /package/dist/{fonts-MXR3ZKDX.js.map → fonts-EMMX3KII.js.map} +0 -0
- /package/dist/{ga4-DV2AXCSL.js.map → ga4-UDQ2HA2J.js.map} +0 -0
- /package/dist/{google-QYYYSSXI.js.map → google-KTO3PLEU.js.map} +0 -0
- /package/dist/{google-6OGZX47I.js.map → google-M7KEXVK5.js.map} +0 -0
- /package/dist/{gsc-TAKOF7J5.js.map → gsc-P3QYGDV2.js.map} +0 -0
- /package/dist/{icon-L4RSS6PZ.js.map → icon-I43F77FV.js.map} +0 -0
- /package/dist/{ideas-NFOW3HKJ.js.map → ideas-MIDU7YOA.js.map} +0 -0
- /package/dist/{images-2EFFUNNV.js.map → images-S254MS6O.js.map} +0 -0
- /package/dist/{ingest-2EIKN4QC.js.map → ingest-YV2NLDBE.js.map} +0 -0
- /package/dist/{inspiration-S3DU4CMQ.js.map → inspiration-P265QJ2H.js.map} +0 -0
- /package/dist/{landing-2ZB46LXH.js.map → landing-CJYGWCK4.js.map} +0 -0
- /package/dist/{line-items-5NECXUZT.js.map → line-items-7ZGIKEF2.js.map} +0 -0
- /package/dist/{logo-Q5D7PZY6.js.map → logo-2IP663QO.js.map} +0 -0
- /package/dist/{lookup-ETWY47F7.js.map → lookup-XK45W2SH.js.map} +0 -0
- /package/dist/{media-sources-ZXHEEP6T.js.map → media-sources-O6ZRUA3N.js.map} +0 -0
- /package/dist/{performance-UF5VTY2U.js.map → performance-6QW2KEEQ.js.map} +0 -0
- /package/dist/{promoted-tweets-LZKS5JIF.js.map → promoted-tweets-SURKMHFI.js.map} +0 -0
- /package/dist/{reddit-NU2N3LZD.js.map → reddit-GIP3ADMS.js.map} +0 -0
- /package/dist/{research-FMM6AWZC.js.map → research-2BLEISBG.js.map} +0 -0
- /package/dist/{run-EUO34T2J.js.map → run-MMEDKJDB.js.map} +0 -0
- /package/dist/{scheduled-agents-N4LJRM4C.js.map → scheduled-agents-6U44QE76.js.map} +0 -0
- /package/dist/{sources-FQ2UZTHL.js.map → sources-YBQ6KPFM.js.map} +0 -0
- /package/dist/{stock-KXJ26BY4.js.map → stock-2YCDN3N6.js.map} +0 -0
- /package/dist/{studio-SYKOSNDB.js.map → studio-RA7QQH4O.js.map} +0 -0
- /package/dist/{sync-definition-QR2N233R.js.map → sync-definition-UGSDX2SZ.js.map} +0 -0
- /package/dist/{tags-PYWFSBTR.js.map → tags-3WPW6PTV.js.map} +0 -0
- /package/dist/{targeting-criteria-RJFLFICN.js.map → targeting-criteria-NR47AF5C.js.map} +0 -0
- /package/dist/{testimonials-DII5DYLR.js.map → testimonials-CVC4YIXO.js.map} +0 -0
- /package/dist/{videos-LICG6ACJ.js.map → videos-YSXYGTBM.js.map} +0 -0
- /package/dist/{winning-ads-C6S2C5VP.js.map → winning-ads-2WS7FI4E.js.map} +0 -0
- /package/dist/{x-CZHRC6U7.js.map → x-BFSKFCZD.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/tags/index.ts","../src/commands/tags/shared.ts"],"sourcesContent":["import type { TagsDraftListResponse, TagsListResponse, TagsUnstageRequest, TagsUnstageResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { requireChatId, resolveChatId } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { CHAT_READ_ARG } from \"../chat-arg.ts\";\nimport { failApi, failValidation, renderEffectiveEntry, tagsListHints } from \"./shared.ts\";\n\nregisterSchema({\n command: \"tags.list\",\n description:\n \"Effective marketing tags for this chat: production tags overlaid with the changes staged in this chat. Prints each tag's readable config in full (secrets are never included) — e.g. the Clarity projectId, GA4 measurementId, or the entire custom `code` snippet — so reuse a stored value to pre-fill a follow-up change instead of asking the user for something we already have. The printed refs (tag ids or tag_temp_*) are exactly what flow side-effect tagIds should reference. Read-only — every tag change (create, edit, delete) goes through the request_tag_input approval tool; `baker tags unstage` takes back one this chat staged.\",\n args: {\n json: { type: \"boolean\", description: \"Print the raw JSON envelope instead of the readable list\", required: false },\n },\n});\n\nasync function listTags(json: boolean): Promise<void> {\n try {\n const chatId = requireChatId();\n const response = await apiPost<TagsListResponse>(\"/api/tags/list\", { chatId });\n const hints = tagsListHints();\n if (json) {\n writeJson({ ok: true, data: response, hints });\n return;\n }\n if (response.tags.length === 0) {\n process.stdout.write(\"No tags configured.\\n\");\n } else {\n process.stdout.write(`${response.tags.map(renderEffectiveEntry).join(\"\\n\")}\\n`);\n }\n // stdout stays the list and nothing else, so a reader piping it keeps\n // parsing it; the hints go to stderr, where the agent still reads them.\n for (const hint of hints) {\n process.stderr.write(`${hint}\\n`);\n }\n } catch (err) {\n failApi(err);\n }\n}\n\nconst listArgs = {\n json: { type: \"boolean\", description: \"Print the raw JSON envelope instead of the readable list\" },\n} as const;\n\nconst listCommand = defineCommand({\n meta: {\n name: \"list\",\n description:\n \"Effective tags for this chat (production + staged), with each tag's full readable config (secrets excluded) — reuse a stored value to pre-fill a change rather than asking the user. Refs printed here are what flow side-effect tagIds should use. Example: baker tags list\",\n },\n args: listArgs,\n run: async ({ args }) => {\n await listTags(args.json === true);\n },\n});\n\nasync function listDraft(chat?: unknown): Promise<void> {\n try {\n const chatId = resolveChatId(chat);\n const response = await apiPost<TagsDraftListResponse>(\"/api/tags/draft\", { chatId });\n writeJson({ ok: true, data: response, hints: tagsListHints() });\n } catch (err) {\n failApi(err);\n }\n}\n\nconst draftCommand = defineCommand({\n meta: {\n name: \"draft\",\n description:\n \"Review the tag changes staged in this chat (read-only). Staged changes were approved via request_tag_input and apply when the chat is published. To drop one, `baker tags unstage <ref>` with the ref printed here (or --all); to amend one, propose a follow-up change through the same tool. Takes --chat <id> to read an earlier chat's staged changes instead.\",\n },\n args: { chat: CHAT_READ_ARG },\n run: async ({ args }) => {\n await listDraft(args.chat);\n },\n});\n\nregisterSchema({\n command: \"tags.unstage\",\n description:\n \"Take back a tag change this chat staged, before Publish — the same as discarding its row in the change review. Pass the ref `baker tags draft` prints (a tag id, or tag_temp_* for a staged create), or --all for every staged tag change. Taking back a staged create also drops the secrets the user entered for it. Never touches a live tag: to change or remove one, propose the change through request_tag_input.\",\n args: {\n ref: { type: \"string\", description: \"The staged change's ref, from `baker tags draft`\", required: false },\n all: { type: \"boolean\", description: \"Take back every tag change staged in this chat\", required: false },\n },\n});\n\n/** The request for one unstage, checked before the round trip. */\nexport function unstageBody(args: { ref?: string; all?: boolean }, chatId: string): TagsUnstageRequest {\n const ref = args.ref?.trim();\n if (args.all === true && ref) {\n failValidation(\"Pass one ref to take back that change, or --all for every staged tag change — not both.\");\n }\n if (args.all === true) {\n return { chatId, all: true };\n }\n if (!ref) {\n failValidation(\"Pass the ref of the staged change (from `baker tags draft`), or --all.\");\n }\n return { chatId, ref };\n}\n\nconst unstageCommand = defineCommand({\n meta: {\n name: \"unstage\",\n description:\n \"Take back a tag change this chat staged, before Publish. Examples: baker tags unstage tag_temp_abc123 | baker tags unstage --all\",\n },\n args: {\n ref: { type: \"positional\", description: \"The staged change's ref, from `baker tags draft`\", required: false },\n all: { type: \"boolean\", description: \"Take back every tag change staged in this chat\", required: false },\n },\n run: async ({ args }) => {\n try {\n const body = unstageBody(\n {\n ...(typeof args.ref === \"string\" ? { ref: args.ref } : {}),\n ...(args.all === true ? { all: true } : {}),\n },\n requireChatId(),\n );\n const response = await apiPost<TagsUnstageResponse>(\"/api/tags/draft-op/remove\", body);\n writeJson({\n ...response,\n hints: [\"Taken back: it does not apply when the chat is published. Live tags are unchanged.\"],\n });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nexport const tagsCommand = defineCommand({\n meta: {\n name: \"tags\",\n description: `Read the client's marketing/analytics tags (Meta pixel, GA4, Google Ads, GTM, Clarity, Hotjar, …) — production tags plus the changes staged in this chat.\n\nEvery tag change — create, edit, or delete — goes through the request_tag_input tool (baker_ui MCP server): propose one or more changes (each becomes a tab in one approval form), pre-fill the non-secret fields you know, and the user reviews, fills secrets, and approves or skips each. Secret values (accessToken, apiSecret, authorizationToken, apiKey, conversionToken, OAuth connections) never pass through the CLI or the chat.\n\nRefs: \\`baker tags list\\` prints each tag's ref — a real tag id, or tag_temp_* for creates staged in this chat. Use these refs as flow side-effect tagIds; they keep resolving after publish.\n\n\\`baker tags list\\` prints each tag's readable config in full (secrets excluded) — the Clarity projectId, GA4 measurementId, the whole custom \\`code\\` snippet, etc. Reuse a stored value to pre-fill a follow-up change instead of asking the user for something already installed.\n\nTo take back a change this chat staged (before Publish), \\`baker tags unstage <ref>\\` — the ref \\`baker tags draft\\` prints — or \\`--all\\`. It never touches a live tag.\n\nExamples:\n baker tags list # production + staged, full readable config + secret status\n baker tags draft # review the staged changes awaiting publish\n baker tags unstage tag_temp_abc123 # take back one staged change\nFull guide: __tooling__/docs/tools/baker/tags.md`,\n },\n subCommands: {\n list: listCommand,\n draft: draftCommand,\n unstage: unstageCommand,\n },\n // Bare `baker tags` lists the effective tags. `args` stays so citty knows this\n // command's flags when it scans rawArgs for a subcommand name, and `default` (not\n // `run`) dispatches the bare invocation — citty falls through to `run` after a\n // subcommand, so a `run` here would also list on every `baker tags draft`.\n args: listArgs,\n default: \"list\",\n});\n","import { TAG_IDENTIFYING_FIELD, type TagsEffectiveEntry } from \"@baker/api\";\nimport { ApiError } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\n\nexport function failApi(err: unknown): never {\n if (err instanceof ApiError) {\n writeJson({ ok: false, error: { code: err.code, message: err.message } });\n process.exit(1);\n }\n if (err instanceof Error) {\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: err.message } });\n process.exit(1);\n }\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n}\n\nexport function failValidation(message: string): never {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message } });\n process.exit(1);\n}\n\n/** Indent a possibly multi-line config value so long snippets (the `code` tag) stay readable. */\nfunction renderConfigValue(value: string): string {\n return value.includes(\"\\n\") ? value.replace(/\\n/g, \"\\n \") : value;\n}\n\nexport function renderEffectiveEntry(entry: TagsEffectiveEntry): string {\n const parts = [entry.ref, entry.type];\n if (entry.identifier !== undefined) {\n parts.push(entry.identifier);\n }\n if (entry.staged !== undefined) {\n parts.push(`[staged: ${entry.staged}]`);\n }\n const secretBits = [\n ...entry.secretsSet.map((field) => `${field} ✓ set`),\n ...entry.secretsPending.map((field) => `${field} ⏳ pending`),\n ];\n if (secretBits.length > 0) {\n parts.push(`[secrets: ${secretBits.join(\", \")}]`);\n }\n const header = parts.join(\" \");\n // All config values here are already redacted server-side (secrets stripped),\n // so every field printed is safe to read and reuse. Printing them in full lets\n // the agent auto-populate a follow-up change (e.g. the Clarity projectId or the\n // whole custom `code` snippet) instead of asking the user for a value we store.\n // Skip the identifying field — it's already on the header line as `identifier`.\n const identifyingField = TAG_IDENTIFYING_FIELD[entry.type];\n const configLines = Object.entries(entry.config)\n .filter(([key]) => key !== identifyingField)\n .map(([key, value]) => ` ${key}: ${renderConfigValue(value)}`);\n return configLines.length > 0 ? `${header}\\n${configLines.join(\"\\n\")}` : header;\n}\n\n/**\n * The write path, restated on every read.\n *\n * This family is read-only, so `list` is where a chat decides what to do about\n * a tag — and a production chat decided, from its tool list alone, that the\n * approval form did not exist, never called it, and filed the change as a Task\n * the user had to carry out by hand. The form is attached to every turn\n * (`baker_ui` rides along on each query), so \"it isn't there\" is a conclusion\n * only a failed call may reach.\n */\nexport function tagsListHints(): string[] {\n return [\n \"To create, edit or delete a tag, call the `request_tag_input` approval form (tool `mcp__baker_ui__request_tag_input`, server `baker_ui`) — it is attached to every turn of this chat and collects any secret values itself.\",\n \"Don't conclude the form is unavailable from your tool list: call it, and report what it returns. And never file a tag change as a Task — a Task hands the user work this chat can stage in one call.\",\n ];\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/commands/tags/index.ts","../src/commands/tags/shared.ts"],"sourcesContent":["import type { TagsDraftListResponse, TagsListResponse, TagsUnstageRequest, TagsUnstageResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { requireChatId, resolveChatId } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { CHAT_READ_ARG } from \"../chat-arg.ts\";\nimport { failApi, failValidation, renderEffectiveEntry, tagsListHints } from \"./shared.ts\";\n\nregisterSchema({\n command: \"tags.list\",\n description:\n \"Effective marketing tags for this chat: production tags overlaid with the changes staged in this chat. Prints each tag's readable config in full (secrets are never included) — e.g. the Clarity projectId, GA4 measurementId, or the entire custom `code` snippet — so reuse a stored value to pre-fill a follow-up change instead of asking the user for something we already have. The printed refs (tag ids or tag_temp_*) are exactly what flow side-effect tagIds should reference. Read-only — every tag change (create, edit, delete) goes through the request_tag_input approval tool; `baker tags unstage` takes back one this chat staged.\",\n args: {\n json: { type: \"boolean\", description: \"Print the raw JSON envelope instead of the readable list\", required: false },\n },\n});\n\nasync function listTags(json: boolean): Promise<void> {\n try {\n const chatId = requireChatId();\n const response = await apiPost<TagsListResponse>(\"/api/tags/list\", { chatId });\n const hints = tagsListHints();\n if (json) {\n writeJson({ ok: true, data: response, hints });\n return;\n }\n if (response.tags.length === 0) {\n process.stdout.write(\"No tags configured.\\n\");\n } else {\n process.stdout.write(`${response.tags.map(renderEffectiveEntry).join(\"\\n\")}\\n`);\n }\n // stdout stays the list and nothing else, so a reader piping it keeps\n // parsing it; the hints go to stderr, where the agent still reads them.\n for (const hint of hints) {\n process.stderr.write(`${hint}\\n`);\n }\n } catch (err) {\n failApi(err);\n }\n}\n\nconst listArgs = {\n json: { type: \"boolean\", description: \"Print the raw JSON envelope instead of the readable list\" },\n} as const;\n\nconst listCommand = defineCommand({\n meta: {\n name: \"list\",\n description:\n \"Effective tags for this chat (production + staged), with each tag's full readable config (secrets excluded) — reuse a stored value to pre-fill a change rather than asking the user. Refs printed here are what flow side-effect tagIds should use. Example: baker tags list\",\n },\n args: listArgs,\n run: async ({ args }) => {\n await listTags(args.json === true);\n },\n});\n\nasync function listDraft(chat?: unknown): Promise<void> {\n try {\n const chatId = resolveChatId(chat);\n const response = await apiPost<TagsDraftListResponse>(\"/api/tags/draft\", { chatId });\n writeJson({ ok: true, data: response, hints: tagsListHints() });\n } catch (err) {\n failApi(err);\n }\n}\n\nconst draftCommand = defineCommand({\n meta: {\n name: \"draft\",\n description:\n \"Review the tag changes staged in this chat (read-only). Staged changes were approved via request_tag_input and apply when the chat is published. To drop one, `baker tags unstage <ref>` with the ref printed here (or --all); to amend one, propose a follow-up change through the same tool. Takes --chat <id> to read an earlier chat's staged changes instead.\",\n },\n args: { chat: CHAT_READ_ARG },\n run: async ({ args }) => {\n await listDraft(args.chat);\n },\n});\n\nregisterSchema({\n command: \"tags.unstage\",\n description:\n \"Take back a tag change this chat staged, before Publish — the same as discarding its row in the change review. Pass the ref `baker tags draft` prints (a tag id, or tag_temp_* for a staged create), or --all for every staged tag change. Taking back a staged create also drops the secrets the user entered for it. Never touches a live tag: to change or remove one, propose the change through request_tag_input.\",\n args: {\n ref: { type: \"string\", description: \"The staged change's ref, from `baker tags draft`\", required: false },\n all: { type: \"boolean\", description: \"Take back every tag change staged in this chat\", required: false },\n },\n});\n\n/** The request for one unstage, checked before the round trip. */\nexport function unstageBody(args: { ref?: string; all?: boolean }, chatId: string): TagsUnstageRequest {\n const ref = args.ref?.trim();\n if (args.all === true && ref) {\n failValidation(\"Pass one ref to take back that change, or --all for every staged tag change — not both.\");\n }\n if (args.all === true) {\n return { chatId, all: true };\n }\n if (!ref) {\n failValidation(\"Pass the ref of the staged change (from `baker tags draft`), or --all.\");\n }\n return { chatId, ref };\n}\n\nconst unstageCommand = defineCommand({\n meta: {\n name: \"unstage\",\n description:\n \"Take back a tag change this chat staged, before Publish. Examples: baker tags unstage tag_temp_abc123 | baker tags unstage --all\",\n },\n args: {\n ref: { type: \"positional\", description: \"The staged change's ref, from `baker tags draft`\", required: false },\n all: { type: \"boolean\", description: \"Take back every tag change staged in this chat\", required: false },\n },\n run: async ({ args }) => {\n try {\n const body = unstageBody(\n {\n ...(typeof args.ref === \"string\" ? { ref: args.ref } : {}),\n ...(args.all === true ? { all: true } : {}),\n },\n requireChatId(),\n );\n const response = await apiPost<TagsUnstageResponse>(\"/api/tags/draft-op/remove\", body);\n writeJson({\n ...response,\n hints: [\"Taken back: it does not apply when the chat is published. Live tags are unchanged.\"],\n });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nexport const tagsCommand = defineCommand({\n meta: {\n name: \"tags\",\n description: `Read the client's marketing/analytics tags (Meta pixel, GA4, Google Ads, GTM, Clarity, Hotjar, …) — production tags plus the changes staged in this chat.\n\nEvery tag change — create, edit, or delete — goes through the request_tag_input tool (baker_ui MCP server): propose one or more changes (each becomes a tab in one approval form), pre-fill the non-secret fields you know, and the user reviews, fills secrets, and approves or skips each. Secret values (accessToken, apiSecret, authorizationToken, apiKey, conversionToken, OAuth connections) never pass through the CLI or the chat.\n\nRefs: \\`baker tags list\\` prints each tag's ref — a real tag id, or tag_temp_* for creates staged in this chat. Use these refs as flow side-effect tagIds; they keep resolving after publish.\n\n\\`baker tags list\\` prints each tag's readable config in full (secrets excluded) — the Clarity projectId, GA4 measurementId, the whole custom \\`code\\` snippet, etc. Reuse a stored value to pre-fill a follow-up change instead of asking the user for something already installed.\n\nTo take back a change this chat staged (before Publish), \\`baker tags unstage <ref>\\` — the ref \\`baker tags draft\\` prints — or \\`--all\\`. It never touches a live tag.\n\nExamples:\n baker tags list # production + staged, full readable config + secret status\n baker tags draft # review the staged changes awaiting publish\n baker tags unstage tag_temp_abc123 # take back one staged change\nFull guide: __tooling__/docs/tools/baker/tags.md`,\n },\n subCommands: {\n list: listCommand,\n draft: draftCommand,\n unstage: unstageCommand,\n },\n // Bare `baker tags` lists the effective tags. `args` stays so citty knows this\n // command's flags when it scans rawArgs for a subcommand name, and `default` (not\n // `run`) dispatches the bare invocation — citty falls through to `run` after a\n // subcommand, so a `run` here would also list on every `baker tags draft`.\n args: listArgs,\n default: \"list\",\n});\n","import { TAG_IDENTIFYING_FIELD, type TagsEffectiveEntry } from \"@baker/api\";\nimport { ApiError } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\n\nexport function failApi(err: unknown): never {\n if (err instanceof ApiError) {\n writeJson({ ok: false, error: { code: err.code, message: err.message } });\n process.exit(1);\n }\n if (err instanceof Error) {\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: err.message } });\n process.exit(1);\n }\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n}\n\nexport function failValidation(message: string): never {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message } });\n process.exit(1);\n}\n\n/** Indent a possibly multi-line config value so long snippets (the `code` tag) stay readable. */\nfunction renderConfigValue(value: string): string {\n return value.includes(\"\\n\") ? value.replace(/\\n/g, \"\\n \") : value;\n}\n\nexport function renderEffectiveEntry(entry: TagsEffectiveEntry): string {\n const parts = [entry.ref, entry.type];\n if (entry.identifier !== undefined) {\n parts.push(entry.identifier);\n }\n if (entry.staged !== undefined) {\n parts.push(`[staged: ${entry.staged}]`);\n }\n const secretBits = [\n ...entry.secretsSet.map((field) => `${field} ✓ set`),\n ...entry.secretsPending.map((field) => `${field} ⏳ pending`),\n ];\n if (secretBits.length > 0) {\n parts.push(`[secrets: ${secretBits.join(\", \")}]`);\n }\n const header = parts.join(\" \");\n // All config values here are already redacted server-side (secrets stripped),\n // so every field printed is safe to read and reuse. Printing them in full lets\n // the agent auto-populate a follow-up change (e.g. the Clarity projectId or the\n // whole custom `code` snippet) instead of asking the user for a value we store.\n // Skip the identifying field — it's already on the header line as `identifier`.\n const identifyingField = TAG_IDENTIFYING_FIELD[entry.type];\n const configLines = Object.entries(entry.config)\n .filter(([key]) => key !== identifyingField)\n .map(([key, value]) => ` ${key}: ${renderConfigValue(value)}`);\n return configLines.length > 0 ? `${header}\\n${configLines.join(\"\\n\")}` : header;\n}\n\n/**\n * The write path, restated on every read.\n *\n * This family is read-only, so `list` is where a chat decides what to do about\n * a tag — and a production chat decided, from its tool list alone, that the\n * approval form did not exist, never called it, and filed the change as a Task\n * the user had to carry out by hand. The form is attached to every turn\n * (`baker_ui` rides along on each query), so \"it isn't there\" is a conclusion\n * only a failed call may reach.\n */\nexport function tagsListHints(): string[] {\n return [\n \"To create, edit or delete a tag, call the `request_tag_input` approval form (tool `mcp__baker_ui__request_tag_input`, server `baker_ui`) — it is attached to every turn of this chat and collects any secret values itself.\",\n \"Don't conclude the form is unavailable from your tool list: call it, and report what it returns. And never file a tag change as a Task — a Task hands the user work this chat can stage in one call.\",\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;;;ACGvB,SAAS,QAAQ,KAAqB;AAC3C,MAAI,eAAe,UAAU;AAC3B,cAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,IAAI,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;AACxE,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,MAAI,eAAe,OAAO;AACxB,cAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,SAAS,IAAI,QAAQ,EAAE,CAAC;AAChF,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,YAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,SAAS,mBAAmB,EAAE,CAAC;AACvF,UAAQ,KAAK,CAAC;AAChB;AAEO,SAAS,eAAe,SAAwB;AACrD,YAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,oBAAoB,QAAQ,EAAE,CAAC;AACrE,UAAQ,KAAK,CAAC;AAChB;AAGA,SAAS,kBAAkB,OAAuB;AAChD,SAAO,MAAM,SAAS,IAAI,IAAI,MAAM,QAAQ,OAAO,UAAU,IAAI;AACnE;AAEO,SAAS,qBAAqB,OAAmC;AACtE,QAAM,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI;AACpC,MAAI,MAAM,eAAe,QAAW;AAClC,UAAM,KAAK,MAAM,UAAU;AAAA,EAC7B;AACA,MAAI,MAAM,WAAW,QAAW;AAC9B,UAAM,KAAK,YAAY,MAAM,MAAM,GAAG;AAAA,EACxC;AACA,QAAM,aAAa;AAAA,IACjB,GAAG,MAAM,WAAW,IAAI,CAAC,UAAU,GAAG,KAAK,aAAQ;AAAA,IACnD,GAAG,MAAM,eAAe,IAAI,CAAC,UAAU,GAAG,KAAK,iBAAY;AAAA,EAC7D;AACA,MAAI,WAAW,SAAS,GAAG;AACzB,UAAM,KAAK,aAAa,WAAW,KAAK,IAAI,CAAC,GAAG;AAAA,EAClD;AACA,QAAM,SAAS,MAAM,KAAK,IAAI;AAM9B,QAAM,mBAAmB,sBAAsB,MAAM,IAAI;AACzD,QAAM,cAAc,OAAO,QAAQ,MAAM,MAAM,EAC5C,OAAO,CAAC,CAAC,GAAG,MAAM,QAAQ,gBAAgB,EAC1C,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,OAAO,GAAG,KAAK,kBAAkB,KAAK,CAAC,EAAE;AAClE,SAAO,YAAY,SAAS,IAAI,GAAG,MAAM;AAAA,EAAK,YAAY,KAAK,IAAI,CAAC,KAAK;AAC3E;AAYO,SAAS,gBAA0B;AACxC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;AD7DA,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,MAAM,EAAE,MAAM,WAAW,aAAa,4DAA4D,UAAU,MAAM;AAAA,EACpH;AACF,CAAC;AAED,eAAe,SAAS,MAA8B;AACpD,MAAI;AACF,UAAM,SAAS,cAAc;AAC7B,UAAM,WAAW,MAAM,QAA0B,kBAAkB,EAAE,OAAO,CAAC;AAC7E,UAAM,QAAQ,cAAc;AAC5B,QAAI,MAAM;AACR,gBAAU,EAAE,IAAI,MAAM,MAAM,UAAU,MAAM,CAAC;AAC7C;AAAA,IACF;AACA,QAAI,SAAS,KAAK,WAAW,GAAG;AAC9B,cAAQ,OAAO,MAAM,uBAAuB;AAAA,IAC9C,OAAO;AACL,cAAQ,OAAO,MAAM,GAAG,SAAS,KAAK,IAAI,oBAAoB,EAAE,KAAK,IAAI,CAAC;AAAA,CAAI;AAAA,IAChF;AAGA,eAAW,QAAQ,OAAO;AACxB,cAAQ,OAAO,MAAM,GAAG,IAAI;AAAA,CAAI;AAAA,IAClC;AAAA,EACF,SAAS,KAAK;AACZ,YAAQ,GAAG;AAAA,EACb;AACF;AAEA,IAAM,WAAW;AAAA,EACf,MAAM,EAAE,MAAM,WAAW,aAAa,2DAA2D;AACnG;AAEA,IAAM,cAAc,cAAc;AAAA,EAChC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,EACN,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,SAAS,KAAK,SAAS,IAAI;AAAA,EACnC;AACF,CAAC;AAED,eAAe,UAAU,MAA+B;AACtD,MAAI;AACF,UAAM,SAAS,cAAc,IAAI;AACjC,UAAM,WAAW,MAAM,QAA+B,mBAAmB,EAAE,OAAO,CAAC;AACnF,cAAU,EAAE,IAAI,MAAM,MAAM,UAAU,OAAO,cAAc,EAAE,CAAC;AAAA,EAChE,SAAS,KAAK;AACZ,YAAQ,GAAG;AAAA,EACb;AACF;AAEA,IAAM,eAAe,cAAc;AAAA,EACjC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM,EAAE,MAAM,cAAc;AAAA,EAC5B,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,UAAU,KAAK,IAAI;AAAA,EAC3B;AACF,CAAC;AAED,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,KAAK,EAAE,MAAM,UAAU,aAAa,oDAAoD,UAAU,MAAM;AAAA,IACxG,KAAK,EAAE,MAAM,WAAW,aAAa,kDAAkD,UAAU,MAAM;AAAA,EACzG;AACF,CAAC;AAGM,SAAS,YAAY,MAAuC,QAAoC;AACrG,QAAM,MAAM,KAAK,KAAK,KAAK;AAC3B,MAAI,KAAK,QAAQ,QAAQ,KAAK;AAC5B,mBAAe,8FAAyF;AAAA,EAC1G;AACA,MAAI,KAAK,QAAQ,MAAM;AACrB,WAAO,EAAE,QAAQ,KAAK,KAAK;AAAA,EAC7B;AACA,MAAI,CAAC,KAAK;AACR,mBAAe,wEAAwE;AAAA,EACzF;AACA,SAAO,EAAE,QAAQ,IAAI;AACvB;AAEA,IAAM,iBAAiB,cAAc;AAAA,EACnC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,KAAK,EAAE,MAAM,cAAc,aAAa,oDAAoD,UAAU,MAAM;AAAA,IAC5G,KAAK,EAAE,MAAM,WAAW,aAAa,kDAAkD,UAAU,MAAM;AAAA,EACzG;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,OAAO;AAAA,QACX;AAAA,UACE,GAAI,OAAO,KAAK,QAAQ,WAAW,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC;AAAA,UACxD,GAAI,KAAK,QAAQ,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC;AAAA,QAC3C;AAAA,QACA,cAAc;AAAA,MAChB;AACA,YAAM,WAAW,MAAM,QAA6B,6BAA6B,IAAI;AACrF,gBAAU;AAAA,QACR,GAAG;AAAA,QACH,OAAO,CAAC,oFAAoF;AAAA,MAC9F,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,cAAQ,GAAG;AAAA,IACb;AAAA,EACF;AACF,CAAC;AAEM,IAAM,cAAc,cAAc;AAAA,EACvC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAef;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM;AAAA,EACN,SAAS;AACX,CAAC;","names":[]}
|
|
@@ -96,8 +96,8 @@ Examples:
|
|
|
96
96
|
},
|
|
97
97
|
subCommands: {
|
|
98
98
|
list: targetingCriteriaListCommand,
|
|
99
|
-
create: () => import("./promoted-tweet-writes-
|
|
100
|
-
remove: () => import("./promoted-tweet-writes-
|
|
99
|
+
create: () => import("./promoted-tweet-writes-JPLHY3GM.js").then((m) => m.targetingCriteriaCreateCommand),
|
|
100
|
+
remove: () => import("./promoted-tweet-writes-JPLHY3GM.js").then((m) => m.targetingCriteriaRemoveCommand)
|
|
101
101
|
},
|
|
102
102
|
args: {
|
|
103
103
|
"account-id": { type: "string", description: "X Ads account ID" },
|
|
@@ -110,4 +110,4 @@ Examples:
|
|
|
110
110
|
export {
|
|
111
111
|
targetingCriteriaCommand
|
|
112
112
|
};
|
|
113
|
-
//# sourceMappingURL=targeting-criteria-
|
|
113
|
+
//# sourceMappingURL=targeting-criteria-NR47AF5C.js.map
|
|
@@ -2,15 +2,14 @@ import {
|
|
|
2
2
|
chatBody,
|
|
3
3
|
failApi,
|
|
4
4
|
failValidation
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-IR6D7K4H.js";
|
|
6
6
|
import {
|
|
7
7
|
TRIGGER_KIND_IDS,
|
|
8
8
|
TRIGGER_TARGET_FIELD_IDS
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XF4JUKVF.js";
|
|
10
10
|
import "./chunk-GXDLWBOY.js";
|
|
11
11
|
import "./chunk-TEINLN64.js";
|
|
12
12
|
import "./chunk-ZJWUBJYQ.js";
|
|
13
|
-
import "./chunk-HR6IWNKE.js";
|
|
14
13
|
import "./chunk-NE4F3FHN.js";
|
|
15
14
|
import {
|
|
16
15
|
apiPost
|
|
@@ -100,4 +99,4 @@ Full guide: __tooling__/docs/tools/baker/scheduled-agents.md`
|
|
|
100
99
|
export {
|
|
101
100
|
targetsCommand
|
|
102
101
|
};
|
|
103
|
-
//# sourceMappingURL=targets-
|
|
102
|
+
//# sourceMappingURL=targets-L56KOVQE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/scheduled-agents/targets.ts"],"sourcesContent":["import { TRIGGER_KIND_IDS, TRIGGER_TARGET_FIELD_IDS } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { chatBody, failApi, failValidation } from \"./shared.ts\";\n\nconst ARGS = {\n trigger: {\n type: \"string\" as const,\n description:\n \"The trigger kind to point, e.g. task.claimed. `baker scheduled-agents triggers --trigger <kind>` lists its `pointAt` fields.\",\n required: true,\n },\n field: {\n type: \"string\" as const,\n description: `Which of its narrowings to list: ${TRIGGER_TARGET_FIELD_IDS.join(\", \")}. Defaults to the kind's first.`,\n required: false,\n },\n search: { type: \"string\" as const, description: \"Only options whose name contains this.\", required: false },\n form: {\n type: \"string\" as const,\n description: \"With --field stepId: the Form (slug) whose steps to list.\",\n required: false,\n },\n app: {\n type: \"string\" as const,\n description: \"With --trigger app.event and --field appEvent or account: the connected tool (slug) to list for.\",\n required: false,\n },\n event: {\n type: \"string\" as const,\n description:\n \"With --field appEvent --app <tool>: describe ONE event whole — every setting (description, default, examples) and every field it sends. Read it before narrowing.\",\n required: false,\n },\n};\n\nregisterSchema({\n command: \"scheduled-agents.targets\",\n description:\n \"What a trigger can be pointed at: the open Tasks, the company's scheduled agents, its review sources, followed competitors, pages, Forms and their steps, Knowledge collections, tools. Returns each option's value (pass it to the matching flag on create/update) with its name.\",\n args: ARGS,\n});\n\nexport const targetsCommand = defineCommand({\n meta: {\n name: \"targets\",\n description: `What a trigger can be pointed at — so \"when a Task is picked up\" becomes \"when THIS Task is picked up\".\n\nEach trigger's narrowings (\\`pointAt\\` in \\`triggers\\`) are chosen from a list, the same list the user's picker shows. Pass an option's \\`value\\` to the flag the response names; leave the flag off to run on any.\n\nExamples:\n baker scheduled-agents targets --trigger task.claimed --field taskId --search hero\n baker scheduled-agents targets --trigger session.published --field agentId\n baker scheduled-agents targets --trigger flow.step.submitted --field stepId --form quote\n baker scheduled-agents targets --trigger advertiser.new_ads\n baker scheduled-agents targets --trigger app.event --field toolkit\n baker scheduled-agents targets --trigger app.event --field appEvent --app gmail\n baker scheduled-agents targets --trigger app.event --field appEvent --app gmail --event GMAIL_NEW_GMAIL_MESSAGE\nFull guide: __tooling__/docs/tools/baker/scheduled-agents.md`,\n },\n args: ARGS,\n run: async ({ args }) => {\n const trigger = args.trigger;\n if (!TRIGGER_KIND_IDS.some((kind) => kind === trigger)) {\n failValidation(`--trigger must be one of: ${TRIGGER_KIND_IDS.join(\", \")}.`);\n }\n try {\n const response = await apiPost<{ ok: true; data: unknown }>(\"/api/scheduled-agents/targets\", {\n trigger,\n ...(args.field ? { field: args.field } : {}),\n ...(args.search ? { search: args.search } : {}),\n ...(args.form ? { flowId: args.form } : {}),\n ...(args.app ? { toolkit: args.app } : {}),\n ...(args.event ? { event: args.event } : {}),\n ...chatBody(),\n });\n writeJson(response);\n } catch (err) {\n failApi(err);\n }\n },\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/commands/scheduled-agents/targets.ts"],"sourcesContent":["import { TRIGGER_KIND_IDS, TRIGGER_TARGET_FIELD_IDS } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { chatBody, failApi, failValidation } from \"./shared.ts\";\n\nconst ARGS = {\n trigger: {\n type: \"string\" as const,\n description:\n \"The trigger kind to point, e.g. task.claimed. `baker scheduled-agents triggers --trigger <kind>` lists its `pointAt` fields.\",\n required: true,\n },\n field: {\n type: \"string\" as const,\n description: `Which of its narrowings to list: ${TRIGGER_TARGET_FIELD_IDS.join(\", \")}. Defaults to the kind's first.`,\n required: false,\n },\n search: { type: \"string\" as const, description: \"Only options whose name contains this.\", required: false },\n form: {\n type: \"string\" as const,\n description: \"With --field stepId: the Form (slug) whose steps to list.\",\n required: false,\n },\n app: {\n type: \"string\" as const,\n description: \"With --trigger app.event and --field appEvent or account: the connected tool (slug) to list for.\",\n required: false,\n },\n event: {\n type: \"string\" as const,\n description:\n \"With --field appEvent --app <tool>: describe ONE event whole — every setting (description, default, examples) and every field it sends. Read it before narrowing.\",\n required: false,\n },\n};\n\nregisterSchema({\n command: \"scheduled-agents.targets\",\n description:\n \"What a trigger can be pointed at: the open Tasks, the company's scheduled agents, its review sources, followed competitors, pages, Forms and their steps, Knowledge collections, tools. Returns each option's value (pass it to the matching flag on create/update) with its name.\",\n args: ARGS,\n});\n\nexport const targetsCommand = defineCommand({\n meta: {\n name: \"targets\",\n description: `What a trigger can be pointed at — so \"when a Task is picked up\" becomes \"when THIS Task is picked up\".\n\nEach trigger's narrowings (\\`pointAt\\` in \\`triggers\\`) are chosen from a list, the same list the user's picker shows. Pass an option's \\`value\\` to the flag the response names; leave the flag off to run on any.\n\nExamples:\n baker scheduled-agents targets --trigger task.claimed --field taskId --search hero\n baker scheduled-agents targets --trigger session.published --field agentId\n baker scheduled-agents targets --trigger flow.step.submitted --field stepId --form quote\n baker scheduled-agents targets --trigger advertiser.new_ads\n baker scheduled-agents targets --trigger app.event --field toolkit\n baker scheduled-agents targets --trigger app.event --field appEvent --app gmail\n baker scheduled-agents targets --trigger app.event --field appEvent --app gmail --event GMAIL_NEW_GMAIL_MESSAGE\nFull guide: __tooling__/docs/tools/baker/scheduled-agents.md`,\n },\n args: ARGS,\n run: async ({ args }) => {\n const trigger = args.trigger;\n if (!TRIGGER_KIND_IDS.some((kind) => kind === trigger)) {\n failValidation(`--trigger must be one of: ${TRIGGER_KIND_IDS.join(\", \")}.`);\n }\n try {\n const response = await apiPost<{ ok: true; data: unknown }>(\"/api/scheduled-agents/targets\", {\n trigger,\n ...(args.field ? { field: args.field } : {}),\n ...(args.search ? { search: args.search } : {}),\n ...(args.form ? { flowId: args.form } : {}),\n ...(args.app ? { toolkit: args.app } : {}),\n ...(args.event ? { event: args.event } : {}),\n ...chatBody(),\n });\n writeJson(response);\n } catch (err) {\n failApi(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAM9B,IAAM,OAAO;AAAA,EACX,SAAS;AAAA,IACP,MAAM;AAAA,IACN,aACE;AAAA,IACF,UAAU;AAAA,EACZ;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa,oCAAoC,yBAAyB,KAAK,IAAI,CAAC;AAAA,IACpF,UAAU;AAAA,EACZ;AAAA,EACA,QAAQ,EAAE,MAAM,UAAmB,aAAa,0CAA0C,UAAU,MAAM;AAAA,EAC1G,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aACE;AAAA,IACF,UAAU;AAAA,EACZ;AACF;AAEA,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AACR,CAAC;AAEM,IAAM,iBAAiB,cAAc;AAAA,EAC1C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaf;AAAA,EACA,MAAM;AAAA,EACN,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,UAAU,KAAK;AACrB,QAAI,CAAC,iBAAiB,KAAK,CAAC,SAAS,SAAS,OAAO,GAAG;AACtD,qBAAe,6BAA6B,iBAAiB,KAAK,IAAI,CAAC,GAAG;AAAA,IAC5E;AACA,QAAI;AACF,YAAM,WAAW,MAAM,QAAqC,iCAAiC;AAAA,QAC3F;AAAA,QACA,GAAI,KAAK,QAAQ,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC;AAAA,QAC1C,GAAI,KAAK,SAAS,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC;AAAA,QAC7C,GAAI,KAAK,OAAO,EAAE,QAAQ,KAAK,KAAK,IAAI,CAAC;AAAA,QACzC,GAAI,KAAK,MAAM,EAAE,SAAS,KAAK,IAAI,IAAI,CAAC;AAAA,QACxC,GAAI,KAAK,QAAQ,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC;AAAA,QAC1C,GAAG,SAAS;AAAA,MACd,CAAC;AACD,gBAAU,QAAQ;AAAA,IACpB,SAAS,KAAK;AACZ,cAAQ,GAAG;AAAA,IACb;AAAA,EACF;AACF,CAAC;","names":[]}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
failApi,
|
|
3
3
|
failValidation
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-IR6D7K4H.js";
|
|
5
|
+
import "./chunk-XF4JUKVF.js";
|
|
6
6
|
import "./chunk-GXDLWBOY.js";
|
|
7
7
|
import "./chunk-TEINLN64.js";
|
|
8
8
|
import "./chunk-ZJWUBJYQ.js";
|
|
9
|
-
import "./chunk-HR6IWNKE.js";
|
|
10
9
|
import "./chunk-NE4F3FHN.js";
|
|
11
10
|
import {
|
|
12
11
|
apiPost
|
|
@@ -176,4 +175,4 @@ Full guide: __tooling__/docs/tools/baker/scheduled-agents.md`
|
|
|
176
175
|
export {
|
|
177
176
|
templatesCommand
|
|
178
177
|
};
|
|
179
|
-
//# sourceMappingURL=templates-
|
|
178
|
+
//# sourceMappingURL=templates-B6XGDYUF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/scheduled-agents/templates.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport type {\n MarketplaceListResponse,\n MarketplacePublishResponse,\n MarketplaceRemoveResponse,\n MarketplaceSaveResponse,\n} from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { requireChatId } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi, failValidation } from \"./shared.ts\";\n\nregisterSchema({\n command: \"scheduled-agents.templates\",\n description:\n \"The recipes available to this company: the ones Baker ships plus the ones they wrote themselves, each with its id, what it produces and how often it is meant to run. Read this before proposing a company's automation, so every recipe you name is one that exists. Also how a company gets a recipe of its own — save a brief, prove it runs, then publish it.\",\n args: {\n list: {\n type: \"boolean\",\n description: \"List every recipe available to this company. Example: baker scheduled-agents templates --list\",\n required: false,\n },\n category: {\n type: \"string\",\n description:\n \"Show one group only: ads, site, measurement, market, money, compliance, setup. Omit it when you are deciding what a company should have running — filtering picks the answer before you have read the options.\",\n required: false,\n },\n drafts: {\n type: \"boolean\",\n description: \"Also show this company's own recipes that are still being worked on and cannot be scheduled yet\",\n required: false,\n },\n save: {\n type: \"string\",\n description:\n \"Write a recipe of this company's own, by id (lowercase letters, numbers, hyphens). Needs --name, --tagline, --brief-file (or --brief), --recipe-category and --frequency. Saving does not offer it to anyone: run it first, then --publish.\",\n required: false,\n },\n name: { type: \"string\", description: \"What a marketer would call it, up to 60 characters\", required: false },\n tagline: {\n type: \"string\",\n description: \"What one run produces, in their terms, up to 120 characters — the line under the name\",\n required: false,\n },\n brief: { type: \"string\", description: \"The brief, inline. Prefer --brief-file for anything long\", required: false },\n \"brief-file\": {\n type: \"string\",\n description: \"Read the brief from a UTF-8 file. Preferred: it survives quoting, accents and newlines intact\",\n required: false,\n },\n \"recipe-category\": {\n type: \"string\",\n description: \"Which group it belongs in: ads, site, measurement, market, money, compliance, setup\",\n required: false,\n },\n frequency: { type: \"string\", description: \"How often it is meant to run: daily, weekly, monthly\", required: false },\n publish: {\n type: \"string\",\n description:\n \"Offer a saved recipe among this company's templates (what 'New scheduled agent' offers), by id. Refused unless the brief is complete and names a source this company actually has. Do this only after you have run it and read what it produced.\",\n required: false,\n },\n delete: {\n type: \"string\",\n description: \"Remove one of this company's own recipes, by id. Does not touch Baker's own\",\n required: false,\n },\n },\n});\n\n/**\n * The marketplace: reading it, and writing a company's own.\n *\n * A recipe is a brief with the thinking already done — everything a Scheduled\n * item needs except the trigger, which the company picks when they import it. Baker's own are maintained by us and improve for everyone running them;\n * a company's own is theirs, and this is where it comes from.\n *\n * The order matters and is not negotiable: **ours first**. A company writes its\n * own only when nothing we ship covers what they asked for, and a recipe of\n * theirs can never take one of our ids.\n *\n * Nothing here switches anything on. A recipe becomes a job through\n * `scheduled-agents create --template <id>`, staged for the company like every\n * other change.\n */\nexport const templatesCommand = defineCommand({\n meta: {\n name: \"templates\",\n description: `The recipes this company can run — Baker's own plus theirs, with what each one produces.\n\nStart here when you are deciding what a company should have running: prefer a recipe we already ship, and only write one of their own when nothing covers the ask.\n\nWriting one of theirs is three steps, in this order:\n 1. baker scheduled-agents templates --save weekly-posthog-check --name \"...\" --tagline \"...\" --recipe-category measurement --frequency weekly --brief-file brief.md\n 2. schedule it with --template and trigger it, then read what the run produced\n 3. baker scheduled-agents templates --publish weekly-posthog-check\n\nStep 2 is the point. Publishing puts it beside the ones we wrote, where it looks just as trustworthy and runs on their credits — so it is your job to know it works before anyone can switch it on.\n\nExamples:\n baker scheduled-agents templates --list\n baker scheduled-agents templates --list --category measurement\nFull guide: __tooling__/docs/tools/baker/scheduled-agents.md`,\n },\n args: {\n list: { type: \"boolean\", description: \"List every recipe available to this company\", required: false },\n category: { type: \"string\", description: \"Show one group only\", required: false },\n drafts: { type: \"boolean\", description: \"Include their own recipes still being worked on\", required: false },\n save: { type: \"string\", description: \"Write one of this company's own, by id\", required: false },\n name: { type: \"string\", description: \"What a marketer would call it\", required: false },\n tagline: { type: \"string\", description: \"What one run produces\", required: false },\n brief: { type: \"string\", description: \"The brief, inline\", required: false },\n \"brief-file\": { type: \"string\", description: \"Read the brief from a UTF-8 file\", required: false },\n \"recipe-category\": { type: \"string\", description: \"Which group it belongs in\", required: false },\n frequency: { type: \"string\", description: \"How often it is meant to run\", required: false },\n publish: {\n type: \"string\",\n description: \"Offer a saved recipe among the company's templates, by id\",\n required: false,\n },\n delete: { type: \"string\", description: \"Remove one of this company's own, by id\", required: false },\n },\n run: async ({ args }) => {\n const flag = (key: string): string => {\n const value = args[key];\n return typeof value === \"string\" ? value.trim() : \"\";\n };\n try {\n const save = flag(\"save\");\n const publish = flag(\"publish\");\n const remove = flag(\"delete\");\n if ([save, publish, remove].filter((id) => id.length > 0).length > 1) {\n failValidation(\"Pass one of --save, --publish or --delete at a time.\");\n }\n\n if (save.length > 0) {\n const briefFile = flag(\"brief-file\");\n const brief = briefFile.length > 0 ? await readFile(path.resolve(briefFile), \"utf8\") : flag(\"brief\");\n if (brief.trim().length === 0) {\n failValidation(\"--brief-file (preferred) or --brief is required: the brief is the recipe.\");\n }\n const response = await apiPost<{ ok: true; data: MarketplaceSaveResponse }>(\"/api/marketplace/save\", {\n chatId: requireChatId(),\n slug: save,\n name: flag(\"name\"),\n category: flag(\"recipe-category\"),\n tagline: flag(\"tagline\"),\n prompt: brief,\n frequency: flag(\"frequency\"),\n });\n writeJson(response);\n return;\n }\n\n if (publish.length > 0) {\n const response = await apiPost<{ ok: true; data: MarketplacePublishResponse }>(\"/api/marketplace/publish\", {\n chatId: requireChatId(),\n slug: publish,\n });\n writeJson(response);\n return;\n }\n\n if (remove.length > 0) {\n const response = await apiPost<{ ok: true; data: MarketplaceRemoveResponse }>(\"/api/marketplace/remove\", {\n chatId: requireChatId(),\n slug: remove,\n });\n writeJson(response);\n return;\n }\n\n // No branch on `--list`: listing is all this command does without a write\n // flag, so the bare command answering the same question is a kindness\n // rather than a missing check.\n const category = flag(\"category\");\n const response = await apiPost<{ ok: true; data: MarketplaceListResponse }>(\"/api/marketplace/list\", {\n ...(category.length > 0 ? { category } : {}),\n ...(args.drafts === true ? { drafts: true } : {}),\n });\n writeJson(response);\n } catch (err) {\n failApi(err);\n }\n },\n});\n"],"mappings":"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","names":["response"]}
|
|
1
|
+
{"version":3,"sources":["../src/commands/scheduled-agents/templates.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport type {\n MarketplaceListResponse,\n MarketplacePublishResponse,\n MarketplaceRemoveResponse,\n MarketplaceSaveResponse,\n} from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { requireChatId } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi, failValidation } from \"./shared.ts\";\n\nregisterSchema({\n command: \"scheduled-agents.templates\",\n description:\n \"The recipes available to this company: the ones Baker ships plus the ones they wrote themselves, each with its id, what it produces and how often it is meant to run. Read this before proposing a company's automation, so every recipe you name is one that exists. Also how a company gets a recipe of its own — save a brief, prove it runs, then publish it.\",\n args: {\n list: {\n type: \"boolean\",\n description: \"List every recipe available to this company. Example: baker scheduled-agents templates --list\",\n required: false,\n },\n category: {\n type: \"string\",\n description:\n \"Show one group only: ads, site, measurement, market, money, compliance, setup. Omit it when you are deciding what a company should have running — filtering picks the answer before you have read the options.\",\n required: false,\n },\n drafts: {\n type: \"boolean\",\n description: \"Also show this company's own recipes that are still being worked on and cannot be scheduled yet\",\n required: false,\n },\n save: {\n type: \"string\",\n description:\n \"Write a recipe of this company's own, by id (lowercase letters, numbers, hyphens). Needs --name, --tagline, --brief-file (or --brief), --recipe-category and --frequency. Saving does not offer it to anyone: run it first, then --publish.\",\n required: false,\n },\n name: { type: \"string\", description: \"What a marketer would call it, up to 60 characters\", required: false },\n tagline: {\n type: \"string\",\n description: \"What one run produces, in their terms, up to 120 characters — the line under the name\",\n required: false,\n },\n brief: { type: \"string\", description: \"The brief, inline. Prefer --brief-file for anything long\", required: false },\n \"brief-file\": {\n type: \"string\",\n description: \"Read the brief from a UTF-8 file. Preferred: it survives quoting, accents and newlines intact\",\n required: false,\n },\n \"recipe-category\": {\n type: \"string\",\n description: \"Which group it belongs in: ads, site, measurement, market, money, compliance, setup\",\n required: false,\n },\n frequency: { type: \"string\", description: \"How often it is meant to run: daily, weekly, monthly\", required: false },\n publish: {\n type: \"string\",\n description:\n \"Offer a saved recipe among this company's templates (what 'New scheduled agent' offers), by id. Refused unless the brief is complete and names a source this company actually has. Do this only after you have run it and read what it produced.\",\n required: false,\n },\n delete: {\n type: \"string\",\n description: \"Remove one of this company's own recipes, by id. Does not touch Baker's own\",\n required: false,\n },\n },\n});\n\n/**\n * The marketplace: reading it, and writing a company's own.\n *\n * A recipe is a brief with the thinking already done — everything a Scheduled\n * item needs except the trigger, which the company picks when they import it. Baker's own are maintained by us and improve for everyone running them;\n * a company's own is theirs, and this is where it comes from.\n *\n * The order matters and is not negotiable: **ours first**. A company writes its\n * own only when nothing we ship covers what they asked for, and a recipe of\n * theirs can never take one of our ids.\n *\n * Nothing here switches anything on. A recipe becomes a job through\n * `scheduled-agents create --template <id>`, staged for the company like every\n * other change.\n */\nexport const templatesCommand = defineCommand({\n meta: {\n name: \"templates\",\n description: `The recipes this company can run — Baker's own plus theirs, with what each one produces.\n\nStart here when you are deciding what a company should have running: prefer a recipe we already ship, and only write one of their own when nothing covers the ask.\n\nWriting one of theirs is three steps, in this order:\n 1. baker scheduled-agents templates --save weekly-posthog-check --name \"...\" --tagline \"...\" --recipe-category measurement --frequency weekly --brief-file brief.md\n 2. schedule it with --template and trigger it, then read what the run produced\n 3. baker scheduled-agents templates --publish weekly-posthog-check\n\nStep 2 is the point. Publishing puts it beside the ones we wrote, where it looks just as trustworthy and runs on their credits — so it is your job to know it works before anyone can switch it on.\n\nExamples:\n baker scheduled-agents templates --list\n baker scheduled-agents templates --list --category measurement\nFull guide: __tooling__/docs/tools/baker/scheduled-agents.md`,\n },\n args: {\n list: { type: \"boolean\", description: \"List every recipe available to this company\", required: false },\n category: { type: \"string\", description: \"Show one group only\", required: false },\n drafts: { type: \"boolean\", description: \"Include their own recipes still being worked on\", required: false },\n save: { type: \"string\", description: \"Write one of this company's own, by id\", required: false },\n name: { type: \"string\", description: \"What a marketer would call it\", required: false },\n tagline: { type: \"string\", description: \"What one run produces\", required: false },\n brief: { type: \"string\", description: \"The brief, inline\", required: false },\n \"brief-file\": { type: \"string\", description: \"Read the brief from a UTF-8 file\", required: false },\n \"recipe-category\": { type: \"string\", description: \"Which group it belongs in\", required: false },\n frequency: { type: \"string\", description: \"How often it is meant to run\", required: false },\n publish: {\n type: \"string\",\n description: \"Offer a saved recipe among the company's templates, by id\",\n required: false,\n },\n delete: { type: \"string\", description: \"Remove one of this company's own, by id\", required: false },\n },\n run: async ({ args }) => {\n const flag = (key: string): string => {\n const value = args[key];\n return typeof value === \"string\" ? value.trim() : \"\";\n };\n try {\n const save = flag(\"save\");\n const publish = flag(\"publish\");\n const remove = flag(\"delete\");\n if ([save, publish, remove].filter((id) => id.length > 0).length > 1) {\n failValidation(\"Pass one of --save, --publish or --delete at a time.\");\n }\n\n if (save.length > 0) {\n const briefFile = flag(\"brief-file\");\n const brief = briefFile.length > 0 ? await readFile(path.resolve(briefFile), \"utf8\") : flag(\"brief\");\n if (brief.trim().length === 0) {\n failValidation(\"--brief-file (preferred) or --brief is required: the brief is the recipe.\");\n }\n const response = await apiPost<{ ok: true; data: MarketplaceSaveResponse }>(\"/api/marketplace/save\", {\n chatId: requireChatId(),\n slug: save,\n name: flag(\"name\"),\n category: flag(\"recipe-category\"),\n tagline: flag(\"tagline\"),\n prompt: brief,\n frequency: flag(\"frequency\"),\n });\n writeJson(response);\n return;\n }\n\n if (publish.length > 0) {\n const response = await apiPost<{ ok: true; data: MarketplacePublishResponse }>(\"/api/marketplace/publish\", {\n chatId: requireChatId(),\n slug: publish,\n });\n writeJson(response);\n return;\n }\n\n if (remove.length > 0) {\n const response = await apiPost<{ ok: true; data: MarketplaceRemoveResponse }>(\"/api/marketplace/remove\", {\n chatId: requireChatId(),\n slug: remove,\n });\n writeJson(response);\n return;\n }\n\n // No branch on `--list`: listing is all this command does without a write\n // flag, so the bare command answering the same question is a kindness\n // rather than a missing check.\n const category = flag(\"category\");\n const response = await apiPost<{ ok: true; data: MarketplaceListResponse }>(\"/api/marketplace/list\", {\n ...(category.length > 0 ? { category } : {}),\n ...(args.drafts === true ? { drafts: true } : {}),\n });\n writeJson(response);\n } catch (err) {\n failApi(err);\n }\n },\n});\n"],"mappings":"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","names":["response"]}
|
|
@@ -19,14 +19,14 @@ Full guide: __tooling__/docs/tools/baker/testimonials.md`
|
|
|
19
19
|
},
|
|
20
20
|
subCommands: {
|
|
21
21
|
get: () => import("./get-P743RPSI.js").then((m) => m.getCommand),
|
|
22
|
-
search: () => import("./search-
|
|
23
|
-
list: () => import("./list-
|
|
24
|
-
delete: () => import("./delete-
|
|
25
|
-
tags: () => import("./tags-
|
|
26
|
-
sources: () => import("./sources-
|
|
22
|
+
search: () => import("./search-PMJRU3C4.js").then((m) => m.searchCommand),
|
|
23
|
+
list: () => import("./list-NVQC5SNY.js").then((m) => m.listCommand),
|
|
24
|
+
delete: () => import("./delete-M2GDLPYN.js").then((m) => m.deleteCommand),
|
|
25
|
+
tags: () => import("./tags-ABHSX6M5.js").then((m) => m.tagsCommand),
|
|
26
|
+
sources: () => import("./sources-YBQ6KPFM.js").then((m) => m.sourcesCommand)
|
|
27
27
|
}
|
|
28
28
|
});
|
|
29
29
|
export {
|
|
30
30
|
testimonialsCommand
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=testimonials-
|
|
32
|
+
//# sourceMappingURL=testimonials-CVC4YIXO.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
daysAgoIso,
|
|
4
4
|
handleLinkedinError,
|
|
5
5
|
todayIso
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CSYSX4D2.js";
|
|
7
7
|
import {
|
|
8
8
|
TABLE_OUTPUT_FORMATS,
|
|
9
9
|
outputFormatRefusal,
|
|
@@ -14,11 +14,10 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
NO_CACHE_ARG
|
|
16
16
|
} from "./chunk-X7ZODEXJ.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-XF4JUKVF.js";
|
|
18
18
|
import "./chunk-GXDLWBOY.js";
|
|
19
19
|
import "./chunk-TEINLN64.js";
|
|
20
20
|
import "./chunk-ZJWUBJYQ.js";
|
|
21
|
-
import "./chunk-HR6IWNKE.js";
|
|
22
21
|
import "./chunk-NE4F3FHN.js";
|
|
23
22
|
import {
|
|
24
23
|
apiPost
|
|
@@ -106,4 +105,4 @@ Examples:
|
|
|
106
105
|
export {
|
|
107
106
|
topCompaniesCommand
|
|
108
107
|
};
|
|
109
|
-
//# sourceMappingURL=top-companies-
|
|
108
|
+
//# sourceMappingURL=top-companies-45X3DT7Z.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/ads/linkedin/top-companies.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiPost } from \"../../../client.ts\";\nimport {\n outputFormatRefusal,\n TABLE_OUTPUT_FORMATS,\n writeAdsJson,\n writeAdsOutput,\n writeJsonEnvelope,\n} from \"../output.ts\";\nimport { csvOrJson, daysAgoIso, handleLinkedinError, todayIso } from \"./shared.ts\";\n\nconst COMPANIES_HINT =\n \"For whole-account reach over months (one row per company, --by month|campaign, --with-domains), use `baker ads linkedin companies`.\";\n\ninterface AnalyticsResponse {\n rows: Array<Record<string, unknown>>;\n fields: string[];\n warnings: Array<{ code: string; message: string }>;\n}\n\n/**\n * Top-companies — pivot=MEMBER_COMPANY shortcut. The single highest-leverage\n * LinkedIn-native query for ABM.\n *\n * pivotValues come back as [\"urn:li:organization:1234567\"]. The backend resolves\n * these org URNs to company names automatically (one batched, cached call), so\n * each row's pivot[] carries a `name`. URNs LinkedIn can't resolve stay unnamed —\n * use `baker ads linkedin resolve` to probe them individually.\n */\nexport const topCompaniesCommand = defineCommand({\n meta: {\n name: \"top-companies\",\n description: `Top companies whose employees saw / clicked / converted on a campaign.\n\nWrapper for: analytics --pivot company. Returns rows sorted by impressions desc.\nEach row's pivot[] contains { urn, id, name } — org names are resolved automatically.\nCross-reference names against your target account list to spot audience leakage.\n\nDemographic data is delayed 12-24h with a ≥3-event privacy floor.\n\nExamples:\n baker ads linkedin top-companies --campaign-id 1234 --last-days 30\n baker ads linkedin top-companies --campaign-id 1,2,3 --intent revenue --last-days 90 --top-n 50\n baker ads linkedin top-companies --campaign-id 1234 --output csv`,\n },\n args: {\n \"campaign-id\": { type: \"string\", description: \"Comma-separated campaign IDs (required)\" },\n intent: { type: \"string\", description: \"baseline | revenue | funnel | engagement | lead-gen (default: baseline)\" },\n \"top-n\": { type: \"string\", description: \"Top rows by impressions (default: 25)\" },\n start: { type: \"string\", description: \"Start date YYYY-MM-DD\" },\n end: { type: \"string\", description: \"End date YYYY-MM-DD\" },\n \"last-days\": { type: \"string\", description: \"Window relative to today (default: 30)\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n const campaignIdsRaw = args[\"campaign-id\"] as string | undefined;\n const invalid = !campaignIdsRaw\n ? \"--campaign-id is required: one campaign id, or several comma-separated. For every company the whole ad account reached, use `baker ads linkedin companies`.\"\n : outputFormatRefusal(csvOrJson(args), TABLE_OUTPUT_FORMATS);\n if (invalid !== null || !campaignIdsRaw) {\n writeAdsJson({ ok: false, error: { code: \"INVALID_ARGS\", message: invalid ?? \"\" } });\n process.exit(1);\n }\n const ids = campaignIdsRaw\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n const intent = (args.intent as string | undefined) ?? \"baseline\";\n const topN = args[\"top-n\"] ? Number(args[\"top-n\"]) : 25;\n\n const start = (args.start as string | undefined) ?? daysAgoIso(args[\"last-days\"] ? Number(args[\"last-days\"]) : 30);\n const end = (args.end as string | undefined) ?? todayIso();\n\n try {\n const data = await apiPost<AnalyticsResponse>(\"/api/ads/linkedin/analytics\", {\n request: {\n level: \"campaign\",\n ids,\n intent,\n pivot: \"company\",\n start,\n end,\n granularity: \"ALL\",\n limit: 500,\n },\n skipCache: Boolean(args[\"no-cache\"]),\n });\n\n const top = [...data.rows].sort((a, b) => Number(b.impressions ?? 0) - Number(a.impressions ?? 0)).slice(0, topN);\n\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(top, fmt, data.fields, [COMPANIES_HINT]);\n return;\n }\n writeJsonEnvelope({\n ok: true,\n data: {\n query: { campaigns: ids, start, end, intent, topN },\n rows: top,\n warnings: data.warnings,\n },\n hints: [COMPANIES_HINT],\n });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/commands/ads/linkedin/top-companies.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiPost } from \"../../../client.ts\";\nimport {\n outputFormatRefusal,\n TABLE_OUTPUT_FORMATS,\n writeAdsJson,\n writeAdsOutput,\n writeJsonEnvelope,\n} from \"../output.ts\";\nimport { csvOrJson, daysAgoIso, handleLinkedinError, todayIso } from \"./shared.ts\";\n\nconst COMPANIES_HINT =\n \"For whole-account reach over months (one row per company, --by month|campaign, --with-domains), use `baker ads linkedin companies`.\";\n\ninterface AnalyticsResponse {\n rows: Array<Record<string, unknown>>;\n fields: string[];\n warnings: Array<{ code: string; message: string }>;\n}\n\n/**\n * Top-companies — pivot=MEMBER_COMPANY shortcut. The single highest-leverage\n * LinkedIn-native query for ABM.\n *\n * pivotValues come back as [\"urn:li:organization:1234567\"]. The backend resolves\n * these org URNs to company names automatically (one batched, cached call), so\n * each row's pivot[] carries a `name`. URNs LinkedIn can't resolve stay unnamed —\n * use `baker ads linkedin resolve` to probe them individually.\n */\nexport const topCompaniesCommand = defineCommand({\n meta: {\n name: \"top-companies\",\n description: `Top companies whose employees saw / clicked / converted on a campaign.\n\nWrapper for: analytics --pivot company. Returns rows sorted by impressions desc.\nEach row's pivot[] contains { urn, id, name } — org names are resolved automatically.\nCross-reference names against your target account list to spot audience leakage.\n\nDemographic data is delayed 12-24h with a ≥3-event privacy floor.\n\nExamples:\n baker ads linkedin top-companies --campaign-id 1234 --last-days 30\n baker ads linkedin top-companies --campaign-id 1,2,3 --intent revenue --last-days 90 --top-n 50\n baker ads linkedin top-companies --campaign-id 1234 --output csv`,\n },\n args: {\n \"campaign-id\": { type: \"string\", description: \"Comma-separated campaign IDs (required)\" },\n intent: { type: \"string\", description: \"baseline | revenue | funnel | engagement | lead-gen (default: baseline)\" },\n \"top-n\": { type: \"string\", description: \"Top rows by impressions (default: 25)\" },\n start: { type: \"string\", description: \"Start date YYYY-MM-DD\" },\n end: { type: \"string\", description: \"End date YYYY-MM-DD\" },\n \"last-days\": { type: \"string\", description: \"Window relative to today (default: 30)\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n const campaignIdsRaw = args[\"campaign-id\"] as string | undefined;\n const invalid = !campaignIdsRaw\n ? \"--campaign-id is required: one campaign id, or several comma-separated. For every company the whole ad account reached, use `baker ads linkedin companies`.\"\n : outputFormatRefusal(csvOrJson(args), TABLE_OUTPUT_FORMATS);\n if (invalid !== null || !campaignIdsRaw) {\n writeAdsJson({ ok: false, error: { code: \"INVALID_ARGS\", message: invalid ?? \"\" } });\n process.exit(1);\n }\n const ids = campaignIdsRaw\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n const intent = (args.intent as string | undefined) ?? \"baseline\";\n const topN = args[\"top-n\"] ? Number(args[\"top-n\"]) : 25;\n\n const start = (args.start as string | undefined) ?? daysAgoIso(args[\"last-days\"] ? Number(args[\"last-days\"]) : 30);\n const end = (args.end as string | undefined) ?? todayIso();\n\n try {\n const data = await apiPost<AnalyticsResponse>(\"/api/ads/linkedin/analytics\", {\n request: {\n level: \"campaign\",\n ids,\n intent,\n pivot: \"company\",\n start,\n end,\n granularity: \"ALL\",\n limit: 500,\n },\n skipCache: Boolean(args[\"no-cache\"]),\n });\n\n const top = [...data.rows].sort((a, b) => Number(b.impressions ?? 0) - Number(a.impressions ?? 0)).slice(0, topN);\n\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(top, fmt, data.fields, [COMPANIES_HINT]);\n return;\n }\n writeJsonEnvelope({\n ok: true,\n data: {\n query: { campaigns: ids, start, end, intent, topN },\n rows: top,\n warnings: data.warnings,\n },\n hints: [COMPANIES_HINT],\n });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAY9B,IAAM,iBACJ;AAiBK,IAAM,sBAAsB,cAAc;AAAA,EAC/C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYf;AAAA,EACA,MAAM;AAAA,IACJ,eAAe,EAAE,MAAM,UAAU,aAAa,0CAA0C;AAAA,IACxF,QAAQ,EAAE,MAAM,UAAU,aAAa,0EAA0E;AAAA,IACjH,SAAS,EAAE,MAAM,UAAU,aAAa,wCAAwC;AAAA,IAChF,OAAO,EAAE,MAAM,UAAU,aAAa,wBAAwB;AAAA,IAC9D,KAAK,EAAE,MAAM,UAAU,aAAa,sBAAsB;AAAA,IAC1D,aAAa,EAAE,MAAM,UAAU,aAAa,yCAAyC;AAAA,IACrF,YAAY;AAAA,IACZ,QAAQ,EAAE,MAAM,UAAU,aAAa,qBAAqB,SAAS,OAAO;AAAA,EAC9E;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,iBAAiB,KAAK,aAAa;AACzC,UAAM,UAAU,CAAC,iBACb,gKACA,oBAAoB,UAAU,IAAI,GAAG,oBAAoB;AAC7D,QAAI,YAAY,QAAQ,CAAC,gBAAgB;AACvC,mBAAa,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,gBAAgB,SAAS,WAAW,GAAG,EAAE,CAAC;AACnF,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM,MAAM,eACT,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EACnB,OAAO,OAAO;AACjB,UAAM,SAAU,KAAK,UAAiC;AACtD,UAAM,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,CAAC,IAAI;AAErD,UAAM,QAAS,KAAK,SAAgC,WAAW,KAAK,WAAW,IAAI,OAAO,KAAK,WAAW,CAAC,IAAI,EAAE;AACjH,UAAM,MAAO,KAAK,OAA8B,SAAS;AAEzD,QAAI;AACF,YAAM,OAAO,MAAM,QAA2B,+BAA+B;AAAA,QAC3E,SAAS;AAAA,UACP,OAAO;AAAA,UACP;AAAA,UACA;AAAA,UACA,OAAO;AAAA,UACP;AAAA,UACA;AAAA,UACA,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,QACA,WAAW,QAAQ,KAAK,UAAU,CAAC;AAAA,MACrC,CAAC;AAED,YAAM,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,EAAE,eAAe,CAAC,IAAI,OAAO,EAAE,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;AAEhH,YAAM,MAAM,UAAU,IAAI;AAC1B,UAAI,QAAQ,QAAQ;AAClB,uBAAe,KAAK,KAAK,KAAK,QAAQ,CAAC,cAAc,CAAC;AACtD;AAAA,MACF;AACA,wBAAkB;AAAA,QAChB,IAAI;AAAA,QACJ,MAAM;AAAA,UACJ,OAAO,EAAE,WAAW,KAAK,OAAO,KAAK,QAAQ,KAAK;AAAA,UAClD,MAAM;AAAA,UACN,UAAU,KAAK;AAAA,QACjB;AAAA,QACA,OAAO,CAAC,cAAc;AAAA,MACxB,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
withoutFields
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6NB47MRW.js";
|
|
4
4
|
import {
|
|
5
5
|
claimNewCreativeInWorkspace,
|
|
6
6
|
creativeLimitRefusal
|
|
@@ -10,15 +10,14 @@ import {
|
|
|
10
10
|
runBaker,
|
|
11
11
|
seriesLeadsAbove,
|
|
12
12
|
writeSeriesMemberCanvas
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-S3A3YOKO.js";
|
|
14
14
|
import {
|
|
15
15
|
parseDefinitionStrategyFields
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-WGUQHAJY.js";
|
|
16
|
+
} from "./chunk-Y6ZQXUZ7.js";
|
|
18
17
|
import {
|
|
19
18
|
setDefinitionFields
|
|
20
19
|
} from "./chunk-VNUNE5AB.js";
|
|
21
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-KAUOHQTF.js";
|
|
22
21
|
import {
|
|
23
22
|
isCustomersWords,
|
|
24
23
|
isSignatureLine,
|
|
@@ -28,10 +27,11 @@ import {
|
|
|
28
27
|
maybeSigned,
|
|
29
28
|
sameTag,
|
|
30
29
|
tagSlug
|
|
31
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-YUCLMOEG.js";
|
|
31
|
+
import "./chunk-A4LOJ2VD.js";
|
|
32
32
|
import "./chunk-4QEY2L6U.js";
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-QRP3PXWN.js";
|
|
34
|
+
import "./chunk-3IBYKLXR.js";
|
|
35
35
|
import "./chunk-F2S5BLPE.js";
|
|
36
36
|
import {
|
|
37
37
|
holdUnbilledSpend
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
import {
|
|
40
40
|
findWorkspaceRoot
|
|
41
41
|
} from "./chunk-DZSIUEGH.js";
|
|
42
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-EBWBG6YV.js";
|
|
43
43
|
import "./chunk-NCWCZY5P.js";
|
|
44
44
|
import "./chunk-DGCUPJZD.js";
|
|
45
45
|
import {
|
|
@@ -59,11 +59,10 @@ import {
|
|
|
59
59
|
import "./chunk-HRYOZUSK.js";
|
|
60
60
|
import "./chunk-VVZBBKRC.js";
|
|
61
61
|
import "./chunk-YBMVHGY3.js";
|
|
62
|
-
import "./chunk-
|
|
62
|
+
import "./chunk-XF4JUKVF.js";
|
|
63
63
|
import "./chunk-GXDLWBOY.js";
|
|
64
64
|
import "./chunk-TEINLN64.js";
|
|
65
65
|
import "./chunk-ZJWUBJYQ.js";
|
|
66
|
-
import "./chunk-HR6IWNKE.js";
|
|
67
66
|
import "./chunk-NE4F3FHN.js";
|
|
68
67
|
import "./chunk-XBOK23HI.js";
|
|
69
68
|
import "./chunk-IFWP3ZDO.js";
|
|
@@ -596,4 +595,4 @@ var translateCommand = defineCommand({
|
|
|
596
595
|
export {
|
|
597
596
|
translateCommand
|
|
598
597
|
};
|
|
599
|
-
//# sourceMappingURL=translate-
|
|
598
|
+
//# sourceMappingURL=translate-VP5R67PL.js.map
|