@koda-sl/baker-cli 0.540.0-dev.91934cfea → 0.541.0-dev.b27330e67
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 +11 -19
- package/dist/{account-MHMTVXMM.js → account-LKIEXMSK.js} +4 -4
- package/dist/{account-users-HQBWXODR.js → account-users-HB5DPMF4.js} +4 -4
- package/dist/{accounts-ODYGXLP6.js → accounts-7D4O5QMV.js} +3 -3
- package/dist/{accounts-T3QOYCEZ.js → accounts-AOVLG52F.js} +5 -5
- package/dist/{actions-Z7R7A5A6.js → actions-CMHAY6P5.js} +18 -18
- package/dist/{activecampaign-OLQRKAGR.js → activecampaign-U65MB4UD.js} +3 -3
- package/dist/{add-XAEGJJSH.js → add-AHRTXSBZ.js} +2 -2
- package/dist/{add-DPSXPCM3.js → add-HGR6XPCB.js} +3 -3
- package/dist/{ads-UPTBNK7T.js → ads-BHZLZT3C.js} +5 -5
- package/dist/{advertisers-DMZKNX2A.js → advertisers-KJDYCVU7.js} +3 -3
- package/dist/{analytics-OWJRWSCB.js → analytics-2QTC4ZJT.js} +6 -6
- package/dist/{analytics-T63LQGK2.js → analytics-RSCTSZPC.js} +3 -3
- package/dist/{assign-HO7FQKG3.js → assign-RKN3XDEA.js} +3 -3
- package/dist/{audience-size-4O3NRUKD.js → audience-size-J5T2SOWX.js} +3 -3
- package/dist/{audit-NI6FQRZK.js → audit-O2R2R3BH.js} +3 -3
- package/dist/{autocomplete-2VK3LRGH.js → autocomplete-7R5TRWE3.js} +3 -3
- package/dist/{avatars-SGX4SEBA.js → avatars-URGC2PRJ.js} +4 -4
- package/dist/{bid-pricing-Z4PV6BCK.js → bid-pricing-ZIGIQLKJ.js} +4 -4
- package/dist/{brand-IEL3DDX7.js → brand-7MLMDFLT.js} +2 -2
- package/dist/{brief-J6DENGHA.js → brief-ZWIEUGIJ.js} +12 -12
- package/dist/{campaign-groups-RFYBWXPO.js → campaign-groups-Z6LNJMHY.js} +9 -9
- package/dist/{campaign-writes-YLV3HYNQ.js → campaign-writes-EOFSYPW4.js} +3 -3
- package/dist/{campaigns-ZKPVMDU3.js → campaigns-FHD3KMLV.js} +5 -5
- package/dist/{campaigns-G5KQ342J.js → campaigns-SIJKAEFM.js} +12 -12
- package/dist/{canvas-BPSJVECE.js → canvas-PHUXBTDM.js} +13 -13
- package/dist/{capabilities-T7EVTLBX.js → capabilities-MVOMUZVT.js} +3 -3
- package/dist/{chats-WCBO2ZTQ.js → chats-ETYNGJ3D.js} +10 -3
- package/dist/chats-ETYNGJ3D.js.map +1 -0
- package/dist/{check-FH4N5DBG.js → check-G6IGCJKG.js} +5 -5
- package/dist/{chunk-YRNLPGAV.js → chunk-274UO7N7.js} +2 -2
- package/dist/{chunk-URPWZDJA.js → chunk-27KV27F6.js} +2 -2
- package/dist/{chunk-DHYWRMWY.js → chunk-3N7YWOTX.js} +2 -2
- package/dist/{chunk-ZCZJ3SQC.js → chunk-4L4SG26L.js} +2 -2
- package/dist/{chunk-JFZGNLZA.js → chunk-7OLJBIKI.js} +2 -2
- package/dist/{chunk-LRHIRVBX.js → chunk-7XSVJFA3.js} +2 -2
- package/dist/{chunk-SUCYXLJ6.js → chunk-AHN5UNQP.js} +2 -2
- package/dist/{chunk-TAZLKHHL.js → chunk-AQBJ3XRD.js} +6 -6
- package/dist/{chunk-W4NVTC6Q.js → chunk-B5MJXVBP.js} +3 -3
- package/dist/{chunk-VFXBT7JF.js → chunk-CATPBEZ3.js} +3 -3
- package/dist/{chunk-W5K6O3EO.js → chunk-E4JZV7ZY.js} +2 -2
- package/dist/{chunk-R6XSLSBI.js → chunk-FPS7WKLY.js} +2 -2
- package/dist/{chunk-HXJTZJ7R.js → chunk-FSHIEGAY.js} +856 -874
- package/dist/chunk-FSHIEGAY.js.map +1 -0
- package/dist/{chunk-WU3TOZ57.js → chunk-FY6CMZDG.js} +3 -3
- package/dist/{chunk-O4LSJU3J.js → chunk-H7TJX6MJ.js} +2 -2
- package/dist/{chunk-7STPWZTM.js → chunk-HMZ6FUXY.js} +2 -2
- package/dist/{chunk-PFVO7KC7.js → chunk-HN2W55DC.js} +2 -2
- package/dist/{chunk-KJB7U2WG.js → chunk-HPS7HLN4.js} +4 -4
- package/dist/{chunk-CAFLQI3M.js → chunk-HZQ64QEY.js} +2 -2
- package/dist/{chunk-BEAQSULO.js → chunk-I62QW2UL.js} +2 -2
- package/dist/{chunk-3HUAOQCY.js → chunk-KT2YKHCH.js} +2 -2
- package/dist/{chunk-HZH74JIM.js → chunk-LFWGMR3F.js} +2 -2
- package/dist/{chunk-EXQ43VBT.js → chunk-LNEUE4BR.js} +2 -2
- package/dist/{chunk-KEEXJ3PM.js → chunk-MDBRRR3J.js} +3 -3
- package/dist/{chunk-HH4FAKWI.js → chunk-N26ZASAC.js} +2 -2
- package/dist/{chunk-HSUPSA7N.js → chunk-NPGI5DXP.js} +2 -2
- package/dist/{chunk-6BQBW5RE.js → chunk-NTOCO72A.js} +3 -3
- package/dist/{chunk-K4CDJMFM.js → chunk-OATKGUUI.js} +2 -2
- package/dist/{chunk-KD7Y5PAV.js → chunk-P2C6X574.js} +3 -3
- package/dist/{chunk-SFYVH3SZ.js → chunk-POI76GQV.js} +2 -2
- package/dist/{chunk-UNLZ43RQ.js → chunk-PZ3EFXL7.js} +2 -2
- package/dist/{chunk-RTCRGYQL.js → chunk-QCONJUK6.js} +2 -2
- package/dist/{chunk-5D2TVABH.js → chunk-RRH5QWVS.js} +2 -2
- package/dist/{chunk-444B56AH.js → chunk-SPBUHC2K.js} +2 -2
- package/dist/{chunk-NIP6EWVK.js → chunk-VAWAFQW3.js} +3 -3
- package/dist/{chunk-JEUGICMT.js → chunk-VFESCAO4.js} +2 -2
- package/dist/{chunk-O43ZQ3JO.js → chunk-VLE433LA.js} +5 -5
- package/dist/{chunk-RHRAERM6.js → chunk-W2MHGOUZ.js} +8 -8
- package/dist/{chunk-Q6EF4BH2.js → chunk-XJ62F6EA.js} +2 -2
- package/dist/{chunk-NOCMEK6R.js → chunk-YPYI3YBK.js} +3 -3
- package/dist/{chunk-TCYAJVDG.js → chunk-YXCSJQKQ.js} +2 -2
- package/dist/{chunk-Z73HKL6X.js → chunk-Z6ZYGDCQ.js} +5 -5
- package/dist/{chunk-EIGTUTT6.js → chunk-ZV4K6E3S.js} +3 -3
- package/dist/{claim-JLJ4KHOA.js → claim-VN6RHORQ.js} +3 -3
- package/dist/cli.js +30 -31
- package/dist/cli.js.map +1 -1
- package/dist/{companies-HZ2DZBJF.js → companies-UNXZLC4T.js} +3 -3
- package/dist/{company-26TJ3ZHQ.js → company-E7J2I4B5.js} +3 -3
- package/dist/{complete-EQZLWQLY.js → complete-TI6ME7P2.js} +3 -3
- package/dist/{connect-7JGPLBAF.js → connect-VYCZ7APH.js} +6 -6
- package/dist/{conversation-XS7GH2PD.js → conversation-AVJMT6NK.js} +3 -3
- package/dist/{conversions-DELC6FQO.js → conversions-6KDF5AVY.js} +8 -8
- package/dist/{create-GJQ2E3AZ.js → create-7R5HTOI2.js} +3 -3
- package/dist/{create-3RYVQ7ZQ.js → create-BGIE2YTE.js} +3 -3
- package/dist/{create-YN4A3PKV.js → create-HI53LEYE.js} +3 -3
- package/dist/{create-VULOPTKC.js → create-YVKJC5IT.js} +2 -2
- package/dist/{creatives-EJQRCVYY.js → creatives-ACU2HGZW.js} +9 -9
- package/dist/{creatives-JTQY5UTX.js → creatives-ISYALGKS.js} +12 -12
- package/dist/{credentials-3TBM3TFS.js → credentials-UCROYYPD.js} +3 -3
- package/dist/{critique-HFOOB26B.js → critique-SGEKRORA.js} +8 -8
- package/dist/{critique-IZEFC75M.js → critique-SJLBIGD2.js} +3 -3
- package/dist/{crm-PQACQT6S.js → crm-OZ626TTR.js} +4 -4
- package/dist/{crm-SSVNZPOH.js → crm-X7FX34QY.js} +4 -4
- package/dist/{customers-AFXYG7FE.js → customers-I3T6HJD4.js} +5 -5
- package/dist/{delete-SPC34ZFO.js → delete-24S5ICGH.js} +3 -3
- package/dist/{delete-XR7O5N4X.js → delete-ICXIKJZF.js} +2 -2
- package/dist/{delete-6QZYSR6K.js → delete-RWZCVPYV.js} +3 -3
- package/dist/{demographics-YLWGW7G6.js → demographics-PUJKNWCF.js} +3 -3
- package/dist/{discard-XNPXWTBW.js → discard-4GLM3TVC.js} +3 -3
- package/dist/{domain-LLD4U7OO.js → domain-A4IVVFI6.js} +3 -3
- package/dist/{download-UXDFM3ZV.js → download-KIOTQW3Z.js} +2 -2
- package/dist/{draft-OU4LP3EV.js → draft-6QUGODCB.js} +4 -4
- package/dist/{draft-KPDFOAJ6.js → draft-AMSBOSM2.js} +3 -3
- package/dist/{draft-NHYUTQYP.js → draft-IB5A3RFD.js} +3 -3
- package/dist/{experiments-DPPE7UEW.js → experiments-NW4GVPAF.js} +4 -4
- package/dist/{facets-GSIF6AX3.js → facets-SIY7OICY.js} +3 -3
- package/dist/{feedback-EJFWUGGA.js → feedback-LUNPSQEO.js} +12 -12
- package/dist/{feedback-record-ALH4UE5G.js → feedback-record-ML67WVIX.js} +13 -13
- package/dist/{fetch-C6Q4YQEJ.js → fetch-T7OO6FDT.js} +3 -3
- package/dist/{fit-UJGHAJFC.js → fit-63FKT2JJ.js} +5 -5
- package/dist/{flows-FCMGOLTF.js → flows-RWQSQKUL.js} +10 -10
- package/dist/{fonts-KAGIWNKZ.js → fonts-UQ6ISHO3.js} +5 -5
- package/dist/{forecast-3RFACQCU.js → forecast-JTKQQYMN.js} +4 -4
- package/dist/{funnel-DINYX53F.js → funnel-J5IJQPUP.js} +4 -4
- package/dist/{get-OI4YRD3L.js → get-VLS22SZR.js} +3 -3
- package/dist/{get-IDYK57H7.js → get-X6TC6UBK.js} +3 -3
- package/dist/{google-ads-4DOMH2UV.js → google-ads-HBNPBUR4.js} +3 -3
- package/dist/{history-OLVARKGD.js → history-E25YCUQO.js} +3 -3
- package/dist/{history-HTJL2L5D.js → history-ZNPAN36E.js} +3 -3
- package/dist/{hubspot-IRH2GAAX.js → hubspot-WFJ22XGN.js} +7 -7
- package/dist/{ideas-4LKSORBG.js → ideas-FCL5SDI4.js} +4 -4
- package/dist/{images-DCQIUJBT.js → images-SXBR3MLH.js} +4 -4
- package/dist/{ingest-WO4EJMNI.js → ingest-UJBMV7PZ.js} +3 -3
- package/dist/{ingest-U7VAV7IM.js → ingest-YRWIO6DV.js} +2 -2
- package/dist/{insights-UOO6OK3U.js → insights-7NC2JFXU.js} +223 -4
- package/dist/insights-7NC2JFXU.js.map +1 -0
- package/dist/{inspect-XKZR36QA.js → inspect-I2CJDQSA.js} +3 -3
- package/dist/{keyword-metrics-6G3C32M3.js → keyword-metrics-U6IWGT4N.js} +3 -3
- package/dist/{keywords-for-site-27X47XJQ.js → keywords-for-site-PXID3WEP.js} +3 -3
- package/dist/{landing-RPPXKFRU.js → landing-PIQYR6XI.js} +2 -2
- package/dist/{leads-IZS3DRCO.js → leads-DOFRCD7J.js} +3 -3
- package/dist/{learn-HZEOU3CN.js → learn-VMNUQL6D.js} +4 -4
- package/dist/{line-item-writes-57ABY4A3.js → line-item-writes-6MCXCXYM.js} +3 -3
- package/dist/{line-items-J3IWQA66.js → line-items-X3GEB5P7.js} +5 -5
- package/dist/{link-3H2PK2DD.js → link-TX5PWJBH.js} +3 -3
- package/dist/{linkedin-SF75JMZT.js → linkedin-3DYXRHL7.js} +29 -29
- package/dist/{linkedin-person-5YNH3RDX.js → linkedin-person-TP7DAJST.js} +3 -3
- package/dist/{list-Q3I5ZABL.js → list-2WFSHJ2I.js} +2 -2
- package/dist/{list-MVZM5WXU.js → list-GMMNLVCA.js} +3 -3
- package/dist/{list-W7NE3NNF.js → list-I77SLBPO.js} +3 -3
- package/dist/{log-MZU2J4OC.js → log-3HSJ3RYY.js} +3 -3
- package/dist/{make-VILXHWMX.js → make-OKIBB4LM.js} +15 -15
- package/dist/{map-MIDSERZT.js → map-O63QGACI.js} +4 -4
- package/dist/{mcp-MEZSQTQS.js → mcp-GJEZ37AM.js} +2 -2
- package/dist/{media-sources-RYWCWEIZ.js → media-sources-KE6XXCTY.js} +2 -2
- package/dist/{members-6XEW5STI.js → members-WF453RSC.js} +3 -3
- package/dist/{meta-MBW5LM5V.js → meta-6IFYEOZL.js} +2 -2
- package/dist/{normalize-M6PR7JDG.js → normalize-HWMMP6LX.js} +3 -3
- package/dist/{options-KTI2IDFT.js → options-XGYNQCQM.js} +6 -6
- package/dist/{organization-WEFYQ3CV.js → organization-X27LDCZU.js} +3 -3
- package/dist/{performance-FBKKECUS.js → performance-JLQIJK4V.js} +4 -4
- package/dist/{performance-K2AVEUZQ.js → performance-XYGEV4TX.js} +3 -3
- package/dist/{promoted-tweet-writes-7ELZBXE2.js → promoted-tweet-writes-7DGO5Z2G.js} +3 -3
- package/dist/{promoted-tweets-QSTRB6F5.js → promoted-tweets-SPBZXSYI.js} +3 -3
- package/dist/{publish-ZN36O7BG.js → publish-RRJRO5DC.js} +3 -3
- package/dist/{reddit-7EA5AWSS.js → reddit-OCRVXWJC.js} +4 -4
- package/dist/{refresh-7F2QJYYV.js → refresh-M6BXIMQD.js} +2 -2
- package/dist/{release-PPRR6DYB.js → release-ZRKZEBEB.js} +3 -3
- package/dist/{remove-XIPDNTIY.js → remove-JW3RRNB6.js} +2 -2
- package/dist/{reopen-GZN3R2QV.js → reopen-G6ZE5YNP.js} +3 -3
- package/dist/{rerun-WDWQGRDM.js → rerun-OKOYKQXC.js} +14 -14
- package/dist/{research-6DQSQCNK.js → research-DZZBRX4V.js} +2 -2
- package/dist/{research-QIGBAAHS.js → research-NLZ34525.js} +13 -13
- package/dist/{reset-QOTBQKTC.js → reset-ABZVGJE6.js} +2 -2
- package/dist/{reset-IUKNG46S.js → reset-JYER2WPC.js} +2 -2
- package/dist/{resolve-6O2PNS53.js → resolve-EH3ONOYE.js} +3 -3
- package/dist/{retry-DRC2TTV7.js → retry-LKJWY5BC.js} +2 -2
- package/dist/{retry-Y4BCINFT.js → retry-VY76DPS5.js} +2 -2
- package/dist/{revenue-QQUQ7GU6.js → revenue-7GIOE3TG.js} +4 -4
- package/dist/{rules-BUNOVMVJ.js → rules-NUNJBT6R.js} +5 -5
- package/dist/{rules-add-CDENNVBW.js → rules-add-7FB67IDD.js} +5 -5
- package/dist/{run-XNAIOT7R.js → run-3GV2FYWG.js} +14 -14
- package/dist/{run-PQ746XEE.js → run-OVOXZUXN.js} +3 -3
- package/dist/{scaffold-ad-PHAB6GLN.js → scaffold-ad-7D5EUDU7.js} +10 -10
- package/dist/{scaffold-static-ad-IHDRTH6L.js → scaffold-static-ad-TWF2RRM2.js} +18 -18
- package/dist/{scaffold-video-LS2RVIAZ.js → scaffold-video-4P2ONEQV.js} +9 -9
- package/dist/{schedule-GETX5RGF.js → schedule-XQ725JG6.js} +2 -2
- package/dist/{scheduled-agents-KXYUHTLP.js → scheduled-agents-KBSD55GW.js} +11 -11
- package/dist/{schema-NGBW5YPB.js → schema-WJVWY4IA.js} +4 -4
- package/dist/{search-F4Q2AFF7.js → search-KQGMLU2Z.js} +2 -2
- package/dist/{select-4PJ6RWNC.js → select-CLD5MFCK.js} +11 -11
- package/dist/{set-prompt-JLBXOTMG.js → set-prompt-COD76I6E.js} +8 -8
- package/dist/{setup-links-D2LM5HYV.js → setup-links-H5L5CJJN.js} +3 -3
- package/dist/{shopify-HGDOKO3A.js → shopify-M2I65ZB5.js} +3 -3
- package/dist/{site-PBZYQUH6.js → site-AIJK3MNO.js} +4 -4
- package/dist/{sources-T74V2W45.js → sources-JRMCBVLK.js} +6 -6
- package/dist/{sources-MZC2DJE6.js → sources-YVDTULK6.js} +6 -6
- package/dist/{stale-JV6JLTGD.js → stale-AVBULN3A.js} +10 -10
- package/dist/{status-QDK37PJG.js → status-RXA4BBXZ.js} +3 -3
- package/dist/{sync-43UXJTKL.js → sync-CMYHAJSZ.js} +2 -2
- package/dist/{sync-definition-2ZFQPGDO.js → sync-definition-IKI2NFUO.js} +9 -9
- package/dist/{tags-QG3XFTJD.js → tags-5IVIDOPC.js} +4 -4
- package/dist/{tags-SFPZ7AT4.js → tags-5L5MV6XZ.js} +3 -3
- package/dist/{tags-S7OLVPI6.js → tags-LIG4SXDB.js} +3 -3
- package/dist/{tags-KU5L7ZBF.js → tags-LRFFVAZ3.js} +2 -2
- package/dist/{tags-H2KBFHX4.js → tags-VMMVSG6J.js} +3 -3
- package/dist/{targeting-criteria-MU4KEOW5.js → targeting-criteria-AMVFYZ2H.js} +3 -3
- package/dist/{targets-V6WKUMTX.js → targets-RE24B2LL.js} +3 -3
- package/dist/{testimonials-DX25LR6G.js → testimonials-FWJRO4MB.js} +6 -6
- package/dist/{top-companies-SBMXYZRJ.js → top-companies-6GI6AWGA.js} +3 -3
- package/dist/{transcript-73MISAES.js → transcript-XMWBCLQO.js} +3 -3
- package/dist/{translate-XDXRGPY5.js → translate-2UYIIMEG.js} +13 -13
- package/dist/{triggers-3K4NWQ2R.js → triggers-WCI5DERM.js} +3 -3
- package/dist/{unlink-QXT3S6CR.js → unlink-MM23NOTI.js} +3 -3
- package/dist/{unstage-UVQO46T7.js → unstage-YQXFED4J.js} +3 -3
- package/dist/{update-FN46SSF6.js → update-3BGBYU5R.js} +3 -3
- package/dist/{update-LI6TK56N.js → update-A53QG3XM.js} +3 -3
- package/dist/{update-4NYP4T76.js → update-S2CJ5FNS.js} +2 -2
- package/dist/{update-N3KYD5NR.js → update-VMN5BHTP.js} +3 -3
- package/dist/{upload-7XNKN6WA.js → upload-VT7NPRAM.js} +3 -3
- package/dist/{url-params-X77DEIN6.js → url-params-RFMWR2PZ.js} +3 -3
- package/dist/{validate-ZNGKO2T2.js → validate-KMY5ZVQX.js} +11 -11
- package/dist/{videos-XEUD3OVY.js → videos-DZT3TMKO.js} +6 -6
- package/dist/{viewer-check-KIYNWVQW.js → viewer-check-QHXKGGH2.js} +6 -6
- package/dist/{web-2MUEGVLM.js → web-HP45GOIL.js} +3 -3
- package/dist/{winning-ads-INF6U6YQ.js → winning-ads-ZJVGEPZ7.js} +3 -3
- package/dist/{write-commands-4DSHZ3NZ.js → write-commands-YKWSFUO5.js} +4 -4
- package/dist/{x-PSDLHAJQ.js → x-V76UQMEM.js} +6 -6
- package/package.json +1 -1
- package/dist/chats-WCBO2ZTQ.js.map +0 -1
- package/dist/chunk-HXJTZJ7R.js.map +0 -1
- package/dist/feedback-ME2IPOPJ.js +0 -103
- package/dist/feedback-ME2IPOPJ.js.map +0 -1
- package/dist/insights-UOO6OK3U.js.map +0 -1
- /package/dist/{account-MHMTVXMM.js.map → account-LKIEXMSK.js.map} +0 -0
- /package/dist/{account-users-HQBWXODR.js.map → account-users-HB5DPMF4.js.map} +0 -0
- /package/dist/{accounts-ODYGXLP6.js.map → accounts-7D4O5QMV.js.map} +0 -0
- /package/dist/{accounts-T3QOYCEZ.js.map → accounts-AOVLG52F.js.map} +0 -0
- /package/dist/{actions-Z7R7A5A6.js.map → actions-CMHAY6P5.js.map} +0 -0
- /package/dist/{activecampaign-OLQRKAGR.js.map → activecampaign-U65MB4UD.js.map} +0 -0
- /package/dist/{add-XAEGJJSH.js.map → add-AHRTXSBZ.js.map} +0 -0
- /package/dist/{add-DPSXPCM3.js.map → add-HGR6XPCB.js.map} +0 -0
- /package/dist/{ads-UPTBNK7T.js.map → ads-BHZLZT3C.js.map} +0 -0
- /package/dist/{advertisers-DMZKNX2A.js.map → advertisers-KJDYCVU7.js.map} +0 -0
- /package/dist/{analytics-OWJRWSCB.js.map → analytics-2QTC4ZJT.js.map} +0 -0
- /package/dist/{analytics-T63LQGK2.js.map → analytics-RSCTSZPC.js.map} +0 -0
- /package/dist/{assign-HO7FQKG3.js.map → assign-RKN3XDEA.js.map} +0 -0
- /package/dist/{audience-size-4O3NRUKD.js.map → audience-size-J5T2SOWX.js.map} +0 -0
- /package/dist/{audit-NI6FQRZK.js.map → audit-O2R2R3BH.js.map} +0 -0
- /package/dist/{autocomplete-2VK3LRGH.js.map → autocomplete-7R5TRWE3.js.map} +0 -0
- /package/dist/{avatars-SGX4SEBA.js.map → avatars-URGC2PRJ.js.map} +0 -0
- /package/dist/{bid-pricing-Z4PV6BCK.js.map → bid-pricing-ZIGIQLKJ.js.map} +0 -0
- /package/dist/{brand-IEL3DDX7.js.map → brand-7MLMDFLT.js.map} +0 -0
- /package/dist/{brief-J6DENGHA.js.map → brief-ZWIEUGIJ.js.map} +0 -0
- /package/dist/{campaign-groups-RFYBWXPO.js.map → campaign-groups-Z6LNJMHY.js.map} +0 -0
- /package/dist/{campaign-writes-YLV3HYNQ.js.map → campaign-writes-EOFSYPW4.js.map} +0 -0
- /package/dist/{campaigns-ZKPVMDU3.js.map → campaigns-FHD3KMLV.js.map} +0 -0
- /package/dist/{campaigns-G5KQ342J.js.map → campaigns-SIJKAEFM.js.map} +0 -0
- /package/dist/{canvas-BPSJVECE.js.map → canvas-PHUXBTDM.js.map} +0 -0
- /package/dist/{capabilities-T7EVTLBX.js.map → capabilities-MVOMUZVT.js.map} +0 -0
- /package/dist/{check-FH4N5DBG.js.map → check-G6IGCJKG.js.map} +0 -0
- /package/dist/{chunk-YRNLPGAV.js.map → chunk-274UO7N7.js.map} +0 -0
- /package/dist/{chunk-URPWZDJA.js.map → chunk-27KV27F6.js.map} +0 -0
- /package/dist/{chunk-DHYWRMWY.js.map → chunk-3N7YWOTX.js.map} +0 -0
- /package/dist/{chunk-ZCZJ3SQC.js.map → chunk-4L4SG26L.js.map} +0 -0
- /package/dist/{chunk-JFZGNLZA.js.map → chunk-7OLJBIKI.js.map} +0 -0
- /package/dist/{chunk-LRHIRVBX.js.map → chunk-7XSVJFA3.js.map} +0 -0
- /package/dist/{chunk-SUCYXLJ6.js.map → chunk-AHN5UNQP.js.map} +0 -0
- /package/dist/{chunk-TAZLKHHL.js.map → chunk-AQBJ3XRD.js.map} +0 -0
- /package/dist/{chunk-W4NVTC6Q.js.map → chunk-B5MJXVBP.js.map} +0 -0
- /package/dist/{chunk-VFXBT7JF.js.map → chunk-CATPBEZ3.js.map} +0 -0
- /package/dist/{chunk-W5K6O3EO.js.map → chunk-E4JZV7ZY.js.map} +0 -0
- /package/dist/{chunk-R6XSLSBI.js.map → chunk-FPS7WKLY.js.map} +0 -0
- /package/dist/{chunk-WU3TOZ57.js.map → chunk-FY6CMZDG.js.map} +0 -0
- /package/dist/{chunk-O4LSJU3J.js.map → chunk-H7TJX6MJ.js.map} +0 -0
- /package/dist/{chunk-7STPWZTM.js.map → chunk-HMZ6FUXY.js.map} +0 -0
- /package/dist/{chunk-PFVO7KC7.js.map → chunk-HN2W55DC.js.map} +0 -0
- /package/dist/{chunk-KJB7U2WG.js.map → chunk-HPS7HLN4.js.map} +0 -0
- /package/dist/{chunk-CAFLQI3M.js.map → chunk-HZQ64QEY.js.map} +0 -0
- /package/dist/{chunk-BEAQSULO.js.map → chunk-I62QW2UL.js.map} +0 -0
- /package/dist/{chunk-3HUAOQCY.js.map → chunk-KT2YKHCH.js.map} +0 -0
- /package/dist/{chunk-HZH74JIM.js.map → chunk-LFWGMR3F.js.map} +0 -0
- /package/dist/{chunk-EXQ43VBT.js.map → chunk-LNEUE4BR.js.map} +0 -0
- /package/dist/{chunk-KEEXJ3PM.js.map → chunk-MDBRRR3J.js.map} +0 -0
- /package/dist/{chunk-HH4FAKWI.js.map → chunk-N26ZASAC.js.map} +0 -0
- /package/dist/{chunk-HSUPSA7N.js.map → chunk-NPGI5DXP.js.map} +0 -0
- /package/dist/{chunk-6BQBW5RE.js.map → chunk-NTOCO72A.js.map} +0 -0
- /package/dist/{chunk-K4CDJMFM.js.map → chunk-OATKGUUI.js.map} +0 -0
- /package/dist/{chunk-KD7Y5PAV.js.map → chunk-P2C6X574.js.map} +0 -0
- /package/dist/{chunk-SFYVH3SZ.js.map → chunk-POI76GQV.js.map} +0 -0
- /package/dist/{chunk-UNLZ43RQ.js.map → chunk-PZ3EFXL7.js.map} +0 -0
- /package/dist/{chunk-RTCRGYQL.js.map → chunk-QCONJUK6.js.map} +0 -0
- /package/dist/{chunk-5D2TVABH.js.map → chunk-RRH5QWVS.js.map} +0 -0
- /package/dist/{chunk-444B56AH.js.map → chunk-SPBUHC2K.js.map} +0 -0
- /package/dist/{chunk-NIP6EWVK.js.map → chunk-VAWAFQW3.js.map} +0 -0
- /package/dist/{chunk-JEUGICMT.js.map → chunk-VFESCAO4.js.map} +0 -0
- /package/dist/{chunk-O43ZQ3JO.js.map → chunk-VLE433LA.js.map} +0 -0
- /package/dist/{chunk-RHRAERM6.js.map → chunk-W2MHGOUZ.js.map} +0 -0
- /package/dist/{chunk-Q6EF4BH2.js.map → chunk-XJ62F6EA.js.map} +0 -0
- /package/dist/{chunk-NOCMEK6R.js.map → chunk-YPYI3YBK.js.map} +0 -0
- /package/dist/{chunk-TCYAJVDG.js.map → chunk-YXCSJQKQ.js.map} +0 -0
- /package/dist/{chunk-Z73HKL6X.js.map → chunk-Z6ZYGDCQ.js.map} +0 -0
- /package/dist/{chunk-EIGTUTT6.js.map → chunk-ZV4K6E3S.js.map} +0 -0
- /package/dist/{claim-JLJ4KHOA.js.map → claim-VN6RHORQ.js.map} +0 -0
- /package/dist/{companies-HZ2DZBJF.js.map → companies-UNXZLC4T.js.map} +0 -0
- /package/dist/{company-26TJ3ZHQ.js.map → company-E7J2I4B5.js.map} +0 -0
- /package/dist/{complete-EQZLWQLY.js.map → complete-TI6ME7P2.js.map} +0 -0
- /package/dist/{connect-7JGPLBAF.js.map → connect-VYCZ7APH.js.map} +0 -0
- /package/dist/{conversation-XS7GH2PD.js.map → conversation-AVJMT6NK.js.map} +0 -0
- /package/dist/{conversions-DELC6FQO.js.map → conversions-6KDF5AVY.js.map} +0 -0
- /package/dist/{create-GJQ2E3AZ.js.map → create-7R5HTOI2.js.map} +0 -0
- /package/dist/{create-3RYVQ7ZQ.js.map → create-BGIE2YTE.js.map} +0 -0
- /package/dist/{create-YN4A3PKV.js.map → create-HI53LEYE.js.map} +0 -0
- /package/dist/{create-VULOPTKC.js.map → create-YVKJC5IT.js.map} +0 -0
- /package/dist/{creatives-EJQRCVYY.js.map → creatives-ACU2HGZW.js.map} +0 -0
- /package/dist/{creatives-JTQY5UTX.js.map → creatives-ISYALGKS.js.map} +0 -0
- /package/dist/{credentials-3TBM3TFS.js.map → credentials-UCROYYPD.js.map} +0 -0
- /package/dist/{critique-HFOOB26B.js.map → critique-SGEKRORA.js.map} +0 -0
- /package/dist/{critique-IZEFC75M.js.map → critique-SJLBIGD2.js.map} +0 -0
- /package/dist/{crm-PQACQT6S.js.map → crm-OZ626TTR.js.map} +0 -0
- /package/dist/{crm-SSVNZPOH.js.map → crm-X7FX34QY.js.map} +0 -0
- /package/dist/{customers-AFXYG7FE.js.map → customers-I3T6HJD4.js.map} +0 -0
- /package/dist/{delete-SPC34ZFO.js.map → delete-24S5ICGH.js.map} +0 -0
- /package/dist/{delete-XR7O5N4X.js.map → delete-ICXIKJZF.js.map} +0 -0
- /package/dist/{delete-6QZYSR6K.js.map → delete-RWZCVPYV.js.map} +0 -0
- /package/dist/{demographics-YLWGW7G6.js.map → demographics-PUJKNWCF.js.map} +0 -0
- /package/dist/{discard-XNPXWTBW.js.map → discard-4GLM3TVC.js.map} +0 -0
- /package/dist/{domain-LLD4U7OO.js.map → domain-A4IVVFI6.js.map} +0 -0
- /package/dist/{download-UXDFM3ZV.js.map → download-KIOTQW3Z.js.map} +0 -0
- /package/dist/{draft-OU4LP3EV.js.map → draft-6QUGODCB.js.map} +0 -0
- /package/dist/{draft-KPDFOAJ6.js.map → draft-AMSBOSM2.js.map} +0 -0
- /package/dist/{draft-NHYUTQYP.js.map → draft-IB5A3RFD.js.map} +0 -0
- /package/dist/{experiments-DPPE7UEW.js.map → experiments-NW4GVPAF.js.map} +0 -0
- /package/dist/{facets-GSIF6AX3.js.map → facets-SIY7OICY.js.map} +0 -0
- /package/dist/{feedback-EJFWUGGA.js.map → feedback-LUNPSQEO.js.map} +0 -0
- /package/dist/{feedback-record-ALH4UE5G.js.map → feedback-record-ML67WVIX.js.map} +0 -0
- /package/dist/{fetch-C6Q4YQEJ.js.map → fetch-T7OO6FDT.js.map} +0 -0
- /package/dist/{fit-UJGHAJFC.js.map → fit-63FKT2JJ.js.map} +0 -0
- /package/dist/{flows-FCMGOLTF.js.map → flows-RWQSQKUL.js.map} +0 -0
- /package/dist/{fonts-KAGIWNKZ.js.map → fonts-UQ6ISHO3.js.map} +0 -0
- /package/dist/{forecast-3RFACQCU.js.map → forecast-JTKQQYMN.js.map} +0 -0
- /package/dist/{funnel-DINYX53F.js.map → funnel-J5IJQPUP.js.map} +0 -0
- /package/dist/{get-OI4YRD3L.js.map → get-VLS22SZR.js.map} +0 -0
- /package/dist/{get-IDYK57H7.js.map → get-X6TC6UBK.js.map} +0 -0
- /package/dist/{google-ads-4DOMH2UV.js.map → google-ads-HBNPBUR4.js.map} +0 -0
- /package/dist/{history-OLVARKGD.js.map → history-E25YCUQO.js.map} +0 -0
- /package/dist/{history-HTJL2L5D.js.map → history-ZNPAN36E.js.map} +0 -0
- /package/dist/{hubspot-IRH2GAAX.js.map → hubspot-WFJ22XGN.js.map} +0 -0
- /package/dist/{ideas-4LKSORBG.js.map → ideas-FCL5SDI4.js.map} +0 -0
- /package/dist/{images-DCQIUJBT.js.map → images-SXBR3MLH.js.map} +0 -0
- /package/dist/{ingest-WO4EJMNI.js.map → ingest-UJBMV7PZ.js.map} +0 -0
- /package/dist/{ingest-U7VAV7IM.js.map → ingest-YRWIO6DV.js.map} +0 -0
- /package/dist/{inspect-XKZR36QA.js.map → inspect-I2CJDQSA.js.map} +0 -0
- /package/dist/{keyword-metrics-6G3C32M3.js.map → keyword-metrics-U6IWGT4N.js.map} +0 -0
- /package/dist/{keywords-for-site-27X47XJQ.js.map → keywords-for-site-PXID3WEP.js.map} +0 -0
- /package/dist/{landing-RPPXKFRU.js.map → landing-PIQYR6XI.js.map} +0 -0
- /package/dist/{leads-IZS3DRCO.js.map → leads-DOFRCD7J.js.map} +0 -0
- /package/dist/{learn-HZEOU3CN.js.map → learn-VMNUQL6D.js.map} +0 -0
- /package/dist/{line-item-writes-57ABY4A3.js.map → line-item-writes-6MCXCXYM.js.map} +0 -0
- /package/dist/{line-items-J3IWQA66.js.map → line-items-X3GEB5P7.js.map} +0 -0
- /package/dist/{link-3H2PK2DD.js.map → link-TX5PWJBH.js.map} +0 -0
- /package/dist/{linkedin-SF75JMZT.js.map → linkedin-3DYXRHL7.js.map} +0 -0
- /package/dist/{linkedin-person-5YNH3RDX.js.map → linkedin-person-TP7DAJST.js.map} +0 -0
- /package/dist/{list-Q3I5ZABL.js.map → list-2WFSHJ2I.js.map} +0 -0
- /package/dist/{list-MVZM5WXU.js.map → list-GMMNLVCA.js.map} +0 -0
- /package/dist/{list-W7NE3NNF.js.map → list-I77SLBPO.js.map} +0 -0
- /package/dist/{log-MZU2J4OC.js.map → log-3HSJ3RYY.js.map} +0 -0
- /package/dist/{make-VILXHWMX.js.map → make-OKIBB4LM.js.map} +0 -0
- /package/dist/{map-MIDSERZT.js.map → map-O63QGACI.js.map} +0 -0
- /package/dist/{mcp-MEZSQTQS.js.map → mcp-GJEZ37AM.js.map} +0 -0
- /package/dist/{media-sources-RYWCWEIZ.js.map → media-sources-KE6XXCTY.js.map} +0 -0
- /package/dist/{members-6XEW5STI.js.map → members-WF453RSC.js.map} +0 -0
- /package/dist/{meta-MBW5LM5V.js.map → meta-6IFYEOZL.js.map} +0 -0
- /package/dist/{normalize-M6PR7JDG.js.map → normalize-HWMMP6LX.js.map} +0 -0
- /package/dist/{options-KTI2IDFT.js.map → options-XGYNQCQM.js.map} +0 -0
- /package/dist/{organization-WEFYQ3CV.js.map → organization-X27LDCZU.js.map} +0 -0
- /package/dist/{performance-FBKKECUS.js.map → performance-JLQIJK4V.js.map} +0 -0
- /package/dist/{performance-K2AVEUZQ.js.map → performance-XYGEV4TX.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-7ELZBXE2.js.map → promoted-tweet-writes-7DGO5Z2G.js.map} +0 -0
- /package/dist/{promoted-tweets-QSTRB6F5.js.map → promoted-tweets-SPBZXSYI.js.map} +0 -0
- /package/dist/{publish-ZN36O7BG.js.map → publish-RRJRO5DC.js.map} +0 -0
- /package/dist/{reddit-7EA5AWSS.js.map → reddit-OCRVXWJC.js.map} +0 -0
- /package/dist/{refresh-7F2QJYYV.js.map → refresh-M6BXIMQD.js.map} +0 -0
- /package/dist/{release-PPRR6DYB.js.map → release-ZRKZEBEB.js.map} +0 -0
- /package/dist/{remove-XIPDNTIY.js.map → remove-JW3RRNB6.js.map} +0 -0
- /package/dist/{reopen-GZN3R2QV.js.map → reopen-G6ZE5YNP.js.map} +0 -0
- /package/dist/{rerun-WDWQGRDM.js.map → rerun-OKOYKQXC.js.map} +0 -0
- /package/dist/{research-6DQSQCNK.js.map → research-DZZBRX4V.js.map} +0 -0
- /package/dist/{research-QIGBAAHS.js.map → research-NLZ34525.js.map} +0 -0
- /package/dist/{reset-QOTBQKTC.js.map → reset-ABZVGJE6.js.map} +0 -0
- /package/dist/{reset-IUKNG46S.js.map → reset-JYER2WPC.js.map} +0 -0
- /package/dist/{resolve-6O2PNS53.js.map → resolve-EH3ONOYE.js.map} +0 -0
- /package/dist/{retry-DRC2TTV7.js.map → retry-LKJWY5BC.js.map} +0 -0
- /package/dist/{retry-Y4BCINFT.js.map → retry-VY76DPS5.js.map} +0 -0
- /package/dist/{revenue-QQUQ7GU6.js.map → revenue-7GIOE3TG.js.map} +0 -0
- /package/dist/{rules-BUNOVMVJ.js.map → rules-NUNJBT6R.js.map} +0 -0
- /package/dist/{rules-add-CDENNVBW.js.map → rules-add-7FB67IDD.js.map} +0 -0
- /package/dist/{run-XNAIOT7R.js.map → run-3GV2FYWG.js.map} +0 -0
- /package/dist/{run-PQ746XEE.js.map → run-OVOXZUXN.js.map} +0 -0
- /package/dist/{scaffold-ad-PHAB6GLN.js.map → scaffold-ad-7D5EUDU7.js.map} +0 -0
- /package/dist/{scaffold-static-ad-IHDRTH6L.js.map → scaffold-static-ad-TWF2RRM2.js.map} +0 -0
- /package/dist/{scaffold-video-LS2RVIAZ.js.map → scaffold-video-4P2ONEQV.js.map} +0 -0
- /package/dist/{schedule-GETX5RGF.js.map → schedule-XQ725JG6.js.map} +0 -0
- /package/dist/{scheduled-agents-KXYUHTLP.js.map → scheduled-agents-KBSD55GW.js.map} +0 -0
- /package/dist/{schema-NGBW5YPB.js.map → schema-WJVWY4IA.js.map} +0 -0
- /package/dist/{search-F4Q2AFF7.js.map → search-KQGMLU2Z.js.map} +0 -0
- /package/dist/{select-4PJ6RWNC.js.map → select-CLD5MFCK.js.map} +0 -0
- /package/dist/{set-prompt-JLBXOTMG.js.map → set-prompt-COD76I6E.js.map} +0 -0
- /package/dist/{setup-links-D2LM5HYV.js.map → setup-links-H5L5CJJN.js.map} +0 -0
- /package/dist/{shopify-HGDOKO3A.js.map → shopify-M2I65ZB5.js.map} +0 -0
- /package/dist/{site-PBZYQUH6.js.map → site-AIJK3MNO.js.map} +0 -0
- /package/dist/{sources-T74V2W45.js.map → sources-JRMCBVLK.js.map} +0 -0
- /package/dist/{sources-MZC2DJE6.js.map → sources-YVDTULK6.js.map} +0 -0
- /package/dist/{stale-JV6JLTGD.js.map → stale-AVBULN3A.js.map} +0 -0
- /package/dist/{status-QDK37PJG.js.map → status-RXA4BBXZ.js.map} +0 -0
- /package/dist/{sync-43UXJTKL.js.map → sync-CMYHAJSZ.js.map} +0 -0
- /package/dist/{sync-definition-2ZFQPGDO.js.map → sync-definition-IKI2NFUO.js.map} +0 -0
- /package/dist/{tags-QG3XFTJD.js.map → tags-5IVIDOPC.js.map} +0 -0
- /package/dist/{tags-SFPZ7AT4.js.map → tags-5L5MV6XZ.js.map} +0 -0
- /package/dist/{tags-S7OLVPI6.js.map → tags-LIG4SXDB.js.map} +0 -0
- /package/dist/{tags-KU5L7ZBF.js.map → tags-LRFFVAZ3.js.map} +0 -0
- /package/dist/{tags-H2KBFHX4.js.map → tags-VMMVSG6J.js.map} +0 -0
- /package/dist/{targeting-criteria-MU4KEOW5.js.map → targeting-criteria-AMVFYZ2H.js.map} +0 -0
- /package/dist/{targets-V6WKUMTX.js.map → targets-RE24B2LL.js.map} +0 -0
- /package/dist/{testimonials-DX25LR6G.js.map → testimonials-FWJRO4MB.js.map} +0 -0
- /package/dist/{top-companies-SBMXYZRJ.js.map → top-companies-6GI6AWGA.js.map} +0 -0
- /package/dist/{transcript-73MISAES.js.map → transcript-XMWBCLQO.js.map} +0 -0
- /package/dist/{translate-XDXRGPY5.js.map → translate-2UYIIMEG.js.map} +0 -0
- /package/dist/{triggers-3K4NWQ2R.js.map → triggers-WCI5DERM.js.map} +0 -0
- /package/dist/{unlink-QXT3S6CR.js.map → unlink-MM23NOTI.js.map} +0 -0
- /package/dist/{unstage-UVQO46T7.js.map → unstage-YQXFED4J.js.map} +0 -0
- /package/dist/{update-FN46SSF6.js.map → update-3BGBYU5R.js.map} +0 -0
- /package/dist/{update-LI6TK56N.js.map → update-A53QG3XM.js.map} +0 -0
- /package/dist/{update-4NYP4T76.js.map → update-S2CJ5FNS.js.map} +0 -0
- /package/dist/{update-N3KYD5NR.js.map → update-VMN5BHTP.js.map} +0 -0
- /package/dist/{upload-7XNKN6WA.js.map → upload-VT7NPRAM.js.map} +0 -0
- /package/dist/{url-params-X77DEIN6.js.map → url-params-RFMWR2PZ.js.map} +0 -0
- /package/dist/{validate-ZNGKO2T2.js.map → validate-KMY5ZVQX.js.map} +0 -0
- /package/dist/{videos-XEUD3OVY.js.map → videos-DZT3TMKO.js.map} +0 -0
- /package/dist/{viewer-check-KIYNWVQW.js.map → viewer-check-QHXKGGH2.js.map} +0 -0
- /package/dist/{web-2MUEGVLM.js.map → web-HP45GOIL.js.map} +0 -0
- /package/dist/{winning-ads-INF6U6YQ.js.map → winning-ads-ZJVGEPZ7.js.map} +0 -0
- /package/dist/{write-commands-4DSHZ3NZ.js.map → write-commands-YKWSFUO5.js.map} +0 -0
- /package/dist/{x-PSDLHAJQ.js.map → x-V76UQMEM.js.map} +0 -0
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
failApi,
|
|
3
|
-
failValidation
|
|
4
|
-
} from "./chunk-UNLZ43RQ.js";
|
|
5
|
-
import {
|
|
6
|
-
PLATFORM_REPORT_KINDS,
|
|
7
|
-
feedbackReportRequestSchema
|
|
8
|
-
} from "./chunk-HXJTZJ7R.js";
|
|
9
|
-
import "./chunk-QV6AST5T.js";
|
|
10
|
-
import "./chunk-WCU362Z6.js";
|
|
11
|
-
import "./chunk-GIWHHCD6.js";
|
|
12
|
-
import "./chunk-SOPVIIUW.js";
|
|
13
|
-
import "./chunk-G4FG5EQO.js";
|
|
14
|
-
import "./chunk-NSBNIPIW.js";
|
|
15
|
-
import "./chunk-BNO3EFGR.js";
|
|
16
|
-
import {
|
|
17
|
-
apiPost
|
|
18
|
-
} from "./chunk-C35UMKYG.js";
|
|
19
|
-
import "./chunk-ELAYD7O3.js";
|
|
20
|
-
import "./chunk-LBIF6FJY.js";
|
|
21
|
-
import {
|
|
22
|
-
registerSchema,
|
|
23
|
-
writeJson
|
|
24
|
-
} from "./chunk-TRXGJZDL.js";
|
|
25
|
-
import "./chunk-YQSBHWOI.js";
|
|
26
|
-
|
|
27
|
-
// src/commands/feedback/index.ts
|
|
28
|
-
import { defineCommand } from "citty";
|
|
29
|
-
var DOC = "__tooling__/docs/tools/baker/feedback.md";
|
|
30
|
-
var ARGS = {
|
|
31
|
-
kind: {
|
|
32
|
-
type: "string",
|
|
33
|
-
description: "bug \u2014 something in Baker is broken (a command, check, hook, skill or doc does the wrong thing). feature \u2014 Baker has no way to do what the work needs.",
|
|
34
|
-
required: true
|
|
35
|
-
},
|
|
36
|
-
title: {
|
|
37
|
-
type: "string",
|
|
38
|
-
description: `One sentence, what is wrong or missing, in Baker's terms: "baker winning-ads has no way to read one country's ads".`,
|
|
39
|
-
required: true
|
|
40
|
-
},
|
|
41
|
-
body: {
|
|
42
|
-
type: "string",
|
|
43
|
-
description: "What you ran, what came back (the exact message), what you expected, and what you ruled out. Describe the problem, not the client: no names, emails or figures from their accounts.",
|
|
44
|
-
required: true
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
registerSchema({
|
|
48
|
-
command: "feedback.report",
|
|
49
|
-
description: `Start here when Baker itself is in the way: a command, check, hook, skill or doc that is broken, or a capability the work needs that Baker does not have. Example: baker feedback report --kind bug --title "verify fails on an archived test version" --body "\u2026". Saved on this chat at once; when the chat ends, Baker's review checks it and files it for the Baker team. Never a Task, never a message for the user to pass on. Then say one plain line to the user and keep going with what you can still do.`,
|
|
50
|
-
args: ARGS
|
|
51
|
-
});
|
|
52
|
-
var REPORT_HINTS = [
|
|
53
|
-
"Saved for the Baker team; the review of this chat checks it and files it. Tell the user in one plain line that you let the Baker team know \u2014 no ids, commands or file names \u2014 and never ask them to pass it on.",
|
|
54
|
-
"Then keep going: work around it with what this workspace still lets you change (the pages, Forms, Knowledge and Brand you own, a staged change instead of a blocked one), finish the rest of the job, and say plainly what is left undone. One broken piece should not stop the whole task.",
|
|
55
|
-
"It is not a Task: don't also file one for it."
|
|
56
|
-
];
|
|
57
|
-
function reportBody(args) {
|
|
58
|
-
if (!PLATFORM_REPORT_KINDS.includes(args.kind ?? "")) {
|
|
59
|
-
return { ok: false, error: `--kind is ${PLATFORM_REPORT_KINDS.join(" or ")}, got "${args.kind ?? ""}".` };
|
|
60
|
-
}
|
|
61
|
-
const parsed = feedbackReportRequestSchema.safeParse(args);
|
|
62
|
-
if (!parsed.success) {
|
|
63
|
-
return {
|
|
64
|
-
ok: false,
|
|
65
|
-
error: "A report needs a --title of at least 10 characters (one sentence, what is wrong or missing) and a --body of at least 20 (what you ran, what came back, what you expected)."
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
return { ok: true, body: parsed.data };
|
|
69
|
-
}
|
|
70
|
-
var reportCommand = defineCommand({
|
|
71
|
-
meta: {
|
|
72
|
-
name: "report",
|
|
73
|
-
description: `Tell the Baker team about a defect in Baker or a capability it lacks; saved on this chat, filed after its review.
|
|
74
|
-
Start here: baker feedback report --kind bug --title "<what is wrong, one sentence>" --body "<what you ran, what came back, what you expected>"`
|
|
75
|
-
},
|
|
76
|
-
args: ARGS,
|
|
77
|
-
run: async ({ args }) => {
|
|
78
|
-
const parsed = reportBody(args);
|
|
79
|
-
if (!parsed.ok) {
|
|
80
|
-
failValidation(parsed.error);
|
|
81
|
-
}
|
|
82
|
-
try {
|
|
83
|
-
const response = await apiPost("/api/feedback/report", parsed.body);
|
|
84
|
-
writeJson({ ok: true, data: response.data, hints: REPORT_HINTS });
|
|
85
|
-
} catch (err) {
|
|
86
|
-
failApi(err);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
var feedbackCommand = defineCommand({
|
|
91
|
-
meta: {
|
|
92
|
-
name: "feedback",
|
|
93
|
-
description: `Report a defect in Baker, or a capability it lacks, to the Baker team \u2014 never to the user, never as a Task. Subcommands: report.
|
|
94
|
-
Full guide: ${DOC}`
|
|
95
|
-
},
|
|
96
|
-
subCommands: { report: reportCommand }
|
|
97
|
-
});
|
|
98
|
-
export {
|
|
99
|
-
REPORT_HINTS,
|
|
100
|
-
feedbackCommand,
|
|
101
|
-
reportBody
|
|
102
|
-
};
|
|
103
|
-
//# sourceMappingURL=feedback-ME2IPOPJ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/feedback/index.ts"],"sourcesContent":["import {\n type FeedbackReportRequest,\n type FeedbackReportResponse,\n feedbackReportRequestSchema,\n PLATFORM_REPORT_KINDS,\n} from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi, failValidation } from \"../actions/shared.ts\";\n\nconst DOC = \"__tooling__/docs/tools/baker/feedback.md\";\n\nconst ARGS = {\n kind: {\n type: \"string\",\n description:\n \"bug — something in Baker is broken (a command, check, hook, skill or doc does the wrong thing). feature — Baker has no way to do what the work needs.\",\n required: true,\n },\n title: {\n type: \"string\",\n description:\n \"One sentence, what is wrong or missing, in Baker's terms: \\\"baker winning-ads has no way to read one country's ads\\\".\",\n required: true,\n },\n body: {\n type: \"string\",\n description:\n \"What you ran, what came back (the exact message), what you expected, and what you ruled out. Describe the problem, not the client: no names, emails or figures from their accounts.\",\n required: true,\n },\n} as const;\n\nregisterSchema({\n command: \"feedback.report\",\n description:\n 'Start here when Baker itself is in the way: a command, check, hook, skill or doc that is broken, or a capability the work needs that Baker does not have. Example: baker feedback report --kind bug --title \"verify fails on an archived test version\" --body \"…\". Saved on this chat at once; when the chat ends, Baker\\'s review checks it and files it for the Baker team. Never a Task, never a message for the user to pass on. Then say one plain line to the user and keep going with what you can still do.',\n args: ARGS,\n});\n\n/**\n * What to do once the report is saved. Hints rather than prose in a doc,\n * because the moment that matters is right after the call: the agent has just\n * hit a wall, and the two things it reaches for — stopping, or asking the\n * marketer to carry the report — are both wrong.\n */\nexport const REPORT_HINTS = [\n \"Saved for the Baker team; the review of this chat checks it and files it. Tell the user in one plain line that you let the Baker team know — no ids, commands or file names — and never ask them to pass it on.\",\n \"Then keep going: work around it with what this workspace still lets you change (the pages, Forms, Knowledge and Brand you own, a staged change instead of a blocked one), finish the rest of the job, and say plainly what is left undone. One broken piece should not stop the whole task.\",\n \"It is not a Task: don't also file one for it.\",\n];\n\ntype ReportArgs = { kind?: string; title?: string; body?: string };\n\n/** The request one `report` line asks for, or why it cannot be sent. */\nexport function reportBody(args: ReportArgs): { ok: true; body: FeedbackReportRequest } | { ok: false; error: string } {\n if (!(PLATFORM_REPORT_KINDS as readonly string[]).includes(args.kind ?? \"\")) {\n return { ok: false, error: `--kind is ${PLATFORM_REPORT_KINDS.join(\" or \")}, got \"${args.kind ?? \"\"}\".` };\n }\n const parsed = feedbackReportRequestSchema.safeParse(args);\n if (!parsed.success) {\n return {\n ok: false,\n error:\n \"A report needs a --title of at least 10 characters (one sentence, what is wrong or missing) and a --body of at least 20 (what you ran, what came back, what you expected).\",\n };\n }\n return { ok: true, body: parsed.data };\n}\n\nconst reportCommand = defineCommand({\n meta: {\n name: \"report\",\n description: `Tell the Baker team about a defect in Baker or a capability it lacks; saved on this chat, filed after its review.\nStart here: baker feedback report --kind bug --title \"<what is wrong, one sentence>\" --body \"<what you ran, what came back, what you expected>\"`,\n },\n args: ARGS,\n run: async ({ args }) => {\n const parsed = reportBody(args);\n if (!parsed.ok) {\n failValidation(parsed.error);\n }\n try {\n const response = await apiPost<FeedbackReportResponse>(\"/api/feedback/report\", parsed.body);\n writeJson({ ok: true, data: response.data, hints: REPORT_HINTS });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nexport const feedbackCommand = defineCommand({\n meta: {\n name: \"feedback\",\n description: `Report a defect in Baker, or a capability it lacks, to the Baker team — never to the user, never as a Task. Subcommands: report.\nFull guide: ${DOC}`,\n },\n subCommands: { report: reportCommand },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,SAAS,qBAAqB;AAM9B,IAAM,MAAM;AAEZ,IAAM,OAAO;AAAA,EACX,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,IACF,UAAU;AAAA,EACZ;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aACE;AAAA,IACF,UAAU;AAAA,EACZ;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,IACF,UAAU;AAAA,EACZ;AACF;AAEA,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AACR,CAAC;AAQM,IAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF;AAKO,SAAS,WAAW,MAA4F;AACrH,MAAI,CAAE,sBAA4C,SAAS,KAAK,QAAQ,EAAE,GAAG;AAC3E,WAAO,EAAE,IAAI,OAAO,OAAO,aAAa,sBAAsB,KAAK,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,KAAK;AAAA,EAC1G;AACA,QAAM,SAAS,4BAA4B,UAAU,IAAI;AACzD,MAAI,CAAC,OAAO,SAAS;AACnB,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,OACE;AAAA,IACJ;AAAA,EACF;AACA,SAAO,EAAE,IAAI,MAAM,MAAM,OAAO,KAAK;AACvC;AAEA,IAAM,gBAAgB,cAAc;AAAA,EAClC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA,EAEf;AAAA,EACA,MAAM;AAAA,EACN,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,SAAS,WAAW,IAAI;AAC9B,QAAI,CAAC,OAAO,IAAI;AACd,qBAAe,OAAO,KAAK;AAAA,IAC7B;AACA,QAAI;AACF,YAAM,WAAW,MAAM,QAAgC,wBAAwB,OAAO,IAAI;AAC1F,gBAAU,EAAE,IAAI,MAAM,MAAM,SAAS,MAAM,OAAO,aAAa,CAAC;AAAA,IAClE,SAAS,KAAK;AACZ,cAAQ,GAAG;AAAA,IACb;AAAA,EACF;AACF,CAAC;AAEM,IAAM,kBAAkB,cAAc;AAAA,EAC3C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,cACH,GAAG;AAAA,EACf;AAAA,EACA,aAAa,EAAE,QAAQ,cAAc;AACvC,CAAC;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/ads/meta/insights.ts","../src/commands/ads/meta/placement-delivery.ts","../src/commands/ads/meta/presets.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiGet, apiPost } from \"../../../client.ts\";\nimport { writeAdsJson, writeAdsOutput, writeJsonEnvelope } from \"../output.ts\";\nimport { metaBreakdownSyncedHint, type SyncedLevel, syncedFirstHint } from \"../synced-first.ts\";\nimport { placementDeliveryHints } from \"./placement-delivery.ts\";\nimport { composeFields, getIntent, type InsightsIntent, type InsightsLevel, listIntents } from \"./presets.ts\";\nimport { csvOrJson, getDateRange, handleMetaError } from \"./shared.ts\";\n\nconst POLL_FIRST_MS = 5_000;\nconst POLL_LONGEST_MS = 30_000;\nconst POLL_MAX_MS = 10 * 60_000;\n\n/**\n * The wait before status poll `attempt` (0-based): 5s, growing by half each\n * poll, at most 30s. Every poll is a read from the ad account's hourly Meta\n * budget, and a long report gains nothing from being asked every 5 seconds.\n */\nexport function asyncPollDelayMs(attempt: number): number {\n return Math.min(Math.round(POLL_FIRST_MS * 1.5 ** attempt), POLL_LONGEST_MS);\n}\n\n/** Default attribution windows — only these still work as of Jan 2026 (1d_view + 28d_click also valid but rarely used). */\nconst DEFAULT_ATTRIBUTION_WINDOWS = [\"7d_click\", \"1d_view\"];\n\n/** Default filter — strip rows that didn't deliver. Almost always what we want. */\nconst DEFAULT_FILTERING = [{ field: \"impressions\", operator: \"GREATER_THAN\", value: 0 }];\n\nexport interface InsightsBody {\n object: string;\n level: InsightsLevel;\n fields: string[];\n datePreset?: string;\n since?: string;\n until?: string;\n timeIncrement?: string;\n breakdowns?: string[];\n actionBreakdowns?: string[];\n filtering?: Array<{ field: string; operator: string; value: string | number | string[] }>;\n attributionWindows?: string[];\n useAccountAttributionSetting?: boolean;\n useUnifiedAttributionSetting?: boolean;\n limit?: number;\n skipCache?: boolean;\n}\n\nfunction commaSplit(input: string | undefined): string[] | undefined {\n if (!input) return undefined;\n return input\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n}\n\nfunction parseFiltering(raw: string | undefined): InsightsBody[\"filtering\"] {\n if (!raw) return undefined;\n try {\n return JSON.parse(raw) as InsightsBody[\"filtering\"];\n } catch {\n handleMetaError(new Error(\"Invalid --filtering JSON\"));\n }\n}\n\nfunction pickIntent(name: string | undefined): InsightsIntent {\n if (!name) return \"baseline\";\n const found = getIntent(name);\n if (!found) {\n handleMetaError(new Error(`Unknown --intent: ${name}. Use --list-intents to see options.`));\n }\n return found.name;\n}\n\nfunction pickLevel(args: Record<string, unknown>): InsightsLevel {\n const raw = args.level as string | undefined;\n if (!raw) return \"account\";\n if (raw !== \"account\" && raw !== \"campaign\" && raw !== \"adset\" && raw !== \"ad\") {\n handleMetaError(new Error(\"--level must be one of: account|campaign|adset|ad\"));\n }\n return raw;\n}\n\n/**\n * Auto-async heuristic. Heavy queries that would time out as sync go async\n * automatically — the user shouldn't have to think about it.\n *\n * - level=ad with breakdowns\n * - >2 breakdowns at any level\n * - explicit time range > 90 days\n * - level=ad over an account-level object with a wide window\n */\nfunction shouldAutoAsync(body: InsightsBody): boolean {\n const breakdownCount = (body.breakdowns ?? []).length;\n if (body.level === \"ad\" && breakdownCount > 0 && body.object.startsWith(\"act_\")) {\n return true;\n }\n if (breakdownCount > 2) {\n return true;\n }\n if (body.since && body.until) {\n const days = (Date.parse(body.until) - Date.parse(body.since)) / 86_400_000;\n if (days > 90) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Whether to take the async path — three states, not two.\n *\n * citty resolves `--no-async` to `async: false` rather than filling a separate\n * `no-async` arg, so reading `args[\"no-async\"]` (as this did) always saw\n * undefined and the documented refusal never applied: a heavy query went async\n * no matter what the caller asked for.\n */\nexport function wantsAsync(asyncFlag: unknown, body: InsightsBody): boolean {\n if (asyncFlag === true) return true;\n if (asyncFlag === false) return false;\n return shouldAutoAsync(body);\n}\n\nfunction applyDateRange(body: InsightsBody, args: Record<string, unknown>): void {\n const range = getDateRange(args);\n if (range.datePreset) body.datePreset = range.datePreset;\n if (range.since) body.since = range.since;\n if (range.until) body.until = range.until;\n if (!body.datePreset && !(body.since && body.until)) {\n body.datePreset = \"last_7d\";\n }\n}\n\nfunction buildFiltering(args: Record<string, unknown>): InsightsBody[\"filtering\"] {\n const explicit = parseFiltering(args.filtering as string | undefined);\n if (explicit) return explicit;\n if (args[\"include-undelivered\"]) return undefined;\n return DEFAULT_FILTERING;\n}\n\nfunction buildAttributionWindows(args: Record<string, unknown>): string[] | undefined {\n const explicit = commaSplit(args[\"attribution-windows\"] as string | undefined);\n if (explicit) return explicit;\n return DEFAULT_ATTRIBUTION_WINDOWS;\n}\n\nfunction buildBody(args: Record<string, unknown>): InsightsBody {\n const intent = pickIntent(args.intent as string | undefined);\n const level = pickLevel(args);\n const intentDef = getIntent(intent);\n const explicitFields = commaSplit(args.fields as string | undefined);\n const fields = explicitFields ?? composeFields(intent, level);\n const breakdowns = commaSplit(args.breakdowns as string | undefined);\n const actionBreakdowns = commaSplit(args[\"action-breakdowns\"] as string | undefined) ?? intentDef?.actionBreakdowns;\n\n const body: InsightsBody = {\n object: args.object as string,\n level,\n fields,\n timeIncrement: args[\"time-increment\"] as string | undefined,\n breakdowns,\n actionBreakdowns,\n filtering: buildFiltering(args),\n attributionWindows: buildAttributionWindows(args),\n useAccountAttributionSetting: Boolean(args[\"use-account-attribution\"]),\n useUnifiedAttributionSetting: Boolean(args[\"use-unified-attribution\"]),\n limit: args.limit ? Number(args.limit) : 1000,\n skipCache: Boolean(args[\"no-cache\"]),\n };\n applyDateRange(body, args);\n return body;\n}\n\nasync function pollAsync(reportRunId: string): Promise<void> {\n const start = Date.now();\n for (let attempt = 0; Date.now() - start < POLL_MAX_MS; attempt++) {\n // The status route is a GET reading `report-run-id` from the query string.\n // Posting to it matched no route at all, so every heavy query died on a\n // bare 404 the moment it went async.\n const status = await apiGet<{ async_status?: string; async_percent_completion?: number }>(\n \"/api/ads/meta/insights/async/status\",\n { \"report-run-id\": reportRunId },\n );\n if (status.async_status === \"Job Completed\") return;\n if (status.async_status === \"Job Failed\" || status.async_status === \"Job Skipped\") {\n handleMetaError(new Error(`Async insights job ${status.async_status}`));\n }\n process.stderr.write(\n `Async insights ${status.async_status ?? \"queued\"} (${Math.round(status.async_percent_completion ?? 0)}%)…\\n`,\n );\n await new Promise((resolve) => setTimeout(resolve, asyncPollDelayMs(attempt)));\n }\n handleMetaError(new Error(\"Async insights polling timed out after 10 minutes\"));\n}\n\nasync function runAsync(body: InsightsBody): Promise<Array<Record<string, unknown>>> {\n const submit = await apiPost<{ reportRunId: string }>(\"/api/ads/meta/insights/async\", body);\n process.stderr.write(`Async insights job: ${submit.reportRunId}\\n`);\n await pollAsync(submit.reportRunId);\n return apiPost<Array<Record<string, unknown>>>(\"/api/ads/meta/insights/async/result\", {\n reportRunId: submit.reportRunId,\n fields: body.fields,\n limit: body.limit,\n });\n}\n\n/** Insights rows have nested `actions[]` arrays. Sort by the named action_type's value descending. */\nfunction sortRowsBySpendDesc(rows: Array<Record<string, unknown>>): Array<Record<string, unknown>> {\n return [...rows].sort((a, b) => {\n const sa = Number(a.spend ?? 0);\n const sb = Number(b.spend ?? 0);\n if (Number.isNaN(sa) || Number.isNaN(sb)) return 0;\n return sb - sa;\n });\n}\n\n/** The `baker ads performance` read that answers the same insights read; null when the synced copy cannot. */\nfunction syncedHintOf(body: InsightsBody): string | null {\n const breakdowns = body.breakdowns ?? [];\n if (breakdowns.length > 0) return metaBreakdownSyncedHint(breakdowns);\n const level: SyncedLevel = body.level === \"adset\" ? \"ad_group\" : body.level;\n return syncedFirstHint(\"meta\", level);\n}\n\nexport const insightsCommand = defineCommand({\n meta: {\n name: \"insights\",\n description: `Performance reporting — the main Meta tool for AI agents.\n\nSmart defaults so the AI doesn't have to remember every flag:\n --level account (set --level campaign|adset|ad to drill in)\n --intent baseline (or revenue|funnel|ranking|video|identity)\n --date-preset last_7d (override with --since/--until)\n --attribution-windows 7d_click,1d_view (the only ones still working post Jan 2026)\n filter: impressions > 0 (skip undelivered rows; --include-undelivered to keep)\n sort: spend descending (when result fits in memory)\n auto-async when query is heavy (level=ad + breakdowns, big date ranges, etc.)\n\nIdentity fields (campaign_name, ad_name etc.) are appended automatically based on --level so rows\nare self-describing.\n\nExamples — common AI questions:\n # \"How is GreenLeaf doing this week?\"\n baker ads meta insights --object act_123\n\n # \"Which campaigns are profitable?\"\n baker ads meta insights --object act_123 --level campaign --intent revenue --date-preset last_28d\n\n # \"Which creatives need a refresh?\"\n baker ads meta insights --object act_123 --level ad --intent ranking --date-preset last_14d\n\n # \"Where do users drop off the funnel?\"\n baker ads meta insights --object act_123 --intent funnel\n\n # \"Should we shift budget to Instagram?\"\n baker ads meta insights --object act_123 --level adset --breakdowns publisher_platform,platform_position\n\n # Custom field set (escape hatch)\n baker ads meta insights --object act_123 --fields impressions,spend,actions\n\nAsync is automatic for heavy queries; pass --async to force it, or --no-async to refuse fallback.`,\n },\n args: {\n object: {\n type: \"string\",\n description: \"Object ID — act_<id> for account, or a campaign/adset/ad ID\",\n },\n level: { type: \"string\", description: \"account|campaign|adset|ad (default: account)\" },\n intent: { type: \"string\", description: \"baseline|revenue|funnel|ranking|video|identity (default: baseline)\" },\n fields: { type: \"string\", description: \"Comma-separated field list (overrides --intent bundle)\" },\n \"list-intents\": { type: \"boolean\", description: \"Print available intents and exit\" },\n \"date-preset\": { type: \"string\", description: \"Meta date preset (last_7d, last_28d, today, ...)\" },\n since: { type: \"string\", description: \"Custom start date YYYY-MM-DD\" },\n until: { type: \"string\", description: \"Custom end date YYYY-MM-DD\" },\n \"time-increment\": { type: \"string\", description: \"1 (day) | monthly | all_days\" },\n breakdowns: { type: \"string\", description: \"Comma-separated breakdowns (e.g. publisher_platform,age)\" },\n \"action-breakdowns\": {\n type: \"string\",\n description: \"Slice the actions[] array (default: action_type for revenue/funnel)\",\n },\n filtering: { type: \"string\", description: \"Override default filter — JSON array of {field,operator,value}\" },\n \"include-undelivered\": { type: \"boolean\", description: \"Keep rows where impressions=0 (off by default)\" },\n \"attribution-windows\": {\n type: \"string\",\n description: \"Override default 7d_click,1d_view (only 1d_view, 1d_click, 7d_click, 28d_click work post Jan 2026)\",\n },\n \"use-account-attribution\": { type: \"boolean\", description: \"Use account-saved attribution setting\" },\n \"use-unified-attribution\": { type: \"boolean\", description: \"Use ad-set unified attribution setting\" },\n limit: { type: \"string\", description: \"Max rows (default 1000)\" },\n // Declaring `no-async` too would be a trap: citty resolves it to `async: false`\n // and never fills an arg of that name, so the declaration reads as supported\n // while nothing consumes it.\n async: { type: \"boolean\", description: \"Force the async submit-and-poll path (--no-async refuses it)\" },\n \"no-sort\": { type: \"boolean\", description: \"Skip default spend-desc sort\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"Output format: json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n if (args[\"list-intents\"]) {\n writeAdsJson({ ok: true, data: listIntents() });\n return;\n }\n\n if (!args.object) {\n writeAdsJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: \"Missing required argument: --object\" },\n });\n process.exit(1);\n }\n\n const body = buildBody(args);\n const fmt = csvOrJson(args);\n const wantAsync = wantsAsync(args.async, body);\n\n try {\n const rows = wantAsync\n ? await runAsync(body)\n : await apiPost<Array<Record<string, unknown>>>(\"/api/ads/meta/insights\", body);\n const sorted = args[\"no-sort\"] ? rows : sortRowsBySpendDesc(rows);\n\n if (fmt !== \"json\") {\n writeAdsOutput(sorted, fmt, body.fields);\n return;\n }\n const synced = syncedHintOf(body);\n const hints = [...placementDeliveryHints(sorted), ...(synced === null ? [] : [synced])];\n writeJsonEnvelope({ ok: true, data: sorted, hints });\n } catch (err) {\n handleMetaError(err);\n }\n },\n});\n","import { placementFormatNote, previewFormatForPosition } from \"@baker/api/ads-meta\";\n\n/**\n * Reads a placement breakdown the way the question \"why does my video show as a\n * still image?\" actually needs to be answered: with this account's own numbers.\n *\n * The failure this replaces is an agent recalling a list of \"image-only\n * placements\" (most of it wrong) and inventing a mechanism Meta does not\n * document. Impressions against video plays, per placement, is the cheap\n * empirical check — it costs one query the agent already ran, and it is\n * account evidence rather than a rule. So the hints below name a suspect and\n * hand over the command that confirms it; they never conclude.\n */\n\n/**\n * Below this, a placement's play rate is arithmetic on too few impressions to\n * carry a claim. Set against a 90%-ish reference rate, seeing no plays in 20\n * impressions is not something chance produces — so this is low enough to reach\n * the long tail where format problems actually live, and the placements it\n * excludes are the ones nobody could have concluded anything from anyway.\n */\nconst MIN_IMPRESSIONS = 20;\n\n/**\n * How far below the ad's own play rate counts as \"this placement is not playing\".\n *\n * Judged against the ad, not against zero. The account this was built from is\n * the reason: it plays at 93% overall, and the one placement carrying a\n * documented format constraint played at 3.85% — 24x worse, and still above any\n * absolute \"under 2%\" bar. An absolute rule cannot see that at any impression\n * threshold; a relative one calibrates itself per creative and per account.\n */\nconst SILENT_FRACTION_OF_REFERENCE = 0.1;\n\n/** Proof the creative plays at all somewhere, so a flagged placement means something. */\nconst PLAYING_REFERENCE_RATE = 0.5;\n\ninterface PlacementDelivery {\n platform: string;\n position: string;\n impressions: number;\n plays: number;\n playRate: number;\n share: number;\n}\n\nfunction toNumber(value: unknown): number {\n const n = Number(value);\n return Number.isFinite(n) ? n : 0;\n}\n\n/** Meta returns action metrics as `[{ action_type, value }]`; the total is what matters here. */\nfunction sumActionValues(value: unknown): number {\n if (!Array.isArray(value)) return 0;\n return value.reduce<number>((total, entry) => {\n const item = entry as { value?: unknown };\n return total + toNumber(item?.value);\n }, 0);\n}\n\nfunction aggregate(rows: Array<Record<string, unknown>>): PlacementDelivery[] {\n const byPlacement = new Map<string, PlacementDelivery>();\n let totalImpressions = 0;\n\n for (const row of rows) {\n const position = row.platform_position;\n if (typeof position !== \"string\" || position.length === 0) continue;\n const platform = typeof row.publisher_platform === \"string\" ? row.publisher_platform : \"\";\n const impressions = toNumber(row.impressions);\n totalImpressions += impressions;\n const key = `${platform}/${position}`;\n const current = byPlacement.get(key) ?? { platform, position, impressions: 0, plays: 0, playRate: 0, share: 0 };\n current.impressions += impressions;\n current.plays += sumActionValues(row.video_play_actions);\n byPlacement.set(key, current);\n }\n\n return [...byPlacement.values()].map((placement) => ({\n ...placement,\n playRate: placement.impressions > 0 ? placement.plays / placement.impressions : 0,\n share: totalImpressions > 0 ? placement.impressions / totalImpressions : 0,\n }));\n}\n\nfunction previewCommand(placement: PlacementDelivery): string {\n const format = previewFormatForPosition(placement.position, placement.platform);\n return format\n ? `\\`baker ads meta preview --creative-id <id> --placement ${placement.position} --platform ${placement.platform}\\``\n : `no preview format is known for ${placement.position}, so Meta's renderer cannot confirm it — say the placement is unverified rather than filling the gap`;\n}\n\n/**\n * The play rate only means something when every row describes the same\n * creative. Aggregating placements across ads puts an image ad's impressions in\n * the same bucket as a video's plays, which reads as \"this placement doesn't\n * render video\" when it only means \"an image ad ran there\" — the exact wrong\n * conclusion this module exists to prevent. So a query that does not pin one ad\n * (`--level ad --object <adId>`) gets no hint rather than a confounded one.\n */\nfunction isSingleAdQuery(rows: Array<Record<string, unknown>>): boolean {\n const adIds = new Set<string>();\n for (const row of rows) {\n if (typeof row.ad_id !== \"string\" || row.ad_id.length === 0) return false;\n adIds.add(row.ad_id);\n }\n return adIds.size === 1;\n}\n\n/**\n * Placements this account delivered into without the video ever playing.\n *\n * Silent unless the query carried video metrics AND the creative demonstrably\n * plays somewhere else: without a playing reference, a zero everywhere means\n * \"not a video query\", not \"the placement is broken\".\n */\nexport function placementDeliveryHints(rows: Array<Record<string, unknown>>): string[] {\n const carriesVideoMetrics = rows.some((row) => Array.isArray(row.video_play_actions));\n if (!carriesVideoMetrics || !isSingleAdQuery(rows)) return [];\n\n const placements = aggregate(rows);\n const judgeable = placements.filter((p) => p.impressions >= MIN_IMPRESSIONS);\n const impressions = judgeable.reduce((total, p) => total + p.impressions, 0);\n const reference = impressions > 0 ? judgeable.reduce((total, p) => total + p.plays, 0) / impressions : 0;\n if (reference < PLAYING_REFERENCE_RATE) return [];\n\n const silent = judgeable\n .filter((p) => p.playRate < reference * SILENT_FRACTION_OF_REFERENCE)\n .sort((a, b) => b.impressions - a.impressions);\n\n // Never go quiet on a video placement query. Silence is what the agent fills\n // in with a remembered rule, and \"every placement plays\" is the answer to\n // \"why does it show as a still image\" far more often than a placement is.\n if (silent.length === 0) {\n const worst = [...judgeable].sort((a, b) => a.playRate - b.playRate)[0];\n return [\n `Checked every placement above ${MIN_IMPRESSIONS} impressions against this ad's own play rate (${(reference * 100).toFixed(0)}%): no placement is failing to play the video${worst ? `, the lowest being ${worst.platform}/${worst.position} at ${(worst.playRate * 100).toFixed(0)}%` : \"\"}. So placements do not explain a \"it shows as a still image\" report — rule out autoplay off or data saver in the viewer's own app, which renders every video as its cover frame account-wide.`,\n ];\n }\n\n const hints = silent.map((placement) => {\n const note = placementFormatNote(placement.position);\n const documented = note ? ` Meta documents this placement: ${note.note}` : \"\";\n return `${placement.platform}/${placement.position} delivered ${placement.impressions.toLocaleString(\"en-US\")} impressions (${(placement.share * 100).toFixed(1)}% of the total) and ${placement.plays.toLocaleString(\"en-US\")} video plays — it may not be rendering the video. This is account evidence, not a rule: confirm what Meta renders there with ${previewCommand(placement)} before you say anything about it.${documented}`;\n });\n\n const combinedShare = silent.reduce((total, placement) => total + placement.share, 0) * 100;\n hints.push(\n `Those placements are ${combinedShare.toFixed(1)}% of delivery in this query. State that share before proposing to remove them — and note that removing placements from a live ad set is a targeting change, which Meta counts as a significant edit that re-enters the learning phase.`,\n );\n return hints;\n}\n","/**\n * Insights field bundles. Picked for AI agent ergonomics: small, focused field\n * lists that answer one specific question without forcing the AI to enumerate\n * Meta's 500+ insights fields.\n *\n * Two-axis design:\n * --intent (field bundle, default: baseline) — what data to ask for\n * --level (object granularity, default: account) — at what granularity\n *\n * Intents are independent of level — pass `--intent ranking --level ad` to flag\n * creatives, or `--intent revenue --level campaign` for ROAS by campaign.\n *\n * Identity fields (campaign_name etc.) are appended automatically based on\n * level so the AI can read rows without joining.\n */\n\nexport type InsightsLevel = \"account\" | \"campaign\" | \"adset\" | \"ad\";\n\nexport type InsightsIntent = \"baseline\" | \"revenue\" | \"funnel\" | \"ranking\" | \"video\" | \"identity\";\n\ninterface IntentDefinition {\n name: InsightsIntent;\n description: string;\n fields: string[];\n /** Action breakdowns to slice the actions[] array — empty if not needed. */\n actionBreakdowns?: string[];\n}\n\nconst INSIGHTS_INTENTS: Record<InsightsIntent, IntentDefinition> = {\n baseline: {\n name: \"baseline\",\n description: \"Spend, impressions, clicks, CTR, CPC, CPM. The default question: 'how is delivery?'\",\n fields: [\"impressions\", \"reach\", \"frequency\", \"spend\", \"clicks\", \"ctr\", \"cpc\", \"cpm\"],\n },\n revenue: {\n name: \"revenue\",\n description: \"Spend, conversions, action_values, purchase_roas. 'How much money are we making?'\",\n fields: [\"spend\", \"actions\", \"action_values\", \"conversions\", \"conversion_values\", \"purchase_roas\"],\n actionBreakdowns: [\"action_type\"],\n },\n funnel: {\n name: \"funnel\",\n description: \"Impression → click → landing page → action. 'Where do users drop off?'\",\n fields: [\"impressions\", \"clicks\", \"inline_link_clicks\", \"outbound_clicks\", \"actions\", \"spend\"],\n actionBreakdowns: [\"action_type\"],\n },\n ranking: {\n name: \"ranking\",\n description: \"Quality, engagement, conversion-rate rankings. 'Which creatives need a refresh?'\",\n fields: [\"impressions\", \"spend\", \"ctr\", \"quality_ranking\", \"engagement_rate_ranking\", \"conversion_rate_ranking\"],\n },\n video: {\n name: \"video\",\n description: \"Watch funnel, thruplay cost. 'How are video creatives holding attention?'\",\n fields: [\n \"impressions\",\n \"spend\",\n \"video_play_actions\",\n \"video_p25_watched_actions\",\n \"video_p50_watched_actions\",\n \"video_p75_watched_actions\",\n \"video_p100_watched_actions\",\n \"video_thruplay_watched_actions\",\n \"cost_per_thruplay\",\n ],\n },\n identity: {\n name: \"identity\",\n description: \"Just the names + spend — for cheap roll-up summaries.\",\n fields: [\"spend\", \"impressions\"],\n },\n};\n\nconst IDENTITY_FIELDS_BY_LEVEL: Record<InsightsLevel, string[]> = {\n account: [\"account_id\", \"account_name\", \"account_currency\"],\n campaign: [\"campaign_id\", \"campaign_name\", \"objective\"],\n adset: [\"adset_id\", \"adset_name\", \"campaign_id\", \"campaign_name\"],\n ad: [\"ad_id\", \"ad_name\", \"adset_id\", \"adset_name\", \"campaign_id\", \"campaign_name\"],\n};\n\n/** Compose final field list: intent metrics + level-specific identity fields, deduplicated. */\nexport function composeFields(intent: InsightsIntent, level: InsightsLevel): string[] {\n const intentFields = INSIGHTS_INTENTS[intent].fields;\n const identity = IDENTITY_FIELDS_BY_LEVEL[level];\n const seen = new Set<string>();\n const out: string[] = [];\n for (const f of [...identity, ...intentFields]) {\n if (!seen.has(f)) {\n seen.add(f);\n out.push(f);\n }\n }\n return out;\n}\n\nexport function getIntent(name: string): IntentDefinition | undefined {\n return INSIGHTS_INTENTS[name as InsightsIntent];\n}\n\nexport function listIntents(): IntentDefinition[] {\n return Object.values(INSIGHTS_INTENTS);\n}\n"],"mappings":"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","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/{promoted-tweet-writes-7ELZBXE2.js.map → promoted-tweet-writes-7DGO5Z2G.js.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|