@koda-sl/baker-cli 0.499.0 → 0.500.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/README.md +145 -1
  2. package/dist/{account-CKXOBHXJ.js → account-YSMZB5ZC.js} +4 -4
  3. package/dist/{account-users-HXNP7NYL.js → account-users-XFNFGZB7.js} +4 -4
  4. package/dist/{accounts-LT2SMPUS.js → accounts-ZKY6KPU3.js} +3 -3
  5. package/dist/{accounts-IOBD4PKT.js → accounts-ZYOQSFX5.js} +111 -24
  6. package/dist/accounts-ZYOQSFX5.js.map +1 -0
  7. package/dist/{actions-BFO2AQPM.js → actions-PF62UVHS.js} +18 -18
  8. package/dist/{activecampaign-SDW74BZ7.js → activecampaign-Q7LLZSZ4.js} +3 -3
  9. package/dist/{add-4ECK6KWH.js → add-3GL76LTP.js} +2 -2
  10. package/dist/{add-VTFQI3FC.js → add-GDEQN43J.js} +3 -3
  11. package/dist/{ads-KB5CLOYS.js → ads-HH5YTV4O.js} +5 -5
  12. package/dist/{advertisers-PZOZHGHW.js → advertisers-B5L4LZW2.js} +3 -3
  13. package/dist/{analytics-IRE6WG4V.js → analytics-BBX6CU3S.js} +173 -16
  14. package/dist/analytics-BBX6CU3S.js.map +1 -0
  15. package/dist/{analytics-CHQNRXSI.js → analytics-WLV24XJE.js} +3 -3
  16. package/dist/{assign-L2APE23R.js → assign-BSV765I3.js} +3 -3
  17. package/dist/{audience-size-3X7ARQA3.js → audience-size-KJGSHN45.js} +3 -3
  18. package/dist/{audit-2J323TJN.js → audit-RKDWAPMX.js} +3 -3
  19. package/dist/{autocomplete-UMHLUHGJ.js → autocomplete-BNQXAPDX.js} +3 -3
  20. package/dist/{avatars-C7MXSFPO.js → avatars-BRDNW4ZF.js} +4 -4
  21. package/dist/{bid-pricing-4SZAU7RO.js → bid-pricing-ARPPR45O.js} +4 -4
  22. package/dist/{brand-DVBQIKST.js → brand-JJDZKJSM.js} +2 -2
  23. package/dist/{brief-VDF6APJJ.js → brief-FSVESR44.js} +18 -18
  24. package/dist/{campaign-groups-TYBFAN5H.js → campaign-groups-DRUQ5WBQ.js} +9 -9
  25. package/dist/{campaign-writes-W2JKFKKQ.js → campaign-writes-SDQ7IPHU.js} +3 -3
  26. package/dist/{campaigns-P5AOKGER.js → campaigns-FM2V3RIE.js} +12 -12
  27. package/dist/{campaigns-SR7CBPER.js → campaigns-UDPZIIPK.js} +5 -5
  28. package/dist/{canvas-U6FVXN3L.js → canvas-ZRMKN442.js} +13 -13
  29. package/dist/{capabilities-5HDV5HG5.js → capabilities-HMT6ZBPH.js} +3 -3
  30. package/dist/{chats-EW3FUVQP.js → chats-77MJ5SIT.js} +3 -3
  31. package/dist/{check-OTSGPSLX.js → check-TA3HM2QA.js} +5 -5
  32. package/dist/{chunk-KTT7AHES.js → chunk-2572627P.js} +5 -5
  33. package/dist/chunk-3HFGJFRM.js +387 -0
  34. package/dist/chunk-3HFGJFRM.js.map +1 -0
  35. package/dist/{chunk-CUFS24JZ.js → chunk-3LFPQSSC.js} +3 -3
  36. package/dist/{chunk-3NMSZMDO.js → chunk-42YFMKEU.js} +3 -3
  37. package/dist/{chunk-HWIBNIBI.js → chunk-457XEP63.js} +5 -5
  38. package/dist/{chunk-JO5R2VL6.js → chunk-5KDFRTMY.js} +2 -2
  39. package/dist/{chunk-RLDQDCW3.js → chunk-5MSRVAUZ.js} +205 -1
  40. package/dist/{chunk-RLDQDCW3.js.map → chunk-5MSRVAUZ.js.map} +1 -1
  41. package/dist/{chunk-7EN4X3L2.js → chunk-5YQATOWK.js} +3 -3
  42. package/dist/{chunk-E27TYQOV.js → chunk-6IE7RGIC.js} +2 -2
  43. package/dist/{chunk-MVE26PWE.js → chunk-6QBSUYQZ.js} +2 -2
  44. package/dist/{chunk-YZGG5JFI.js → chunk-AIOICB5Q.js} +2 -2
  45. package/dist/{chunk-7GK32PCR.js → chunk-ASRS37QE.js} +4 -1
  46. package/dist/{chunk-7GK32PCR.js.map → chunk-ASRS37QE.js.map} +1 -1
  47. package/dist/{chunk-H3Q4J7E3.js → chunk-AZH6H4TV.js} +52 -348
  48. package/dist/chunk-AZH6H4TV.js.map +1 -0
  49. package/dist/{chunk-HGWK47AD.js → chunk-C4I5NCMG.js} +2 -2
  50. package/dist/{chunk-KT5HHR4A.js → chunk-DI44SZVP.js} +26 -1
  51. package/dist/chunk-DI44SZVP.js.map +1 -0
  52. package/dist/{chunk-MU3Z55CT.js → chunk-DX46OE4U.js} +2 -2
  53. package/dist/{chunk-DKPRKY5N.js → chunk-FR6RFLFP.js} +6 -6
  54. package/dist/{chunk-YCTOVJSJ.js → chunk-GNKICND2.js} +3 -3
  55. package/dist/{chunk-KYVB64R7.js → chunk-GTNNH3AI.js} +2 -2
  56. package/dist/{chunk-4XIF4ZHU.js → chunk-HITRGZIS.js} +3 -3
  57. package/dist/{chunk-4WGAB5K3.js → chunk-HNS5OURO.js} +2 -2
  58. package/dist/{chunk-LORS3LYQ.js → chunk-I2C4IUDP.js} +3 -3
  59. package/dist/{chunk-XFDHZJ3O.js → chunk-I46D7YXI.js} +2 -2
  60. package/dist/{chunk-XRMZET4B.js → chunk-JCRGGVV5.js} +2 -2
  61. package/dist/{chunk-4WFK3CWM.js → chunk-KMRXPNQA.js} +3 -3
  62. package/dist/{chunk-G7ZEDPJS.js → chunk-LIX4S3ZM.js} +2 -2
  63. package/dist/{chunk-OK3GNRAN.js → chunk-N4CHIGLO.js} +3 -3
  64. package/dist/{chunk-ZFBIKJTV.js → chunk-N7KICNZD.js} +3 -3
  65. package/dist/{chunk-PDLPI4RU.js → chunk-NT3NJVPZ.js} +2 -2
  66. package/dist/{chunk-5U62OLCB.js → chunk-PFGRHBQY.js} +3 -3
  67. package/dist/{chunk-O63C32SS.js → chunk-QY4GBBOV.js} +2 -2
  68. package/dist/{chunk-4MIVJXF7.js → chunk-SP6BZLM4.js} +2 -2
  69. package/dist/{chunk-PXAHSVME.js → chunk-SSJR3FZ5.js} +2 -2
  70. package/dist/{chunk-L4QPMKMS.js → chunk-ST2777KW.js} +2 -2
  71. package/dist/{chunk-HW53ERJX.js → chunk-TESOYFMQ.js} +116 -3
  72. package/dist/chunk-TESOYFMQ.js.map +1 -0
  73. package/dist/{chunk-UTFKMUEP.js → chunk-TGQAEHLA.js} +2 -2
  74. package/dist/{chunk-KMK6SCCT.js → chunk-UC5HG2UF.js} +2 -2
  75. package/dist/{chunk-ULQ323T2.js → chunk-UQWBJNQY.js} +2 -2
  76. package/dist/chunk-UX45LDRM.js +63 -0
  77. package/dist/chunk-UX45LDRM.js.map +1 -0
  78. package/dist/{chunk-M64MKSUO.js → chunk-VAHDJ5CK.js} +2 -2
  79. package/dist/{chunk-JYINPRYR.js → chunk-VM4IQ75N.js} +3 -3
  80. package/dist/{chunk-Y3LWPDK7.js → chunk-VOAWBGRQ.js} +11 -11
  81. package/dist/{chunk-6VE5U5V3.js → chunk-VRP677NO.js} +2 -2
  82. package/dist/{chunk-S545M2WZ.js → chunk-VU5Z2V4S.js} +2 -2
  83. package/dist/{chunk-DB3CF4W3.js → chunk-WAEWKD75.js} +3 -3
  84. package/dist/{chunk-EO5K26MN.js → chunk-X64DJIZG.js} +3 -3
  85. package/dist/{chunk-G6AK5QGY.js → chunk-XYBSTW3P.js} +2 -2
  86. package/dist/{chunk-GAUM75WM.js → chunk-YZYDB77W.js} +11 -11
  87. package/dist/{chunk-D7ARAKE2.js → chunk-ZEGNIP3Y.js} +3 -3
  88. package/dist/{chunk-XTQPBB7H.js → chunk-ZNH45NXP.js} +2 -2
  89. package/dist/{claim-XIC7D3U2.js → claim-CIUU5QEZ.js} +3 -3
  90. package/dist/cli.js +35 -35
  91. package/dist/{companies-DKXFLATC.js → companies-VV5XD3BP.js} +3 -3
  92. package/dist/company-EZH6ZPXD.js +306 -0
  93. package/dist/company-EZH6ZPXD.js.map +1 -0
  94. package/dist/{complete-IHHA7BA3.js → complete-NKYCSYKX.js} +3 -3
  95. package/dist/{connect-XQYH5Z3Q.js → connect-TFH4AFFO.js} +6 -6
  96. package/dist/{conversation-7LRPE7BB.js → conversation-S6CKSNYW.js} +3 -3
  97. package/dist/{conversions-DXOKLXT3.js → conversions-KXYOUSBR.js} +8 -8
  98. package/dist/{create-TAYW7GJG.js → create-BZWX5KLI.js} +3 -3
  99. package/dist/{create-S47RE4XP.js → create-WEIGJ4BF.js} +3 -3
  100. package/dist/{create-QMCKARFM.js → create-XKGV6TEW.js} +4 -4
  101. package/dist/{create-VHKFT7H3.js → create-Y44CPUE4.js} +2 -2
  102. package/dist/{creatives-QTSFNO6M.js → creatives-P5MX2AZL.js} +12 -12
  103. package/dist/{creatives-2XB6XHSR.js → creatives-WFDFLRQV.js} +9 -9
  104. package/dist/{credentials-7PIADYYN.js → credentials-5EOUA5VL.js} +3 -3
  105. package/dist/{critique-LA45SBLU.js → critique-4ETQZBQG.js} +3 -3
  106. package/dist/{critique-I27WON42.js → critique-OYUMBZ4Y.js} +9 -9
  107. package/dist/{crm-55C3E46K.js → crm-6UU3GFQU.js} +4 -4
  108. package/dist/{crm-FVGGMG7U.js → crm-UGP57XSN.js} +8 -6
  109. package/dist/{crm-FVGGMG7U.js.map → crm-UGP57XSN.js.map} +1 -1
  110. package/dist/{customers-XZHBRDQQ.js → customers-RT75T4ZB.js} +5 -5
  111. package/dist/{delete-GL4OMCDS.js → delete-37IIUYQU.js} +2 -2
  112. package/dist/{delete-MHLZD4IH.js → delete-E575BF73.js} +3 -3
  113. package/dist/{delete-4GMTTYAG.js → delete-GQYFBLMP.js} +4 -4
  114. package/dist/{demographics-A3LFPWWB.js → demographics-3LIUI2SM.js} +3 -3
  115. package/dist/{discard-R62Z2GRI.js → discard-7OARQRS7.js} +3 -3
  116. package/dist/{domain-FP3X4RPV.js → domain-ZRWUGUOO.js} +3 -3
  117. package/dist/{draft-ZQIIOMPK.js → draft-CVSGNA4Z.js} +4 -4
  118. package/dist/{draft-BVEDTUA4.js → draft-SNBK2KY6.js} +3 -3
  119. package/dist/{draft-6G42C54W.js → draft-UHNTXGY7.js} +3 -3
  120. package/dist/{experiments-BEI7TSXE.js → experiments-IGMLMSLX.js} +4 -4
  121. package/dist/{facets-ORUDWFIR.js → facets-AURXB76V.js} +3 -3
  122. package/dist/{feedback-7DLHRUIT.js → feedback-UDTPDCMS.js} +12 -12
  123. package/dist/{feedback-record-D3YQATBI.js → feedback-record-Z34XJF6K.js} +15 -15
  124. package/dist/{fetch-BOLHAMIY.js → fetch-GR3FXFXL.js} +3 -3
  125. package/dist/{fit-SXBVVQQS.js → fit-SLEEJWVR.js} +5 -5
  126. package/dist/{flows-4BPONEMG.js → flows-NAFSRRY2.js} +10 -10
  127. package/dist/{fonts-ILG2LCR7.js → fonts-POBAXXBC.js} +5 -5
  128. package/dist/{forecast-BVJNW22S.js → forecast-RN6VUKLS.js} +4 -4
  129. package/dist/{funnel-6FWZR37B.js → funnel-O3XOHYI3.js} +5 -5
  130. package/dist/{get-AO2SBDZ7.js → get-2MC5LYXY.js} +4 -4
  131. package/dist/{get-DOADISOP.js → get-UQ43T25B.js} +3 -3
  132. package/dist/{google-BR4JIK4N.js → google-ZZCSZR63.js} +2 -2
  133. package/dist/{google-ads-MGKOFGLF.js → google-ads-7DJ5STPS.js} +3 -3
  134. package/dist/{history-EER4TMPN.js → history-QRM76S4Q.js} +3 -3
  135. package/dist/{hubspot-RJQLUHCP.js → hubspot-HVZNR2IR.js} +7 -7
  136. package/dist/{ideas-6G2XB2A7.js → ideas-S2UXZSFB.js} +4 -4
  137. package/dist/{images-ESOTRMAR.js → images-FYSBKRU6.js} +4 -4
  138. package/dist/{ingest-HQPM4IXX.js → ingest-37F3NOLA.js} +3 -3
  139. package/dist/{ingest-QCZ2T3HB.js → ingest-YQINQGG7.js} +2 -2
  140. package/dist/{inspect-CS5CWS63.js → inspect-RVU5RDCE.js} +3 -3
  141. package/dist/{inspiration-CW4ADEPT.js → inspiration-QJNUFRNH.js} +1 -1
  142. package/dist/{keyword-metrics-SRLCDGCB.js → keyword-metrics-7XZXPSQO.js} +3 -3
  143. package/dist/{keywords-for-site-NIXJTFHX.js → keywords-for-site-A43QNTLD.js} +3 -3
  144. package/dist/{landing-GEGH44N7.js → landing-NFDGD3PQ.js} +3 -3
  145. package/dist/{leads-DN3YPCWV.js → leads-UHJS7VNH.js} +3 -3
  146. package/dist/{learn-NND26TEZ.js → learn-POJ5ORBK.js} +7 -7
  147. package/dist/{line-item-writes-VXQMZR4N.js → line-item-writes-K4BSUEIJ.js} +3 -3
  148. package/dist/{line-items-JGR3FTBD.js → line-items-DLLEPPIN.js} +5 -5
  149. package/dist/{link-I76EC43Z.js → link-L2KC5EIZ.js} +3 -3
  150. package/dist/{linkedin-Q2BXWGLB.js → linkedin-A4U6IGZX.js} +29 -29
  151. package/dist/linkedin-person-DSLAOKKN.js +137 -0
  152. package/dist/linkedin-person-DSLAOKKN.js.map +1 -0
  153. package/dist/{list-DKWE4K6V.js → list-JKB33W6K.js} +3 -3
  154. package/dist/{list-ADHUKLAD.js → list-PHWCEYCP.js} +4 -4
  155. package/dist/{list-BQ5SNHNQ.js → list-Y4V276ND.js} +2 -2
  156. package/dist/{log-FS62QUM3.js → log-O3I5JZCM.js} +3 -3
  157. package/dist/{lookup-7RVOMACQ.js → lookup-LWJMDEEL.js} +4 -4
  158. package/dist/{make-5I42FGDO.js → make-GLGNEOK6.js} +27 -27
  159. package/dist/{map-JDJWCS4P.js → map-D3EH7S2T.js} +4 -4
  160. package/dist/{mcp-C2MWMHHE.js → mcp-R4ZTYQW7.js} +2 -2
  161. package/dist/{media-sources-5ORQD73O.js → media-sources-TVGS34TE.js} +2 -2
  162. package/dist/{members-JKTEP3DI.js → members-OBA4MXAQ.js} +3 -3
  163. package/dist/{normalize-3XCYFEVP.js → normalize-HU37AR7G.js} +3 -3
  164. package/dist/{options-EJR2SXSU.js → options-HLMTCEDW.js} +6 -6
  165. package/dist/{organization-RQWXAP54.js → organization-6ZVXU5JC.js} +3 -3
  166. package/dist/{performance-DLSLM6AF.js → performance-PIB2AXKO.js} +4 -4
  167. package/dist/{performance-4S66FDTV.js → performance-V5WZCJYT.js} +4 -4
  168. package/dist/{plan-DKBAIKX5.js → plan-O2TTEUIW.js} +3 -3
  169. package/dist/{posts-YCSPJOIZ.js → posts-QAMZRCRY.js} +1 -1
  170. package/dist/{promoted-tweet-writes-FDTWY3QV.js → promoted-tweet-writes-E4EJZM76.js} +3 -3
  171. package/dist/{promoted-tweets-WW344XNC.js → promoted-tweets-M44AIHSQ.js} +3 -3
  172. package/dist/{publish-NBLDZ2XR.js → publish-H7UGB5IP.js} +3 -3
  173. package/dist/{questionnaire-K3A4UUIC.js → questionnaire-VE42SW77.js} +3 -3
  174. package/dist/{reddit-HB2HVXTF.js → reddit-KCPU4RW4.js} +4 -4
  175. package/dist/{refresh-WNGERQQX.js → refresh-WTSCSEQE.js} +2 -2
  176. package/dist/{release-SBWWWKS5.js → release-SVOT7QVX.js} +3 -3
  177. package/dist/{remove-2OCCFOLM.js → remove-TY3AF5K5.js} +2 -2
  178. package/dist/{reopen-OLC5N2DP.js → reopen-WCUZMTYE.js} +3 -3
  179. package/dist/{rerun-5RR5S6ZA.js → rerun-FKYNFNSI.js} +15 -15
  180. package/dist/{research-AXFZWZB3.js → research-N2RWKIRQ.js} +20 -10
  181. package/dist/research-N2RWKIRQ.js.map +1 -0
  182. package/dist/{research-ZJQHXOA4.js → research-X6ITCPFY.js} +2 -2
  183. package/dist/{reset-GI4KMBOE.js → reset-O77UZD6Z.js} +2 -2
  184. package/dist/{reset-W4QDDUJ6.js → reset-TDAMB4BO.js} +2 -2
  185. package/dist/{resolve-CLA3URVJ.js → resolve-NC4MLM42.js} +3 -3
  186. package/dist/{retry-HSS7M5JC.js → retry-QNXWTHOL.js} +2 -2
  187. package/dist/{retry-5QIHXNZH.js → retry-XVUWY7ZH.js} +2 -2
  188. package/dist/{revenue-QONCHT4J.js → revenue-D3B4DMBC.js} +4 -4
  189. package/dist/{rules-DGN24SWA.js → rules-Y3BH7SO5.js} +5 -5
  190. package/dist/{rules-add-436Y2CWL.js → rules-add-GSPFBNYU.js} +7 -7
  191. package/dist/{run-XBZMGAWD.js → run-G6XAJOJ7.js} +4 -4
  192. package/dist/{run-I5Q42M5Q.js → run-ON72O5YS.js} +15 -15
  193. package/dist/{scaffold-ad-DUJO3TKG.js → scaffold-ad-YF6FUEJZ.js} +13 -13
  194. package/dist/{scaffold-static-ad-UMXD5JH7.js → scaffold-static-ad-C2C6NC6Y.js} +36 -36
  195. package/dist/{scaffold-video-YJ4A7SLO.js → scaffold-video-BUOCGJNH.js} +13 -13
  196. package/dist/{schedule-P3442SHR.js → schedule-7EQLO22N.js} +2 -2
  197. package/dist/{scheduled-agents-J7HFCJMZ.js → scheduled-agents-4WCPCMYC.js} +10 -10
  198. package/dist/{schema-N44JKNJ3.js → schema-6Y3IXFDC.js} +2 -2
  199. package/dist/{schema-DPU5NCWO.js → schema-KM5MFQUQ.js} +4 -4
  200. package/dist/{search-FZUJCC5F.js → search-YEYQDDLA.js} +2 -2
  201. package/dist/{select-5MMLVDG7.js → select-QSGZYOFV.js} +11 -11
  202. package/dist/{sends-LEESHU62.js → sends-OLVQGOAE.js} +3 -3
  203. package/dist/{set-prompt-SQGQTJVP.js → set-prompt-4OTBGPDQ.js} +9 -9
  204. package/dist/{setup-links-QF6FIS6N.js → setup-links-E2GARNTU.js} +3 -3
  205. package/dist/{shopify-OXUYVDND.js → shopify-GT6PJ77M.js} +3 -3
  206. package/dist/{site-YVZQSAIW.js → site-TMF2P7JR.js} +4 -4
  207. package/dist/{sources-NWM6SI4P.js → sources-47LE2UCO.js} +8 -8
  208. package/dist/{sources-3IVHGGTH.js → sources-H6XX2WBO.js} +6 -6
  209. package/dist/{stale-ZBULRUS7.js → stale-JTX5U752.js} +10 -10
  210. package/dist/{status-RUXOUOPA.js → status-3X3MECDY.js} +3 -3
  211. package/dist/{studio-LYHZFTA3.js → studio-Z4AJRIGP.js} +1 -1
  212. package/dist/{sync-XKRY2D2J.js → sync-HWTVXGOT.js} +2 -2
  213. package/dist/{sync-definition-HVHXWEDR.js → sync-definition-CAPYMYIS.js} +10 -10
  214. package/dist/{tag-manager-F7PVTDBB.js → tag-manager-TU3FBSYO.js} +1 -1
  215. package/dist/{tags-K5FVDHPH.js → tags-75QCVBQB.js} +4 -4
  216. package/dist/{tags-WPPGJN2C.js → tags-7BT63PUE.js} +3 -3
  217. package/dist/{tags-PBUZJQHN.js → tags-7K5RSCHI.js} +3 -3
  218. package/dist/{tags-6PQ37XO5.js → tags-IELH7YAY.js} +3 -3
  219. package/dist/{tags-3U5K3EVI.js → tags-UPA4KKQZ.js} +2 -2
  220. package/dist/{targeting-criteria-OZ74V2DC.js → targeting-criteria-HJQ2FW6E.js} +3 -3
  221. package/dist/{targets-Y4I65HD2.js → targets-CBZ37ALP.js} +4 -4
  222. package/dist/{testimonials-XNBDJHEN.js → testimonials-4W6HI2PQ.js} +6 -6
  223. package/dist/{top-companies-KMY4LVNU.js → top-companies-CW77UVK3.js} +3 -3
  224. package/dist/transcript-FA2TOVPP.js +163 -0
  225. package/dist/transcript-FA2TOVPP.js.map +1 -0
  226. package/dist/{translate-QOS2PQQF.js → translate-7W7O6W3J.js} +17 -17
  227. package/dist/{triggers-54BIQKZY.js → triggers-MCP6IGTX.js} +4 -4
  228. package/dist/{unlink-QB2XWRNT.js → unlink-RK5V4QO2.js} +3 -3
  229. package/dist/{unstage-2TF3RJND.js → unstage-5JTGVEB7.js} +4 -4
  230. package/dist/{unstage-GUQCHRDA.js → unstage-QFVL7AZ4.js} +3 -3
  231. package/dist/{update-INO3OXFQ.js → update-5AAMF5JP.js} +4 -4
  232. package/dist/{update-ITHM3F2E.js → update-G2KB3RIW.js} +3 -3
  233. package/dist/{update-74SGZ2ZZ.js → update-LCE2QN53.js} +3 -3
  234. package/dist/{update-WGOPKNRC.js → update-U2ETZHVU.js} +2 -2
  235. package/dist/{upload-VZZJ2GEQ.js → upload-ORFEAADP.js} +3 -3
  236. package/dist/{url-options-YT6CT62P.js → url-options-6U7QCTAY.js} +2 -2
  237. package/dist/{url-params-PPPS5PC7.js → url-params-KQIUVVGX.js} +3 -3
  238. package/dist/{validate-VVLREMQO.js → validate-BF656HWM.js} +11 -11
  239. package/dist/{videos-ILTQAHWU.js → videos-66FB7BPY.js} +5 -5
  240. package/dist/{viewer-check-2XRID6KP.js → viewer-check-THBLTL2G.js} +6 -6
  241. package/dist/{web-JEBZUHD6.js → web-2EKHRXCS.js} +3 -3
  242. package/dist/{winning-ads-JZ2DYSYA.js → winning-ads-LW5SMMLB.js} +3 -3
  243. package/dist/{write-commands-IRFDR3TN.js → write-commands-Z556OHHH.js} +4 -4
  244. package/dist/{x-KB5FJNQ2.js → x-F5CSO2RN.js} +6 -6
  245. package/package.json +1 -1
  246. package/dist/accounts-IOBD4PKT.js.map +0 -1
  247. package/dist/analytics-IRE6WG4V.js.map +0 -1
  248. package/dist/chunk-H3Q4J7E3.js.map +0 -1
  249. package/dist/chunk-HW53ERJX.js.map +0 -1
  250. package/dist/chunk-KT5HHR4A.js.map +0 -1
  251. package/dist/research-AXFZWZB3.js.map +0 -1
  252. /package/dist/{account-CKXOBHXJ.js.map → account-YSMZB5ZC.js.map} +0 -0
  253. /package/dist/{account-users-HXNP7NYL.js.map → account-users-XFNFGZB7.js.map} +0 -0
  254. /package/dist/{accounts-LT2SMPUS.js.map → accounts-ZKY6KPU3.js.map} +0 -0
  255. /package/dist/{actions-BFO2AQPM.js.map → actions-PF62UVHS.js.map} +0 -0
  256. /package/dist/{activecampaign-SDW74BZ7.js.map → activecampaign-Q7LLZSZ4.js.map} +0 -0
  257. /package/dist/{add-4ECK6KWH.js.map → add-3GL76LTP.js.map} +0 -0
  258. /package/dist/{add-VTFQI3FC.js.map → add-GDEQN43J.js.map} +0 -0
  259. /package/dist/{ads-KB5CLOYS.js.map → ads-HH5YTV4O.js.map} +0 -0
  260. /package/dist/{advertisers-PZOZHGHW.js.map → advertisers-B5L4LZW2.js.map} +0 -0
  261. /package/dist/{analytics-CHQNRXSI.js.map → analytics-WLV24XJE.js.map} +0 -0
  262. /package/dist/{assign-L2APE23R.js.map → assign-BSV765I3.js.map} +0 -0
  263. /package/dist/{audience-size-3X7ARQA3.js.map → audience-size-KJGSHN45.js.map} +0 -0
  264. /package/dist/{audit-2J323TJN.js.map → audit-RKDWAPMX.js.map} +0 -0
  265. /package/dist/{autocomplete-UMHLUHGJ.js.map → autocomplete-BNQXAPDX.js.map} +0 -0
  266. /package/dist/{avatars-C7MXSFPO.js.map → avatars-BRDNW4ZF.js.map} +0 -0
  267. /package/dist/{bid-pricing-4SZAU7RO.js.map → bid-pricing-ARPPR45O.js.map} +0 -0
  268. /package/dist/{brand-DVBQIKST.js.map → brand-JJDZKJSM.js.map} +0 -0
  269. /package/dist/{brief-VDF6APJJ.js.map → brief-FSVESR44.js.map} +0 -0
  270. /package/dist/{campaign-groups-TYBFAN5H.js.map → campaign-groups-DRUQ5WBQ.js.map} +0 -0
  271. /package/dist/{campaign-writes-W2JKFKKQ.js.map → campaign-writes-SDQ7IPHU.js.map} +0 -0
  272. /package/dist/{campaigns-P5AOKGER.js.map → campaigns-FM2V3RIE.js.map} +0 -0
  273. /package/dist/{campaigns-SR7CBPER.js.map → campaigns-UDPZIIPK.js.map} +0 -0
  274. /package/dist/{canvas-U6FVXN3L.js.map → canvas-ZRMKN442.js.map} +0 -0
  275. /package/dist/{capabilities-5HDV5HG5.js.map → capabilities-HMT6ZBPH.js.map} +0 -0
  276. /package/dist/{chats-EW3FUVQP.js.map → chats-77MJ5SIT.js.map} +0 -0
  277. /package/dist/{check-OTSGPSLX.js.map → check-TA3HM2QA.js.map} +0 -0
  278. /package/dist/{chunk-KTT7AHES.js.map → chunk-2572627P.js.map} +0 -0
  279. /package/dist/{chunk-CUFS24JZ.js.map → chunk-3LFPQSSC.js.map} +0 -0
  280. /package/dist/{chunk-3NMSZMDO.js.map → chunk-42YFMKEU.js.map} +0 -0
  281. /package/dist/{chunk-HWIBNIBI.js.map → chunk-457XEP63.js.map} +0 -0
  282. /package/dist/{chunk-JO5R2VL6.js.map → chunk-5KDFRTMY.js.map} +0 -0
  283. /package/dist/{chunk-7EN4X3L2.js.map → chunk-5YQATOWK.js.map} +0 -0
  284. /package/dist/{chunk-E27TYQOV.js.map → chunk-6IE7RGIC.js.map} +0 -0
  285. /package/dist/{chunk-MVE26PWE.js.map → chunk-6QBSUYQZ.js.map} +0 -0
  286. /package/dist/{chunk-YZGG5JFI.js.map → chunk-AIOICB5Q.js.map} +0 -0
  287. /package/dist/{chunk-HGWK47AD.js.map → chunk-C4I5NCMG.js.map} +0 -0
  288. /package/dist/{chunk-MU3Z55CT.js.map → chunk-DX46OE4U.js.map} +0 -0
  289. /package/dist/{chunk-DKPRKY5N.js.map → chunk-FR6RFLFP.js.map} +0 -0
  290. /package/dist/{chunk-YCTOVJSJ.js.map → chunk-GNKICND2.js.map} +0 -0
  291. /package/dist/{chunk-KYVB64R7.js.map → chunk-GTNNH3AI.js.map} +0 -0
  292. /package/dist/{chunk-4XIF4ZHU.js.map → chunk-HITRGZIS.js.map} +0 -0
  293. /package/dist/{chunk-4WGAB5K3.js.map → chunk-HNS5OURO.js.map} +0 -0
  294. /package/dist/{chunk-LORS3LYQ.js.map → chunk-I2C4IUDP.js.map} +0 -0
  295. /package/dist/{chunk-XFDHZJ3O.js.map → chunk-I46D7YXI.js.map} +0 -0
  296. /package/dist/{chunk-XRMZET4B.js.map → chunk-JCRGGVV5.js.map} +0 -0
  297. /package/dist/{chunk-4WFK3CWM.js.map → chunk-KMRXPNQA.js.map} +0 -0
  298. /package/dist/{chunk-G7ZEDPJS.js.map → chunk-LIX4S3ZM.js.map} +0 -0
  299. /package/dist/{chunk-OK3GNRAN.js.map → chunk-N4CHIGLO.js.map} +0 -0
  300. /package/dist/{chunk-ZFBIKJTV.js.map → chunk-N7KICNZD.js.map} +0 -0
  301. /package/dist/{chunk-PDLPI4RU.js.map → chunk-NT3NJVPZ.js.map} +0 -0
  302. /package/dist/{chunk-5U62OLCB.js.map → chunk-PFGRHBQY.js.map} +0 -0
  303. /package/dist/{chunk-O63C32SS.js.map → chunk-QY4GBBOV.js.map} +0 -0
  304. /package/dist/{chunk-4MIVJXF7.js.map → chunk-SP6BZLM4.js.map} +0 -0
  305. /package/dist/{chunk-PXAHSVME.js.map → chunk-SSJR3FZ5.js.map} +0 -0
  306. /package/dist/{chunk-L4QPMKMS.js.map → chunk-ST2777KW.js.map} +0 -0
  307. /package/dist/{chunk-UTFKMUEP.js.map → chunk-TGQAEHLA.js.map} +0 -0
  308. /package/dist/{chunk-KMK6SCCT.js.map → chunk-UC5HG2UF.js.map} +0 -0
  309. /package/dist/{chunk-ULQ323T2.js.map → chunk-UQWBJNQY.js.map} +0 -0
  310. /package/dist/{chunk-M64MKSUO.js.map → chunk-VAHDJ5CK.js.map} +0 -0
  311. /package/dist/{chunk-JYINPRYR.js.map → chunk-VM4IQ75N.js.map} +0 -0
  312. /package/dist/{chunk-Y3LWPDK7.js.map → chunk-VOAWBGRQ.js.map} +0 -0
  313. /package/dist/{chunk-6VE5U5V3.js.map → chunk-VRP677NO.js.map} +0 -0
  314. /package/dist/{chunk-S545M2WZ.js.map → chunk-VU5Z2V4S.js.map} +0 -0
  315. /package/dist/{chunk-DB3CF4W3.js.map → chunk-WAEWKD75.js.map} +0 -0
  316. /package/dist/{chunk-EO5K26MN.js.map → chunk-X64DJIZG.js.map} +0 -0
  317. /package/dist/{chunk-G6AK5QGY.js.map → chunk-XYBSTW3P.js.map} +0 -0
  318. /package/dist/{chunk-GAUM75WM.js.map → chunk-YZYDB77W.js.map} +0 -0
  319. /package/dist/{chunk-D7ARAKE2.js.map → chunk-ZEGNIP3Y.js.map} +0 -0
  320. /package/dist/{chunk-XTQPBB7H.js.map → chunk-ZNH45NXP.js.map} +0 -0
  321. /package/dist/{claim-XIC7D3U2.js.map → claim-CIUU5QEZ.js.map} +0 -0
  322. /package/dist/{companies-DKXFLATC.js.map → companies-VV5XD3BP.js.map} +0 -0
  323. /package/dist/{complete-IHHA7BA3.js.map → complete-NKYCSYKX.js.map} +0 -0
  324. /package/dist/{connect-XQYH5Z3Q.js.map → connect-TFH4AFFO.js.map} +0 -0
  325. /package/dist/{conversation-7LRPE7BB.js.map → conversation-S6CKSNYW.js.map} +0 -0
  326. /package/dist/{conversions-DXOKLXT3.js.map → conversions-KXYOUSBR.js.map} +0 -0
  327. /package/dist/{create-TAYW7GJG.js.map → create-BZWX5KLI.js.map} +0 -0
  328. /package/dist/{create-S47RE4XP.js.map → create-WEIGJ4BF.js.map} +0 -0
  329. /package/dist/{create-QMCKARFM.js.map → create-XKGV6TEW.js.map} +0 -0
  330. /package/dist/{create-VHKFT7H3.js.map → create-Y44CPUE4.js.map} +0 -0
  331. /package/dist/{creatives-QTSFNO6M.js.map → creatives-P5MX2AZL.js.map} +0 -0
  332. /package/dist/{creatives-2XB6XHSR.js.map → creatives-WFDFLRQV.js.map} +0 -0
  333. /package/dist/{credentials-7PIADYYN.js.map → credentials-5EOUA5VL.js.map} +0 -0
  334. /package/dist/{critique-LA45SBLU.js.map → critique-4ETQZBQG.js.map} +0 -0
  335. /package/dist/{critique-I27WON42.js.map → critique-OYUMBZ4Y.js.map} +0 -0
  336. /package/dist/{crm-55C3E46K.js.map → crm-6UU3GFQU.js.map} +0 -0
  337. /package/dist/{customers-XZHBRDQQ.js.map → customers-RT75T4ZB.js.map} +0 -0
  338. /package/dist/{delete-GL4OMCDS.js.map → delete-37IIUYQU.js.map} +0 -0
  339. /package/dist/{delete-MHLZD4IH.js.map → delete-E575BF73.js.map} +0 -0
  340. /package/dist/{delete-4GMTTYAG.js.map → delete-GQYFBLMP.js.map} +0 -0
  341. /package/dist/{demographics-A3LFPWWB.js.map → demographics-3LIUI2SM.js.map} +0 -0
  342. /package/dist/{discard-R62Z2GRI.js.map → discard-7OARQRS7.js.map} +0 -0
  343. /package/dist/{domain-FP3X4RPV.js.map → domain-ZRWUGUOO.js.map} +0 -0
  344. /package/dist/{draft-ZQIIOMPK.js.map → draft-CVSGNA4Z.js.map} +0 -0
  345. /package/dist/{draft-BVEDTUA4.js.map → draft-SNBK2KY6.js.map} +0 -0
  346. /package/dist/{draft-6G42C54W.js.map → draft-UHNTXGY7.js.map} +0 -0
  347. /package/dist/{experiments-BEI7TSXE.js.map → experiments-IGMLMSLX.js.map} +0 -0
  348. /package/dist/{facets-ORUDWFIR.js.map → facets-AURXB76V.js.map} +0 -0
  349. /package/dist/{feedback-7DLHRUIT.js.map → feedback-UDTPDCMS.js.map} +0 -0
  350. /package/dist/{feedback-record-D3YQATBI.js.map → feedback-record-Z34XJF6K.js.map} +0 -0
  351. /package/dist/{fetch-BOLHAMIY.js.map → fetch-GR3FXFXL.js.map} +0 -0
  352. /package/dist/{fit-SXBVVQQS.js.map → fit-SLEEJWVR.js.map} +0 -0
  353. /package/dist/{flows-4BPONEMG.js.map → flows-NAFSRRY2.js.map} +0 -0
  354. /package/dist/{fonts-ILG2LCR7.js.map → fonts-POBAXXBC.js.map} +0 -0
  355. /package/dist/{forecast-BVJNW22S.js.map → forecast-RN6VUKLS.js.map} +0 -0
  356. /package/dist/{funnel-6FWZR37B.js.map → funnel-O3XOHYI3.js.map} +0 -0
  357. /package/dist/{get-AO2SBDZ7.js.map → get-2MC5LYXY.js.map} +0 -0
  358. /package/dist/{get-DOADISOP.js.map → get-UQ43T25B.js.map} +0 -0
  359. /package/dist/{google-BR4JIK4N.js.map → google-ZZCSZR63.js.map} +0 -0
  360. /package/dist/{google-ads-MGKOFGLF.js.map → google-ads-7DJ5STPS.js.map} +0 -0
  361. /package/dist/{history-EER4TMPN.js.map → history-QRM76S4Q.js.map} +0 -0
  362. /package/dist/{hubspot-RJQLUHCP.js.map → hubspot-HVZNR2IR.js.map} +0 -0
  363. /package/dist/{ideas-6G2XB2A7.js.map → ideas-S2UXZSFB.js.map} +0 -0
  364. /package/dist/{images-ESOTRMAR.js.map → images-FYSBKRU6.js.map} +0 -0
  365. /package/dist/{ingest-HQPM4IXX.js.map → ingest-37F3NOLA.js.map} +0 -0
  366. /package/dist/{ingest-QCZ2T3HB.js.map → ingest-YQINQGG7.js.map} +0 -0
  367. /package/dist/{inspect-CS5CWS63.js.map → inspect-RVU5RDCE.js.map} +0 -0
  368. /package/dist/{inspiration-CW4ADEPT.js.map → inspiration-QJNUFRNH.js.map} +0 -0
  369. /package/dist/{keyword-metrics-SRLCDGCB.js.map → keyword-metrics-7XZXPSQO.js.map} +0 -0
  370. /package/dist/{keywords-for-site-NIXJTFHX.js.map → keywords-for-site-A43QNTLD.js.map} +0 -0
  371. /package/dist/{landing-GEGH44N7.js.map → landing-NFDGD3PQ.js.map} +0 -0
  372. /package/dist/{leads-DN3YPCWV.js.map → leads-UHJS7VNH.js.map} +0 -0
  373. /package/dist/{learn-NND26TEZ.js.map → learn-POJ5ORBK.js.map} +0 -0
  374. /package/dist/{line-item-writes-VXQMZR4N.js.map → line-item-writes-K4BSUEIJ.js.map} +0 -0
  375. /package/dist/{line-items-JGR3FTBD.js.map → line-items-DLLEPPIN.js.map} +0 -0
  376. /package/dist/{link-I76EC43Z.js.map → link-L2KC5EIZ.js.map} +0 -0
  377. /package/dist/{linkedin-Q2BXWGLB.js.map → linkedin-A4U6IGZX.js.map} +0 -0
  378. /package/dist/{list-DKWE4K6V.js.map → list-JKB33W6K.js.map} +0 -0
  379. /package/dist/{list-ADHUKLAD.js.map → list-PHWCEYCP.js.map} +0 -0
  380. /package/dist/{list-BQ5SNHNQ.js.map → list-Y4V276ND.js.map} +0 -0
  381. /package/dist/{log-FS62QUM3.js.map → log-O3I5JZCM.js.map} +0 -0
  382. /package/dist/{lookup-7RVOMACQ.js.map → lookup-LWJMDEEL.js.map} +0 -0
  383. /package/dist/{make-5I42FGDO.js.map → make-GLGNEOK6.js.map} +0 -0
  384. /package/dist/{map-JDJWCS4P.js.map → map-D3EH7S2T.js.map} +0 -0
  385. /package/dist/{mcp-C2MWMHHE.js.map → mcp-R4ZTYQW7.js.map} +0 -0
  386. /package/dist/{media-sources-5ORQD73O.js.map → media-sources-TVGS34TE.js.map} +0 -0
  387. /package/dist/{members-JKTEP3DI.js.map → members-OBA4MXAQ.js.map} +0 -0
  388. /package/dist/{normalize-3XCYFEVP.js.map → normalize-HU37AR7G.js.map} +0 -0
  389. /package/dist/{options-EJR2SXSU.js.map → options-HLMTCEDW.js.map} +0 -0
  390. /package/dist/{organization-RQWXAP54.js.map → organization-6ZVXU5JC.js.map} +0 -0
  391. /package/dist/{performance-DLSLM6AF.js.map → performance-PIB2AXKO.js.map} +0 -0
  392. /package/dist/{performance-4S66FDTV.js.map → performance-V5WZCJYT.js.map} +0 -0
  393. /package/dist/{plan-DKBAIKX5.js.map → plan-O2TTEUIW.js.map} +0 -0
  394. /package/dist/{posts-YCSPJOIZ.js.map → posts-QAMZRCRY.js.map} +0 -0
  395. /package/dist/{promoted-tweet-writes-FDTWY3QV.js.map → promoted-tweet-writes-E4EJZM76.js.map} +0 -0
  396. /package/dist/{promoted-tweets-WW344XNC.js.map → promoted-tweets-M44AIHSQ.js.map} +0 -0
  397. /package/dist/{publish-NBLDZ2XR.js.map → publish-H7UGB5IP.js.map} +0 -0
  398. /package/dist/{questionnaire-K3A4UUIC.js.map → questionnaire-VE42SW77.js.map} +0 -0
  399. /package/dist/{reddit-HB2HVXTF.js.map → reddit-KCPU4RW4.js.map} +0 -0
  400. /package/dist/{refresh-WNGERQQX.js.map → refresh-WTSCSEQE.js.map} +0 -0
  401. /package/dist/{release-SBWWWKS5.js.map → release-SVOT7QVX.js.map} +0 -0
  402. /package/dist/{remove-2OCCFOLM.js.map → remove-TY3AF5K5.js.map} +0 -0
  403. /package/dist/{reopen-OLC5N2DP.js.map → reopen-WCUZMTYE.js.map} +0 -0
  404. /package/dist/{rerun-5RR5S6ZA.js.map → rerun-FKYNFNSI.js.map} +0 -0
  405. /package/dist/{research-ZJQHXOA4.js.map → research-X6ITCPFY.js.map} +0 -0
  406. /package/dist/{reset-GI4KMBOE.js.map → reset-O77UZD6Z.js.map} +0 -0
  407. /package/dist/{reset-W4QDDUJ6.js.map → reset-TDAMB4BO.js.map} +0 -0
  408. /package/dist/{resolve-CLA3URVJ.js.map → resolve-NC4MLM42.js.map} +0 -0
  409. /package/dist/{retry-HSS7M5JC.js.map → retry-QNXWTHOL.js.map} +0 -0
  410. /package/dist/{retry-5QIHXNZH.js.map → retry-XVUWY7ZH.js.map} +0 -0
  411. /package/dist/{revenue-QONCHT4J.js.map → revenue-D3B4DMBC.js.map} +0 -0
  412. /package/dist/{rules-DGN24SWA.js.map → rules-Y3BH7SO5.js.map} +0 -0
  413. /package/dist/{rules-add-436Y2CWL.js.map → rules-add-GSPFBNYU.js.map} +0 -0
  414. /package/dist/{run-XBZMGAWD.js.map → run-G6XAJOJ7.js.map} +0 -0
  415. /package/dist/{run-I5Q42M5Q.js.map → run-ON72O5YS.js.map} +0 -0
  416. /package/dist/{scaffold-ad-DUJO3TKG.js.map → scaffold-ad-YF6FUEJZ.js.map} +0 -0
  417. /package/dist/{scaffold-static-ad-UMXD5JH7.js.map → scaffold-static-ad-C2C6NC6Y.js.map} +0 -0
  418. /package/dist/{scaffold-video-YJ4A7SLO.js.map → scaffold-video-BUOCGJNH.js.map} +0 -0
  419. /package/dist/{schedule-P3442SHR.js.map → schedule-7EQLO22N.js.map} +0 -0
  420. /package/dist/{scheduled-agents-J7HFCJMZ.js.map → scheduled-agents-4WCPCMYC.js.map} +0 -0
  421. /package/dist/{schema-N44JKNJ3.js.map → schema-6Y3IXFDC.js.map} +0 -0
  422. /package/dist/{schema-DPU5NCWO.js.map → schema-KM5MFQUQ.js.map} +0 -0
  423. /package/dist/{search-FZUJCC5F.js.map → search-YEYQDDLA.js.map} +0 -0
  424. /package/dist/{select-5MMLVDG7.js.map → select-QSGZYOFV.js.map} +0 -0
  425. /package/dist/{sends-LEESHU62.js.map → sends-OLVQGOAE.js.map} +0 -0
  426. /package/dist/{set-prompt-SQGQTJVP.js.map → set-prompt-4OTBGPDQ.js.map} +0 -0
  427. /package/dist/{setup-links-QF6FIS6N.js.map → setup-links-E2GARNTU.js.map} +0 -0
  428. /package/dist/{shopify-OXUYVDND.js.map → shopify-GT6PJ77M.js.map} +0 -0
  429. /package/dist/{site-YVZQSAIW.js.map → site-TMF2P7JR.js.map} +0 -0
  430. /package/dist/{sources-NWM6SI4P.js.map → sources-47LE2UCO.js.map} +0 -0
  431. /package/dist/{sources-3IVHGGTH.js.map → sources-H6XX2WBO.js.map} +0 -0
  432. /package/dist/{stale-ZBULRUS7.js.map → stale-JTX5U752.js.map} +0 -0
  433. /package/dist/{status-RUXOUOPA.js.map → status-3X3MECDY.js.map} +0 -0
  434. /package/dist/{studio-LYHZFTA3.js.map → studio-Z4AJRIGP.js.map} +0 -0
  435. /package/dist/{sync-XKRY2D2J.js.map → sync-HWTVXGOT.js.map} +0 -0
  436. /package/dist/{sync-definition-HVHXWEDR.js.map → sync-definition-CAPYMYIS.js.map} +0 -0
  437. /package/dist/{tag-manager-F7PVTDBB.js.map → tag-manager-TU3FBSYO.js.map} +0 -0
  438. /package/dist/{tags-K5FVDHPH.js.map → tags-75QCVBQB.js.map} +0 -0
  439. /package/dist/{tags-WPPGJN2C.js.map → tags-7BT63PUE.js.map} +0 -0
  440. /package/dist/{tags-PBUZJQHN.js.map → tags-7K5RSCHI.js.map} +0 -0
  441. /package/dist/{tags-6PQ37XO5.js.map → tags-IELH7YAY.js.map} +0 -0
  442. /package/dist/{tags-3U5K3EVI.js.map → tags-UPA4KKQZ.js.map} +0 -0
  443. /package/dist/{targeting-criteria-OZ74V2DC.js.map → targeting-criteria-HJQ2FW6E.js.map} +0 -0
  444. /package/dist/{targets-Y4I65HD2.js.map → targets-CBZ37ALP.js.map} +0 -0
  445. /package/dist/{testimonials-XNBDJHEN.js.map → testimonials-4W6HI2PQ.js.map} +0 -0
  446. /package/dist/{top-companies-KMY4LVNU.js.map → top-companies-CW77UVK3.js.map} +0 -0
  447. /package/dist/{translate-QOS2PQQF.js.map → translate-7W7O6W3J.js.map} +0 -0
  448. /package/dist/{triggers-54BIQKZY.js.map → triggers-MCP6IGTX.js.map} +0 -0
  449. /package/dist/{unlink-QB2XWRNT.js.map → unlink-RK5V4QO2.js.map} +0 -0
  450. /package/dist/{unstage-2TF3RJND.js.map → unstage-5JTGVEB7.js.map} +0 -0
  451. /package/dist/{unstage-GUQCHRDA.js.map → unstage-QFVL7AZ4.js.map} +0 -0
  452. /package/dist/{update-INO3OXFQ.js.map → update-5AAMF5JP.js.map} +0 -0
  453. /package/dist/{update-ITHM3F2E.js.map → update-G2KB3RIW.js.map} +0 -0
  454. /package/dist/{update-74SGZ2ZZ.js.map → update-LCE2QN53.js.map} +0 -0
  455. /package/dist/{update-WGOPKNRC.js.map → update-U2ETZHVU.js.map} +0 -0
  456. /package/dist/{upload-VZZJ2GEQ.js.map → upload-ORFEAADP.js.map} +0 -0
  457. /package/dist/{url-options-YT6CT62P.js.map → url-options-6U7QCTAY.js.map} +0 -0
  458. /package/dist/{url-params-PPPS5PC7.js.map → url-params-KQIUVVGX.js.map} +0 -0
  459. /package/dist/{validate-VVLREMQO.js.map → validate-BF656HWM.js.map} +0 -0
  460. /package/dist/{videos-ILTQAHWU.js.map → videos-66FB7BPY.js.map} +0 -0
  461. /package/dist/{viewer-check-2XRID6KP.js.map → viewer-check-THBLTL2G.js.map} +0 -0
  462. /package/dist/{web-JEBZUHD6.js.map → web-2EKHRXCS.js.map} +0 -0
  463. /package/dist/{winning-ads-JZ2DYSYA.js.map → winning-ads-LW5SMMLB.js.map} +0 -0
  464. /package/dist/{write-commands-IRFDR3TN.js.map → write-commands-Z556OHHH.js.map} +0 -0
  465. /package/dist/{x-KB5FJNQ2.js.map → x-F5CSO2RN.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/accounts/index.ts","../src/commands/accounts/report.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport {\n ACCOUNTS_ENGAGEMENT_MAX_LIMIT,\n type AccountsCampaignsResponse,\n type AccountsCompanyRequest,\n type AccountsCompanyResponse,\n type AccountsEngagementRequest,\n type AccountsEngagementResponse,\n type AccountsInfluencedResponse,\n accountsCampaignsRequestSchema,\n accountsCompanyRequestSchema,\n accountsEngagementRequestSchema,\n accountsInfluencedRequestSchema,\n INFLUENCE_MODEL_KINDS,\n type MoneyByCurrency,\n type TargetsSummary,\n warmAccounts,\n} from \"@baker/api/accounts\";\nimport { defineCommand } from \"citty\";\nimport { z } from \"zod\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi } from \"../actions/shared.ts\";\nimport { outputFormatRefusal, TABLE_OUTPUT_FORMATS, writeAdsOutput } from \"../ads/output.ts\";\nimport {\n accountsRefusal,\n companyView,\n ENGAGEMENT_TABLE_FIELDS,\n engagementHints,\n engagementTableRows,\n influencedHints,\n influencedTableRows,\n invalidArgsMessage,\n targetsHints,\n warmAccountsCsv,\n warmHints,\n warmMinimum,\n withDealStatus,\n} from \"./report.ts\";\nimport { readTargetsFile, type TargetsFile } from \"./targets.ts\";\n\n/**\n * `baker accounts` — which companies the LinkedIn ads are warming, and which\n * CRM deals they influenced. Reads the nightly Account insights sync; nothing\n * here calls LinkedIn or the CRM, and nothing changes anywhere.\n */\n\nfunction optionalNumber(raw: unknown): number | undefined {\n return typeof raw === \"string\" && raw.trim() !== \"\" ? Number(raw) : undefined;\n}\n\nfunction optionalString(raw: unknown): string | undefined {\n return typeof raw === \"string\" && raw.trim() !== \"\" ? raw.trim() : undefined;\n}\n\nfunction failInvalidArgs(message: string): never {\n writeJson({ ok: false, error: { code: \"INVALID_ARGS\", message } });\n process.exit(1);\n}\n\n/** A request the schema refuses never reaches the store; say which flag, in the envelope. */\nfunction failInvalid(issues: ReadonlyArray<{ path: PropertyKey[]; message: string }>): never {\n failInvalidArgs(invalidArgsMessage(issues));\n}\n\n/** `--output` as asked, refused with the supported list instead of quietly printing JSON. */\nfunction outputFormat(args: Record<string, unknown>, supported: readonly string[]): string {\n const format = optionalString(args.output) ?? \"json\";\n const refusal = outputFormatRefusal(format, supported);\n if (refusal !== null) failInvalidArgs(refusal);\n return format;\n}\n\nconst OUTPUT_ARG = {\n type: \"string\",\n description: \"json|csv|jsonl|md (default json). csv/jsonl/md print the rows only; the summary and hints go to stderr\",\n required: false,\n default: \"json\",\n} as const;\n\nconst RULE_ARGS = {\n model: {\n type: \"string\",\n description:\n \"Read this report with another influence model, for this call only (the saved settings stay): engagement (engagements), awareness (impressions) or intent (clicks)\",\n required: false,\n },\n threshold: {\n type: \"string\",\n description:\n \"Read this report with another threshold on the model's metric, for this call only (a whole number, 1 or more)\",\n required: false,\n },\n} as const;\n\nfunction ruleInput(args: Record<string, unknown>): { model?: string; threshold?: number } {\n return { model: optionalString(args.model), threshold: optionalNumber(args.threshold) };\n}\n\nfunction moneyText(value: MoneyByCurrency): string {\n return Object.entries(value)\n .map(([currency, amount]) => `${Math.round(amount)} ${currency}`)\n .join(\" + \");\n}\n\n/** \"Not set up\" becomes the fix the agent relays; everything else is the ordinary error envelope. */\nfunction failAccounts(err: unknown): never {\n const refusal = err instanceof ApiError ? accountsRefusal(err.code, err.message) : null;\n if (err instanceof ApiError && refusal !== null) {\n writeJson({ ok: false, error: { code: refusal.code, message: err.message, fix: refusal.fix } });\n process.exit(1);\n }\n failApi(err);\n}\n\nconst WINDOW_ARGS = {\n \"last-months\": {\n type: \"string\",\n description: \"Calendar months to read, the current one included (1-24)\",\n required: false,\n },\n start: { type: \"string\", description: \"First day, YYYY-MM-DD (instead of --last-months)\", required: false },\n end: { type: \"string\", description: \"Last day, YYYY-MM-DD (default today; needs --start)\", required: false },\n} as const;\n\nconst TARGETS_ARG = {\n targets: {\n type: \"string\",\n description:\n 'Only these target accounts: a .csv (a domain or website column; name and tier optional) or a .json file ([\"acme.com\", …] or [{\"domain\": \"acme.com\", \"tier\": 1}, …]). Rows and numbers narrow to them, and `targets` says how many were reached and engaged, per tier, and which were never reached. Build one from the Knowledge with `node __tooling__/scripts/target-accounts.mjs --out targets.csv`',\n required: false,\n },\n} as const;\n\n/** `--targets` read and reduced to domains; refused in the envelope when the file cannot be read or names none. */\nfunction targetsInput(args: Record<string, unknown>): TargetsFile | null {\n const path = optionalString(args.targets);\n if (path === undefined) return null;\n let read: TargetsFile;\n try {\n read = readTargetsFile(path, readFileSync(path, \"utf8\"));\n } catch (err) {\n failInvalidArgs(`--targets: ${err instanceof Error ? err.message : String(err)}`);\n }\n if (read.targets.length === 0) failInvalidArgs(`--targets: ${path} names no company website.`);\n return read;\n}\n\n/** The hints a `--targets` read adds; none without one. */\nfunction withTargetsHints(hints: string[], read: TargetsFile | null, summary: TargetsSummary | undefined): string[] {\n return read === null ? hints : [...targetsHints(summary, read.unreadable), ...hints];\n}\n\nfunction windowInput(args: Record<string, unknown>): { lastMonths?: number; start?: string; end?: string } {\n return {\n lastMonths: optionalNumber(args[\"last-months\"]),\n start: optionalString(args.start),\n end: optionalString(args.end),\n };\n}\n\n// --- influenced ---\n\nconst INFLUENCED_ARGS = {\n basis: {\n type: \"string\",\n description: \"pipeline (default): deals created in the period and not won. revenue: deals closed won in the period\",\n required: false,\n default: \"pipeline\",\n },\n ...WINDOW_ARGS,\n full: {\n type: \"boolean\",\n description: \"Every deal in the period, influenced or not, instead of the influenced ones\",\n required: false,\n default: false,\n },\n ...RULE_ARGS,\n ...TARGETS_ARG,\n output: OUTPUT_ARG,\n} as const;\n\nconst DEAL_TABLE_FIELDS = [\n \"dealId\",\n \"dealName\",\n \"companyName\",\n \"domain\",\n \"amount\",\n \"currency\",\n \"status\",\n \"referenceAt\",\n \"touchValue\",\n \"firstTouchMonth\",\n \"matchConfidence\",\n \"influenced\",\n \"crmCompanyId\",\n];\n\nfunction influencedSummaryLine(data: AccountsInfluencedResponse[\"data\"]): string {\n const { summary, rule } = data;\n const value = moneyText(summary.influencedValue) || \"no amount\";\n return `${summary.influencedDeals} of ${summary.deals} ${data.basis} deals influenced (${value}) — ${rule.threshold}+ ${rule.metric} in the ${rule.lookbackMonths} months up to each deal, ${data.window.start} to ${data.window.end}.`;\n}\n\nregisterSchema({\n command: \"accounts.influenced\",\n description:\n \"Start here for 'what pipeline / revenue did our LinkedIn ads influence'. A deal is influenced when its company reached the company's influence rule (default: 3+ LinkedIn ad engagements) in the 12 months up to and including the month the deal was created (pipeline) or closed won (revenue). A labelled rule, not credit: never call it 'attributed' or split it. Returns {summary: {deals, influencedDeals, influencedValue per currency, lowConfidenceDeals, spend, valuePerSpend}, deals, lowConfidence}. Amounts in different currencies are never added. Default the last 12 calendar months. --model/--threshold read it with another rule for this call only (\\\"what if we counted 5+ engagements\\\"); --targets <file> narrows it to the target accounts' deals; --output csv|md|jsonl prints the deals.\",\n args: INFLUENCED_ARGS,\n});\n\nconst influencedCommand = defineCommand({\n meta: {\n name: \"influenced\",\n description:\n \"Deals the LinkedIn ads influenced, with influenced pipeline or revenue. Example: baker accounts influenced --basis revenue --last-months 6\",\n },\n args: INFLUENCED_ARGS,\n run: async ({ args }) => {\n const format = outputFormat(args, TABLE_OUTPUT_FORMATS);\n const targets = targetsInput(args);\n const parsed = accountsInfluencedRequestSchema.safeParse({\n ...windowInput(args),\n ...ruleInput(args),\n basis: optionalString(args.basis),\n full: Boolean(args.full),\n targets: targets?.targets,\n });\n if (!parsed.success) failInvalid(parsed.error.issues);\n try {\n const response = await apiPost<AccountsInfluencedResponse>(\"/api/accounts/influenced\", parsed.data);\n const hints = withTargetsHints(influencedHints(response.data), targets, response.data.targets);\n if (format !== \"json\") {\n const rows = influencedTableRows(response.data, parsed.data.full);\n writeAdsOutput(rows, format, DEAL_TABLE_FIELDS, [influencedSummaryLine(response.data), ...hints]);\n return;\n }\n writeJson({ ...response, meta: { count: response.data.deals.length }, ...(hints.length > 0 ? { hints } : {}) });\n } catch (err) {\n failAccounts(err);\n }\n },\n});\n\n// --- engagement ---\n\nconst ENGAGEMENT_ARGS = {\n ...WINDOW_ARGS,\n \"campaign-id\": { type: \"string\", description: \"Only this campaign's companies (numeric id)\", required: false },\n limit: {\n type: \"string\",\n description: `Companies per page, 1-${ACCOUNTS_ENGAGEMENT_MAX_LIMIT} (default 500)`,\n required: false,\n },\n page: {\n type: \"string\",\n description:\n \"Which page to read, 1-based, most engaged first (default 1). pageInfo.hasMore says another page follows; pageInfo.total counts every company reached\",\n required: false,\n },\n ...TARGETS_ARG,\n output: OUTPUT_ARG,\n} as const;\n\nregisterSchema({\n command: \"accounts.engagement\",\n description:\n \"Every company the LinkedIn ads reached, most engaged first, with the period before for comparison, New/Rising flags, and where it stands in the CRM (matched company; dealStatus won > open > lost > none, lost meaning every deal it had was lost; lastLostAt). Default the last 3 calendar months. From the nightly sync, so it is fast and covers up to 24 months; for a live read of one ad account use `baker ads linkedin companies`. Paged: --limit companies per page, --page N; pageInfo {page, pageSize, total, hasMore}. --targets <file> keeps the target accounts only and adds `targets` {total, reached, engaged, notReached, byTier}.\",\n args: ENGAGEMENT_ARGS,\n});\n\nfunction engagementInput(\n args: Record<string, unknown>,\n targets: TargetsFile | null,\n limit?: number,\n): AccountsEngagementRequest {\n return {\n ...windowInput(args),\n campaignId: optionalString(args[\"campaign-id\"])?.replace(/^urn:li:sponsoredCampaign:/, \"\"),\n limit: limit ?? optionalNumber(args.limit),\n page: limit === undefined ? optionalNumber(args.page) : undefined,\n targets: targets?.targets,\n };\n}\n\nconst engagementCommand = defineCommand({\n meta: {\n name: \"engagement\",\n description:\n \"Companies the LinkedIn ads reached, with New/Rising flags and CRM status. Example: baker accounts engagement --last-months 3 --limit 50\",\n },\n args: ENGAGEMENT_ARGS,\n run: async ({ args }) => {\n const format = outputFormat(args, TABLE_OUTPUT_FORMATS);\n const targets = targetsInput(args);\n const parsed = accountsEngagementRequestSchema.safeParse(engagementInput(args, targets));\n if (!parsed.success) failInvalid(parsed.error.issues);\n try {\n const response = await apiPost<AccountsEngagementResponse>(\"/api/accounts/engagement\", parsed.data);\n const hints = withTargetsHints(engagementHints(response.data, parsed.data), targets, response.data.targets);\n if (format !== \"json\") {\n writeAdsOutput(engagementTableRows(response.data.companies), format, ENGAGEMENT_TABLE_FIELDS, hints);\n return;\n }\n const companies = withDealStatus(response.data.companies);\n writeJson({\n ...response,\n data: { ...response.data, companies },\n meta: { count: companies.length, ...(response.data.pageInfo ? { total: response.data.pageInfo.total } : {}) },\n ...(hints.length > 0 ? { hints } : {}),\n });\n } catch (err) {\n failAccounts(err);\n }\n },\n});\n\n// --- warm ---\n\nconst warmRuleSchema = z.object({\n model: z.enum(INFLUENCE_MODEL_KINDS).optional(),\n threshold: z.number().int().min(1).optional(),\n min: z.number().int().min(0).optional(),\n});\n\nconst WARM_ARGS = {\n ...WINDOW_ARGS,\n \"campaign-id\": ENGAGEMENT_ARGS[\"campaign-id\"],\n min: {\n type: \"string\",\n description:\n \"Least a company must have done this period on the rule's metric to count as warm (default: the company's influence threshold, e.g. 3 engagements; 0 keeps every New/Rising company)\",\n required: false,\n },\n ...RULE_ARGS,\n ...TARGETS_ARG,\n output: {\n type: \"string\",\n description:\n \"json (default) or csv — csv prints companyName,domain,organizationUrn, the file `baker ads linkedin audiences create --type company-list --list-file` takes\",\n required: false,\n default: \"json\",\n },\n} as const;\n\nregisterSchema({\n command: \"accounts.warm\",\n description:\n \"Warm accounts: companies engaging with the LinkedIn ads more than in the period before (New: nothing before; Rising: engagements at least doubled) that reached the company's influence threshold this period (e.g. 3+ engagements; --min overrides, --min 0 drops it) and are not already somebody's deal: no open deal, never won (customers are left out), and no deal lost in the last 6 months (an older loss no longer counts). Default the current calendar month against the one before. `--output csv > warm.csv` writes a company list ready for `baker ads linkedin audiences create --type company-list --list-file warm.csv` (LinkedIn needs 300+ matched members to serve). --targets <file> keeps the warm target accounts only and adds `targets` (reached and engaged among them).\",\n args: WARM_ARGS,\n});\n\nconst warmCommand = defineCommand({\n meta: {\n name: \"warm\",\n description:\n \"Companies warming up that are not in pipeline, customers, or recently lost. Example: baker accounts warm --last-months 1 --output csv > warm.csv\",\n },\n args: WARM_ARGS,\n run: async ({ args }) => {\n const format = outputFormat(args, [\"json\", \"csv\"]);\n const rule = warmRuleSchema.safeParse({ ...ruleInput(args), min: optionalNumber(args.min) });\n if (!rule.success) failInvalid(rule.error.issues);\n const targets = targetsInput(args);\n const input = engagementInput(args, targets, ACCOUNTS_ENGAGEMENT_MAX_LIMIT);\n const parsed = accountsEngagementRequestSchema.safeParse(\n input.start === undefined && input.lastMonths === undefined ? { ...input, lastMonths: 1 } : input,\n );\n if (!parsed.success) failInvalid(parsed.error.issues);\n try {\n const response = await apiPost<AccountsEngagementResponse>(\"/api/accounts/engagement\", parsed.data);\n const minimum = warmMinimum(response.data.rule, rule.data);\n const warm = warmAccounts(response.data.companies, new Date().toISOString().slice(0, 10), { minimum });\n const hints = withTargetsHints(warmHints(response.data, warm, minimum), targets, response.data.targets);\n if (format === \"csv\") {\n process.stdout.write(warmAccountsCsv(warm));\n for (const hint of hints) process.stderr.write(`${hint}\\n`);\n return;\n }\n writeJson({\n ok: true,\n data: {\n window: response.data.window,\n previousWindow: response.data.previousWindow,\n minimum: minimum ?? null,\n ...(response.data.targets ? { targets: response.data.targets } : {}),\n companies: withDealStatus(warm),\n },\n meta: { count: warm.length },\n ...(hints.length > 0 ? { hints } : {}),\n });\n } catch (err) {\n failAccounts(err);\n }\n },\n});\n\n// --- company ---\n\nconst COMPANY_ARGS = {\n company: {\n type: \"positional\",\n description: \"LinkedIn company id (1035), its urn:li:organization URN, or a website domain (acme.com)\",\n required: true,\n },\n} as const;\n\nregisterSchema({\n command: \"accounts.company\",\n description:\n \"One company's story: its month-by-month totals (`months`), the same numbers split by LinkedIn campaign (`byCampaign` — overlapping, never add it to the totals), the CRM company it matched and how surely, and that company's deals, each with `touchValue` and `influenced` under the company's rule. Use it to show why a deal counts as influenced.\",\n args: COMPANY_ARGS,\n});\n\n/** A bare number or an organization URN is a LinkedIn id; anything else is a domain. */\nfunction companyRequest(raw: string): AccountsCompanyRequest {\n const value = raw.trim();\n return /^(urn:li:organization:)?\\d+$/.test(value) ? { orgId: value } : { domain: value };\n}\n\nconst companyCommand = defineCommand({\n meta: {\n name: \"company\",\n description: \"One company's monthly LinkedIn ad activity and its deals. Example: baker accounts company acme.com\",\n },\n args: COMPANY_ARGS,\n run: async ({ args }) => {\n const parsed = accountsCompanyRequestSchema.safeParse(companyRequest(String(args.company ?? \"\")));\n if (!parsed.success) failInvalid(parsed.error.issues);\n try {\n const response = await apiPost<AccountsCompanyResponse>(\"/api/accounts/company\", parsed.data);\n const view = companyView(response.data);\n writeJson({ ok: true, data: view.data, ...(view.hints.length > 0 ? { hints: view.hints } : {}) });\n } catch (err) {\n failAccounts(err);\n }\n },\n});\n\n// --- campaigns ---\n\nconst CAMPAIGNS_ARGS = {\n basis: INFLUENCED_ARGS.basis,\n ...WINDOW_ARGS,\n ...RULE_ARGS,\n ...TARGETS_ARG,\n output: OUTPUT_ARG,\n} as const;\n\nconst CAMPAIGN_TABLE_FIELDS = [\n \"campaignId\",\n \"campaignName\",\n \"companiesReached\",\n \"companiesEngaged\",\n \"influencedDeals\",\n \"influencedValue\",\n];\n\nregisterSchema({\n command: \"accounts.campaigns\",\n description:\n \"Per LinkedIn campaign: companies reached and engaged in the period, and the influenced deals it touched in their lookback — pipeline (default: deals created and not won) or, with --basis revenue, deals closed won. Overlapping by design — a deal counts for every campaign that touched it, so the rows never sum to the total; read them as a comparison, not a split. Default the last 12 calendar months. --model/--threshold read it with another rule for this call only; --targets <file> counts the target accounts only.\",\n args: CAMPAIGNS_ARGS,\n});\n\nconst campaignsCommand = defineCommand({\n meta: {\n name: \"campaigns\",\n description:\n \"Companies reached and influenced pipeline or revenue per campaign. Example: baker accounts campaigns --basis revenue --last-months 6\",\n },\n args: CAMPAIGNS_ARGS,\n run: async ({ args }) => {\n const format = outputFormat(args, TABLE_OUTPUT_FORMATS);\n const targets = targetsInput(args);\n const input = {\n basis: optionalString(args.basis),\n ...windowInput(args),\n ...ruleInput(args),\n targets: targets?.targets,\n };\n const parsed = accountsCampaignsRequestSchema.safeParse(input);\n if (!parsed.success) failInvalid(parsed.error.issues);\n try {\n const response = await apiPost<AccountsCampaignsResponse>(\"/api/accounts/campaigns\", parsed.data);\n const hints = withTargetsHints(\n [\"Campaign rows overlap: a deal counts for every campaign that touched it. Never add them up.\"],\n targets,\n response.data.targets,\n );\n if (format !== \"json\") {\n const rows = response.data.campaigns.map((row) => ({\n ...row,\n influencedValue: moneyText(row.influencedValue),\n }));\n writeAdsOutput(rows, format, CAMPAIGN_TABLE_FIELDS, hints);\n return;\n }\n writeJson({ ...response, meta: { count: response.data.campaigns.length }, hints });\n } catch (err) {\n failAccounts(err);\n }\n },\n});\n\nexport const accountsCommand = defineCommand({\n meta: {\n name: \"accounts\",\n description:\n \"Account insights: which companies the LinkedIn ads are warming, and which CRM deals they influenced. Start with `baker accounts influenced` or `baker accounts warm`.\",\n },\n subCommands: {\n influenced: influencedCommand,\n engagement: engagementCommand,\n warm: warmCommand,\n company: companyCommand,\n campaigns: campaignsCommand,\n crm: () => import(\"./crm.ts\").then((m) => m.crmCommand),\n },\n});\n","/**\n * The pure half of `baker accounts`: the warm-account list file, and what the\n * agent should take from a report that the rows alone don't say.\n */\n\nimport {\n ACCOUNTS_NO_SETTINGS_MESSAGE,\n type AccountCompanyMonth,\n type AccountDealRow,\n type AccountDealStatus,\n type AccountEngagementRow,\n type AccountsCompanyResponse,\n type AccountsEngagementResponse,\n type AccountsInfluencedResponse,\n accountDealStatus,\n type InfluenceMetric,\n type InfluenceModelKind,\n type InfluenceParams,\n type InfluenceRuleOverride,\n influenceParams,\n type MoneyByCurrency,\n type WarmAccountsOptions,\n} from \"@baker/api/accounts\";\nimport type { TargetsSummary } from \"@baker/api/accounts/targets\";\nimport { toCsvRow } from \"../ads/output.ts\";\n\nexport type AccountsRefusal = { code: \"ACCOUNTS_NOT_SET_UP\"; fix: { action: \"ask_user\"; explanation: string } };\n\n/**\n * The refusal the agent cannot clear, as the fix it acts on: not set up (only\n * the user can say which stages mean won). Matched on the backend's own\n * sentence (shared from `@baker/api/accounts`), because it is a CONFLICT.\n * Null for every other refusal.\n */\nexport function accountsRefusal(code: string, message: string): AccountsRefusal | null {\n if (code === \"CONFLICT\" && message.includes(ACCOUNTS_NO_SETTINGS_MESSAGE)) {\n return {\n code: \"ACCOUNTS_NOT_SET_UP\",\n fix: {\n action: \"ask_user\",\n explanation:\n \"The user sets up where the deals are in Measure → Accounts first: HubSpot (then its pipelines and won/lost stages), or Another CRM, whose deals they send by spreadsheet or from their system (`baker accounts crm status`). Only the user can say which stages mean won and lost; do not guess them. Until then `baker accounts engagement` and `baker accounts warm` still work — they need no deals.\",\n },\n };\n }\n return null;\n}\n\n/** Request fields as the flags that set them. */\nconst FLAG_OF_FIELD: Record<string, string> = {\n lastMonths: \"--last-months\",\n start: \"--start\",\n end: \"--end\",\n campaignId: \"--campaign-id\",\n limit: \"--limit\",\n basis: \"--basis\",\n model: \"--model\",\n threshold: \"--threshold\",\n orgId: \"company\",\n domain: \"company\",\n targets: \"--targets\",\n};\n\n/** A refused request in the agent's own words: which flag, and why. */\nexport function invalidArgsMessage(issues: ReadonlyArray<{ path: PropertyKey[]; message: string }>): string {\n return issues\n .map((issue) => {\n const field = issue.path.map(String).join(\".\");\n return `${FLAG_OF_FIELD[field] ?? (field || \"args\")}: ${issue.message}`;\n })\n .join(\"; \");\n}\n\nfunction money(value: MoneyByCurrency): string {\n const parts = Object.entries(value).map(\n ([currency, amount]) => `${Math.round(amount).toLocaleString(\"en\")} ${currency}`,\n );\n return parts.length > 0 ? parts.join(\" + \") : \"no amount\";\n}\n\n/** What the agent should take from an influenced report that the rows alone don't say. */\nexport function influencedHints(data: AccountsInfluencedResponse[\"data\"]): string[] {\n const hints: string[] = [];\n const { summary } = data;\n if (summary.lowConfidenceDeals > 0) {\n const deals = summary.lowConfidenceDeals === 1 ? \"deal\" : \"deals\";\n const look = summary.lowConfidenceDeals === 1 ? \"looks\" : \"look\";\n hints.push(\n `${summary.lowConfidenceDeals} more ${deals} (${money(summary.lowConfidenceValue)}) ${look} influenced through a company match that is only a guess (a subdomain or a name). They are not counted in the numbers until someone confirms the match in Measure → Accounts; they are listed under lowConfidence.`,\n );\n }\n const valued = Object.keys(summary.influencedValue).length > 0;\n const spent = Object.values(summary.spend).some((amount) => amount > 0);\n if (summary.valuePerSpend === null && valued && spent) {\n hints.push(\n `valuePerSpend is null because the influenced value (${money(summary.influencedValue)}) and the LinkedIn spend (${money(summary.spend)}) are not in one single currency — amounts in different currencies are never converted or added. Report them side by side.`,\n );\n }\n return hints;\n}\n\n/**\n * The deals a table output prints: the counted ones, then the unconfirmed. With\n * `--full` the backend already lists the unconfirmed among `deals`, so they are\n * not added twice — a total taken from the table would count them double.\n */\nexport function influencedTableRows(data: AccountsInfluencedResponse[\"data\"], full: boolean): AccountDealRow[] {\n return full ? data.deals : [...data.deals, ...data.lowConfidence];\n}\n\n/** What the agent should take from an engagement read that the rows alone don't say. */\nexport function engagementHints(data: AccountsEngagementResponse[\"data\"], request: { limit: number }): string[] {\n if (data.companies.length === 0) {\n return [\n `No company the LinkedIn ads reached shows up for ${data.window.start} to ${data.window.end}. The nightly sync may not have run since the campaigns started delivering, or LinkedIn left the companies out (fewer than 3 events in a month). Try a longer period (--last-months 12), or read the ad account live with \\`baker ads linkedin companies\\`.`,\n ];\n }\n const page = data.pageInfo;\n if (page?.hasMore) {\n const first = (page.page - 1) * page.pageSize + 1;\n const last = first + data.companies.length - 1;\n return [\n `Companies ${first}-${last} of ${page.total.toLocaleString(\"en\")} shown. Read the next ones with --page ${page.page + 1} --limit ${page.pageSize}.`,\n ];\n }\n return data.truncated ? [`More companies were reached than --limit ${request.limit}; raise it to see the tail.`] : [];\n}\n\n/** The columns `baker accounts engagement --output csv|md` prints, in order. */\nexport const ENGAGEMENT_TABLE_FIELDS = [\n \"orgId\",\n \"name\",\n \"domain\",\n \"impressions\",\n \"clicks\",\n \"engagements\",\n \"videoViews\",\n \"costLocal\",\n \"currency\",\n \"monthsActive\",\n \"lastMonth\",\n \"previousImpressions\",\n \"previousClicks\",\n \"previousEngagements\",\n \"flag\",\n \"crmCompanyId\",\n \"matchConfidence\",\n \"dealStatus\",\n \"hasOpenDeal\",\n \"hasWonDeal\",\n \"hasLostDeal\",\n \"lastLostAt\",\n \"websitePeople\",\n \"websiteLeads\",\n \"websiteVisits\",\n \"websitePagesRead\",\n \"websiteLastVisit\",\n];\n\n/** Engagement rows flat for a table: the period before as three columns, the website people as two and the company's own-network visits as three, not JSON cells. */\nexport function engagementTableRows(rows: readonly AccountEngagementRow[]): Array<Record<string, unknown>> {\n return withDealStatus(rows).map(({ previous, website, visitorCompany, ...row }) => ({\n ...row,\n previousImpressions: previous.impressions,\n previousClicks: previous.clicks,\n previousEngagements: previous.engagements,\n websitePeople: website?.people ?? 0,\n websiteLeads: website?.leads ?? 0,\n websiteVisits: visitorCompany?.visits ?? 0,\n websitePagesRead: visitorCompany?.pages ?? 0,\n websiteLastVisit: visitorCompany?.lastSeen ?? null,\n }));\n}\n\nconst MODEL_OF_METRIC: Record<InfluenceMetric, InfluenceModelKind> = {\n engagements: \"engagement\",\n impressions: \"awareness\",\n clicks: \"intent\",\n};\n\n/**\n * The least a warm company must have done this period: the company's\n * influence rule (the default one when the backend sent none), read for this\n * call with `--model`/`--threshold`, or `--min` on the rule's metric. `--min 0`\n * drops it, so one engagement after none reads as warm again.\n */\nexport function warmMinimum(\n rule: InfluenceParams | undefined,\n override: InfluenceRuleOverride & { min?: number },\n): WarmAccountsOptions[\"minimum\"] {\n const saved = { model: { kind: rule ? MODEL_OF_METRIC[rule.metric] : \"engagement\", threshold: rule?.threshold } };\n const read = influenceParams(saved, { model: override.model, threshold: override.threshold });\n const value = override.min ?? read.threshold;\n return value > 0 ? { metric: read.metric, value } : undefined;\n}\n\n/** What the agent should take from a warm list that the rows alone don't say. */\nexport function warmHints(\n read: Pick<AccountsEngagementResponse[\"data\"], \"companies\" | \"truncated\">,\n warm: readonly AccountEngagementRow[],\n minimum: WarmAccountsOptions[\"minimum\"],\n): string[] {\n const hints: string[] = [];\n if (read.truncated) {\n hints.push(\n `The ads reached more companies than one read returns (${read.companies.length.toLocaleString(\"en\")}, the most engaged first), so warm companies with little engagement may be missing. Read a shorter period with --last-months 1 to see them.`,\n );\n }\n if (warm.length === 0 && read.companies.length > 0 && minimum !== undefined) {\n hints.push(\n `No company both warmed up and reached ${minimum.value}+ ${minimum.metric} in the period. Try a longer period with --last-months, or a lower bar with --min (--min 0 drops it).`,\n );\n }\n if (warm.some((row) => row.name === \"\")) {\n hints.push(\"Some companies have no name yet — the nightly sync looks them up; the organizationUrn still matches.\");\n }\n if (warm.length > 0) {\n hints.push(\n 'To advertise to them: `baker accounts warm --output csv > warm.csv`, then `baker ads linkedin audiences create --name \"Warm accounts\" --type company-list --list-file warm.csv` (staged until publish).',\n );\n }\n return hints;\n}\n\n/** The header `baker ads linkedin audiences create --type company-list --list-file` reads. */\nconst WARM_CSV_COLUMNS = [\"companyName\", \"domain\", \"organizationUrn\"];\n\n/**\n * Warm accounts as a company-list file, one company a line. The list reader\n * splits on line breaks, so a name carrying one is flattened.\n */\nexport function warmAccountsCsv(rows: readonly AccountEngagementRow[]): string {\n const lines = [toCsvRow(WARM_CSV_COLUMNS)];\n for (const row of rows) {\n const name = row.name.replace(/\\s*[\\r\\n]+\\s*/g, \" \");\n lines.push(toCsvRow([name, row.domain, `urn:li:organization:${row.orgId}`]));\n }\n return `${lines.join(\"\\n\")}\\n`;\n}\n\nconst plural = (count: number, one: string, many: string) => `${count} ${count === 1 ? one : many}`;\n\nfunction reachText(counts: { total: number; reached: number; engaged: number }): string {\n return `${counts.reached} of ${counts.total} reached, ${counts.engaged} engaged`;\n}\n\n/**\n * What a `--targets` read means beyond its rows: how far the ads got with the\n * list, the targets never reached, and the file entries that were skipped.\n * No summary back means a server that ignored the list.\n */\nexport function targetsHints(summary: TargetsSummary | undefined, unreadable: readonly string[]): string[] {\n if (summary === undefined) {\n return [\n \"This Baker server does not narrow reports to target accounts yet: the rows cover every company the ads reached.\",\n ];\n }\n const tiers = Object.entries(summary.byTier ?? {})\n .sort(([a], [b]) => a.localeCompare(b, \"en\", { numeric: true }))\n .map(([tier, counts]) => `tier ${tier}: ${reachText(counts)}`);\n const hints = [\n `Target accounts: ${reachText(summary)}${tiers.length > 0 ? ` (${tiers.join(\"; \")})` : \"\"}. Rows and numbers cover the target accounts only.`,\n ];\n const missed = summary.notReached.length;\n if (missed > 0) {\n hints.push(\n `${plural(missed, \"target account was\", \"target accounts were\")} never reached in the period (targets.notReached). Check ${missed === 1 ? \"its domain is the website on its LinkedIn page\" : \"their domains are the websites on their LinkedIn pages\"}, or advertise to ${missed === 1 ? \"it\" : \"them\"} with a company list.`,\n );\n }\n if (unreadable.length > 0) {\n const listed = unreadable.map((entry) => `\"${entry}\"`).join(\", \");\n hints.push(\n `Skipped ${plural(unreadable.length, \"entry\", \"entries\")} of the targets file that ${unreadable.length === 1 ? \"is\" : \"are\"} not a website: ${listed}.`,\n );\n }\n return hints;\n}\n\n/** Each company with where it stands in the CRM spelled out, so the agent never has to combine the flags. */\nexport function withDealStatus(\n rows: readonly AccountEngagementRow[],\n): Array<AccountEngagementRow & { dealStatus: AccountDealStatus }> {\n return rows.map((row) => ({ ...row, dealStatus: accountDealStatus(row) }));\n}\n\ntype CompanyData = AccountsCompanyResponse[\"data\"];\ntype MonthCounts = Pick<AccountCompanyMonth, \"month\" | \"impressions\" | \"clicks\" | \"engagements\">;\n\nexport interface CompanyView {\n orgs: CompanyData[\"orgs\"];\n /** The company's own totals, month by month: the account-wide rows. */\n months: Array<MonthCounts & { orgId: string }>;\n /** The same numbers split by campaign. Overlapping: never add them to `months` or to each other. */\n byCampaign: Array<{ orgId: string; campaignId: string; campaignName: string | null; months: MonthCounts[] }>;\n deals: CompanyData[\"deals\"];\n rule?: CompanyData[\"rule\"];\n}\n\nconst counts = (row: AccountCompanyMonth): MonthCounts => ({\n month: row.month,\n impressions: row.impressions,\n clicks: row.clicks,\n engagements: row.engagements,\n});\n\n/**\n * One company as the agent should read it. The store answers the account-wide\n * row and every campaign's row for the same month side by side, which reads\n * as double the activity; here the account-wide months are the totals and\n * the campaign split sits apart, labelled. A company the ads never reached\n * comes back from the store as an unnamed echo of the id asked for — dropped,\n * and said in words.\n */\n/** Why a company lookup shows no LinkedIn company: an id the ads never reached, a CRM-only company, or no match at all. */\nfunction unreachedHint(unreached: ReadonlyArray<{ orgId: string }>, deals: number): string {\n if (unreached.length > 0) {\n return `The LinkedIn ads have not reached LinkedIn company ${unreached.map((org) => org.orgId).join(\", \")} in the months the nightly sync keeps (up to 24), so there is nothing to show. Check the id against \\`baker accounts engagement\\`, or try the company's website domain.`;\n }\n if (deals > 0) {\n return `That company is in the CRM with ${deals === 1 ? \"1 deal\" : `${deals} deals`}, but the LinkedIn ads have not reached it in the months the nightly sync keeps, so none of its deals can count as influenced.`;\n }\n return \"The ads have not reached that company, or it is named differently: try its LinkedIn id from `baker accounts engagement`.\";\n}\n\nexport function companyView(data: CompanyData): { data: CompanyView; hints: string[] } {\n const reachedOrgs = new Set(data.months.map((row) => row.orgId));\n const orgs = data.orgs.filter((org) => reachedOrgs.has(org.orgId) || org.name !== \"\" || org.crmCompanyId !== null);\n const months = data.months\n .filter((row) => row.campaignId === \"\")\n .map((row) => ({ orgId: row.orgId, ...counts(row) }));\n const byCampaign: CompanyView[\"byCampaign\"] = [];\n for (const row of data.months) {\n if (row.campaignId === \"\") continue;\n let entry = byCampaign.find((item) => item.orgId === row.orgId && item.campaignId === row.campaignId);\n if (entry === undefined) {\n entry = { orgId: row.orgId, campaignId: row.campaignId, campaignName: row.campaignName, months: [] };\n byCampaign.push(entry);\n }\n entry.months.push(counts(row));\n }\n\n const hints: string[] = [];\n const unreached = unreachedHint(\n data.orgs.filter((org) => !orgs.includes(org)),\n data.deals.length,\n );\n if (orgs.length === 0) hints.push(unreached);\n if (byCampaign.length > 0) {\n hints.push(\n \"`months` are the company's totals. `byCampaign` splits the same numbers by campaign, and a company several campaigns reached shows up under each — never add byCampaign to the totals or to each other.\",\n );\n }\n if (orgs.some((org) => org.matchConfidence === \"low\")) {\n hints.push(\n \"The CRM match is only a guess (a subdomain or a name) until someone confirms it in Measure → Accounts.\",\n );\n }\n if (data.rule !== undefined && data.deals.length > 0) {\n hints.push(\n `\\`influenced\\` on each deal: ${data.rule.threshold}+ ${data.rule.metric} (\\`touchValue\\`) in the ${data.rule.lookbackMonths} months up to the month the deal was created (closed, for a won deal), counted from this company's months above.`,\n );\n }\n return { data: { orgs, months, byCampaign, deals: data.deals, ...(data.rule ? { rule: data.rule } : {}) }, hints };\n}\n"],"mappings":"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","names":["counts"]}
@@ -30,26 +30,26 @@ Examples:
30
30
  Full guide: __tooling__/docs/tools/baker/actions.md`
31
31
  },
32
32
  subCommands: {
33
- list: () => import("./list-DKWE4K6V.js").then((m) => m.listCommand),
34
- log: () => import("./log-FS62QUM3.js").then((m) => m.logCommand),
35
- draft: () => import("./draft-BVEDTUA4.js").then((m) => m.draftCommand),
36
- get: () => import("./get-DOADISOP.js").then((m) => m.getCommand),
37
- status: () => import("./status-RUXOUOPA.js").then((m) => m.statusCommand),
38
- claim: () => import("./claim-XIC7D3U2.js").then((m) => m.claimCommand),
39
- release: () => import("./release-SBWWWKS5.js").then((m) => m.releaseCommand),
40
- create: () => import("./create-S47RE4XP.js").then((m) => m.createCommand),
41
- update: () => import("./update-74SGZ2ZZ.js").then((m) => m.updateCommand),
42
- complete: () => import("./complete-IHHA7BA3.js").then((m) => m.completeCommand),
43
- discard: () => import("./discard-R62Z2GRI.js").then((m) => m.discardCommand),
44
- reopen: () => import("./reopen-OLC5N2DP.js").then((m) => m.reopenCommand),
45
- assign: () => import("./assign-L2APE23R.js").then((m) => m.assignCommand),
46
- members: () => import("./members-JKTEP3DI.js").then((m) => m.membersCommand),
47
- link: () => import("./link-I76EC43Z.js").then((m) => m.linkCommand),
48
- unlink: () => import("./unlink-QB2XWRNT.js").then((m) => m.unlinkCommand),
49
- tags: () => import("./tags-K5FVDHPH.js").then((m) => m.tagsCommand)
33
+ list: () => import("./list-JKB33W6K.js").then((m) => m.listCommand),
34
+ log: () => import("./log-O3I5JZCM.js").then((m) => m.logCommand),
35
+ draft: () => import("./draft-SNBK2KY6.js").then((m) => m.draftCommand),
36
+ get: () => import("./get-UQ43T25B.js").then((m) => m.getCommand),
37
+ status: () => import("./status-3X3MECDY.js").then((m) => m.statusCommand),
38
+ claim: () => import("./claim-CIUU5QEZ.js").then((m) => m.claimCommand),
39
+ release: () => import("./release-SVOT7QVX.js").then((m) => m.releaseCommand),
40
+ create: () => import("./create-WEIGJ4BF.js").then((m) => m.createCommand),
41
+ update: () => import("./update-LCE2QN53.js").then((m) => m.updateCommand),
42
+ complete: () => import("./complete-NKYCSYKX.js").then((m) => m.completeCommand),
43
+ discard: () => import("./discard-7OARQRS7.js").then((m) => m.discardCommand),
44
+ reopen: () => import("./reopen-WCUZMTYE.js").then((m) => m.reopenCommand),
45
+ assign: () => import("./assign-BSV765I3.js").then((m) => m.assignCommand),
46
+ members: () => import("./members-OBA4MXAQ.js").then((m) => m.membersCommand),
47
+ link: () => import("./link-L2KC5EIZ.js").then((m) => m.linkCommand),
48
+ unlink: () => import("./unlink-RK5V4QO2.js").then((m) => m.unlinkCommand),
49
+ tags: () => import("./tags-75QCVBQB.js").then((m) => m.tagsCommand)
50
50
  }
51
51
  });
52
52
  export {
53
53
  actionsCommand
54
54
  };
55
- //# sourceMappingURL=actions-BFO2AQPM.js.map
55
+ //# sourceMappingURL=actions-PF62UVHS.js.map
@@ -3,8 +3,8 @@ import {
3
3
  } from "./chunk-PFBQERWX.js";
4
4
  import {
5
5
  failApi
6
- } from "./chunk-G6AK5QGY.js";
7
- import "./chunk-RLDQDCW3.js";
6
+ } from "./chunk-XYBSTW3P.js";
7
+ import "./chunk-5MSRVAUZ.js";
8
8
  import "./chunk-CAZGM2NX.js";
9
9
  import "./chunk-NZS3KEQ2.js";
10
10
  import "./chunk-GIWHHCD6.js";
@@ -933,4 +933,4 @@ Full guide: __tooling__/docs/tools/baker/activecampaign.md`
933
933
  export {
934
934
  activecampaignCommand
935
935
  };
936
- //# sourceMappingURL=activecampaign-SDW74BZ7.js.map
936
+ //# sourceMappingURL=activecampaign-Q7LLZSZ4.js.map
@@ -7,7 +7,7 @@ import {
7
7
  testimonialSourceRefreshIntervalSchema,
8
8
  testimonialSourceTypeSchema,
9
9
  testimonialSourcesAddRequestSchema
10
- } from "./chunk-RLDQDCW3.js";
10
+ } from "./chunk-5MSRVAUZ.js";
11
11
  import "./chunk-CAZGM2NX.js";
12
12
  import "./chunk-NZS3KEQ2.js";
13
13
  import "./chunk-GIWHHCD6.js";
@@ -102,4 +102,4 @@ export {
102
102
  addCommand,
103
103
  addSourceHints
104
104
  };
105
- //# sourceMappingURL=add-4ECK6KWH.js.map
105
+ //# sourceMappingURL=add-3GL76LTP.js.map
@@ -6,12 +6,12 @@ import {
6
6
  stepNameKey,
7
7
  walkNodes,
8
8
  writeFlowTree
9
- } from "./chunk-KMK6SCCT.js";
9
+ } from "./chunk-UC5HG2UF.js";
10
10
  import {
11
11
  flowCatalogEntry,
12
12
  flowCatalogTypes,
13
13
  flowNodeTriggers
14
- } from "./chunk-RLDQDCW3.js";
14
+ } from "./chunk-5MSRVAUZ.js";
15
15
  import "./chunk-CAZGM2NX.js";
16
16
  import "./chunk-NZS3KEQ2.js";
17
17
  import "./chunk-GIWHHCD6.js";
@@ -300,4 +300,4 @@ export {
300
300
  secondPixelHint,
301
301
  stepNameRefusal
302
302
  };
303
- //# sourceMappingURL=add-VTFQI3FC.js.map
303
+ //# sourceMappingURL=add-GDEQN43J.js.map
@@ -33,16 +33,16 @@ Examples:
33
33
  Full guides: __tooling__/docs/tools/baker/ads-<platform>.md (google|meta|linkedin|x|chatgpt|performance|terms)`
34
34
  },
35
35
  subCommands: {
36
- google: () => import("./google-BR4JIK4N.js").then((m) => m.googleCommand),
36
+ google: () => import("./google-ZZCSZR63.js").then((m) => m.googleCommand),
37
37
  meta: () => import("./meta-AHI2HVBM.js").then((m) => m.metaCommand),
38
- linkedin: () => import("./linkedin-Q2BXWGLB.js").then((m) => m.linkedinCommand),
39
- x: () => import("./x-KB5FJNQ2.js").then((m) => m.xCommand),
38
+ linkedin: () => import("./linkedin-A4U6IGZX.js").then((m) => m.linkedinCommand),
39
+ x: () => import("./x-F5CSO2RN.js").then((m) => m.xCommand),
40
40
  chatgpt: () => import("./chatgpt-23X76OFD.js").then((m) => m.chatgptCommand),
41
- performance: () => import("./performance-4S66FDTV.js").then((m) => m.performanceCommand),
41
+ performance: () => import("./performance-V5WZCJYT.js").then((m) => m.performanceCommand),
42
42
  terms: () => import("./terms-O6ODXEOK.js").then((m) => m.termsCommand)
43
43
  }
44
44
  });
45
45
  export {
46
46
  adsCommand
47
47
  };
48
- //# sourceMappingURL=ads-KB5CLOYS.js.map
48
+ //# sourceMappingURL=ads-HH5YTV4O.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  advertisersHints
3
- } from "./chunk-HW53ERJX.js";
3
+ } from "./chunk-TESOYFMQ.js";
4
4
  import {
5
5
  RESEARCH_DATA_NOTE,
6
6
  handleResearchError,
@@ -13,7 +13,7 @@ import {
13
13
  warnDefaults
14
14
  } from "./chunk-PGRDGQ23.js";
15
15
  import "./chunk-ANLLW3KZ.js";
16
- import "./chunk-RLDQDCW3.js";
16
+ import "./chunk-5MSRVAUZ.js";
17
17
  import "./chunk-CAZGM2NX.js";
18
18
  import "./chunk-NZS3KEQ2.js";
19
19
  import "./chunk-GIWHHCD6.js";
@@ -118,4 +118,4 @@ Examples:
118
118
  export {
119
119
  advertisersCommand
120
120
  };
121
- //# sourceMappingURL=advertisers-PZOZHGHW.js.map
121
+ //# sourceMappingURL=advertisers-B5L4LZW2.js.map
@@ -1,34 +1,39 @@
1
+ import {
2
+ readTargetsFile
3
+ } from "./chunk-UX45LDRM.js";
4
+ import "./chunk-AZH6H4TV.js";
1
5
  import {
2
6
  flowEventKeys,
3
7
  flowNodes
4
- } from "./chunk-4XIF4ZHU.js";
8
+ } from "./chunk-HITRGZIS.js";
5
9
  import {
6
10
  flowDataPath,
7
11
  flowExists,
8
12
  listFlowSlugs,
9
13
  readFlowTree
10
- } from "./chunk-KMK6SCCT.js";
14
+ } from "./chunk-UC5HG2UF.js";
11
15
  import {
12
16
  INGEST_ARRIVALS_MAX,
13
17
  eventIngestUrl,
14
18
  ingestBrief
15
- } from "./chunk-DB3CF4W3.js";
19
+ } from "./chunk-WAEWKD75.js";
16
20
  import "./chunk-GRQ2AXDX.js";
17
21
  import {
18
22
  peopleArgs,
19
23
  peopleLimitError
20
- } from "./chunk-D7ARAKE2.js";
24
+ } from "./chunk-ZEGNIP3Y.js";
21
25
  import {
22
26
  ConversionArgsError,
23
27
  conversionsWrite,
24
28
  parseConversionsArgs
25
- } from "./chunk-MU3Z55CT.js";
29
+ } from "./chunk-DX46OE4U.js";
26
30
  import {
27
31
  analyticsErrorEnvelope
28
- } from "./chunk-S545M2WZ.js";
32
+ } from "./chunk-VU5Z2V4S.js";
29
33
  import {
30
34
  AD_PARAM_ROLE_SPECS,
31
35
  ANALYTICS_EVENT_DOORS,
36
+ ANALYTICS_FULL_BREAKDOWN_LIMIT,
32
37
  SEND_FILTERS,
33
38
  STANDARD_CONVERSION_NAMES,
34
39
  destinationName,
@@ -37,7 +42,7 @@ import {
37
42
  isBookkeepingRow,
38
43
  parseEventKey,
39
44
  rowMatchKeys
40
- } from "./chunk-KT5HHR4A.js";
45
+ } from "./chunk-DI44SZVP.js";
41
46
  import "./chunk-EDLZGTGN.js";
42
47
  import {
43
48
  repeatedValues
@@ -47,7 +52,7 @@ import {
47
52
  } from "./chunk-ZRP7Y2DM.js";
48
53
  import {
49
54
  flowNodeTriggers
50
- } from "./chunk-RLDQDCW3.js";
55
+ } from "./chunk-5MSRVAUZ.js";
51
56
  import "./chunk-CAZGM2NX.js";
52
57
  import "./chunk-NZS3KEQ2.js";
53
58
  import "./chunk-GIWHHCD6.js";
@@ -790,6 +795,11 @@ var ANALYTICS_PRESET_INFO = [
790
795
  description: "Which machines fetch this site. Every other report here excludes them; this one reads them. Answers whether Google is still crawling a page after it was republished, whether Meta fetched a link preview before spend went behind the URL, and how much of the traffic is now AI answer engines.",
791
796
  playbook: "landing \u2014 a page that stopped being crawled stops ranking, weeks before the traffic shows it"
792
797
  },
798
+ {
799
+ name: "companies",
800
+ description: "Which companies are visiting, named by the visitor's own network \u2014 never a person \u2014 with visits, pages read and first/last seen. Recorded only for visitors who accepted marketing cookies, on a company that switched it on. --targets keeps the target accounts that came and lists the ones that did not.",
801
+ playbook: "abm-playbook \u2014 which target accounts the ads warmed enough to read the pages"
802
+ },
793
803
  {
794
804
  name: "landings",
795
805
  description: "Every landing side by side \u2014 views, entrances, conversion rate and a sparkline each, under the name a person gave it. Answers 'which of my pages is working' without having to know the answer first; `page` then answers one of them in depth. --tag narrows it to a campaign.",
@@ -822,6 +832,112 @@ var ANALYTICS_PRESET_INFO = [
822
832
  }
823
833
  ];
824
834
 
835
+ // ../api/src/accounts/companyName.ts
836
+ var NOISE_WORDS = /* @__PURE__ */ new Set([
837
+ "inc",
838
+ "incorporated",
839
+ "llc",
840
+ "ltd",
841
+ "limited",
842
+ "plc",
843
+ "corp",
844
+ "corporation",
845
+ "co",
846
+ "company",
847
+ "gmbh",
848
+ "ag",
849
+ "kg",
850
+ "bv",
851
+ "nv",
852
+ "sa",
853
+ "sau",
854
+ "sl",
855
+ "slu",
856
+ "sas",
857
+ "sarl",
858
+ "srl",
859
+ "spa",
860
+ "oy",
861
+ "ab",
862
+ "as",
863
+ "aps",
864
+ "pty",
865
+ "lda",
866
+ "ltda",
867
+ "kk",
868
+ "group",
869
+ "grupo",
870
+ "holding",
871
+ "holdings",
872
+ "the"
873
+ ]);
874
+ function companyNameKey(name) {
875
+ return name.normalize("NFD").replace(new RegExp("\\p{Diacritic}", "gu"), "").toLowerCase().replace(/\./g, "").split(/[^\p{L}\p{N}]+/u).filter((word) => word !== "" && !NOISE_WORDS.has(word)).join(" ");
876
+ }
877
+
878
+ // src/commands/analytics/visitorCompanies.ts
879
+ var VISITOR_COMPANIES_FULL_ROWS = ANALYTICS_FULL_BREAKDOWN_LIMIT * 8;
880
+ function targetKey(target) {
881
+ return companyNameKey(target.name ?? target.domain.split(".")[0] ?? "");
882
+ }
883
+ function visitorCompanyHints(companies) {
884
+ if (companies.length === 0) {
885
+ return [
886
+ "No visitor companies in this window. They are recorded only when an admin has turned on 'Show which companies visit your pages' (Settings \u2192 General), the company measures in full, and the visitor accepted marketing cookies \u2014 so an empty list does not mean no target account came. Tell the user which of those to check rather than reporting zero interest."
887
+ ];
888
+ }
889
+ const hints = [
890
+ "Each name is the visitor's network as registered, never a person, and there is no website: match accounts by name (`--targets` does it), and never present a row as an individual's visit."
891
+ ];
892
+ if (companies.some((company) => company.confidence === "low")) {
893
+ hints.push(
894
+ "Rows with confidence low are a business only because their network is not a known ISP, carrier, cloud or VPN. Check the name reads as a real company before it goes into a sales brief."
895
+ );
896
+ }
897
+ return hints;
898
+ }
899
+ function matchTargets(companies, targets) {
900
+ const visitorByKey = /* @__PURE__ */ new Map();
901
+ for (const company of companies) {
902
+ const key = companyNameKey(company.name);
903
+ if (key !== "" && !visitorByKey.has(key)) visitorByKey.set(key, company);
904
+ }
905
+ const matched = [];
906
+ const notVisited = [];
907
+ const byTier = /* @__PURE__ */ new Map();
908
+ for (const target of targets) {
909
+ const key = targetKey(target);
910
+ const visitor = key === "" ? void 0 : visitorByKey.get(key);
911
+ if (visitor) matched.push({ ...visitor, target: target.domain });
912
+ else notVisited.push(target);
913
+ if (target.tier !== void 0) {
914
+ const tier = byTier.get(target.tier) ?? { total: 0, visited: 0 };
915
+ tier.total += 1;
916
+ if (visitor) tier.visited += 1;
917
+ byTier.set(target.tier, tier);
918
+ }
919
+ }
920
+ const summary = { total: targets.length, visited: targets.length - notVisited.length, notVisited };
921
+ return {
922
+ companies: matched,
923
+ targets: byTier.size > 0 ? { ...summary, byTier: Object.fromEntries(byTier) } : summary
924
+ };
925
+ }
926
+ function refineCompaniesReport(data, companies, targets) {
927
+ if (!targets) {
928
+ data.visitorCompanies = data.visitorCompanies ?? [];
929
+ return visitorCompanyHints(companies);
930
+ }
931
+ const matched = matchTargets(companies, targets.targets);
932
+ data.visitorCompanies = matched.companies;
933
+ data.targets = matched.targets;
934
+ const skipped = targets.unreadable.length > 0 ? [`Skipped targets that are not a website: ${targets.unreadable.map((entry) => `"${entry}"`).join(", ")}.`] : [];
935
+ const cut = companies.length >= VISITOR_COMPANIES_FULL_ROWS ? [
936
+ `Only the ${VISITOR_COMPANIES_FULL_ROWS} companies with the most visits were matched, so a target in notVisited may have come with fewer visits. Narrow the window (--days 7) and run it again before telling anyone an account never visited.`
937
+ ] : [];
938
+ return [...visitorCompanyHints(matched.companies.length > 0 ? matched.companies : companies), ...skipped, ...cut];
939
+ }
940
+
825
941
  // src/commands/analytics/websiteTagHints.ts
826
942
  function asTyped(origin) {
827
943
  return origin.replace(/^https?:\/\//, "");
@@ -1031,7 +1147,7 @@ function feedReportHints(feed, peopleSearch) {
1031
1147
  if (feed === void 0) return [];
1032
1148
  return [...feedHints(feed), ...peopleSearchHints(peopleSearch ?? [], feed.rows)];
1033
1149
  }
1034
- async function runPreset(args, options) {
1150
+ async function runPreset(args, options, refine) {
1035
1151
  const origin = args.origin === void 0 ? "" : String(args.origin);
1036
1152
  if (origin !== "" && !EVENT_ORIGINS.includes(origin)) {
1037
1153
  writeJsonEnvelope({
@@ -1056,6 +1172,7 @@ async function runPreset(args, options) {
1056
1172
  const data = pruneForAgent(response.data, args.full === true);
1057
1173
  const feed = "stream" in data ? shapeFeed(data.stream, args.everything === true) : void 0;
1058
1174
  if (feed !== void 0) data.stream = feed.rows;
1175
+ const refinedHints = refine ? refine(data, response.data) : [];
1059
1176
  const hints = [
1060
1177
  ...feedReportHints(feed, response.data.peopleSearch),
1061
1178
  // The platform the ad blocks were scoped to, so the tagging hint can
@@ -1067,6 +1184,7 @@ async function runPreset(args, options) {
1067
1184
  eventName: options.eventName,
1068
1185
  property: options.property
1069
1186
  }),
1187
+ ...refinedHints,
1070
1188
  ...formatHint(data, format)
1071
1189
  ];
1072
1190
  writeAnalyticsReport(
@@ -1200,6 +1318,43 @@ var botsCommand = presetCommand({
1200
1318
  preset: "bots",
1201
1319
  description: "Which machines are fetching this site \u2014 search crawlers, AI answer engines, link-preview scrapers, SEO tools \u2014 and whether each one is genuine or only claims to be. Every other report excludes these; this is the one that reads them. Use it to check that a republished page is still being crawled, or that Meta fetched a link preview before spend goes behind the URL."
1202
1320
  });
1321
+ var COMPANIES_DESCRIPTION = "Which companies are visiting these pages \u2014 named by the visitor's own network, never a person \u2014 with visits, pages read and first/last seen. Only recorded when an admin turned on 'Show which companies visit your pages', the company measures in full, and the visitor accepted marketing cookies; home and mobile connections are never named. --targets <file> keeps the target accounts that came and lists the ones that did not \u2014 the website half of an ABM report.";
1322
+ var COMPANIES_ARGS = {
1323
+ ...SHARED_ARGS,
1324
+ targets: {
1325
+ type: "string",
1326
+ description: 'The target-account list `baker accounts --targets` takes: a .csv (a domain or website column; name and tier optional) or a .json file (["acme.com", \u2026] or [{"domain": "acme.com", "name": "Acme", "tier": 1}, \u2026]). Matched by company NAME, because a visitor company has no website \u2014 give each target its name; one without matches only when its name starts with the domain\'s first word. Build one with `node __tooling__/scripts/target-accounts.mjs --out targets.csv`',
1327
+ required: false
1328
+ }
1329
+ };
1330
+ registerSchema({ command: "analytics.companies", description: COMPANIES_DESCRIPTION, args: COMPANIES_ARGS });
1331
+ var companiesCommand = defineCommand({
1332
+ meta: { name: "companies", description: COMPANIES_DESCRIPTION },
1333
+ args: COMPANIES_ARGS,
1334
+ run: async ({ args }) => {
1335
+ let targets;
1336
+ if (args.targets) {
1337
+ try {
1338
+ targets = readTargetsFile(String(args.targets), readFileSync(String(args.targets), "utf8"));
1339
+ } catch (err) {
1340
+ writeJsonEnvelope({
1341
+ ok: false,
1342
+ error: {
1343
+ code: "VALIDATION_ERROR",
1344
+ message: `Could not read --targets ${String(args.targets)}: ${err instanceof Error ? err.message : String(err)}`
1345
+ }
1346
+ });
1347
+ process.exit(1);
1348
+ }
1349
+ }
1350
+ const request = targets ? { ...args, full: true } : args;
1351
+ await runPreset(
1352
+ request,
1353
+ { preset: "companies" },
1354
+ (data, raw) => refineCompaniesReport(data, raw.visitorCompanies ?? [], targets)
1355
+ );
1356
+ }
1357
+ });
1203
1358
  var landingsCommand = presetCommand({
1204
1359
  name: "landings",
1205
1360
  preset: "landings",
@@ -1909,6 +2064,7 @@ Examples:
1909
2064
  baker analytics traffic --days 90 --full \u2014 full breakdowns and the per-day trend
1910
2065
  baker analytics geo --grain postal_code --country ES \u2014 which postcodes convert
1911
2066
  baker analytics bots --days 30 \u2014 is the site still being crawled
2067
+ baker analytics companies --targets targets.csv \u2014 which target accounts visited, and which did not
1912
2068
  baker analytics landings --tag q3 \u2014 how the Q3 campaign's pages did
1913
2069
  baker analytics tags \u2014 the same numbers rolled up per campaign
1914
2070
  baker analytics events --event video --property milestone \u2014 how far people watch
@@ -1947,25 +2103,26 @@ Full guide: __tooling__/docs/tools/baker/analytics.md`
1947
2103
  submissions: submissionsCommand,
1948
2104
  geo: geoCommand,
1949
2105
  bots: botsCommand,
2106
+ companies: companiesCommand,
1950
2107
  landings: landingsCommand,
1951
2108
  tags: tagsCommand,
1952
2109
  events: eventsCommand,
1953
2110
  feed: feedCommand,
1954
- lookup: () => import("./lookup-7RVOMACQ.js").then((m) => m.lookupCommand),
2111
+ lookup: () => import("./lookup-LWJMDEEL.js").then((m) => m.lookupCommand),
1955
2112
  devices: devicesCommand,
1956
2113
  ads: adsCommand,
1957
2114
  conversions: conversionsCommand,
1958
- sends: () => import("./sends-LEESHU62.js").then((m) => m.sendsCommand),
2115
+ sends: () => import("./sends-OLVQGOAE.js").then((m) => m.sendsCommand),
1959
2116
  map: mapCommand,
1960
- unstage: () => import("./unstage-GUQCHRDA.js").then((m) => m.unstageCommand),
2117
+ unstage: () => import("./unstage-QFVL7AZ4.js").then((m) => m.unstageCommand),
1961
2118
  tracking: trackingCommand,
1962
2119
  arrivals: arrivalsCommand,
1963
2120
  "sending-events": sendingEventsCommand,
1964
- sources: () => import("./sources-NWM6SI4P.js").then((m) => m.sourcesCommand),
2121
+ sources: () => import("./sources-47LE2UCO.js").then((m) => m.sourcesCommand),
1965
2122
  "website-tag": websiteTagCommand,
1966
2123
  sites: sitesCommand,
1967
- plan: () => import("./plan-DKBAIKX5.js").then((m) => m.planCommand),
1968
- questionnaire: () => import("./questionnaire-K3A4UUIC.js").then((m) => m.questionnaireCommand),
2124
+ plan: () => import("./plan-O2TTEUIW.js").then((m) => m.planCommand),
2125
+ questionnaire: () => import("./questionnaire-VE42SW77.js").then((m) => m.questionnaireCommand),
1969
2126
  presets: presetsCommand
1970
2127
  }
1971
2128
  });
@@ -1978,4 +2135,4 @@ export {
1978
2135
  requestBody,
1979
2136
  sendingEventsAddress
1980
2137
  };
1981
- //# sourceMappingURL=analytics-IRE6WG4V.js.map
2138
+ //# sourceMappingURL=analytics-BBX6CU3S.js.map