@koda-sl/baker-cli 0.574.0-dev.19539e5a8 → 0.575.0-dev.85f21462e

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 (1540) hide show
  1. package/README.md +44 -9
  2. package/dist/account-MDLPCIDQ.js +82 -0
  3. package/dist/account-VRXCDDXY.js +82 -0
  4. package/dist/account-YYB2KWLU.js +139 -0
  5. package/dist/account-assets-BFMQWV33.js +290 -0
  6. package/dist/account-level-47IS2CZB.js +611 -0
  7. package/dist/account-reads-FSOURMSH.js +219 -0
  8. package/dist/account-reads-FSOURMSH.js.map +1 -0
  9. package/dist/account-users-FXOWESWY.js +64 -0
  10. package/dist/account-writes-SRTOKSMT.js +68 -0
  11. package/dist/accounts-5YJZVSTB.js +498 -0
  12. package/dist/accounts-5YJZVSTB.js.map +1 -0
  13. package/dist/accounts-AT2UB2L3.js +80 -0
  14. package/dist/accounts-LTGUK6OV.js +76 -0
  15. package/dist/accounts-LTUEBWJL.js +115 -0
  16. package/dist/accounts-NR3ARJ72.js +119 -0
  17. package/dist/actions-766X6XRB.js +55 -0
  18. package/dist/active-entities-QWJXR4W6.js +103 -0
  19. package/dist/activecampaign-MC4FYCCF.js +938 -0
  20. package/dist/activities-ZRP22SC2.js +75 -0
  21. package/dist/ad-group-writes-UFBFB2PL.js +172 -0
  22. package/dist/ad-groups-KRKMZPF3.js +70 -0
  23. package/dist/ad-writes-SIAGGUDJ.js +176 -0
  24. package/dist/add-DWKVVW76.js +305 -0
  25. package/dist/add-F65GOWKP.js +85 -0
  26. package/dist/add-IALA4VRA.js +148 -0
  27. package/dist/add-ITX64WEC.js +81 -0
  28. package/dist/add-MYX3BSUJ.js +107 -0
  29. package/dist/add-WAVXB2QA.js +97 -0
  30. package/dist/add-accounts-YTLQCSXB.js +91 -0
  31. package/dist/ads-3T4C4BBH.js +79 -0
  32. package/dist/ads-A34INCCM.js +120 -0
  33. package/dist/ads-AKF5AT6O.js +128 -0
  34. package/dist/ads-UGMHE33I.js +48 -0
  35. package/dist/adsets-HNFBX4LB.js +182 -0
  36. package/dist/advertisers-UFOLIRIK.js +123 -0
  37. package/dist/advertisers-YTG6VA6R.js +125 -0
  38. package/dist/alerts-2GMBX6JV.js +151 -0
  39. package/dist/alerts-2GMBX6JV.js.map +1 -0
  40. package/dist/analytics-3EWNAHNG.js +2397 -0
  41. package/dist/analytics-3EWNAHNG.js.map +1 -0
  42. package/dist/analytics-G4WFP37R.js +447 -0
  43. package/dist/animate-PSOAMA52.js +480 -0
  44. package/dist/approved-3W56YTOZ.js +73 -0
  45. package/dist/asset-writes-2CYNDRPU.js +50 -0
  46. package/dist/assign-5FALEZYD.js +80 -0
  47. package/dist/audience-size-VRYRLPO5.js +76 -0
  48. package/dist/audience-writes-JNVGUHGN.js +327 -0
  49. package/dist/audiences-EH426E3T.js +280 -0
  50. package/dist/audiences-OOXSXKIT.js +85 -0
  51. package/dist/audiences-S6TXNKQ2.js +106 -0
  52. package/dist/audit-O2RRST7B.js +88 -0
  53. package/dist/audit-WHIVWMAI.js +154 -0
  54. package/dist/autocomplete-3HCLXTGK.js +114 -0
  55. package/dist/avatars-HN74FWDF.js +38 -0
  56. package/dist/bid-pricing-NN5JKZS4.js +103 -0
  57. package/dist/brand-MWU5IVEZ.js +22 -0
  58. package/dist/brief-6TXWQWHJ.js +543 -0
  59. package/dist/businesses-HOAQVYRH.js +54 -0
  60. package/dist/campaign-groups-MGEKCP7J.js +99 -0
  61. package/dist/campaign-writes-ORUT54WL.js +168 -0
  62. package/dist/campaign-writes-Z7B6V6Q3.js +176 -0
  63. package/dist/campaigns-3BDIHUSW.js +78 -0
  64. package/dist/campaigns-E7YC762Q.js +111 -0
  65. package/dist/campaigns-EEH3VDK6.js +130 -0
  66. package/dist/campaigns-WLOJFSLV.js +113 -0
  67. package/dist/canvas-SEVIQRXN.js +46 -0
  68. package/dist/capabilities-KWJYBYQO.js +147 -0
  69. package/dist/cards-OOKI2WSA.js +85 -0
  70. package/dist/catalog-DHTZDVWS.js +66 -0
  71. package/dist/catalogs-R4QFA5XO.js +130 -0
  72. package/dist/catalogs-WBXWK7NT.js +782 -0
  73. package/dist/changes-F2GP72MO.js +167 -0
  74. package/dist/changes-F2GP72MO.js.map +1 -0
  75. package/dist/chatgpt-MN4XHO6L.js +47 -0
  76. package/dist/chats-IBMO724I.js +589 -0
  77. package/dist/check-EZI4OF3Q.js +107 -0
  78. package/dist/chunk-2CSNR4U7.js +8954 -0
  79. package/dist/chunk-2CSNR4U7.js.map +1 -0
  80. package/dist/chunk-2VUD4CIW.js +64 -0
  81. package/dist/chunk-2ZKQNMK2.js +74 -0
  82. package/dist/chunk-3WOFZTGC.js +297 -0
  83. package/dist/chunk-3WOFZTGC.js.map +1 -0
  84. package/dist/chunk-423G75A7.js +494 -0
  85. package/dist/chunk-4ZAHRAWL.js +454 -0
  86. package/dist/chunk-5IHZTLDH.js +288 -0
  87. package/dist/chunk-5WOZ7OGU.js +1919 -0
  88. package/dist/chunk-62UGVR7Q.js +94 -0
  89. package/dist/chunk-66LUQENO.js +197 -0
  90. package/dist/chunk-6J2UZJ6F.js +962 -0
  91. package/dist/chunk-6ZW5AR5N.js +84 -0
  92. package/dist/chunk-7DT6XY4A.js +719 -0
  93. package/dist/chunk-7DT6XY4A.js.map +1 -0
  94. package/dist/chunk-7EPR7L2D.js +203 -0
  95. package/dist/chunk-7PKEBTVP.js +98 -0
  96. package/dist/chunk-7PKEBTVP.js.map +1 -0
  97. package/dist/chunk-7XFQPPYB.js +69 -0
  98. package/dist/chunk-AFWLBOIN.js +757 -0
  99. package/dist/chunk-AFWLBOIN.js.map +1 -0
  100. package/dist/chunk-ALCRXFIZ.js +351 -0
  101. package/dist/chunk-ALCRXFIZ.js.map +1 -0
  102. package/dist/chunk-AYKV2B6X.js +47 -0
  103. package/dist/chunk-AYKV2B6X.js.map +1 -0
  104. package/dist/chunk-BJH2G3QF.js +312 -0
  105. package/dist/chunk-BTOGDXA4.js +8141 -0
  106. package/dist/chunk-BTOGDXA4.js.map +1 -0
  107. package/dist/chunk-BZXIDMV7.js +91 -0
  108. package/dist/chunk-C57NXUM2.js +24026 -0
  109. package/dist/chunk-CGLNCFAG.js +136 -0
  110. package/dist/chunk-CNZ5KS4I.js +344 -0
  111. package/dist/chunk-CP5IVVYM.js +76 -0
  112. package/dist/chunk-DAXBST7G.js +51 -0
  113. package/dist/chunk-DD6X3AZB.js +1258 -0
  114. package/dist/chunk-DD6X3AZB.js.map +1 -0
  115. package/dist/chunk-DFE77XT5.js +225 -0
  116. package/dist/chunk-DI7M2JUA.js +167 -0
  117. package/dist/chunk-DN6EMVA4.js +25 -0
  118. package/dist/chunk-E2G2USTA.js +75 -0
  119. package/dist/chunk-EA3643ET.js +392 -0
  120. package/dist/chunk-EBFKPGTL.js +220 -0
  121. package/dist/chunk-EFZVDV7F.js +1744 -0
  122. package/dist/chunk-ETHUDFUY.js +169 -0
  123. package/dist/chunk-EZ3YSJTP.js +685 -0
  124. package/dist/chunk-FCD5BPC5.js +222 -0
  125. package/dist/chunk-FCD5BPC5.js.map +1 -0
  126. package/dist/chunk-G6CLJ3WL.js +3510 -0
  127. package/dist/chunk-GLY3CB2F.js +78 -0
  128. package/dist/chunk-GLY3CB2F.js.map +1 -0
  129. package/dist/chunk-HJS6FPQX.js +152 -0
  130. package/dist/chunk-HXHGDFXA.js +103 -0
  131. package/dist/chunk-HZ7QUFUW.js +97 -0
  132. package/dist/chunk-IEUF733F.js +5471 -0
  133. package/dist/chunk-IEX4RRHJ.js +163 -0
  134. package/dist/chunk-IPEQHZ5H.js +724 -0
  135. package/dist/chunk-IPEQHZ5H.js.map +1 -0
  136. package/dist/chunk-IR2NRXHA.js +309 -0
  137. package/dist/chunk-IR2NRXHA.js.map +1 -0
  138. package/dist/chunk-ITABNSX6.js +26 -0
  139. package/dist/chunk-J7L457MF.js +1518 -0
  140. package/dist/chunk-JCFZ7ECN.js +246 -0
  141. package/dist/chunk-JFWTQDZL.js +604 -0
  142. package/dist/chunk-JGMQD3PX.js +274 -0
  143. package/dist/chunk-JTAPNHW5.js +98 -0
  144. package/dist/chunk-K2DKQ52D.js +89 -0
  145. package/dist/chunk-K3VMHRLJ.js +61 -0
  146. package/dist/chunk-KMZ4YWS4.js +544 -0
  147. package/dist/chunk-LBPJDFFN.js +19 -0
  148. package/dist/chunk-LNRYMWXE.js +930 -0
  149. package/dist/chunk-LQRPFL2N.js +218 -0
  150. package/dist/chunk-LQRPFL2N.js.map +1 -0
  151. package/dist/chunk-LY7PDE76.js +285 -0
  152. package/dist/chunk-MGUEAG6W.js +73 -0
  153. package/dist/chunk-MIBOIXCP.js +115 -0
  154. package/dist/chunk-MNFJQRUO.js +76 -0
  155. package/dist/chunk-MUT2BPDM.js +46 -0
  156. package/dist/chunk-MWPM6HNV.js +138 -0
  157. package/dist/chunk-NE3AZ25Y.js +58 -0
  158. package/dist/chunk-OFSUVUXT.js +215 -0
  159. package/dist/chunk-OMLZ35HJ.js +482 -0
  160. package/dist/chunk-OMLZ35HJ.js.map +1 -0
  161. package/dist/chunk-P6H6JZXO.js +188 -0
  162. package/dist/chunk-PEPLYJWK.js +91 -0
  163. package/dist/chunk-PK2U2ALQ.js +57 -0
  164. package/dist/chunk-PKSIPLMS.js +399 -0
  165. package/dist/chunk-QNY4IK3C.js +297 -0
  166. package/dist/chunk-QORVZUMT.js +2234 -0
  167. package/dist/chunk-QORVZUMT.js.map +1 -0
  168. package/dist/chunk-RDIZCSTV.js +156 -0
  169. package/dist/chunk-RM5JT6XF.js +106 -0
  170. package/dist/chunk-ROWUTQFG.js +125 -0
  171. package/dist/chunk-RQ43VL2X.js +148 -0
  172. package/dist/chunk-RSABCQLI.js +45 -0
  173. package/dist/chunk-S4QGD7PV.js +170 -0
  174. package/dist/chunk-S7WFZYKP.js +46 -0
  175. package/dist/chunk-SO7NANAH.js +69 -0
  176. package/dist/chunk-SRMQCQ7T.js +142 -0
  177. package/dist/chunk-SULQZX5W.js +42 -0
  178. package/dist/chunk-SZFWQVAC.js +819 -0
  179. package/dist/chunk-SZFWQVAC.js.map +1 -0
  180. package/dist/chunk-T4HIFVNK.js +84 -0
  181. package/dist/chunk-TBBAHTP3.js +1320 -0
  182. package/dist/chunk-TJTCHTR4.js +343 -0
  183. package/dist/chunk-TUS2VOMZ.js +219 -0
  184. package/dist/chunk-U3LO5TDH.js +296 -0
  185. package/dist/chunk-U6EQMX3B.js +131 -0
  186. package/dist/chunk-UDNN4POE.js +111 -0
  187. package/dist/chunk-UECTXVAO.js +479 -0
  188. package/dist/chunk-UQTINFCP.js +455 -0
  189. package/dist/chunk-USFXKWTX.js +79 -0
  190. package/dist/chunk-USFXKWTX.js.map +1 -0
  191. package/dist/chunk-UUUYWBTR.js +225 -0
  192. package/dist/chunk-UYVMINV2.js +139 -0
  193. package/dist/chunk-UZ5ZC43B.js +259 -0
  194. package/dist/chunk-UZ5ZC43B.js.map +1 -0
  195. package/dist/chunk-VGJFNHSA.js +56 -0
  196. package/dist/chunk-VJUVTMHY.js +329 -0
  197. package/dist/chunk-VJUVTMHY.js.map +1 -0
  198. package/dist/chunk-VQOBDHZP.js +106 -0
  199. package/dist/chunk-VRQ5HEVU.js +35 -0
  200. package/dist/chunk-VSHXHSIW.js +249 -0
  201. package/dist/chunk-VTLW24DM.js +23 -0
  202. package/dist/chunk-VVITBZKP.js +97 -0
  203. package/dist/chunk-WFTTF2MP.js +225 -0
  204. package/dist/chunk-X7NRAGJ5.js +504 -0
  205. package/dist/chunk-X7NRAGJ5.js.map +1 -0
  206. package/dist/chunk-XMIV53FM.js +191 -0
  207. package/dist/chunk-XNUUEUJB.js +287 -0
  208. package/dist/chunk-XYHAIEAF.js +5368 -0
  209. package/dist/chunk-XZJK2QB3.js +1920 -0
  210. package/dist/chunk-XZJK2QB3.js.map +1 -0
  211. package/dist/chunk-YB2UVOAD.js +64 -0
  212. package/dist/chunk-YLHWZOW7.js +224 -0
  213. package/dist/chunk-YNWBIAXJ.js +843 -0
  214. package/dist/chunk-YT6YI47O.js +178 -0
  215. package/dist/chunk-YYYGUO2E.js +66 -0
  216. package/dist/chunk-Z6RTEOEY.js +39 -0
  217. package/dist/chunk-ZAQQBVEM.js +432 -0
  218. package/dist/chunk-ZAQQBVEM.js.map +1 -0
  219. package/dist/chunk-ZHQSXEJ2.js +547 -0
  220. package/dist/cite-I5UV5SKS.js +191 -0
  221. package/dist/claim-JQCSXR4C.js +200 -0
  222. package/dist/cli.js +46 -45
  223. package/dist/cli.js.map +1 -1
  224. package/dist/client-DKZM6XTS.js +19 -0
  225. package/dist/code-D3J5FQCF.js +76 -0
  226. package/dist/companies-GHBIZKOK.js +34 -0
  227. package/dist/company-KNCYMQIA.js +308 -0
  228. package/dist/complete-V53XRNEQ.js +84 -0
  229. package/dist/config-ACEF37UO.js +88 -0
  230. package/dist/connect-NUZQSIGL.js +45 -0
  231. package/dist/content-5RTSXURF.js +85 -0
  232. package/dist/conversation-LBYO6ONM.js +96 -0
  233. package/dist/conversion-report-SRHJGIMT.js +127 -0
  234. package/dist/conversion-upload-command-5EKILBP2.js +439 -0
  235. package/dist/conversion-writes-P5FDTA6Y.js +122 -0
  236. package/dist/conversions-BXCGFNRK.js +140 -0
  237. package/dist/conversions-WJBOEPOO.js +78 -0
  238. package/dist/copy-writes-ER5ZB5C4.js +170 -0
  239. package/dist/countries-OJZQQYFT.js +82 -0
  240. package/dist/create-3PNWKXLP.js +239 -0
  241. package/dist/create-6FZR7JZT.js +135 -0
  242. package/dist/create-QXJ3UEOT.js +218 -0
  243. package/dist/create-XO7HUNPB.js +62 -0
  244. package/dist/creatives-O6TA2DOG.js +58 -0
  245. package/dist/creatives-YRYPXOCS.js +229 -0
  246. package/dist/creatives-ZGXH7UA7.js +118 -0
  247. package/dist/credentials-ATAP54ZI.js +290 -0
  248. package/dist/critique-3UY7TUVQ.js +232 -0
  249. package/dist/critique-UC6SBKGO.js +1451 -0
  250. package/dist/crm-AXK74BCO.js +313 -0
  251. package/dist/crm-AXK74BCO.js.map +1 -0
  252. package/dist/crm-MGVGQ7PK.js +323 -0
  253. package/dist/crop-SRCLDYM5.js +113 -0
  254. package/dist/currency-335ARWP5.js +88 -0
  255. package/dist/currency-335ARWP5.js.map +1 -0
  256. package/dist/custom-conversions-RTSR3KKJ.js +128 -0
  257. package/dist/customers-7NBNJCDC.js +65 -0
  258. package/dist/data-QOCDG3ZD.js +455 -0
  259. package/dist/data-QOCDG3ZD.js.map +1 -0
  260. package/dist/decide-2WQKE6HC.js +199 -0
  261. package/dist/delete-DWQS7UCJ.js +85 -0
  262. package/dist/delete-EKGTJSLK.js +69 -0
  263. package/dist/delete-MJSASLP6.js +69 -0
  264. package/dist/delete-N76JN5MP.js +71 -0
  265. package/dist/delete-OFG7FBMA.js +57 -0
  266. package/dist/delete-QQDGR7DD.js +67 -0
  267. package/dist/demographics-QWFAMEC2.js +141 -0
  268. package/dist/describe-42XBBR6J.js +97 -0
  269. package/dist/describe-TKOJMWML.js +97 -0
  270. package/dist/dimensions-5OS26IF6.js +101 -0
  271. package/dist/discard-4VW3AWI3.js +69 -0
  272. package/dist/discover-IDC6PQV2.js +93 -0
  273. package/dist/discover-O6322XPL.js +172 -0
  274. package/dist/discover-O6322XPL.js.map +1 -0
  275. package/dist/domain-EDPDUVAX.js +101 -0
  276. package/dist/download-46GLVBYU.js +172 -0
  277. package/dist/download-QH4VHDS6.js +337 -0
  278. package/dist/draft-3MYPEBSF.js +260 -0
  279. package/dist/draft-FJ55MZB4.js +138 -0
  280. package/dist/draft-IBR2W6GZ.js +332 -0
  281. package/dist/draft-NCUQFRGS.js +315 -0
  282. package/dist/draft-RRUJU2ZR.js +220 -0
  283. package/dist/draft-SLGJRUOV.js +615 -0
  284. package/dist/draft-SLGJRUOV.js.map +1 -0
  285. package/dist/draft-TJAD7P6W.js +374 -0
  286. package/dist/draft-W7FYHKI2.js +134 -0
  287. package/dist/engine/index.js +13 -13
  288. package/dist/env-AMOXYHCA.js +55 -0
  289. package/dist/experiment-TBLKWI2J.js +1397 -0
  290. package/dist/experiments-DUVO7C7A.js +236 -0
  291. package/dist/export-AMOLHZB6.js +168 -0
  292. package/dist/extract-WYNFE6TQ.js +143 -0
  293. package/dist/facets-WTY6NOUV.js +117 -0
  294. package/dist/favorites-Z24QDACW.js +178 -0
  295. package/dist/feed-2XCJ2JIV.js +177 -0
  296. package/dist/feedback-57BP27NA.js +115 -0
  297. package/dist/feedback-XDREGDOK.js +114 -0
  298. package/dist/feedback-record-HXSBLAZD.js +269 -0
  299. package/dist/fetch-L27MLPXM.js +204 -0
  300. package/dist/fetch-Z5MNAIQS.js +139 -0
  301. package/dist/find-XMISWVZT.js +144 -0
  302. package/dist/fit-K3G7HIMK.js +65 -0
  303. package/dist/flows-VJTWU3SU.js +340 -0
  304. package/dist/follow-542NYE76.js +94 -0
  305. package/dist/follow-competitors-NZDLHP7P.js +112 -0
  306. package/dist/following-JTZZCSQX.js +113 -0
  307. package/dist/fonts-SEMIVGXJ.js +39 -0
  308. package/dist/forecast-EHOMHLUH.js +169 -0
  309. package/dist/forecast-EHOMHLUH.js.map +1 -0
  310. package/dist/forecast-VODA7N3G.js +121 -0
  311. package/dist/funding-HKPP53U2.js +85 -0
  312. package/dist/funnel-BXJDMVMF.js +397 -0
  313. package/dist/ga4-MUIZN7ID.js +55 -0
  314. package/dist/generate-VCGSO7HI.js +263 -0
  315. package/dist/get-3QLANJES.js +59 -0
  316. package/dist/get-D5G2RNTR.js +62 -0
  317. package/dist/get-EASXXOQR.js +62 -0
  318. package/dist/get-EN4UQI7R.js +82 -0
  319. package/dist/get-G4UPOHVY.js +74 -0
  320. package/dist/get-GOXOADPY.js +56 -0
  321. package/dist/get-JUI3RVMT.js +38 -0
  322. package/dist/get-T7A3CTS2.js +92 -0
  323. package/dist/gif-4KAQUYPX.js +111 -0
  324. package/dist/google-ATEQHENA.js +163 -0
  325. package/dist/google-ZVVKAI7T.js +3300 -0
  326. package/dist/google-ZVVKAI7T.js.map +1 -0
  327. package/dist/google-ads-OUNSPGRQ.js +198 -0
  328. package/dist/group-4GYPBQMU.js +43 -0
  329. package/dist/group-GH5CSQKA.js +43 -0
  330. package/dist/gsc-3EIBYMON.js +30 -0
  331. package/dist/history-5OJVW2ZF.js +153 -0
  332. package/dist/history-RQMCZQSC.js +69 -0
  333. package/dist/history-TDGBO76N.js +102 -0
  334. package/dist/hubspot-VQGONQQU.js +817 -0
  335. package/dist/hubspot-VQGONQQU.js.map +1 -0
  336. package/dist/icon-VYFLZ4FS.js +138 -0
  337. package/dist/ideas-B7RQXWHQ.js +45 -0
  338. package/dist/images-Q45MP4Q2.js +92 -0
  339. package/dist/improve-ZBPSMVFI.js +86 -0
  340. package/dist/ingest-6MMY4KDM.js +131 -0
  341. package/dist/ingest-UMQQIINM.js +28 -0
  342. package/dist/insights-2NWY4XJR.js +658 -0
  343. package/dist/insights-WDHDMULM.js +132 -0
  344. package/dist/inspect-W2BIGA5F.js +192 -0
  345. package/dist/inspiration-6FGGHV73.js +53 -0
  346. package/dist/instant-experiences-YZYOLGBA.js +264 -0
  347. package/dist/intent-3S6SHAYC.js +95 -0
  348. package/dist/job-2XYPZRJ6.js +202 -0
  349. package/dist/job-create-BPUOBKXA.js +109 -0
  350. package/dist/job-status-HUDHF6BU.js +74 -0
  351. package/dist/keep-XBYR2NII.js +78 -0
  352. package/dist/keyword-gap-MGHKWE6A.js +130 -0
  353. package/dist/keyword-metrics-6R5TSHCE.js +200 -0
  354. package/dist/keywords-for-site-EFBLFX6E.js +131 -0
  355. package/dist/knowledge-ILQIN5FL.js +195 -0
  356. package/dist/landing-WC5FX3UP.js +28 -0
  357. package/dist/landings-GRJAJKHY.js +151 -0
  358. package/dist/languages-22VMY7JN.js +55 -0
  359. package/dist/languages-4J7JHZNB.js +40 -0
  360. package/dist/launches-NUMSS7HP.js +19 -0
  361. package/dist/layerize-TFRXRHVL.js +190 -0
  362. package/dist/lead-routes-D5ITHESC.js +733 -0
  363. package/dist/leads-CBOQ5CNM.js +115 -0
  364. package/dist/leads-VEHYM23G.js +541 -0
  365. package/dist/learn-ZUP35H3T.js +207 -0
  366. package/dist/library-JB2UBSJ5.js +212 -0
  367. package/dist/lighthouse-EQZFYGFL.js +75 -0
  368. package/dist/line-item-writes-W4UFIYEA.js +211 -0
  369. package/dist/line-items-SGCUJF3S.js +107 -0
  370. package/dist/link-KLJB7COB.js +67 -0
  371. package/dist/linkedin-TANR45ZZ.js +1381 -0
  372. package/dist/linkedin-TANR45ZZ.js.map +1 -0
  373. package/dist/linkedin-person-ECWP4XPE.js +139 -0
  374. package/dist/list-5BWNSHYO.js +51 -0
  375. package/dist/list-A363BF25.js +65 -0
  376. package/dist/list-JARIB5LC.js +57 -0
  377. package/dist/list-PXEJMDB4.js +67 -0
  378. package/dist/list-RO4YLUFK.js +76 -0
  379. package/dist/list-SVR5HBLA.js +306 -0
  380. package/dist/list-UD43QCLC.js +50 -0
  381. package/dist/list-XELB7UV2.js +154 -0
  382. package/dist/list-XPLMANXX.js +93 -0
  383. package/dist/locations-KM4XY56A.js +40 -0
  384. package/dist/locations-SNK2NDH3.js +69 -0
  385. package/dist/log-PMPOO42C.js +95 -0
  386. package/dist/logo-KDGD6LRA.js +19 -0
  387. package/dist/lookup-7HIPFF2U.js +23 -0
  388. package/dist/make-Q36WVKT3.js +1367 -0
  389. package/dist/map-DQ65PS65.js +445 -0
  390. package/dist/mcp-XMFKYN3E.js +729 -0
  391. package/dist/media-6VI4PN4N.js +18 -0
  392. package/dist/media-WIFXVGKU.js +89 -0
  393. package/dist/media-sources-HG524YO4.js +35 -0
  394. package/dist/members-D4DI2IFH.js +47 -0
  395. package/dist/meme-I43AVLGS.js +108 -0
  396. package/dist/meta-IVCO7HHX.js +152 -0
  397. package/dist/meta-IVCO7HHX.js.map +1 -0
  398. package/dist/metrics-QVDXMTEI.js +152 -0
  399. package/dist/metrics-QVDXMTEI.js.map +1 -0
  400. package/dist/normalize-5B5WIBV4.js +806 -0
  401. package/dist/normalize-XRVNJTML.js +144 -0
  402. package/dist/options-HT27WLNS.js +125 -0
  403. package/dist/organization-DYPTFZBA.js +949 -0
  404. package/dist/output-W5J5RKRR.js +26 -0
  405. package/dist/page-KUDKDDLJ.js +105 -0
  406. package/dist/page-photos-52S2XRIW.js +118 -0
  407. package/dist/pages-RMTL3RCK.js +67 -0
  408. package/dist/people-5MJXHC3D.js +171 -0
  409. package/dist/people-5MJXHC3D.js.map +1 -0
  410. package/dist/people-TTUIYT3L.js +164 -0
  411. package/dist/people-TTUIYT3L.js.map +1 -0
  412. package/dist/performance-2AQ34OPB.js +27 -0
  413. package/dist/performance-WE4LHJ2B.js +5565 -0
  414. package/dist/pinterest-GMNQ2AVG.js +105 -0
  415. package/dist/pixels-EWFDIDFA.js +62 -0
  416. package/dist/pixels-YQJKJWAC.js +109 -0
  417. package/dist/plan-33F5F2OR.js +208 -0
  418. package/dist/posts-MZFKWSZ6.js +36 -0
  419. package/dist/preview-HWM6KHV5.js +245 -0
  420. package/dist/preview-JYVRWRTT.js +101 -0
  421. package/dist/profile-OYCGBQWF.js +159 -0
  422. package/dist/promoted-tweet-writes-HCVRPH45.js +183 -0
  423. package/dist/promoted-tweets-P56ZU6OK.js +119 -0
  424. package/dist/properties-PMY3KKUU.js +101 -0
  425. package/dist/publish-4VWZHRYO.js +350 -0
  426. package/dist/query-ALRSR5OF.js +236 -0
  427. package/dist/query-DK7WWCJJ.js +62 -0
  428. package/dist/query-ZGGHOYOH.js +231 -0
  429. package/dist/questionnaire-4AJFPLM2.js +94 -0
  430. package/dist/read-Z7BBSAEK.js +141 -0
  431. package/dist/reddit-NSKYHSAC.js +29 -0
  432. package/dist/refresh-O3CLJX4O.js +97 -0
  433. package/dist/refresh-VE3UKLXX.js +42 -0
  434. package/dist/release-6TQQW4HB.js +63 -0
  435. package/dist/relevant-pages-B3ZFOGHQ.js +99 -0
  436. package/dist/remove-R55VAM47.js +53 -0
  437. package/dist/remove-VGEKRK34.js +49 -0
  438. package/dist/reopen-S426N3OD.js +66 -0
  439. package/dist/rerun-5KHANQR3.js +97 -0
  440. package/dist/research-5REXCSSO.js +265 -0
  441. package/dist/research-DMZLXMM2.js +78 -0
  442. package/dist/research-DMZLXMM2.js.map +1 -0
  443. package/dist/reset-5N2IVHFL.js +57 -0
  444. package/dist/reset-D4NGVG35.js +57 -0
  445. package/dist/resolve-V75JGD75.js +124 -0
  446. package/dist/retry-SB7EIJBA.js +65 -0
  447. package/dist/retry-WIKW6CGT.js +63 -0
  448. package/dist/retry-failed-GEORPC3E.js +45 -0
  449. package/dist/revenue-GZJU3XMD.js +91 -0
  450. package/dist/rule-writes-DRZUEIV6.js +530 -0
  451. package/dist/rules-BBALKNBK.js +217 -0
  452. package/dist/rules-WI6YKZA4.js +99 -0
  453. package/dist/rules-add-JCRB4AJR.js +465 -0
  454. package/dist/run-RDHTORWZ.js +69 -0
  455. package/dist/run-VVK23U5P.js +72 -0
  456. package/dist/scaffold-ad-QSVBY3XR.js +1513 -0
  457. package/dist/scaffold-static-ad-64BZMUHP.js +1012 -0
  458. package/dist/scaffold-video-X27MRW7R.js +885 -0
  459. package/dist/schedule-L5NVM4DN.js +67 -0
  460. package/dist/schedule-XHPIVUJ6.js +64 -0
  461. package/dist/scheduled-agents-OMUQCGDG.js +56 -0
  462. package/dist/scheduled-agents-OMUQCGDG.js.map +1 -0
  463. package/dist/schema-3IEI64TQ.js +152 -0
  464. package/dist/schema-RDVJQ5VW.js +135 -0
  465. package/dist/scrape-YEZGRX2B.js +2209 -0
  466. package/dist/screenshot-6EBASY4U.js +103 -0
  467. package/dist/search-BZLTII6V.js +228 -0
  468. package/dist/search-I7CCYBB5.js +92 -0
  469. package/dist/search-NA7DBOLW.js +91 -0
  470. package/dist/search-RM4MN7KO.js +51 -0
  471. package/dist/search-SNEFCCJX.js +26 -0
  472. package/dist/search-VX5ATSCD.js +177 -0
  473. package/dist/search-copy-S6JVQZLI.js +168 -0
  474. package/dist/seeds-BIY565P3.js +101 -0
  475. package/dist/select-NX3VHQTH.js +110 -0
  476. package/dist/sends-7JKFJTRE.js +349 -0
  477. package/dist/sequences-KZSNIELI.js +146 -0
  478. package/dist/set-prompt-QGEWZ3HD.js +199 -0
  479. package/dist/setup-links-LIDZVTSU.js +144 -0
  480. package/dist/shared-P5UDXZAG.js +34 -0
  481. package/dist/shopify-LZU3MCDG.js +4009 -0
  482. package/dist/site-CEO2V3BI.js +180 -0
  483. package/dist/sitemaps-WCARK2BM.js +77 -0
  484. package/dist/sites-JQZ2ZC6W.js +97 -0
  485. package/dist/skills-V2FRLLOW.js +47 -0
  486. package/dist/sources-C7AQCP2Z.js +30 -0
  487. package/dist/sources-SIGZVORA.js +457 -0
  488. package/dist/stale-BOUBKOAA.js +90 -0
  489. package/dist/stale-BOUBKOAA.js.map +1 -0
  490. package/dist/stats-W7CCPRTG.js +34 -0
  491. package/dist/status-NIG6OSAG.js +65 -0
  492. package/dist/sticker-NDSJDIAK.js +103 -0
  493. package/dist/stock-KY6BCN76.js +212 -0
  494. package/dist/studies-4JOP2GQJ.js +250 -0
  495. package/dist/studio-VQFYNK5O.js +49 -0
  496. package/dist/study-writes-PMTRTUXP.js +471 -0
  497. package/dist/suggest-F5GIJR4K.js +66 -0
  498. package/dist/sync-3RS5E5ZI.js +57 -0
  499. package/dist/sync-IDULIJUZ.js +279 -0
  500. package/dist/sync-STPHWKTE.js +55 -0
  501. package/dist/sync-definition-VHYZWLS5.js +70 -0
  502. package/dist/tag-MMY3QT2N.js +57 -0
  503. package/dist/tag-manager-JDGWAHCZ.js +43 -0
  504. package/dist/tags-F6DBHGIL.js +26 -0
  505. package/dist/tags-HGKEOIR7.js +23 -0
  506. package/dist/tags-I2LINXA7.js +23 -0
  507. package/dist/tags-UM6Y4DVQ.js +227 -0
  508. package/dist/tags-YCBZVXJQ.js +23 -0
  509. package/dist/targeting-AVHPKERN.js +762 -0
  510. package/dist/targeting-constants-T7Y6RVEH.js +118 -0
  511. package/dist/targeting-criteria-XPK76HRH.js +113 -0
  512. package/dist/targets-KT4BNTKZ.js +106 -0
  513. package/dist/terms-ETG7YCJC.js +102 -0
  514. package/dist/testimonials-QGXMSSWV.js +32 -0
  515. package/dist/themes-ZKUHKUZD.js +95 -0
  516. package/dist/themes-ZKUHKUZD.js.map +1 -0
  517. package/dist/top-companies-RC5KTWQ5.js +246 -0
  518. package/dist/top-companies-RC5KTWQ5.js.map +1 -0
  519. package/dist/transcript-OLF62WCH.js +165 -0
  520. package/dist/translate-NON5ZD3S.js +603 -0
  521. package/dist/triggers-UOQY4RFC.js +144 -0
  522. package/dist/tweets-3H7CW3ZI.js +123 -0
  523. package/dist/unfollow-PEEPIMZY.js +46 -0
  524. package/dist/unlink-RNIJPHHW.js +70 -0
  525. package/dist/unstage-GUPBLCPZ.js +96 -0
  526. package/dist/unstage-QVDYVN77.js +88 -0
  527. package/dist/update-7KR5ABJP.js +66 -0
  528. package/dist/update-JAUWIWOH.js +192 -0
  529. package/dist/update-QZEF5MUW.js +101 -0
  530. package/dist/update-TNOOVX3P.js +81 -0
  531. package/dist/update-TRWHYXF4.js +155 -0
  532. package/dist/upload-MLK2MZB6.js +137 -0
  533. package/dist/upload-W2UTHRP2.js +155 -0
  534. package/dist/upscale-MTWSJ3EJ.js +109 -0
  535. package/dist/url-options-2FVG55JF.js +131 -0
  536. package/dist/url-options-2FVG55JF.js.map +1 -0
  537. package/dist/url-params-F4XNWPOD.js +101 -0
  538. package/dist/use-K5EP7JJM.js +111 -0
  539. package/dist/validate-P3AQVXG6.js +135 -0
  540. package/dist/variant-BZCX46QL.js +338 -0
  541. package/dist/videos-PAKAAFRD.js +41 -0
  542. package/dist/videos-QIDOIJ24.js +146 -0
  543. package/dist/view-CD5UWMR4.js +133 -0
  544. package/dist/viewer-check-KXMDJH7R.js +83 -0
  545. package/dist/viewer-check-KXMDJH7R.js.map +1 -0
  546. package/dist/web-E5NHFG4Y.js +173 -0
  547. package/dist/winners-CSNTBOVM.js +113 -0
  548. package/dist/winning-ads-P6PDTCCU.js +86 -0
  549. package/dist/write-commands-AASXCKRN.js +721 -0
  550. package/dist/write-commands-MBNO7DCX.js +1524 -0
  551. package/dist/write-commands-OV7RE6O2.js +206 -0
  552. package/dist/write-commands-XFYXMTXO.js +1169 -0
  553. package/dist/x-5A74OD5P.js +47 -0
  554. package/package.json +1 -1
  555. package/dist/account-H6OOCEE3.js +0 -82
  556. package/dist/account-JVDP5ERG.js +0 -82
  557. package/dist/account-NSBALYYS.js +0 -139
  558. package/dist/account-assets-EPEYTJFD.js +0 -290
  559. package/dist/account-level-VD4NLB2D.js +0 -611
  560. package/dist/account-reads-OQCA5LEM.js +0 -219
  561. package/dist/account-reads-OQCA5LEM.js.map +0 -1
  562. package/dist/account-users-VBPW6FPY.js +0 -64
  563. package/dist/account-writes-KEXINJ5D.js +0 -68
  564. package/dist/accounts-A47QUTTB.js +0 -76
  565. package/dist/accounts-CNWJYCUV.js +0 -80
  566. package/dist/accounts-E5TF2AFI.js +0 -115
  567. package/dist/accounts-M5SCXY6W.js +0 -713
  568. package/dist/accounts-M5SCXY6W.js.map +0 -1
  569. package/dist/accounts-QR6OQ3GC.js +0 -119
  570. package/dist/actions-6DC3FUQF.js +0 -55
  571. package/dist/active-entities-XRSJNBOV.js +0 -103
  572. package/dist/activecampaign-YMVIS6EN.js +0 -938
  573. package/dist/activities-ZDWREYR7.js +0 -75
  574. package/dist/ad-group-writes-SVR4RCKB.js +0 -172
  575. package/dist/ad-groups-C726HUXS.js +0 -70
  576. package/dist/ad-writes-RWJIWGEL.js +0 -176
  577. package/dist/add-25YZMFSH.js +0 -85
  578. package/dist/add-7MAL7JRX.js +0 -81
  579. package/dist/add-D44VCDRU.js +0 -148
  580. package/dist/add-ITTW4LQC.js +0 -305
  581. package/dist/add-JO4ZPS23.js +0 -97
  582. package/dist/add-QZHZIAVE.js +0 -107
  583. package/dist/add-accounts-EKMSHAA4.js +0 -91
  584. package/dist/ads-3KK7VQPU.js +0 -79
  585. package/dist/ads-4YZYNU66.js +0 -128
  586. package/dist/ads-DGL5SGP3.js +0 -120
  587. package/dist/ads-UZ355BQS.js +0 -48
  588. package/dist/adsets-PSVCPCE3.js +0 -182
  589. package/dist/advertisers-7NAPI5ZU.js +0 -125
  590. package/dist/advertisers-Z2WLSJEC.js +0 -123
  591. package/dist/analytics-64DI3ZJL.js +0 -2437
  592. package/dist/analytics-64DI3ZJL.js.map +0 -1
  593. package/dist/analytics-GILIREA3.js +0 -447
  594. package/dist/animate-GTUI7XX4.js +0 -480
  595. package/dist/approved-E4EZA5RT.js +0 -73
  596. package/dist/asset-writes-NDSHY5OT.js +0 -50
  597. package/dist/assign-6RI3EC7U.js +0 -80
  598. package/dist/audience-size-M6NORPEU.js +0 -76
  599. package/dist/audience-writes-4KQXVGHO.js +0 -327
  600. package/dist/audiences-6L43K2T2.js +0 -280
  601. package/dist/audiences-T5LMTT3B.js +0 -85
  602. package/dist/audiences-UHLVATR6.js +0 -106
  603. package/dist/audit-46DO2HV3.js +0 -88
  604. package/dist/audit-CPEOJSCV.js +0 -154
  605. package/dist/autocomplete-DCCI3W5Y.js +0 -114
  606. package/dist/avatars-GDRSOS6V.js +0 -38
  607. package/dist/bid-pricing-FQ6VJSH6.js +0 -103
  608. package/dist/brand-6TUMI2GH.js +0 -22
  609. package/dist/brief-U6ZT5UYG.js +0 -543
  610. package/dist/businesses-TRFYMZ4I.js +0 -54
  611. package/dist/campaign-groups-RTP2MKNJ.js +0 -99
  612. package/dist/campaign-writes-4NVY7S4U.js +0 -168
  613. package/dist/campaign-writes-FUIGN5OR.js +0 -176
  614. package/dist/campaigns-2MTON2IE.js +0 -130
  615. package/dist/campaigns-7ZVVYTBM.js +0 -113
  616. package/dist/campaigns-CCDJKV7I.js +0 -111
  617. package/dist/campaigns-N2SWSBYT.js +0 -78
  618. package/dist/canvas-UYRDIRPR.js +0 -46
  619. package/dist/capabilities-4KGVNK4Q.js +0 -147
  620. package/dist/cards-CXKIVM4D.js +0 -85
  621. package/dist/catalog-JICUCAJZ.js +0 -66
  622. package/dist/catalogs-4DNLG4AM.js +0 -782
  623. package/dist/catalogs-G5NOKL4L.js +0 -130
  624. package/dist/changes-AS4RVEAL.js +0 -167
  625. package/dist/changes-AS4RVEAL.js.map +0 -1
  626. package/dist/chatgpt-O6EEAYLF.js +0 -47
  627. package/dist/chats-JNL4L6GZ.js +0 -589
  628. package/dist/check-EXT5WAYI.js +0 -107
  629. package/dist/chunk-2CC4CPDT.js +0 -225
  630. package/dist/chunk-2NOFIV6M.js +0 -5368
  631. package/dist/chunk-3GXHML4V.js +0 -106
  632. package/dist/chunk-3QLGV4XN.js +0 -604
  633. package/dist/chunk-3QNSGFE2.js +0 -103
  634. package/dist/chunk-3QPG2D27.js +0 -125
  635. package/dist/chunk-3WN5GWX4.js +0 -94
  636. package/dist/chunk-4AO3LSYM.js +0 -73
  637. package/dist/chunk-4HFM5RCP.js +0 -217
  638. package/dist/chunk-4HFM5RCP.js.map +0 -1
  639. package/dist/chunk-5CH2JQCA.js +0 -547
  640. package/dist/chunk-5LEIUG5H.js +0 -399
  641. package/dist/chunk-5N77IAOT.js +0 -7901
  642. package/dist/chunk-5N77IAOT.js.map +0 -1
  643. package/dist/chunk-5NMKNHJI.js +0 -46
  644. package/dist/chunk-5QNW5PCM.js +0 -106
  645. package/dist/chunk-66LB37BF.js +0 -455
  646. package/dist/chunk-6D7WTUF3.js +0 -98
  647. package/dist/chunk-6EOWBGGW.js +0 -191
  648. package/dist/chunk-6MJKVNLL.js +0 -25
  649. package/dist/chunk-6RWLCOAH.js +0 -334
  650. package/dist/chunk-6RWLCOAH.js.map +0 -1
  651. package/dist/chunk-6TNRSWNA.js +0 -207
  652. package/dist/chunk-6TNRSWNA.js.map +0 -1
  653. package/dist/chunk-7NBQQOCU.js +0 -97
  654. package/dist/chunk-7YXBMYSM.js +0 -91
  655. package/dist/chunk-A6LOIUWB.js +0 -51
  656. package/dist/chunk-AQRBEPZL.js +0 -138
  657. package/dist/chunk-AUDVBN6H.js +0 -8985
  658. package/dist/chunk-AUDVBN6H.js.map +0 -1
  659. package/dist/chunk-AZIXX73C.js +0 -64
  660. package/dist/chunk-B64KJW5C.js +0 -476
  661. package/dist/chunk-B64KJW5C.js.map +0 -1
  662. package/dist/chunk-BBS5VXLK.js +0 -91
  663. package/dist/chunk-BIBXZJZI.js +0 -97
  664. package/dist/chunk-BPDUE3MT.js +0 -312
  665. package/dist/chunk-C3XJ46C2.js +0 -203
  666. package/dist/chunk-CBVUO7SK.js +0 -1744
  667. package/dist/chunk-CC42TKFH.js +0 -19
  668. package/dist/chunk-CF5I4Q5M.js +0 -69
  669. package/dist/chunk-CFF7VAOQ.js +0 -142
  670. package/dist/chunk-CUTTTFAU.js +0 -783
  671. package/dist/chunk-CUTTTFAU.js.map +0 -1
  672. package/dist/chunk-DGHSXHZR.js +0 -136
  673. package/dist/chunk-DHF4FXWS.js +0 -58
  674. package/dist/chunk-DPOUS5DN.js +0 -287
  675. package/dist/chunk-EDZDYB3C.js +0 -23
  676. package/dist/chunk-EJ6EED6I.js +0 -69
  677. package/dist/chunk-ELFZ63XY.js +0 -392
  678. package/dist/chunk-EM5R3BYC.js +0 -131
  679. package/dist/chunk-F5VR6HSI.js +0 -170
  680. package/dist/chunk-FE2MFNVT.js +0 -5471
  681. package/dist/chunk-FLTAPEVY.js +0 -288
  682. package/dist/chunk-FLZNYVMN.js +0 -2235
  683. package/dist/chunk-FLZNYVMN.js.map +0 -1
  684. package/dist/chunk-FPYMFYML.js +0 -468
  685. package/dist/chunk-FPYMFYML.js.map +0 -1
  686. package/dist/chunk-FWYWLEDP.js +0 -755
  687. package/dist/chunk-FWYWLEDP.js.map +0 -1
  688. package/dist/chunk-G4TPYA7F.js +0 -454
  689. package/dist/chunk-GRX3JXSR.js +0 -843
  690. package/dist/chunk-H25GY4U4.js +0 -139
  691. package/dist/chunk-H423YXYY.js +0 -249
  692. package/dist/chunk-H6ASYVQX.js +0 -544
  693. package/dist/chunk-IYDESWW4.js +0 -74
  694. package/dist/chunk-J4AWNWKN.js +0 -1919
  695. package/dist/chunk-JAME5NBT.js +0 -42
  696. package/dist/chunk-JLAFNORO.js +0 -285
  697. package/dist/chunk-JQYB2DS3.js +0 -197
  698. package/dist/chunk-JYOP6YVT.js +0 -66
  699. package/dist/chunk-KGJ6EIX3.js +0 -76
  700. package/dist/chunk-KOKPQE4N.js +0 -494
  701. package/dist/chunk-KTX7QAKP.js +0 -831
  702. package/dist/chunk-KTX7QAKP.js.map +0 -1
  703. package/dist/chunk-L4QEMWNJ.js +0 -111
  704. package/dist/chunk-L7I47VGM.js +0 -46
  705. package/dist/chunk-LAMSUL26.js +0 -1518
  706. package/dist/chunk-LJEJCIHR.js +0 -246
  707. package/dist/chunk-LYGZBNSC.js +0 -224
  708. package/dist/chunk-M4KFO256.js +0 -188
  709. package/dist/chunk-MIHY534L.js +0 -39
  710. package/dist/chunk-MKOI6QYM.js +0 -225
  711. package/dist/chunk-MPTNN35I.js +0 -325
  712. package/dist/chunk-MPTNN35I.js.map +0 -1
  713. package/dist/chunk-MTW2NDDD.js +0 -98
  714. package/dist/chunk-MTW2NDDD.js.map +0 -1
  715. package/dist/chunk-NI5R6Y24.js +0 -89
  716. package/dist/chunk-O5VSYBUA.js +0 -343
  717. package/dist/chunk-OEO2NSNC.js +0 -297
  718. package/dist/chunk-OZNBVJGC.js +0 -220
  719. package/dist/chunk-PYZVVMF4.js +0 -430
  720. package/dist/chunk-PYZVVMF4.js.map +0 -1
  721. package/dist/chunk-Q3G4ZI2U.js +0 -84
  722. package/dist/chunk-Q5XUFN2W.js +0 -35
  723. package/dist/chunk-Q736UFSD.js +0 -75
  724. package/dist/chunk-QGAUDVMR.js +0 -148
  725. package/dist/chunk-QZ4YHQLW.js +0 -63
  726. package/dist/chunk-QZ4YHQLW.js.map +0 -1
  727. package/dist/chunk-R7XDGNZD.js +0 -297
  728. package/dist/chunk-R7XDGNZD.js.map +0 -1
  729. package/dist/chunk-RIIMF75G.js +0 -64
  730. package/dist/chunk-RRKUXGAU.js +0 -26
  731. package/dist/chunk-RUMHZX5N.js +0 -225
  732. package/dist/chunk-S36WWACM.js +0 -3510
  733. package/dist/chunk-S5S54J2K.js +0 -56
  734. package/dist/chunk-SHYUXLE5.js +0 -61
  735. package/dist/chunk-SIRRBWQ2.js +0 -215
  736. package/dist/chunk-SNVAE572.js +0 -167
  737. package/dist/chunk-TLQY4QBW.js +0 -84
  738. package/dist/chunk-UK4XSLV2.js +0 -296
  739. package/dist/chunk-URGXEDFV.js +0 -76
  740. package/dist/chunk-UVUY6FLV.js +0 -1254
  741. package/dist/chunk-UVUY6FLV.js.map +0 -1
  742. package/dist/chunk-UZVFXGMS.js +0 -930
  743. package/dist/chunk-V4HS5JRL.js +0 -1320
  744. package/dist/chunk-V7EN5LFS.js +0 -115
  745. package/dist/chunk-VCG3Q3O4.js +0 -479
  746. package/dist/chunk-VKIKIN5U.js +0 -1920
  747. package/dist/chunk-VKIKIN5U.js.map +0 -1
  748. package/dist/chunk-VZIYTP3X.js +0 -163
  749. package/dist/chunk-WEBWXSFF.js +0 -169
  750. package/dist/chunk-WOHTTXLG.js +0 -57
  751. package/dist/chunk-WTPID22G.js +0 -152
  752. package/dist/chunk-X7USE7IA.js +0 -24026
  753. package/dist/chunk-XA76OGSL.js +0 -718
  754. package/dist/chunk-XA76OGSL.js.map +0 -1
  755. package/dist/chunk-XY7W6MQN.js +0 -274
  756. package/dist/chunk-YAMKCMAS.js +0 -219
  757. package/dist/chunk-YEQTBPEB.js +0 -344
  758. package/dist/chunk-YHBMCP6C.js +0 -156
  759. package/dist/chunk-YJEG6TQ3.js +0 -685
  760. package/dist/chunk-YQYCWYFJ.js +0 -962
  761. package/dist/chunk-YRWCXYWW.js +0 -178
  762. package/dist/chunk-ZCGM7ZWM.js +0 -45
  763. package/dist/cite-WCAOCOO5.js +0 -191
  764. package/dist/claim-4LKB2Z6T.js +0 -200
  765. package/dist/client-VCKP6WBR.js +0 -19
  766. package/dist/code-VXOTFGD2.js +0 -76
  767. package/dist/companies-KCHDEHAA.js +0 -198
  768. package/dist/companies-KCHDEHAA.js.map +0 -1
  769. package/dist/company-C2Y7LY5H.js +0 -308
  770. package/dist/complete-MNN3PAZE.js +0 -84
  771. package/dist/config-UR45YCIN.js +0 -88
  772. package/dist/connect-IABMKFGA.js +0 -45
  773. package/dist/content-EQQIKG5H.js +0 -85
  774. package/dist/conversation-FETU4KTF.js +0 -96
  775. package/dist/conversion-report-33SG7SHU.js +0 -127
  776. package/dist/conversion-upload-command-DWIGVHQZ.js +0 -439
  777. package/dist/conversion-writes-XGGTBML5.js +0 -122
  778. package/dist/conversions-PPP4QK7U.js +0 -78
  779. package/dist/conversions-S3WIR5R4.js +0 -140
  780. package/dist/copy-writes-JVUX3YDL.js +0 -170
  781. package/dist/countries-GRCU4IGM.js +0 -82
  782. package/dist/create-A3ZIQVIH.js +0 -239
  783. package/dist/create-ESKBBBJX.js +0 -135
  784. package/dist/create-U2ITO4RV.js +0 -218
  785. package/dist/create-VNYTZJ4T.js +0 -62
  786. package/dist/creatives-4EPM3RHG.js +0 -118
  787. package/dist/creatives-WSCRC5GO.js +0 -58
  788. package/dist/creatives-XO5E4AIC.js +0 -229
  789. package/dist/credentials-ZV66ZUCK.js +0 -290
  790. package/dist/critique-ODWLA52C.js +0 -1451
  791. package/dist/critique-X3433R5M.js +0 -232
  792. package/dist/crm-WPPM2R7I.js +0 -323
  793. package/dist/crm-XPIQAGH7.js +0 -229
  794. package/dist/crm-XPIQAGH7.js.map +0 -1
  795. package/dist/crop-NE7YX4SS.js +0 -113
  796. package/dist/currency-HK2ZW2VW.js +0 -88
  797. package/dist/currency-HK2ZW2VW.js.map +0 -1
  798. package/dist/custom-conversions-GQTU5E6X.js +0 -128
  799. package/dist/customers-GCM7WZII.js +0 -65
  800. package/dist/decide-6Q5X3V3F.js +0 -199
  801. package/dist/delete-EKKOEB3N.js +0 -69
  802. package/dist/delete-GAIV2YVD.js +0 -69
  803. package/dist/delete-QHDDR66K.js +0 -85
  804. package/dist/delete-RVJLATPO.js +0 -57
  805. package/dist/delete-SP66F7ZV.js +0 -71
  806. package/dist/delete-VJ5QXKZR.js +0 -67
  807. package/dist/demographics-XWIW3YJF.js +0 -141
  808. package/dist/describe-DJPIUEFE.js +0 -97
  809. package/dist/describe-MAGTSOW4.js +0 -97
  810. package/dist/dimensions-IC2H7V3H.js +0 -101
  811. package/dist/discard-TWX2CQF5.js +0 -69
  812. package/dist/discover-PSL2NBJL.js +0 -93
  813. package/dist/discover-Q5PAOIQQ.js +0 -172
  814. package/dist/discover-Q5PAOIQQ.js.map +0 -1
  815. package/dist/domain-FE32BE2E.js +0 -101
  816. package/dist/download-5FYHTIGR.js +0 -172
  817. package/dist/download-EHDJXBAC.js +0 -337
  818. package/dist/draft-27NMTARB.js +0 -134
  819. package/dist/draft-5VLO5UYZ.js +0 -332
  820. package/dist/draft-JESKGZ6O.js +0 -138
  821. package/dist/draft-L2NXCIYT.js +0 -315
  822. package/dist/draft-L757UIW5.js +0 -374
  823. package/dist/draft-MWYKIZC4.js +0 -260
  824. package/dist/draft-WK4PEMB6.js +0 -614
  825. package/dist/draft-WK4PEMB6.js.map +0 -1
  826. package/dist/draft-ZCP3MIV6.js +0 -220
  827. package/dist/env-NZXNMWSD.js +0 -53
  828. package/dist/experiment-XAYSEYTU.js +0 -1397
  829. package/dist/experiments-DVR7WBGQ.js +0 -236
  830. package/dist/export-W54UZ62P.js +0 -168
  831. package/dist/extract-JM6FAWAS.js +0 -143
  832. package/dist/facets-IEQJK5AW.js +0 -117
  833. package/dist/favorites-Y6CT6NSQ.js +0 -178
  834. package/dist/feed-35BRQPTH.js +0 -177
  835. package/dist/feedback-QUJ2V4WD.js +0 -114
  836. package/dist/feedback-SSCN7LEP.js +0 -115
  837. package/dist/feedback-record-P6WK4UPP.js +0 -269
  838. package/dist/fetch-I6P72CDL.js +0 -139
  839. package/dist/fetch-Q6BIDVN5.js +0 -204
  840. package/dist/find-SVGRA7IA.js +0 -144
  841. package/dist/fit-XLK5LDPS.js +0 -65
  842. package/dist/flows-QVGZEYCH.js +0 -340
  843. package/dist/follow-24QSDNAG.js +0 -94
  844. package/dist/follow-competitors-AG4E4XFA.js +0 -112
  845. package/dist/following-YGM6TBK3.js +0 -113
  846. package/dist/fonts-GARRSRIB.js +0 -39
  847. package/dist/forecast-GEYNZ5PQ.js +0 -121
  848. package/dist/forecast-THQNGKPE.js +0 -169
  849. package/dist/forecast-THQNGKPE.js.map +0 -1
  850. package/dist/funding-WZNGXRLJ.js +0 -85
  851. package/dist/funnel-OABL4MLZ.js +0 -397
  852. package/dist/ga4-W3U5YTRT.js +0 -55
  853. package/dist/generate-Y4NJEYIH.js +0 -263
  854. package/dist/get-3MTAVNTP.js +0 -56
  855. package/dist/get-5SPNAIUQ.js +0 -62
  856. package/dist/get-63KQ62KN.js +0 -82
  857. package/dist/get-GEUSRD5Y.js +0 -59
  858. package/dist/get-JIZPYK3Z.js +0 -74
  859. package/dist/get-RDGC3QA5.js +0 -62
  860. package/dist/get-TS2ZJDCQ.js +0 -38
  861. package/dist/get-YWDZYEAC.js +0 -92
  862. package/dist/gif-NP6EDGEE.js +0 -111
  863. package/dist/google-32BCQC7C.js +0 -163
  864. package/dist/google-VYCMEWUL.js +0 -3300
  865. package/dist/google-VYCMEWUL.js.map +0 -1
  866. package/dist/google-ads-PCXGVHZV.js +0 -198
  867. package/dist/group-3DT4UYSR.js +0 -43
  868. package/dist/group-OEKKCFXT.js +0 -43
  869. package/dist/gsc-4FEFPFPB.js +0 -30
  870. package/dist/history-J7ANCPWY.js +0 -153
  871. package/dist/history-NX67UIZ7.js +0 -102
  872. package/dist/history-VKRYKQ4C.js +0 -69
  873. package/dist/hubspot-Z3J3JBEH.js +0 -814
  874. package/dist/hubspot-Z3J3JBEH.js.map +0 -1
  875. package/dist/icon-43UJTGGE.js +0 -138
  876. package/dist/ideas-22I7JTI7.js +0 -45
  877. package/dist/images-3C4Y6RWL.js +0 -92
  878. package/dist/improve-IMXQN6OD.js +0 -86
  879. package/dist/ingest-CFH2MPSF.js +0 -131
  880. package/dist/ingest-VXX2Y76C.js +0 -28
  881. package/dist/insights-3IPSEBYW.js +0 -132
  882. package/dist/insights-BR3456EI.js +0 -658
  883. package/dist/inspect-LDXPOGGH.js +0 -192
  884. package/dist/inspiration-XZI5KCQW.js +0 -53
  885. package/dist/instant-experiences-2LKF7XVK.js +0 -264
  886. package/dist/intent-ZM4K623V.js +0 -95
  887. package/dist/job-GOX3KIKG.js +0 -202
  888. package/dist/job-create-F2PQSN3C.js +0 -109
  889. package/dist/job-status-3FMA5D7T.js +0 -74
  890. package/dist/keep-23ZYMWPG.js +0 -78
  891. package/dist/keyword-gap-FAAF2I6V.js +0 -130
  892. package/dist/keyword-metrics-E36SMZSP.js +0 -200
  893. package/dist/keywords-for-site-AWGWDXZA.js +0 -131
  894. package/dist/knowledge-7M7DSRF3.js +0 -195
  895. package/dist/landing-PVTDVL22.js +0 -28
  896. package/dist/landings-VNQ4VA2U.js +0 -151
  897. package/dist/languages-2X22HXM3.js +0 -55
  898. package/dist/languages-ZGDTERIQ.js +0 -40
  899. package/dist/launches-L4EUROCJ.js +0 -19
  900. package/dist/layerize-6QHQMA7Q.js +0 -190
  901. package/dist/lead-routes-5TPFJEVH.js +0 -733
  902. package/dist/leads-4TLOH47R.js +0 -541
  903. package/dist/leads-XC3C5HGC.js +0 -115
  904. package/dist/learn-NYRL53NQ.js +0 -207
  905. package/dist/library-MNJC24E4.js +0 -212
  906. package/dist/lighthouse-DJMAXFTD.js +0 -75
  907. package/dist/line-item-writes-LMSYCR6G.js +0 -211
  908. package/dist/line-items-P24SOGVZ.js +0 -107
  909. package/dist/link-H3TTWJJO.js +0 -67
  910. package/dist/linkedin-57JHH7QN.js +0 -1344
  911. package/dist/linkedin-57JHH7QN.js.map +0 -1
  912. package/dist/linkedin-person-HKKIE32Q.js +0 -139
  913. package/dist/list-2277GCPH.js +0 -51
  914. package/dist/list-537S75BZ.js +0 -76
  915. package/dist/list-KHCFVTQU.js +0 -154
  916. package/dist/list-LC2GRYEI.js +0 -67
  917. package/dist/list-Q52FPW3H.js +0 -50
  918. package/dist/list-UCTFATXS.js +0 -306
  919. package/dist/list-V4PSDBLX.js +0 -93
  920. package/dist/list-WIXQXNKB.js +0 -65
  921. package/dist/list-XK33NCSC.js +0 -57
  922. package/dist/locations-A65MFB7Q.js +0 -69
  923. package/dist/locations-WN6B3IJK.js +0 -40
  924. package/dist/log-SLYCPRCY.js +0 -95
  925. package/dist/logo-4LSFZ3ZO.js +0 -19
  926. package/dist/lookup-WIM5WR25.js +0 -23
  927. package/dist/make-HTCPU6HU.js +0 -1367
  928. package/dist/map-237LQ5N5.js +0 -445
  929. package/dist/mcp-GX5TOO7Y.js +0 -729
  930. package/dist/media-34I7UB7Z.js +0 -89
  931. package/dist/media-KKI3KWLR.js +0 -18
  932. package/dist/media-sources-ODNIS7A5.js +0 -35
  933. package/dist/members-TYQKWR7Z.js +0 -47
  934. package/dist/meme-6NFYFQ7T.js +0 -108
  935. package/dist/meta-2UK7KIE4.js +0 -124
  936. package/dist/meta-2UK7KIE4.js.map +0 -1
  937. package/dist/metrics-3U3ZO2RF.js +0 -152
  938. package/dist/metrics-3U3ZO2RF.js.map +0 -1
  939. package/dist/normalize-G75RDSE4.js +0 -806
  940. package/dist/normalize-MDTMKLYO.js +0 -144
  941. package/dist/options-MEADUZY3.js +0 -125
  942. package/dist/organization-BXJSHRZG.js +0 -949
  943. package/dist/output-ELEO2Z6R.js +0 -24
  944. package/dist/page-4X6IBUWG.js +0 -105
  945. package/dist/page-photos-KNBLMFLN.js +0 -118
  946. package/dist/pages-7HW5YOZV.js +0 -67
  947. package/dist/performance-CU65TLCB.js +0 -5565
  948. package/dist/performance-IGCOP5VH.js +0 -27
  949. package/dist/pinterest-KA6VFDM4.js +0 -105
  950. package/dist/pixels-D5HF24FI.js +0 -109
  951. package/dist/pixels-U6UA662G.js +0 -62
  952. package/dist/plan-XCA6R3HZ.js +0 -208
  953. package/dist/posts-ALGM6ONV.js +0 -36
  954. package/dist/preview-55TRUF4Q.js +0 -245
  955. package/dist/preview-YQ6P5A53.js +0 -101
  956. package/dist/profile-NHUPUCBR.js +0 -159
  957. package/dist/promoted-tweet-writes-X2CUNBU2.js +0 -183
  958. package/dist/promoted-tweets-G2NOW5OF.js +0 -119
  959. package/dist/properties-2ZXA5BPJ.js +0 -101
  960. package/dist/publish-YPCXCU4P.js +0 -350
  961. package/dist/query-63CTX2PH.js +0 -231
  962. package/dist/query-DMWY3TDD.js +0 -236
  963. package/dist/query-SAQADBM2.js +0 -62
  964. package/dist/questionnaire-WHE42RD4.js +0 -94
  965. package/dist/read-NESEKULG.js +0 -141
  966. package/dist/reddit-XMAGZMD4.js +0 -29
  967. package/dist/refresh-ILDEPU5A.js +0 -42
  968. package/dist/refresh-QIK3CXLV.js +0 -97
  969. package/dist/release-O7KGD5MI.js +0 -63
  970. package/dist/relevant-pages-KTSODNNW.js +0 -99
  971. package/dist/remove-7FAWM2H4.js +0 -53
  972. package/dist/remove-NHE4UT7G.js +0 -49
  973. package/dist/reopen-4ZWEYNCI.js +0 -66
  974. package/dist/rerun-IDUKOW6Z.js +0 -97
  975. package/dist/research-SPFILN24.js +0 -75
  976. package/dist/research-SPFILN24.js.map +0 -1
  977. package/dist/research-Y5MSZH6T.js +0 -265
  978. package/dist/reset-4K7BXUY6.js +0 -57
  979. package/dist/reset-YSDYSZ64.js +0 -57
  980. package/dist/resolve-DD6ES7GJ.js +0 -124
  981. package/dist/retry-PZTS6KMQ.js +0 -65
  982. package/dist/retry-YAZ3JXYL.js +0 -63
  983. package/dist/retry-failed-R5HPQ3KQ.js +0 -45
  984. package/dist/revenue-PLJ46IYH.js +0 -91
  985. package/dist/rule-writes-QB4IWFCJ.js +0 -530
  986. package/dist/rules-FYVD2QBB.js +0 -217
  987. package/dist/rules-I4PL72J7.js +0 -99
  988. package/dist/rules-add-EFD2YSLH.js +0 -465
  989. package/dist/run-FN365AXZ.js +0 -72
  990. package/dist/run-WCFKVQQQ.js +0 -69
  991. package/dist/scaffold-ad-PI4IHOG5.js +0 -1513
  992. package/dist/scaffold-static-ad-RDOCRFEP.js +0 -1012
  993. package/dist/scaffold-video-HPRYTHE6.js +0 -885
  994. package/dist/schedule-D7EDEM45.js +0 -67
  995. package/dist/schedule-NPZPVNSO.js +0 -64
  996. package/dist/scheduled-agents-5TNWITKB.js +0 -55
  997. package/dist/scheduled-agents-5TNWITKB.js.map +0 -1
  998. package/dist/schema-PMVRMIRU.js +0 -135
  999. package/dist/schema-Z43AJOJ4.js +0 -152
  1000. package/dist/scrape-VL2RWSTW.js +0 -2209
  1001. package/dist/screenshot-Y6EEXS3Q.js +0 -103
  1002. package/dist/search-BRANRGRU.js +0 -177
  1003. package/dist/search-CXC7N5XJ.js +0 -51
  1004. package/dist/search-JEXYEAPQ.js +0 -228
  1005. package/dist/search-L3GTZYRW.js +0 -92
  1006. package/dist/search-TXBYKNQC.js +0 -91
  1007. package/dist/search-XHSTUBDY.js +0 -26
  1008. package/dist/search-copy-FIPG7OCC.js +0 -168
  1009. package/dist/seeds-ADJKURNG.js +0 -101
  1010. package/dist/select-CLDJE7VJ.js +0 -110
  1011. package/dist/sends-RS4LWRAC.js +0 -349
  1012. package/dist/sequences-2RPKDKGQ.js +0 -146
  1013. package/dist/set-prompt-7VHSKVO6.js +0 -199
  1014. package/dist/setup-links-PAA7XYV5.js +0 -144
  1015. package/dist/shared-4GGUIOF2.js +0 -32
  1016. package/dist/shopify-VWIRGI6H.js +0 -4009
  1017. package/dist/site-Q3PMNJ2Z.js +0 -180
  1018. package/dist/sitemaps-Z6IELTQV.js +0 -77
  1019. package/dist/sites-KLAKI2EY.js +0 -97
  1020. package/dist/skills-OJP36EVR.js +0 -47
  1021. package/dist/sources-4YHNM22P.js +0 -30
  1022. package/dist/sources-BYMGSUPZ.js +0 -457
  1023. package/dist/stale-WO6FTPLQ.js +0 -90
  1024. package/dist/stale-WO6FTPLQ.js.map +0 -1
  1025. package/dist/stats-MIMFX4R7.js +0 -34
  1026. package/dist/status-B2WRAPZO.js +0 -65
  1027. package/dist/sticker-IREEEN7I.js +0 -103
  1028. package/dist/stock-BOOSUS2C.js +0 -212
  1029. package/dist/studies-YGYAH3JI.js +0 -250
  1030. package/dist/studio-XLC37YGX.js +0 -49
  1031. package/dist/study-writes-UPGJB36A.js +0 -471
  1032. package/dist/suggest-5RTISDLI.js +0 -66
  1033. package/dist/sync-2QIPZFSK.js +0 -57
  1034. package/dist/sync-OHIXI4I6.js +0 -55
  1035. package/dist/sync-VCAFAYW4.js +0 -279
  1036. package/dist/sync-definition-L52PGD7B.js +0 -70
  1037. package/dist/tag-DSCUKNC3.js +0 -57
  1038. package/dist/tag-manager-IINALUEJ.js +0 -43
  1039. package/dist/tags-AIE4XEU2.js +0 -227
  1040. package/dist/tags-DF6JNSNA.js +0 -26
  1041. package/dist/tags-SWP4MXQO.js +0 -23
  1042. package/dist/tags-VXHV4JWM.js +0 -23
  1043. package/dist/tags-XYQUPA6M.js +0 -23
  1044. package/dist/targeting-BM72UTI6.js +0 -762
  1045. package/dist/targeting-constants-54S3FXIF.js +0 -118
  1046. package/dist/targeting-criteria-UYAEVSX3.js +0 -113
  1047. package/dist/targets-XFL7CE7N.js +0 -106
  1048. package/dist/terms-OFHNLW6U.js +0 -102
  1049. package/dist/testimonials-DTCPATQ2.js +0 -32
  1050. package/dist/themes-HBWSZRFM.js +0 -95
  1051. package/dist/themes-HBWSZRFM.js.map +0 -1
  1052. package/dist/top-companies-SCKUWYFG.js +0 -111
  1053. package/dist/top-companies-SCKUWYFG.js.map +0 -1
  1054. package/dist/transcript-H7VSMOMV.js +0 -165
  1055. package/dist/translate-LCLG4NYR.js +0 -603
  1056. package/dist/triggers-HN3O2CNG.js +0 -144
  1057. package/dist/tweets-TRTXC6O4.js +0 -123
  1058. package/dist/unfollow-DATOGPLZ.js +0 -46
  1059. package/dist/unlink-B5CD7ZW6.js +0 -70
  1060. package/dist/unstage-34W4OU5D.js +0 -88
  1061. package/dist/unstage-LLQCMZ5H.js +0 -96
  1062. package/dist/update-2OTR4JQV.js +0 -101
  1063. package/dist/update-3CKLLPYX.js +0 -66
  1064. package/dist/update-6V2A4JGZ.js +0 -192
  1065. package/dist/update-7FBCTLFP.js +0 -155
  1066. package/dist/update-SD5YQIJC.js +0 -81
  1067. package/dist/upload-72ARWDHN.js +0 -137
  1068. package/dist/upload-7PPMVWVA.js +0 -155
  1069. package/dist/upscale-WVJZG76V.js +0 -109
  1070. package/dist/url-options-6WC2XQKB.js +0 -131
  1071. package/dist/url-options-6WC2XQKB.js.map +0 -1
  1072. package/dist/url-params-TAZ2S675.js +0 -101
  1073. package/dist/use-6FADOAFZ.js +0 -111
  1074. package/dist/validate-6F3JKVQV.js +0 -135
  1075. package/dist/variant-RNM36P4J.js +0 -338
  1076. package/dist/videos-GHFCOTT7.js +0 -146
  1077. package/dist/videos-UCUYPQNK.js +0 -41
  1078. package/dist/view-YR6MDLWL.js +0 -133
  1079. package/dist/viewer-check-XZYL55G6.js +0 -83
  1080. package/dist/web-YYXQXIH4.js +0 -173
  1081. package/dist/winners-4T5RFQXU.js +0 -113
  1082. package/dist/winning-ads-H3HCI5QT.js +0 -86
  1083. package/dist/write-commands-6D55SB56.js +0 -206
  1084. package/dist/write-commands-AIWLEGO2.js +0 -1169
  1085. package/dist/write-commands-DS7WNSYA.js +0 -1524
  1086. package/dist/write-commands-UO3OQIHH.js +0 -721
  1087. package/dist/x-K4N6QIH2.js +0 -47
  1088. /package/dist/{account-H6OOCEE3.js.map → account-MDLPCIDQ.js.map} +0 -0
  1089. /package/dist/{account-JVDP5ERG.js.map → account-VRXCDDXY.js.map} +0 -0
  1090. /package/dist/{account-NSBALYYS.js.map → account-YYB2KWLU.js.map} +0 -0
  1091. /package/dist/{account-assets-EPEYTJFD.js.map → account-assets-BFMQWV33.js.map} +0 -0
  1092. /package/dist/{account-level-VD4NLB2D.js.map → account-level-47IS2CZB.js.map} +0 -0
  1093. /package/dist/{account-users-VBPW6FPY.js.map → account-users-FXOWESWY.js.map} +0 -0
  1094. /package/dist/{account-writes-KEXINJ5D.js.map → account-writes-SRTOKSMT.js.map} +0 -0
  1095. /package/dist/{accounts-CNWJYCUV.js.map → accounts-AT2UB2L3.js.map} +0 -0
  1096. /package/dist/{accounts-A47QUTTB.js.map → accounts-LTGUK6OV.js.map} +0 -0
  1097. /package/dist/{accounts-E5TF2AFI.js.map → accounts-LTUEBWJL.js.map} +0 -0
  1098. /package/dist/{accounts-QR6OQ3GC.js.map → accounts-NR3ARJ72.js.map} +0 -0
  1099. /package/dist/{actions-6DC3FUQF.js.map → actions-766X6XRB.js.map} +0 -0
  1100. /package/dist/{active-entities-XRSJNBOV.js.map → active-entities-QWJXR4W6.js.map} +0 -0
  1101. /package/dist/{activecampaign-YMVIS6EN.js.map → activecampaign-MC4FYCCF.js.map} +0 -0
  1102. /package/dist/{activities-ZDWREYR7.js.map → activities-ZRP22SC2.js.map} +0 -0
  1103. /package/dist/{ad-group-writes-SVR4RCKB.js.map → ad-group-writes-UFBFB2PL.js.map} +0 -0
  1104. /package/dist/{ad-groups-C726HUXS.js.map → ad-groups-KRKMZPF3.js.map} +0 -0
  1105. /package/dist/{ad-writes-RWJIWGEL.js.map → ad-writes-SIAGGUDJ.js.map} +0 -0
  1106. /package/dist/{add-ITTW4LQC.js.map → add-DWKVVW76.js.map} +0 -0
  1107. /package/dist/{add-25YZMFSH.js.map → add-F65GOWKP.js.map} +0 -0
  1108. /package/dist/{add-D44VCDRU.js.map → add-IALA4VRA.js.map} +0 -0
  1109. /package/dist/{add-7MAL7JRX.js.map → add-ITX64WEC.js.map} +0 -0
  1110. /package/dist/{add-QZHZIAVE.js.map → add-MYX3BSUJ.js.map} +0 -0
  1111. /package/dist/{add-JO4ZPS23.js.map → add-WAVXB2QA.js.map} +0 -0
  1112. /package/dist/{add-accounts-EKMSHAA4.js.map → add-accounts-YTLQCSXB.js.map} +0 -0
  1113. /package/dist/{ads-3KK7VQPU.js.map → ads-3T4C4BBH.js.map} +0 -0
  1114. /package/dist/{ads-DGL5SGP3.js.map → ads-A34INCCM.js.map} +0 -0
  1115. /package/dist/{ads-4YZYNU66.js.map → ads-AKF5AT6O.js.map} +0 -0
  1116. /package/dist/{ads-UZ355BQS.js.map → ads-UGMHE33I.js.map} +0 -0
  1117. /package/dist/{adsets-PSVCPCE3.js.map → adsets-HNFBX4LB.js.map} +0 -0
  1118. /package/dist/{advertisers-Z2WLSJEC.js.map → advertisers-UFOLIRIK.js.map} +0 -0
  1119. /package/dist/{advertisers-7NAPI5ZU.js.map → advertisers-YTG6VA6R.js.map} +0 -0
  1120. /package/dist/{analytics-GILIREA3.js.map → analytics-G4WFP37R.js.map} +0 -0
  1121. /package/dist/{animate-GTUI7XX4.js.map → animate-PSOAMA52.js.map} +0 -0
  1122. /package/dist/{approved-E4EZA5RT.js.map → approved-3W56YTOZ.js.map} +0 -0
  1123. /package/dist/{asset-writes-NDSHY5OT.js.map → asset-writes-2CYNDRPU.js.map} +0 -0
  1124. /package/dist/{assign-6RI3EC7U.js.map → assign-5FALEZYD.js.map} +0 -0
  1125. /package/dist/{audience-size-M6NORPEU.js.map → audience-size-VRYRLPO5.js.map} +0 -0
  1126. /package/dist/{audience-writes-4KQXVGHO.js.map → audience-writes-JNVGUHGN.js.map} +0 -0
  1127. /package/dist/{audiences-6L43K2T2.js.map → audiences-EH426E3T.js.map} +0 -0
  1128. /package/dist/{audiences-T5LMTT3B.js.map → audiences-OOXSXKIT.js.map} +0 -0
  1129. /package/dist/{audiences-UHLVATR6.js.map → audiences-S6TXNKQ2.js.map} +0 -0
  1130. /package/dist/{audit-46DO2HV3.js.map → audit-O2RRST7B.js.map} +0 -0
  1131. /package/dist/{audit-CPEOJSCV.js.map → audit-WHIVWMAI.js.map} +0 -0
  1132. /package/dist/{autocomplete-DCCI3W5Y.js.map → autocomplete-3HCLXTGK.js.map} +0 -0
  1133. /package/dist/{avatars-GDRSOS6V.js.map → avatars-HN74FWDF.js.map} +0 -0
  1134. /package/dist/{bid-pricing-FQ6VJSH6.js.map → bid-pricing-NN5JKZS4.js.map} +0 -0
  1135. /package/dist/{brand-6TUMI2GH.js.map → brand-MWU5IVEZ.js.map} +0 -0
  1136. /package/dist/{brief-U6ZT5UYG.js.map → brief-6TXWQWHJ.js.map} +0 -0
  1137. /package/dist/{businesses-TRFYMZ4I.js.map → businesses-HOAQVYRH.js.map} +0 -0
  1138. /package/dist/{campaign-groups-RTP2MKNJ.js.map → campaign-groups-MGEKCP7J.js.map} +0 -0
  1139. /package/dist/{campaign-writes-4NVY7S4U.js.map → campaign-writes-ORUT54WL.js.map} +0 -0
  1140. /package/dist/{campaign-writes-FUIGN5OR.js.map → campaign-writes-Z7B6V6Q3.js.map} +0 -0
  1141. /package/dist/{campaigns-N2SWSBYT.js.map → campaigns-3BDIHUSW.js.map} +0 -0
  1142. /package/dist/{campaigns-CCDJKV7I.js.map → campaigns-E7YC762Q.js.map} +0 -0
  1143. /package/dist/{campaigns-2MTON2IE.js.map → campaigns-EEH3VDK6.js.map} +0 -0
  1144. /package/dist/{campaigns-7ZVVYTBM.js.map → campaigns-WLOJFSLV.js.map} +0 -0
  1145. /package/dist/{canvas-UYRDIRPR.js.map → canvas-SEVIQRXN.js.map} +0 -0
  1146. /package/dist/{capabilities-4KGVNK4Q.js.map → capabilities-KWJYBYQO.js.map} +0 -0
  1147. /package/dist/{cards-CXKIVM4D.js.map → cards-OOKI2WSA.js.map} +0 -0
  1148. /package/dist/{catalog-JICUCAJZ.js.map → catalog-DHTZDVWS.js.map} +0 -0
  1149. /package/dist/{catalogs-G5NOKL4L.js.map → catalogs-R4QFA5XO.js.map} +0 -0
  1150. /package/dist/{catalogs-4DNLG4AM.js.map → catalogs-WBXWK7NT.js.map} +0 -0
  1151. /package/dist/{chatgpt-O6EEAYLF.js.map → chatgpt-MN4XHO6L.js.map} +0 -0
  1152. /package/dist/{chats-JNL4L6GZ.js.map → chats-IBMO724I.js.map} +0 -0
  1153. /package/dist/{check-EXT5WAYI.js.map → check-EZI4OF3Q.js.map} +0 -0
  1154. /package/dist/{chunk-RIIMF75G.js.map → chunk-2VUD4CIW.js.map} +0 -0
  1155. /package/dist/{chunk-IYDESWW4.js.map → chunk-2ZKQNMK2.js.map} +0 -0
  1156. /package/dist/{chunk-KOKPQE4N.js.map → chunk-423G75A7.js.map} +0 -0
  1157. /package/dist/{chunk-G4TPYA7F.js.map → chunk-4ZAHRAWL.js.map} +0 -0
  1158. /package/dist/{chunk-FLTAPEVY.js.map → chunk-5IHZTLDH.js.map} +0 -0
  1159. /package/dist/{chunk-J4AWNWKN.js.map → chunk-5WOZ7OGU.js.map} +0 -0
  1160. /package/dist/{chunk-3WN5GWX4.js.map → chunk-62UGVR7Q.js.map} +0 -0
  1161. /package/dist/{chunk-JQYB2DS3.js.map → chunk-66LUQENO.js.map} +0 -0
  1162. /package/dist/{chunk-YQYCWYFJ.js.map → chunk-6J2UZJ6F.js.map} +0 -0
  1163. /package/dist/{chunk-TLQY4QBW.js.map → chunk-6ZW5AR5N.js.map} +0 -0
  1164. /package/dist/{chunk-C3XJ46C2.js.map → chunk-7EPR7L2D.js.map} +0 -0
  1165. /package/dist/{chunk-EJ6EED6I.js.map → chunk-7XFQPPYB.js.map} +0 -0
  1166. /package/dist/{chunk-BPDUE3MT.js.map → chunk-BJH2G3QF.js.map} +0 -0
  1167. /package/dist/{chunk-BBS5VXLK.js.map → chunk-BZXIDMV7.js.map} +0 -0
  1168. /package/dist/{chunk-X7USE7IA.js.map → chunk-C57NXUM2.js.map} +0 -0
  1169. /package/dist/{chunk-DGHSXHZR.js.map → chunk-CGLNCFAG.js.map} +0 -0
  1170. /package/dist/{chunk-YEQTBPEB.js.map → chunk-CNZ5KS4I.js.map} +0 -0
  1171. /package/dist/{chunk-KGJ6EIX3.js.map → chunk-CP5IVVYM.js.map} +0 -0
  1172. /package/dist/{chunk-A6LOIUWB.js.map → chunk-DAXBST7G.js.map} +0 -0
  1173. /package/dist/{chunk-MKOI6QYM.js.map → chunk-DFE77XT5.js.map} +0 -0
  1174. /package/dist/{chunk-SNVAE572.js.map → chunk-DI7M2JUA.js.map} +0 -0
  1175. /package/dist/{chunk-6MJKVNLL.js.map → chunk-DN6EMVA4.js.map} +0 -0
  1176. /package/dist/{chunk-Q736UFSD.js.map → chunk-E2G2USTA.js.map} +0 -0
  1177. /package/dist/{chunk-ELFZ63XY.js.map → chunk-EA3643ET.js.map} +0 -0
  1178. /package/dist/{chunk-OZNBVJGC.js.map → chunk-EBFKPGTL.js.map} +0 -0
  1179. /package/dist/{chunk-CBVUO7SK.js.map → chunk-EFZVDV7F.js.map} +0 -0
  1180. /package/dist/{chunk-WEBWXSFF.js.map → chunk-ETHUDFUY.js.map} +0 -0
  1181. /package/dist/{chunk-YJEG6TQ3.js.map → chunk-EZ3YSJTP.js.map} +0 -0
  1182. /package/dist/{chunk-S36WWACM.js.map → chunk-G6CLJ3WL.js.map} +0 -0
  1183. /package/dist/{chunk-WTPID22G.js.map → chunk-HJS6FPQX.js.map} +0 -0
  1184. /package/dist/{chunk-3QNSGFE2.js.map → chunk-HXHGDFXA.js.map} +0 -0
  1185. /package/dist/{chunk-BIBXZJZI.js.map → chunk-HZ7QUFUW.js.map} +0 -0
  1186. /package/dist/{chunk-FE2MFNVT.js.map → chunk-IEUF733F.js.map} +0 -0
  1187. /package/dist/{chunk-VZIYTP3X.js.map → chunk-IEX4RRHJ.js.map} +0 -0
  1188. /package/dist/{chunk-RRKUXGAU.js.map → chunk-ITABNSX6.js.map} +0 -0
  1189. /package/dist/{chunk-LAMSUL26.js.map → chunk-J7L457MF.js.map} +0 -0
  1190. /package/dist/{chunk-LJEJCIHR.js.map → chunk-JCFZ7ECN.js.map} +0 -0
  1191. /package/dist/{chunk-3QLGV4XN.js.map → chunk-JFWTQDZL.js.map} +0 -0
  1192. /package/dist/{chunk-XY7W6MQN.js.map → chunk-JGMQD3PX.js.map} +0 -0
  1193. /package/dist/{chunk-6D7WTUF3.js.map → chunk-JTAPNHW5.js.map} +0 -0
  1194. /package/dist/{chunk-NI5R6Y24.js.map → chunk-K2DKQ52D.js.map} +0 -0
  1195. /package/dist/{chunk-SHYUXLE5.js.map → chunk-K3VMHRLJ.js.map} +0 -0
  1196. /package/dist/{chunk-H6ASYVQX.js.map → chunk-KMZ4YWS4.js.map} +0 -0
  1197. /package/dist/{chunk-CC42TKFH.js.map → chunk-LBPJDFFN.js.map} +0 -0
  1198. /package/dist/{chunk-UZVFXGMS.js.map → chunk-LNRYMWXE.js.map} +0 -0
  1199. /package/dist/{chunk-JLAFNORO.js.map → chunk-LY7PDE76.js.map} +0 -0
  1200. /package/dist/{chunk-4AO3LSYM.js.map → chunk-MGUEAG6W.js.map} +0 -0
  1201. /package/dist/{chunk-V7EN5LFS.js.map → chunk-MIBOIXCP.js.map} +0 -0
  1202. /package/dist/{chunk-URGXEDFV.js.map → chunk-MNFJQRUO.js.map} +0 -0
  1203. /package/dist/{chunk-L7I47VGM.js.map → chunk-MUT2BPDM.js.map} +0 -0
  1204. /package/dist/{chunk-AQRBEPZL.js.map → chunk-MWPM6HNV.js.map} +0 -0
  1205. /package/dist/{chunk-DHF4FXWS.js.map → chunk-NE3AZ25Y.js.map} +0 -0
  1206. /package/dist/{chunk-SIRRBWQ2.js.map → chunk-OFSUVUXT.js.map} +0 -0
  1207. /package/dist/{chunk-M4KFO256.js.map → chunk-P6H6JZXO.js.map} +0 -0
  1208. /package/dist/{chunk-7YXBMYSM.js.map → chunk-PEPLYJWK.js.map} +0 -0
  1209. /package/dist/{chunk-WOHTTXLG.js.map → chunk-PK2U2ALQ.js.map} +0 -0
  1210. /package/dist/{chunk-5LEIUG5H.js.map → chunk-PKSIPLMS.js.map} +0 -0
  1211. /package/dist/{chunk-OEO2NSNC.js.map → chunk-QNY4IK3C.js.map} +0 -0
  1212. /package/dist/{chunk-YHBMCP6C.js.map → chunk-RDIZCSTV.js.map} +0 -0
  1213. /package/dist/{chunk-3GXHML4V.js.map → chunk-RM5JT6XF.js.map} +0 -0
  1214. /package/dist/{chunk-3QPG2D27.js.map → chunk-ROWUTQFG.js.map} +0 -0
  1215. /package/dist/{chunk-QGAUDVMR.js.map → chunk-RQ43VL2X.js.map} +0 -0
  1216. /package/dist/{chunk-ZCGM7ZWM.js.map → chunk-RSABCQLI.js.map} +0 -0
  1217. /package/dist/{chunk-F5VR6HSI.js.map → chunk-S4QGD7PV.js.map} +0 -0
  1218. /package/dist/{chunk-5NMKNHJI.js.map → chunk-S7WFZYKP.js.map} +0 -0
  1219. /package/dist/{chunk-CF5I4Q5M.js.map → chunk-SO7NANAH.js.map} +0 -0
  1220. /package/dist/{chunk-CFF7VAOQ.js.map → chunk-SRMQCQ7T.js.map} +0 -0
  1221. /package/dist/{chunk-JAME5NBT.js.map → chunk-SULQZX5W.js.map} +0 -0
  1222. /package/dist/{chunk-Q3G4ZI2U.js.map → chunk-T4HIFVNK.js.map} +0 -0
  1223. /package/dist/{chunk-V4HS5JRL.js.map → chunk-TBBAHTP3.js.map} +0 -0
  1224. /package/dist/{chunk-O5VSYBUA.js.map → chunk-TJTCHTR4.js.map} +0 -0
  1225. /package/dist/{chunk-YAMKCMAS.js.map → chunk-TUS2VOMZ.js.map} +0 -0
  1226. /package/dist/{chunk-UK4XSLV2.js.map → chunk-U3LO5TDH.js.map} +0 -0
  1227. /package/dist/{chunk-EM5R3BYC.js.map → chunk-U6EQMX3B.js.map} +0 -0
  1228. /package/dist/{chunk-L4QEMWNJ.js.map → chunk-UDNN4POE.js.map} +0 -0
  1229. /package/dist/{chunk-VCG3Q3O4.js.map → chunk-UECTXVAO.js.map} +0 -0
  1230. /package/dist/{chunk-66LB37BF.js.map → chunk-UQTINFCP.js.map} +0 -0
  1231. /package/dist/{chunk-RUMHZX5N.js.map → chunk-UUUYWBTR.js.map} +0 -0
  1232. /package/dist/{chunk-H25GY4U4.js.map → chunk-UYVMINV2.js.map} +0 -0
  1233. /package/dist/{chunk-S5S54J2K.js.map → chunk-VGJFNHSA.js.map} +0 -0
  1234. /package/dist/{chunk-5QNW5PCM.js.map → chunk-VQOBDHZP.js.map} +0 -0
  1235. /package/dist/{chunk-Q5XUFN2W.js.map → chunk-VRQ5HEVU.js.map} +0 -0
  1236. /package/dist/{chunk-H423YXYY.js.map → chunk-VSHXHSIW.js.map} +0 -0
  1237. /package/dist/{chunk-EDZDYB3C.js.map → chunk-VTLW24DM.js.map} +0 -0
  1238. /package/dist/{chunk-7NBQQOCU.js.map → chunk-VVITBZKP.js.map} +0 -0
  1239. /package/dist/{chunk-2CC4CPDT.js.map → chunk-WFTTF2MP.js.map} +0 -0
  1240. /package/dist/{chunk-6EOWBGGW.js.map → chunk-XMIV53FM.js.map} +0 -0
  1241. /package/dist/{chunk-DPOUS5DN.js.map → chunk-XNUUEUJB.js.map} +0 -0
  1242. /package/dist/{chunk-2NOFIV6M.js.map → chunk-XYHAIEAF.js.map} +0 -0
  1243. /package/dist/{chunk-AZIXX73C.js.map → chunk-YB2UVOAD.js.map} +0 -0
  1244. /package/dist/{chunk-LYGZBNSC.js.map → chunk-YLHWZOW7.js.map} +0 -0
  1245. /package/dist/{chunk-GRX3JXSR.js.map → chunk-YNWBIAXJ.js.map} +0 -0
  1246. /package/dist/{chunk-YRWCXYWW.js.map → chunk-YT6YI47O.js.map} +0 -0
  1247. /package/dist/{chunk-JYOP6YVT.js.map → chunk-YYYGUO2E.js.map} +0 -0
  1248. /package/dist/{chunk-MIHY534L.js.map → chunk-Z6RTEOEY.js.map} +0 -0
  1249. /package/dist/{chunk-5CH2JQCA.js.map → chunk-ZHQSXEJ2.js.map} +0 -0
  1250. /package/dist/{cite-WCAOCOO5.js.map → cite-I5UV5SKS.js.map} +0 -0
  1251. /package/dist/{claim-4LKB2Z6T.js.map → claim-JQCSXR4C.js.map} +0 -0
  1252. /package/dist/{client-VCKP6WBR.js.map → client-DKZM6XTS.js.map} +0 -0
  1253. /package/dist/{code-VXOTFGD2.js.map → code-D3J5FQCF.js.map} +0 -0
  1254. /package/dist/{connect-IABMKFGA.js.map → companies-GHBIZKOK.js.map} +0 -0
  1255. /package/dist/{company-C2Y7LY5H.js.map → company-KNCYMQIA.js.map} +0 -0
  1256. /package/dist/{complete-MNN3PAZE.js.map → complete-V53XRNEQ.js.map} +0 -0
  1257. /package/dist/{config-UR45YCIN.js.map → config-ACEF37UO.js.map} +0 -0
  1258. /package/dist/{customers-GCM7WZII.js.map → connect-NUZQSIGL.js.map} +0 -0
  1259. /package/dist/{content-EQQIKG5H.js.map → content-5RTSXURF.js.map} +0 -0
  1260. /package/dist/{conversation-FETU4KTF.js.map → conversation-LBYO6ONM.js.map} +0 -0
  1261. /package/dist/{conversion-report-33SG7SHU.js.map → conversion-report-SRHJGIMT.js.map} +0 -0
  1262. /package/dist/{conversion-upload-command-DWIGVHQZ.js.map → conversion-upload-command-5EKILBP2.js.map} +0 -0
  1263. /package/dist/{conversion-writes-XGGTBML5.js.map → conversion-writes-P5FDTA6Y.js.map} +0 -0
  1264. /package/dist/{conversions-S3WIR5R4.js.map → conversions-BXCGFNRK.js.map} +0 -0
  1265. /package/dist/{conversions-PPP4QK7U.js.map → conversions-WJBOEPOO.js.map} +0 -0
  1266. /package/dist/{copy-writes-JVUX3YDL.js.map → copy-writes-ER5ZB5C4.js.map} +0 -0
  1267. /package/dist/{countries-GRCU4IGM.js.map → countries-OJZQQYFT.js.map} +0 -0
  1268. /package/dist/{create-A3ZIQVIH.js.map → create-3PNWKXLP.js.map} +0 -0
  1269. /package/dist/{create-ESKBBBJX.js.map → create-6FZR7JZT.js.map} +0 -0
  1270. /package/dist/{create-U2ITO4RV.js.map → create-QXJ3UEOT.js.map} +0 -0
  1271. /package/dist/{create-VNYTZJ4T.js.map → create-XO7HUNPB.js.map} +0 -0
  1272. /package/dist/{creatives-WSCRC5GO.js.map → creatives-O6TA2DOG.js.map} +0 -0
  1273. /package/dist/{creatives-XO5E4AIC.js.map → creatives-YRYPXOCS.js.map} +0 -0
  1274. /package/dist/{creatives-4EPM3RHG.js.map → creatives-ZGXH7UA7.js.map} +0 -0
  1275. /package/dist/{credentials-ZV66ZUCK.js.map → credentials-ATAP54ZI.js.map} +0 -0
  1276. /package/dist/{critique-X3433R5M.js.map → critique-3UY7TUVQ.js.map} +0 -0
  1277. /package/dist/{critique-ODWLA52C.js.map → critique-UC6SBKGO.js.map} +0 -0
  1278. /package/dist/{crm-WPPM2R7I.js.map → crm-MGVGQ7PK.js.map} +0 -0
  1279. /package/dist/{crop-NE7YX4SS.js.map → crop-SRCLDYM5.js.map} +0 -0
  1280. /package/dist/{custom-conversions-GQTU5E6X.js.map → custom-conversions-RTSR3KKJ.js.map} +0 -0
  1281. /package/dist/{env-NZXNMWSD.js.map → customers-7NBNJCDC.js.map} +0 -0
  1282. /package/dist/{decide-6Q5X3V3F.js.map → decide-2WQKE6HC.js.map} +0 -0
  1283. /package/dist/{delete-QHDDR66K.js.map → delete-DWQS7UCJ.js.map} +0 -0
  1284. /package/dist/{delete-GAIV2YVD.js.map → delete-EKGTJSLK.js.map} +0 -0
  1285. /package/dist/{delete-EKKOEB3N.js.map → delete-MJSASLP6.js.map} +0 -0
  1286. /package/dist/{delete-SP66F7ZV.js.map → delete-N76JN5MP.js.map} +0 -0
  1287. /package/dist/{delete-RVJLATPO.js.map → delete-OFG7FBMA.js.map} +0 -0
  1288. /package/dist/{delete-VJ5QXKZR.js.map → delete-QQDGR7DD.js.map} +0 -0
  1289. /package/dist/{demographics-XWIW3YJF.js.map → demographics-QWFAMEC2.js.map} +0 -0
  1290. /package/dist/{describe-MAGTSOW4.js.map → describe-42XBBR6J.js.map} +0 -0
  1291. /package/dist/{describe-DJPIUEFE.js.map → describe-TKOJMWML.js.map} +0 -0
  1292. /package/dist/{dimensions-IC2H7V3H.js.map → dimensions-5OS26IF6.js.map} +0 -0
  1293. /package/dist/{discard-TWX2CQF5.js.map → discard-4VW3AWI3.js.map} +0 -0
  1294. /package/dist/{discover-PSL2NBJL.js.map → discover-IDC6PQV2.js.map} +0 -0
  1295. /package/dist/{domain-FE32BE2E.js.map → domain-EDPDUVAX.js.map} +0 -0
  1296. /package/dist/{download-5FYHTIGR.js.map → download-46GLVBYU.js.map} +0 -0
  1297. /package/dist/{download-EHDJXBAC.js.map → download-QH4VHDS6.js.map} +0 -0
  1298. /package/dist/{draft-MWYKIZC4.js.map → draft-3MYPEBSF.js.map} +0 -0
  1299. /package/dist/{draft-JESKGZ6O.js.map → draft-FJ55MZB4.js.map} +0 -0
  1300. /package/dist/{draft-5VLO5UYZ.js.map → draft-IBR2W6GZ.js.map} +0 -0
  1301. /package/dist/{draft-L2NXCIYT.js.map → draft-NCUQFRGS.js.map} +0 -0
  1302. /package/dist/{draft-ZCP3MIV6.js.map → draft-RRUJU2ZR.js.map} +0 -0
  1303. /package/dist/{draft-L757UIW5.js.map → draft-TJAD7P6W.js.map} +0 -0
  1304. /package/dist/{draft-27NMTARB.js.map → draft-W7FYHKI2.js.map} +0 -0
  1305. /package/dist/{fit-XLK5LDPS.js.map → env-AMOXYHCA.js.map} +0 -0
  1306. /package/dist/{experiment-XAYSEYTU.js.map → experiment-TBLKWI2J.js.map} +0 -0
  1307. /package/dist/{experiments-DVR7WBGQ.js.map → experiments-DUVO7C7A.js.map} +0 -0
  1308. /package/dist/{export-W54UZ62P.js.map → export-AMOLHZB6.js.map} +0 -0
  1309. /package/dist/{extract-JM6FAWAS.js.map → extract-WYNFE6TQ.js.map} +0 -0
  1310. /package/dist/{facets-IEQJK5AW.js.map → facets-WTY6NOUV.js.map} +0 -0
  1311. /package/dist/{favorites-Y6CT6NSQ.js.map → favorites-Z24QDACW.js.map} +0 -0
  1312. /package/dist/{feed-35BRQPTH.js.map → feed-2XCJ2JIV.js.map} +0 -0
  1313. /package/dist/{feedback-SSCN7LEP.js.map → feedback-57BP27NA.js.map} +0 -0
  1314. /package/dist/{feedback-QUJ2V4WD.js.map → feedback-XDREGDOK.js.map} +0 -0
  1315. /package/dist/{feedback-record-P6WK4UPP.js.map → feedback-record-HXSBLAZD.js.map} +0 -0
  1316. /package/dist/{fetch-Q6BIDVN5.js.map → fetch-L27MLPXM.js.map} +0 -0
  1317. /package/dist/{fetch-I6P72CDL.js.map → fetch-Z5MNAIQS.js.map} +0 -0
  1318. /package/dist/{find-SVGRA7IA.js.map → find-XMISWVZT.js.map} +0 -0
  1319. /package/dist/{fonts-GARRSRIB.js.map → fit-K3G7HIMK.js.map} +0 -0
  1320. /package/dist/{flows-QVGZEYCH.js.map → flows-VJTWU3SU.js.map} +0 -0
  1321. /package/dist/{follow-24QSDNAG.js.map → follow-542NYE76.js.map} +0 -0
  1322. /package/dist/{follow-competitors-AG4E4XFA.js.map → follow-competitors-NZDLHP7P.js.map} +0 -0
  1323. /package/dist/{following-YGM6TBK3.js.map → following-JTZZCSQX.js.map} +0 -0
  1324. /package/dist/{ideas-22I7JTI7.js.map → fonts-SEMIVGXJ.js.map} +0 -0
  1325. /package/dist/{forecast-GEYNZ5PQ.js.map → forecast-VODA7N3G.js.map} +0 -0
  1326. /package/dist/{funding-WZNGXRLJ.js.map → funding-HKPP53U2.js.map} +0 -0
  1327. /package/dist/{funnel-OABL4MLZ.js.map → funnel-BXJDMVMF.js.map} +0 -0
  1328. /package/dist/{ga4-W3U5YTRT.js.map → ga4-MUIZN7ID.js.map} +0 -0
  1329. /package/dist/{generate-Y4NJEYIH.js.map → generate-VCGSO7HI.js.map} +0 -0
  1330. /package/dist/{get-GEUSRD5Y.js.map → get-3QLANJES.js.map} +0 -0
  1331. /package/dist/{get-5SPNAIUQ.js.map → get-D5G2RNTR.js.map} +0 -0
  1332. /package/dist/{get-RDGC3QA5.js.map → get-EASXXOQR.js.map} +0 -0
  1333. /package/dist/{get-63KQ62KN.js.map → get-EN4UQI7R.js.map} +0 -0
  1334. /package/dist/{get-JIZPYK3Z.js.map → get-G4UPOHVY.js.map} +0 -0
  1335. /package/dist/{get-3MTAVNTP.js.map → get-GOXOADPY.js.map} +0 -0
  1336. /package/dist/{get-TS2ZJDCQ.js.map → get-JUI3RVMT.js.map} +0 -0
  1337. /package/dist/{get-YWDZYEAC.js.map → get-T7A3CTS2.js.map} +0 -0
  1338. /package/dist/{gif-NP6EDGEE.js.map → gif-4KAQUYPX.js.map} +0 -0
  1339. /package/dist/{google-32BCQC7C.js.map → google-ATEQHENA.js.map} +0 -0
  1340. /package/dist/{google-ads-PCXGVHZV.js.map → google-ads-OUNSPGRQ.js.map} +0 -0
  1341. /package/dist/{group-3DT4UYSR.js.map → group-4GYPBQMU.js.map} +0 -0
  1342. /package/dist/{group-OEKKCFXT.js.map → group-GH5CSQKA.js.map} +0 -0
  1343. /package/dist/{gsc-4FEFPFPB.js.map → gsc-3EIBYMON.js.map} +0 -0
  1344. /package/dist/{history-J7ANCPWY.js.map → history-5OJVW2ZF.js.map} +0 -0
  1345. /package/dist/{history-VKRYKQ4C.js.map → history-RQMCZQSC.js.map} +0 -0
  1346. /package/dist/{history-NX67UIZ7.js.map → history-TDGBO76N.js.map} +0 -0
  1347. /package/dist/{icon-43UJTGGE.js.map → icon-VYFLZ4FS.js.map} +0 -0
  1348. /package/dist/{ingest-VXX2Y76C.js.map → ideas-B7RQXWHQ.js.map} +0 -0
  1349. /package/dist/{images-3C4Y6RWL.js.map → images-Q45MP4Q2.js.map} +0 -0
  1350. /package/dist/{improve-IMXQN6OD.js.map → improve-ZBPSMVFI.js.map} +0 -0
  1351. /package/dist/{ingest-CFH2MPSF.js.map → ingest-6MMY4KDM.js.map} +0 -0
  1352. /package/dist/{launches-L4EUROCJ.js.map → ingest-UMQQIINM.js.map} +0 -0
  1353. /package/dist/{insights-BR3456EI.js.map → insights-2NWY4XJR.js.map} +0 -0
  1354. /package/dist/{insights-3IPSEBYW.js.map → insights-WDHDMULM.js.map} +0 -0
  1355. /package/dist/{inspect-LDXPOGGH.js.map → inspect-W2BIGA5F.js.map} +0 -0
  1356. /package/dist/{inspiration-XZI5KCQW.js.map → inspiration-6FGGHV73.js.map} +0 -0
  1357. /package/dist/{instant-experiences-2LKF7XVK.js.map → instant-experiences-YZYOLGBA.js.map} +0 -0
  1358. /package/dist/{intent-ZM4K623V.js.map → intent-3S6SHAYC.js.map} +0 -0
  1359. /package/dist/{job-GOX3KIKG.js.map → job-2XYPZRJ6.js.map} +0 -0
  1360. /package/dist/{job-create-F2PQSN3C.js.map → job-create-BPUOBKXA.js.map} +0 -0
  1361. /package/dist/{job-status-3FMA5D7T.js.map → job-status-HUDHF6BU.js.map} +0 -0
  1362. /package/dist/{keep-23ZYMWPG.js.map → keep-XBYR2NII.js.map} +0 -0
  1363. /package/dist/{keyword-gap-FAAF2I6V.js.map → keyword-gap-MGHKWE6A.js.map} +0 -0
  1364. /package/dist/{keyword-metrics-E36SMZSP.js.map → keyword-metrics-6R5TSHCE.js.map} +0 -0
  1365. /package/dist/{keywords-for-site-AWGWDXZA.js.map → keywords-for-site-EFBLFX6E.js.map} +0 -0
  1366. /package/dist/{knowledge-7M7DSRF3.js.map → knowledge-ILQIN5FL.js.map} +0 -0
  1367. /package/dist/{landing-PVTDVL22.js.map → landing-WC5FX3UP.js.map} +0 -0
  1368. /package/dist/{landings-VNQ4VA2U.js.map → landings-GRJAJKHY.js.map} +0 -0
  1369. /package/dist/{languages-2X22HXM3.js.map → languages-22VMY7JN.js.map} +0 -0
  1370. /package/dist/{languages-ZGDTERIQ.js.map → languages-4J7JHZNB.js.map} +0 -0
  1371. /package/dist/{logo-4LSFZ3ZO.js.map → launches-NUMSS7HP.js.map} +0 -0
  1372. /package/dist/{layerize-6QHQMA7Q.js.map → layerize-TFRXRHVL.js.map} +0 -0
  1373. /package/dist/{lead-routes-5TPFJEVH.js.map → lead-routes-D5ITHESC.js.map} +0 -0
  1374. /package/dist/{leads-XC3C5HGC.js.map → leads-CBOQ5CNM.js.map} +0 -0
  1375. /package/dist/{leads-4TLOH47R.js.map → leads-VEHYM23G.js.map} +0 -0
  1376. /package/dist/{learn-NYRL53NQ.js.map → learn-ZUP35H3T.js.map} +0 -0
  1377. /package/dist/{library-MNJC24E4.js.map → library-JB2UBSJ5.js.map} +0 -0
  1378. /package/dist/{lighthouse-DJMAXFTD.js.map → lighthouse-EQZFYGFL.js.map} +0 -0
  1379. /package/dist/{line-item-writes-LMSYCR6G.js.map → line-item-writes-W4UFIYEA.js.map} +0 -0
  1380. /package/dist/{line-items-P24SOGVZ.js.map → line-items-SGCUJF3S.js.map} +0 -0
  1381. /package/dist/{link-H3TTWJJO.js.map → link-KLJB7COB.js.map} +0 -0
  1382. /package/dist/{linkedin-person-HKKIE32Q.js.map → linkedin-person-ECWP4XPE.js.map} +0 -0
  1383. /package/dist/{list-2277GCPH.js.map → list-5BWNSHYO.js.map} +0 -0
  1384. /package/dist/{list-WIXQXNKB.js.map → list-A363BF25.js.map} +0 -0
  1385. /package/dist/{list-XK33NCSC.js.map → list-JARIB5LC.js.map} +0 -0
  1386. /package/dist/{list-LC2GRYEI.js.map → list-PXEJMDB4.js.map} +0 -0
  1387. /package/dist/{list-537S75BZ.js.map → list-RO4YLUFK.js.map} +0 -0
  1388. /package/dist/{list-UCTFATXS.js.map → list-SVR5HBLA.js.map} +0 -0
  1389. /package/dist/{list-Q52FPW3H.js.map → list-UD43QCLC.js.map} +0 -0
  1390. /package/dist/{list-KHCFVTQU.js.map → list-XELB7UV2.js.map} +0 -0
  1391. /package/dist/{list-V4PSDBLX.js.map → list-XPLMANXX.js.map} +0 -0
  1392. /package/dist/{locations-WN6B3IJK.js.map → locations-KM4XY56A.js.map} +0 -0
  1393. /package/dist/{locations-A65MFB7Q.js.map → locations-SNK2NDH3.js.map} +0 -0
  1394. /package/dist/{log-SLYCPRCY.js.map → log-PMPOO42C.js.map} +0 -0
  1395. /package/dist/{lookup-WIM5WR25.js.map → logo-KDGD6LRA.js.map} +0 -0
  1396. /package/dist/{output-ELEO2Z6R.js.map → lookup-7HIPFF2U.js.map} +0 -0
  1397. /package/dist/{make-HTCPU6HU.js.map → make-Q36WVKT3.js.map} +0 -0
  1398. /package/dist/{map-237LQ5N5.js.map → map-DQ65PS65.js.map} +0 -0
  1399. /package/dist/{mcp-GX5TOO7Y.js.map → mcp-XMFKYN3E.js.map} +0 -0
  1400. /package/dist/{media-KKI3KWLR.js.map → media-6VI4PN4N.js.map} +0 -0
  1401. /package/dist/{media-34I7UB7Z.js.map → media-WIFXVGKU.js.map} +0 -0
  1402. /package/dist/{media-sources-ODNIS7A5.js.map → media-sources-HG524YO4.js.map} +0 -0
  1403. /package/dist/{members-TYQKWR7Z.js.map → members-D4DI2IFH.js.map} +0 -0
  1404. /package/dist/{meme-6NFYFQ7T.js.map → meme-I43AVLGS.js.map} +0 -0
  1405. /package/dist/{normalize-G75RDSE4.js.map → normalize-5B5WIBV4.js.map} +0 -0
  1406. /package/dist/{normalize-MDTMKLYO.js.map → normalize-XRVNJTML.js.map} +0 -0
  1407. /package/dist/{options-MEADUZY3.js.map → options-HT27WLNS.js.map} +0 -0
  1408. /package/dist/{organization-BXJSHRZG.js.map → organization-DYPTFZBA.js.map} +0 -0
  1409. /package/dist/{performance-IGCOP5VH.js.map → output-W5J5RKRR.js.map} +0 -0
  1410. /package/dist/{page-4X6IBUWG.js.map → page-KUDKDDLJ.js.map} +0 -0
  1411. /package/dist/{page-photos-KNBLMFLN.js.map → page-photos-52S2XRIW.js.map} +0 -0
  1412. /package/dist/{pages-7HW5YOZV.js.map → pages-RMTL3RCK.js.map} +0 -0
  1413. /package/dist/{query-SAQADBM2.js.map → performance-2AQ34OPB.js.map} +0 -0
  1414. /package/dist/{performance-CU65TLCB.js.map → performance-WE4LHJ2B.js.map} +0 -0
  1415. /package/dist/{pinterest-KA6VFDM4.js.map → pinterest-GMNQ2AVG.js.map} +0 -0
  1416. /package/dist/{pixels-U6UA662G.js.map → pixels-EWFDIDFA.js.map} +0 -0
  1417. /package/dist/{pixels-D5HF24FI.js.map → pixels-YQJKJWAC.js.map} +0 -0
  1418. /package/dist/{plan-XCA6R3HZ.js.map → plan-33F5F2OR.js.map} +0 -0
  1419. /package/dist/{posts-ALGM6ONV.js.map → posts-MZFKWSZ6.js.map} +0 -0
  1420. /package/dist/{preview-55TRUF4Q.js.map → preview-HWM6KHV5.js.map} +0 -0
  1421. /package/dist/{preview-YQ6P5A53.js.map → preview-JYVRWRTT.js.map} +0 -0
  1422. /package/dist/{profile-NHUPUCBR.js.map → profile-OYCGBQWF.js.map} +0 -0
  1423. /package/dist/{promoted-tweet-writes-X2CUNBU2.js.map → promoted-tweet-writes-HCVRPH45.js.map} +0 -0
  1424. /package/dist/{promoted-tweets-G2NOW5OF.js.map → promoted-tweets-P56ZU6OK.js.map} +0 -0
  1425. /package/dist/{properties-2ZXA5BPJ.js.map → properties-PMY3KKUU.js.map} +0 -0
  1426. /package/dist/{publish-YPCXCU4P.js.map → publish-4VWZHRYO.js.map} +0 -0
  1427. /package/dist/{query-DMWY3TDD.js.map → query-ALRSR5OF.js.map} +0 -0
  1428. /package/dist/{reddit-XMAGZMD4.js.map → query-DK7WWCJJ.js.map} +0 -0
  1429. /package/dist/{query-63CTX2PH.js.map → query-ZGGHOYOH.js.map} +0 -0
  1430. /package/dist/{questionnaire-WHE42RD4.js.map → questionnaire-4AJFPLM2.js.map} +0 -0
  1431. /package/dist/{read-NESEKULG.js.map → read-Z7BBSAEK.js.map} +0 -0
  1432. /package/dist/{run-FN365AXZ.js.map → reddit-NSKYHSAC.js.map} +0 -0
  1433. /package/dist/{refresh-QIK3CXLV.js.map → refresh-O3CLJX4O.js.map} +0 -0
  1434. /package/dist/{refresh-ILDEPU5A.js.map → refresh-VE3UKLXX.js.map} +0 -0
  1435. /package/dist/{release-O7KGD5MI.js.map → release-6TQQW4HB.js.map} +0 -0
  1436. /package/dist/{relevant-pages-KTSODNNW.js.map → relevant-pages-B3ZFOGHQ.js.map} +0 -0
  1437. /package/dist/{remove-7FAWM2H4.js.map → remove-R55VAM47.js.map} +0 -0
  1438. /package/dist/{remove-NHE4UT7G.js.map → remove-VGEKRK34.js.map} +0 -0
  1439. /package/dist/{reopen-4ZWEYNCI.js.map → reopen-S426N3OD.js.map} +0 -0
  1440. /package/dist/{rerun-IDUKOW6Z.js.map → rerun-5KHANQR3.js.map} +0 -0
  1441. /package/dist/{research-Y5MSZH6T.js.map → research-5REXCSSO.js.map} +0 -0
  1442. /package/dist/{reset-YSDYSZ64.js.map → reset-5N2IVHFL.js.map} +0 -0
  1443. /package/dist/{reset-4K7BXUY6.js.map → reset-D4NGVG35.js.map} +0 -0
  1444. /package/dist/{resolve-DD6ES7GJ.js.map → resolve-V75JGD75.js.map} +0 -0
  1445. /package/dist/{retry-PZTS6KMQ.js.map → retry-SB7EIJBA.js.map} +0 -0
  1446. /package/dist/{retry-YAZ3JXYL.js.map → retry-WIKW6CGT.js.map} +0 -0
  1447. /package/dist/{retry-failed-R5HPQ3KQ.js.map → retry-failed-GEORPC3E.js.map} +0 -0
  1448. /package/dist/{revenue-PLJ46IYH.js.map → revenue-GZJU3XMD.js.map} +0 -0
  1449. /package/dist/{rule-writes-QB4IWFCJ.js.map → rule-writes-DRZUEIV6.js.map} +0 -0
  1450. /package/dist/{rules-FYVD2QBB.js.map → rules-BBALKNBK.js.map} +0 -0
  1451. /package/dist/{rules-I4PL72J7.js.map → rules-WI6YKZA4.js.map} +0 -0
  1452. /package/dist/{rules-add-EFD2YSLH.js.map → rules-add-JCRB4AJR.js.map} +0 -0
  1453. /package/dist/{run-WCFKVQQQ.js.map → run-RDHTORWZ.js.map} +0 -0
  1454. /package/dist/{search-XHSTUBDY.js.map → run-VVK23U5P.js.map} +0 -0
  1455. /package/dist/{scaffold-ad-PI4IHOG5.js.map → scaffold-ad-QSVBY3XR.js.map} +0 -0
  1456. /package/dist/{scaffold-static-ad-RDOCRFEP.js.map → scaffold-static-ad-64BZMUHP.js.map} +0 -0
  1457. /package/dist/{scaffold-video-HPRYTHE6.js.map → scaffold-video-X27MRW7R.js.map} +0 -0
  1458. /package/dist/{schedule-D7EDEM45.js.map → schedule-L5NVM4DN.js.map} +0 -0
  1459. /package/dist/{schedule-NPZPVNSO.js.map → schedule-XHPIVUJ6.js.map} +0 -0
  1460. /package/dist/{schema-Z43AJOJ4.js.map → schema-3IEI64TQ.js.map} +0 -0
  1461. /package/dist/{schema-PMVRMIRU.js.map → schema-RDVJQ5VW.js.map} +0 -0
  1462. /package/dist/{scrape-VL2RWSTW.js.map → scrape-YEZGRX2B.js.map} +0 -0
  1463. /package/dist/{screenshot-Y6EEXS3Q.js.map → screenshot-6EBASY4U.js.map} +0 -0
  1464. /package/dist/{search-JEXYEAPQ.js.map → search-BZLTII6V.js.map} +0 -0
  1465. /package/dist/{search-L3GTZYRW.js.map → search-I7CCYBB5.js.map} +0 -0
  1466. /package/dist/{search-TXBYKNQC.js.map → search-NA7DBOLW.js.map} +0 -0
  1467. /package/dist/{search-CXC7N5XJ.js.map → search-RM4MN7KO.js.map} +0 -0
  1468. /package/dist/{shared-4GGUIOF2.js.map → search-SNEFCCJX.js.map} +0 -0
  1469. /package/dist/{search-BRANRGRU.js.map → search-VX5ATSCD.js.map} +0 -0
  1470. /package/dist/{search-copy-FIPG7OCC.js.map → search-copy-S6JVQZLI.js.map} +0 -0
  1471. /package/dist/{seeds-ADJKURNG.js.map → seeds-BIY565P3.js.map} +0 -0
  1472. /package/dist/{select-CLDJE7VJ.js.map → select-NX3VHQTH.js.map} +0 -0
  1473. /package/dist/{sends-RS4LWRAC.js.map → sends-7JKFJTRE.js.map} +0 -0
  1474. /package/dist/{sequences-2RPKDKGQ.js.map → sequences-KZSNIELI.js.map} +0 -0
  1475. /package/dist/{set-prompt-7VHSKVO6.js.map → set-prompt-QGEWZ3HD.js.map} +0 -0
  1476. /package/dist/{setup-links-PAA7XYV5.js.map → setup-links-LIDZVTSU.js.map} +0 -0
  1477. /package/dist/{sync-definition-L52PGD7B.js.map → shared-P5UDXZAG.js.map} +0 -0
  1478. /package/dist/{shopify-VWIRGI6H.js.map → shopify-LZU3MCDG.js.map} +0 -0
  1479. /package/dist/{site-Q3PMNJ2Z.js.map → site-CEO2V3BI.js.map} +0 -0
  1480. /package/dist/{sitemaps-Z6IELTQV.js.map → sitemaps-WCARK2BM.js.map} +0 -0
  1481. /package/dist/{sites-KLAKI2EY.js.map → sites-JQZ2ZC6W.js.map} +0 -0
  1482. /package/dist/{skills-OJP36EVR.js.map → skills-V2FRLLOW.js.map} +0 -0
  1483. /package/dist/{sources-4YHNM22P.js.map → sources-C7AQCP2Z.js.map} +0 -0
  1484. /package/dist/{sources-BYMGSUPZ.js.map → sources-SIGZVORA.js.map} +0 -0
  1485. /package/dist/{stats-MIMFX4R7.js.map → stats-W7CCPRTG.js.map} +0 -0
  1486. /package/dist/{status-B2WRAPZO.js.map → status-NIG6OSAG.js.map} +0 -0
  1487. /package/dist/{sticker-IREEEN7I.js.map → sticker-NDSJDIAK.js.map} +0 -0
  1488. /package/dist/{stock-BOOSUS2C.js.map → stock-KY6BCN76.js.map} +0 -0
  1489. /package/dist/{studies-YGYAH3JI.js.map → studies-4JOP2GQJ.js.map} +0 -0
  1490. /package/dist/{studio-XLC37YGX.js.map → studio-VQFYNK5O.js.map} +0 -0
  1491. /package/dist/{study-writes-UPGJB36A.js.map → study-writes-PMTRTUXP.js.map} +0 -0
  1492. /package/dist/{suggest-5RTISDLI.js.map → suggest-F5GIJR4K.js.map} +0 -0
  1493. /package/dist/{sync-2QIPZFSK.js.map → sync-3RS5E5ZI.js.map} +0 -0
  1494. /package/dist/{sync-VCAFAYW4.js.map → sync-IDULIJUZ.js.map} +0 -0
  1495. /package/dist/{sync-OHIXI4I6.js.map → sync-STPHWKTE.js.map} +0 -0
  1496. /package/dist/{viewer-check-XZYL55G6.js.map → sync-definition-VHYZWLS5.js.map} +0 -0
  1497. /package/dist/{tag-DSCUKNC3.js.map → tag-MMY3QT2N.js.map} +0 -0
  1498. /package/dist/{tag-manager-IINALUEJ.js.map → tag-manager-JDGWAHCZ.js.map} +0 -0
  1499. /package/dist/{tags-DF6JNSNA.js.map → tags-F6DBHGIL.js.map} +0 -0
  1500. /package/dist/{tags-SWP4MXQO.js.map → tags-HGKEOIR7.js.map} +0 -0
  1501. /package/dist/{tags-XYQUPA6M.js.map → tags-I2LINXA7.js.map} +0 -0
  1502. /package/dist/{tags-AIE4XEU2.js.map → tags-UM6Y4DVQ.js.map} +0 -0
  1503. /package/dist/{tags-VXHV4JWM.js.map → tags-YCBZVXJQ.js.map} +0 -0
  1504. /package/dist/{targeting-BM72UTI6.js.map → targeting-AVHPKERN.js.map} +0 -0
  1505. /package/dist/{targeting-constants-54S3FXIF.js.map → targeting-constants-T7Y6RVEH.js.map} +0 -0
  1506. /package/dist/{targeting-criteria-UYAEVSX3.js.map → targeting-criteria-XPK76HRH.js.map} +0 -0
  1507. /package/dist/{targets-XFL7CE7N.js.map → targets-KT4BNTKZ.js.map} +0 -0
  1508. /package/dist/{terms-OFHNLW6U.js.map → terms-ETG7YCJC.js.map} +0 -0
  1509. /package/dist/{testimonials-DTCPATQ2.js.map → testimonials-QGXMSSWV.js.map} +0 -0
  1510. /package/dist/{transcript-H7VSMOMV.js.map → transcript-OLF62WCH.js.map} +0 -0
  1511. /package/dist/{translate-LCLG4NYR.js.map → translate-NON5ZD3S.js.map} +0 -0
  1512. /package/dist/{triggers-HN3O2CNG.js.map → triggers-UOQY4RFC.js.map} +0 -0
  1513. /package/dist/{tweets-TRTXC6O4.js.map → tweets-3H7CW3ZI.js.map} +0 -0
  1514. /package/dist/{unfollow-DATOGPLZ.js.map → unfollow-PEEPIMZY.js.map} +0 -0
  1515. /package/dist/{unlink-B5CD7ZW6.js.map → unlink-RNIJPHHW.js.map} +0 -0
  1516. /package/dist/{unstage-LLQCMZ5H.js.map → unstage-GUPBLCPZ.js.map} +0 -0
  1517. /package/dist/{unstage-34W4OU5D.js.map → unstage-QVDYVN77.js.map} +0 -0
  1518. /package/dist/{update-3CKLLPYX.js.map → update-7KR5ABJP.js.map} +0 -0
  1519. /package/dist/{update-6V2A4JGZ.js.map → update-JAUWIWOH.js.map} +0 -0
  1520. /package/dist/{update-2OTR4JQV.js.map → update-QZEF5MUW.js.map} +0 -0
  1521. /package/dist/{update-SD5YQIJC.js.map → update-TNOOVX3P.js.map} +0 -0
  1522. /package/dist/{update-7FBCTLFP.js.map → update-TRWHYXF4.js.map} +0 -0
  1523. /package/dist/{upload-72ARWDHN.js.map → upload-MLK2MZB6.js.map} +0 -0
  1524. /package/dist/{upload-7PPMVWVA.js.map → upload-W2UTHRP2.js.map} +0 -0
  1525. /package/dist/{upscale-WVJZG76V.js.map → upscale-MTWSJ3EJ.js.map} +0 -0
  1526. /package/dist/{url-params-TAZ2S675.js.map → url-params-F4XNWPOD.js.map} +0 -0
  1527. /package/dist/{use-6FADOAFZ.js.map → use-K5EP7JJM.js.map} +0 -0
  1528. /package/dist/{validate-6F3JKVQV.js.map → validate-P3AQVXG6.js.map} +0 -0
  1529. /package/dist/{variant-RNM36P4J.js.map → variant-BZCX46QL.js.map} +0 -0
  1530. /package/dist/{videos-UCUYPQNK.js.map → videos-PAKAAFRD.js.map} +0 -0
  1531. /package/dist/{videos-GHFCOTT7.js.map → videos-QIDOIJ24.js.map} +0 -0
  1532. /package/dist/{view-YR6MDLWL.js.map → view-CD5UWMR4.js.map} +0 -0
  1533. /package/dist/{web-YYXQXIH4.js.map → web-E5NHFG4Y.js.map} +0 -0
  1534. /package/dist/{winners-4T5RFQXU.js.map → winners-CSNTBOVM.js.map} +0 -0
  1535. /package/dist/{winning-ads-H3HCI5QT.js.map → winning-ads-P6PDTCCU.js.map} +0 -0
  1536. /package/dist/{write-commands-UO3OQIHH.js.map → write-commands-AASXCKRN.js.map} +0 -0
  1537. /package/dist/{write-commands-DS7WNSYA.js.map → write-commands-MBNO7DCX.js.map} +0 -0
  1538. /package/dist/{write-commands-6D55SB56.js.map → write-commands-OV7RE6O2.js.map} +0 -0
  1539. /package/dist/{write-commands-AIWLEGO2.js.map → write-commands-XFYXMTXO.js.map} +0 -0
  1540. /package/dist/{x-K4N6QIH2.js.map → x-5A74OD5P.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/google/draft-account.ts","../src/commands/ads/google/write-shared.ts","../src/commands/ads/google/copy-list-usage.ts","../src/commands/ads/google/draft-status.ts","../src/commands/ads/google/stage-streak.ts"],"sourcesContent":["import type { GoogleDraftListResponse } from \"@baker/api/ads-google\";\n\n/**\n * `--customer-id` on the draft reads. A draft belongs to the chat, not to an account, and may span\n * several; every other Google Ads command takes the flag, so agents carry it here (BAKER-497).\n * `list` narrows to that account and says what the others still hold; `validate` and `show` keep\n * their whole answer, because publish sends every account together and a ref names one op.\n */\n\nfunction changes(n: number, staged: boolean): string {\n const noun = staged ? \"staged change\" : \"change\";\n return n === 1 ? `1 ${noun}` : `${n} ${noun}s`;\n}\n\n/**\n * The draft as one account holds it, with what the rest of the chat's draft holds. `empty` is the\n * readable line for an account holding none of it, where the whole-chat \"nothing staged\" would be false.\n * Only an active draft's other changes are still to publish; a published one's are already done.\n */\nexport function draftInAccount(\n data: GoogleDraftListResponse,\n customerId: string,\n): { data: GoogleDraftListResponse; hints: string[]; empty?: string } {\n const ops = data.ops.filter((op) => op.customerId === customerId);\n const narrowed = {\n ...data,\n count: ops.length,\n ops,\n ...(data.tree ? { tree: data.tree.filter((node) => node.customerId === customerId) } : {}),\n };\n const others = data.ops.filter((op) => op.customerId !== customerId);\n if (others.length === 0) return { data: narrowed, hints: [] };\n const staged = data.status === \"active\";\n const accounts = [...new Set(others.map((op) => op.customerId))];\n const where = `account${accounts.length === 1 ? \"\" : \"s\"} ${accounts.join(\", \")}`;\n const one = others.length === 1;\n if (ops.length === 0) {\n return {\n data: narrowed,\n empty: `No Google Ads changes in account ${customerId} on this chat.`,\n hints: [`This chat's ${changes(others.length, staged)} ${one ? \"is\" : \"are\"} in ${where}, not ${customerId}.`],\n };\n }\n const more = `${others.length} more ${staged ? \"staged \" : \"\"}change${one ? \"\" : \"s\"}`;\n const verb = staged ? (one ? \"publishes\" : \"publish\") : one ? \"is\" : \"are\";\n return {\n data: narrowed,\n hints: [\n `Showing account ${customerId} only. ${more} in ${where} ${verb} ${staged ? \"with this chat too\" : \"on this chat too\"}; \\`baker ads google draft list\\` without --customer-id shows ${one ? \"it\" : \"them\"}.`,\n ],\n };\n}\n\n/** `draft validate --customer-id`: said back, since the verdicts still cover every account. */\nexport function validateAccountHint(customerId: string): string {\n return `Validated this chat's whole draft, not only account ${customerId}: publish sends every account's changes together, so each verdict above counts.`;\n}\n\n/** `draft show --customer-id` naming another account than the op's own. */\nexport function showAccountHint(customerId: string, opCustomerId: string): string | undefined {\n return opCustomerId === customerId ? undefined : `This op is staged in account ${opCustomerId}, not ${customerId}.`;\n}\n","import { readFileSync } from \"node:fs\";\nimport {\n GOOGLE_DRAFT_BATCH_MAX,\n type GoogleDraftListResponse,\n type GoogleDraftStageBatchResponse,\n type GoogleDraftStageResponse,\n googleDraftOpInputSchema,\n OP_TOO_LARGE_FIX,\n OP_TOO_LARGE_MESSAGE_START,\n toMicros,\n} from \"@baker/api/ads-google\";\nimport { describeOpPayload } from \"@baker/api/capabilities\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../../client.ts\";\nimport { requireChatId, resolveChatId } from \"../../../env.ts\";\nimport { handleConnectionError, isNotConnectedError } from \"../../../error-handler.ts\";\nimport { repeatedValues } from \"../../../lib/repeatedFlags.ts\";\nimport { payloadArg } from \"../../../schemas.ts\";\nimport { payloadFix } from \"../../capabilities/fix.ts\";\nimport { booleanWordPositionalError } from \"../boolean-word-positional.ts\";\nimport { adCopyHints } from \"../copy-hints.ts\";\nimport { hintLines, withHints } from \"../hints.ts\";\nimport { bareCustomerId, writeJsonEnvelope } from \"../output.ts\";\nimport { termsRefusalFix } from \"../terms-output.ts\";\nimport { copyListCountFix } from \"./copy-list-usage.ts\";\nimport { draftInAccount } from \"./draft-account.ts\";\nimport { renderDraftStatus } from \"./draft-status.ts\";\nimport { recordSingleStage } from \"./stage-streak.ts\";\n\n/**\n * Shared plumbing for the staged Google Ads write commands. Writes NEVER hit\n * the Google Ads API directly: every command stages an op against this chat's\n * draft (`/api/ads/google/draft/stage`), the dashboard shows it as a pending\n * Google Ads change, and the draft applies as one `GoogleAdsService.Mutate`\n * request per advertiser account when the chat is published. `--customer-id` is\n * required on every write — a draft may span several accounts, so nothing is\n * picked for you.\n */\n\nexport function failWriteValidation(message: string): never {\n writeJsonEnvelope({ ok: false, error: { code: \"VALIDATION_ERROR\", message } });\n process.exit(1);\n}\n\nexport function requireCustomerId(args: Record<string, unknown>): string {\n const given = (args[\"customer-id\"] ?? args.customerId) as string | undefined;\n const raw = given === undefined ? undefined : bareCustomerId(String(given));\n if (!raw || !/^\\d{10}$/.test(raw)) {\n failWriteValidation(\"pass --customer-id as the 10-digit Google Ads customer id (386-508-3115 or 3865083115)\");\n }\n return raw;\n}\n\nexport function requireTarget(args: Record<string, unknown>, entity: string): string {\n // `--flag false` is refused, not documented: citty parses it as the flag set to TRUE plus a stray\n // positional nobody consumes, so on `conversions update --primary` it silently PROMOTES an action\n // into what every Maximize Conversions campaign bids toward. Caught here because this is the only\n // place on this surface that reads positionals, and every target-taking command goes through it.\n const booleanWord = booleanWordPositionalError(args, entity);\n if (booleanWord) {\n failWriteValidation(booleanWord);\n }\n const positional = Array.isArray(args._) ? args._[0] : undefined;\n const target = args.id ?? args.target ?? args.ref ?? positional;\n if (typeof target !== \"string\" || target.length === 0) {\n failWriteValidation(`pass the ${entity} resource name or id as the positional argument`);\n }\n return target;\n}\n\n/**\n * The targets a bulk status command was given: every positional (comma-separated ones split), plus\n * `--file` with one target per line (blank lines and `#` comments skipped), deduped in order. One\n * call then stages them all as one batch instead of one command per row.\n */\nexport function targetEntries(args: Record<string, unknown>, entity: string): string[] {\n const booleanWord = booleanWordPositionalError(args, entity);\n if (booleanWord) {\n failWriteValidation(booleanWord);\n }\n const positionals = Array.isArray(args._) ? args._.filter((v): v is string => typeof v === \"string\") : [];\n const raw = [...positionals.flatMap((v) => v.split(\",\")), ...rawFileEntries(args.file)]\n .map((v) => v.trim())\n .filter(Boolean);\n const targets = [...new Set(raw)];\n if (targets.length === 0) {\n failWriteValidation(`pass the ${entity} resource name(s) as positional arguments and/or --file (one per line)`);\n }\n if (targets.length > GOOGLE_DRAFT_BATCH_MAX) {\n failWriteValidation(`${targets.length} targets exceeds the batch limit of ${GOOGLE_DRAFT_BATCH_MAX} — split them`);\n }\n return targets;\n}\n\nexport function requireStringFlag(value: unknown, flag: string): string {\n if (typeof value !== \"string\" || value.length === 0) {\n failWriteValidation(`${flag} is required`);\n }\n return value;\n}\n\n/** Money flag in major currency units → micros. */\nexport function microsFlag(value: unknown, flag: string): number | undefined {\n if (value === undefined || value === null || value === \"\") {\n return undefined;\n }\n const num = Number(value);\n if (Number.isNaN(num) || num <= 0) {\n failWriteValidation(`${flag} must be a positive amount (major currency units, e.g. 50 or 50.00)`);\n }\n return toMicros(num);\n}\n\n/** Split a comma-separated flag into trimmed non-empty values. */\nexport function listFlag(value: unknown): string[] | undefined {\n if (typeof value !== \"string\" || value.length === 0) {\n return undefined;\n }\n const items = value\n .split(\",\")\n .map((v) => v.trim())\n .filter(Boolean);\n return items.length > 0 ? items : undefined;\n}\n\nexport interface KeywordEntry {\n text: string;\n matchType: string;\n}\n\nconst MATCH_TYPES = new Set([\"EXACT\", \"PHRASE\", \"BROAD\"]);\n\n/**\n * One raw keyword entry → { text, matchType }. A trailing `:EXACT|:PHRASE|:BROAD`\n * suffix overrides the default match type; colons and commas aren't legal in Google\n * keyword text, so the syntax is unambiguous.\n */\nfunction parseKeywordEntry(raw: string, defaultMatch: string | undefined): KeywordEntry {\n const colon = raw.lastIndexOf(\":\");\n if (colon > 0) {\n const suffix = raw\n .slice(colon + 1)\n .trim()\n .toUpperCase();\n if (MATCH_TYPES.has(suffix)) {\n return { text: raw.slice(0, colon).trim(), matchType: suffix };\n }\n failWriteValidation(`\"${raw}\": \":${raw.slice(colon + 1)}\" is not a match type (EXACT | PHRASE | BROAD)`);\n }\n if (!defaultMatch) {\n failWriteValidation(`\"${raw}\" has no match type — add a :EXACT/:PHRASE/:BROAD suffix or pass --match-type`);\n }\n return { text: raw, matchType: defaultMatch };\n}\n\n/**\n * Raw --text value(s) → individual entries: repeated flags and comma-separated\n * both work. The repeats have to come off `rawArgs`, because citty parses a\n * repeated flag down to its last value alone.\n */\nfunction rawTextEntries(value: unknown, rawArgs: readonly string[] | undefined): string[] {\n return repeatedValues(rawArgs, \"text\", value)\n .flatMap((v) => v.split(\",\"))\n .map((v) => v.trim())\n .filter(Boolean);\n}\n\n/** Newline-separated keyword file: one `text[:MATCH_TYPE]` per line; blank lines and `#` comments skipped. */\nfunction rawFileEntries(path: unknown): string[] {\n return typeof path === \"string\" && path.length > 0 ? fileLines(path) : [];\n}\n\n/** A text file's entries: one per line, trimmed; blank lines and `#` comments skipped. */\nexport function fileLines(path: string): string[] {\n return readFileSync(path, \"utf8\")\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0 && !line.startsWith(\"#\"));\n}\n\n/**\n * The keyword batch a command was invoked with: comma-separated `--text` entries\n * (optional `:MATCH_TYPE` suffix each) plus `--file` lines, deduped, each falling\n * back to `--match-type`. One entry stages exactly like before; many stage as one batch.\n */\nexport function keywordEntries(args: Record<string, unknown>, rawArgs?: readonly string[]): KeywordEntry[] {\n const defaultMatch = typeof args[\"match-type\"] === \"string\" ? args[\"match-type\"].toUpperCase() : undefined;\n const raw = [...rawTextEntries(args.text, rawArgs), ...rawFileEntries(args.file)];\n if (raw.length === 0) {\n failWriteValidation(\"pass keywords via --text (comma-separated) and/or --file (one per line)\");\n }\n if (raw.length > GOOGLE_DRAFT_BATCH_MAX) {\n failWriteValidation(`${raw.length} keywords exceeds the batch limit of ${GOOGLE_DRAFT_BATCH_MAX}`);\n }\n const entries: KeywordEntry[] = [];\n const seen = new Set<string>();\n for (const item of raw) {\n const entry = parseKeywordEntry(item, defaultMatch);\n const key = JSON.stringify([entry.text, entry.matchType]);\n if (!seen.has(key)) {\n seen.add(key);\n entries.push(entry);\n }\n }\n return entries;\n}\n\n/**\n * The payloads behind `--file`: a path to a JSON file, or the JSON written inline. The file holds one\n * payload object, a JSON array of them, or JSON Lines (one object per line) — many payloads stage as\n * one batch, which is how a bulk change lands in one call instead of hundreds.\n *\n * Inline is here because every doc example already writes it that way — `packages/cli/README.md`\n * and the scaffold's `ads-google.md` both show `--file '{\"type\":\"image\",…}'` — while the arg only\n * ever read a path, so following the documentation answered with a raw ENOENT stack trace. Reading\n * a leading `{` or `[` as the payload makes those examples true rather than making the agent re-learn\n * the one shape that works.\n */\nexport function loadJsonPayloads(path: unknown): Array<Record<string, unknown>> {\n if (typeof path !== \"string\" || path.length === 0) {\n return [];\n }\n const inline = /^\\s*[[{]/.test(path);\n const source = inline ? \"inline JSON\" : path;\n const text = inline ? path : readFileSync(path, \"utf8\");\n return parsedPayloads(text, source).map((item, index, all) => {\n if (item === null || typeof item !== \"object\" || Array.isArray(item)) {\n failWriteValidation(\n all.length === 1 ? `${source} must contain a JSON object` : `${source}: item ${index} must be a JSON object`,\n );\n }\n return item as Record<string, unknown>;\n });\n}\n\n/** One JSON value (an array spreads into its items), else JSON Lines; the JSON error when neither parses. */\nfunction parsedPayloads(text: string, source: string): unknown[] {\n try {\n const parsed = JSON.parse(text) as unknown;\n return Array.isArray(parsed) ? parsed : [parsed];\n } catch (err) {\n if (!(err instanceof SyntaxError)) {\n throw err;\n }\n const lines = text.split(/\\r?\\n/).filter((line) => line.trim().length > 0);\n if (lines.length > 1) {\n return lines.map((line, index) => parseJsonLine(line, index, source));\n }\n failWriteValidation(`${source} is not valid JSON: ${err.message}`);\n }\n}\n\n/** One JSON Lines entry, or the line's own error naming where it is. */\nfunction parseJsonLine(line: string, index: number, source: string): unknown {\n try {\n return JSON.parse(line) as unknown;\n } catch (err) {\n return failWriteValidation(\n `${source} line ${index + 1} is not valid JSON: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n}\n\n/** The ONE op payload behind `--file`, for commands that change a single entity. */\nexport function loadJsonFileArg(path: unknown): Record<string, unknown> {\n const payloads = loadJsonPayloads(path);\n if (payloads.length > 1) {\n failWriteValidation(\n `this command changes one entity, and --file holds ${payloads.length} payloads — stage many changes from one file with \\`baker ads google draft stage --file\\` (one op per item: {\"kind\",\"customerId\",\"target\"?,\"payload\"?})`,\n );\n }\n return payloads[0] ?? {};\n}\n\n/** Flags override file keys — the file is the base, flags are the overrides. */\nexport function mergePayload(file: Record<string, unknown>, flags: Record<string, unknown>): Record<string, unknown> {\n const merged: Record<string, unknown> = { ...file };\n for (const [key, value] of Object.entries(flags)) {\n if (value !== undefined) {\n merged[key] = value;\n }\n }\n return merged;\n}\n\n/**\n * The `draft amend` patch: exactly one of `--file <path>` (JSON file) or `--patch '<json>'`\n * (inline string), and it must parse to a JSON object — RFC-7386 merge-patch needs an object to\n * merge, and a stray array/scalar would silently no-op or replace the whole payload.\n */\nexport function loadPatchArg(args: Record<string, unknown>): Record<string, unknown> {\n const file = typeof args.file === \"string\" && args.file.length > 0 ? args.file : undefined;\n const inline = typeof args.patch === \"string\" && args.patch.length > 0 ? args.patch : undefined;\n if (Boolean(file) === Boolean(inline)) {\n failWriteValidation(\"pass exactly one of --file <patch.json> or --patch '<json>'\");\n }\n if (file) {\n return loadJsonFileArg(file);\n }\n try {\n const parsed = JSON.parse(inline as string) as unknown;\n if (parsed === null || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n failWriteValidation(\"--patch must be a JSON object\");\n }\n return parsed as Record<string, unknown>;\n } catch (err) {\n if (err instanceof SyntaxError) {\n failWriteValidation(`--patch is not valid JSON: ${err.message}`);\n }\n throw err;\n }\n}\n\nexport function handleGoogleError(err: unknown): never {\n if (err instanceof ApiError) {\n // Covers both \"no connection\" and staging's 403 for an account this company\n // never connected — same remedy either way: connect, and pick the account.\n if (isNotConnectedError(err.code, err.message)) {\n handleConnectionError(\"google_ads\", err.message);\n }\n const terms = termsRefusalFix(err.code, err.message);\n if (terms) {\n writeJsonEnvelope({\n ok: false,\n error: { code: terms.code, message: err.message, retryable: false, fix: terms.fix },\n });\n process.exit(1);\n }\n if (err.message.includes(OP_TOO_LARGE_MESSAGE_START)) {\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"OP_TOO_LARGE\",\n message: err.message,\n retryable: false,\n fix: { action: \"split_the_change\", explanation: OP_TOO_LARGE_FIX },\n },\n });\n process.exit(1);\n }\n writeJsonEnvelope({ ok: false, error: { code: err.code ?? \"API_ERROR\", message: err.message } });\n process.exit(1);\n }\n writeJsonEnvelope({\n ok: false,\n error: { code: \"UNKNOWN\", message: err instanceof Error ? err.message : String(err) },\n });\n process.exit(1);\n}\n\ninterface StageEnvelope extends Record<string, unknown> {\n ok: true;\n data: GoogleDraftStageResponse;\n}\n\n/**\n * A no-op response isn't a failure — the change was already in place, so nothing was\n * staged. Say so explicitly, otherwise the agent re-stages it or reports work it\n * didn't do.\n */\nfunction noopHints(data: GoogleDraftStageResponse): string[] {\n return data.staged\n ? []\n : [`NOT STAGED — ${data.reason}. Nothing to publish for this change; say so rather than reporting it as done.`];\n}\n\n/**\n * What to tell the agent about the ops a batch didn't stage.\n *\n * Two different things land in `skipped`: a change already in place, and a change Google refuses\n * outright (editing an experiment campaign's status, dates or budget). This hint used to assert the\n * first — \"already in the requested state\" — which read as \"done\" for a refusal the user never heard\n * about. So it leads with each op's own reason and asks for the refusals to be passed on.\n */\nexport function skippedHints(skipped: Array<{ summary: string; reason: string }>, total: number): string[] {\n if (skipped.length === 0) {\n return [];\n }\n const detail = skipped.map((s) => `${s.summary} — ${s.reason}`).join(\"; \");\n return [\n `${skipped.length} of ${total} op(s) NOT STAGED: ${detail}. Don't re-stage them; tell the user which changes couldn't be made and why, then carry on with the rest.`,\n ];\n}\n\n/**\n * Preflight-validates the op against the shared `@baker/api/ads-google`\n * contract (the same schema the backend enforces), then stages it. Prints the\n * staged envelope — ref, mode (always `live`: publishing reaches the real\n * account), summary, warnings.\n */\nexport async function stageGoogleOp(raw: Record<string, unknown>, hints?: string[]): Promise<void> {\n const preflight = googleDraftOpInputSchema.safeParse(raw);\n if (!preflight.success) {\n const fields = preflight.error.issues.map((issue) => ({ path: issue.path.join(\".\"), message: issue.message }));\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: fields.map((f) => (f.path ? `${f.path}: ${f.message}` : f.message)).join(\"; \"),\n fields,\n fix: copyListCountFix(raw, preflight.error.issues) ?? payloadFix(\"google-ads\", googleDraftOpInputSchema, raw),\n },\n });\n process.exit(1);\n }\n try {\n const chatId = requireChatId();\n const response = await apiPost<StageEnvelope>(\"/api/ads/google/draft/stage\", { chatId, op: preflight.data });\n const allHints = [\n ...noopHints(response.data),\n ...recordSingleStage(chatId, preflight.data.kind),\n ...(hints ?? []),\n ...(await adCopyHints(preflight.data)),\n ];\n writeJsonEnvelope(withHints(response, allHints));\n } catch (err) {\n handleGoogleError(err);\n }\n}\n\n/** Stage a create op: `{ kind, customerId, payload }`. */\nexport async function stageCreate(\n kind: string,\n customerId: string,\n payload: Record<string, unknown>,\n hints?: string[],\n): Promise<void> {\n await stageGoogleOp({ kind, customerId, payload }, hints);\n}\n\ninterface StageBatchEnvelope extends Record<string, unknown> {\n ok: true;\n data: GoogleDraftStageBatchResponse;\n}\n\n/**\n * A batch reads every target's before-state and checks each op against the account, which for a few\n * hundred removals outlasts the default 60 s. Timing out early reported a batch as failed that went on\n * to stage, so a retry then collided with the ops it had already staged.\n */\nconst STAGE_BATCH_TIMEOUT_MS = 5 * 60_000;\n\n/**\n * Stage several ops as ONE request (`/stage-batch`) — all-or-nothing on the backend,\n * one rate-limit hit instead of one per keyword. A single op falls through to the\n * plain stage path so its envelope (and amend behavior) stays exactly as before.\n */\nexport async function stageGoogleOps(rawOps: Array<Record<string, unknown>>, hints?: string[]): Promise<void> {\n if (rawOps.length === 1 && rawOps[0]) {\n await stageGoogleOp(rawOps[0], hints);\n return;\n }\n const ops: unknown[] = [];\n for (const [index, raw] of rawOps.entries()) {\n const preflight = googleDraftOpInputSchema.safeParse(raw);\n if (!preflight.success) {\n const fields = preflight.error.issues.map((issue) => ({\n path: `ops[${index}].${issue.path.join(\".\")}`,\n message: issue.message,\n }));\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: fields.map((f) => `${f.path}: ${f.message}`).join(\"; \"),\n fields,\n fix: copyListCountFix(raw, preflight.error.issues) ?? payloadFix(\"google-ads\", googleDraftOpInputSchema, raw),\n },\n });\n process.exit(1);\n }\n ops.push(preflight.data);\n }\n try {\n const chatId = requireChatId();\n const response = await apiPost<StageBatchEnvelope>(\n \"/api/ads/google/draft/stage-batch\",\n { chatId, ops },\n { timeoutMs: STAGE_BATCH_TIMEOUT_MS },\n );\n const allHints = [\n ...skippedHints(response.data.skipped ?? [], ops.length),\n ...(hints ?? []),\n ...(await adCopyHints(ops)),\n ];\n writeJsonEnvelope(withHints(response, allHints));\n } catch (err) {\n handleGoogleError(err);\n }\n}\n\n/** Stage an update op: `{ kind, customerId, target, payload }`. */\nexport async function stageUpdate(\n kind: string,\n customerId: string,\n target: string,\n payload: Record<string, unknown>,\n hints?: string[],\n): Promise<void> {\n await stageGoogleOp({ kind, customerId, target, payload }, hints);\n}\n\n/** Stage a target-only op (pause/resume/remove/detach): `{ kind, customerId, target }`. */\nexport async function stageTarget(kind: string, customerId: string, target: string, hints?: string[]): Promise<void> {\n await stageGoogleOp({ kind, customerId, target }, hints);\n}\n\nexport async function draftAction(path: string, body: Record<string, unknown>, chat?: unknown): Promise<void> {\n try {\n const chatId = resolveChatId(chat);\n const response = await apiPost<Record<string, unknown>>(path, { chatId, ...body });\n writeJsonEnvelope(response);\n } catch (err) {\n handleGoogleError(err);\n }\n}\n\ninterface DraftListEnvelope extends Record<string, unknown> {\n ok: boolean;\n data?: GoogleDraftListResponse;\n}\n\n/**\n * List the staged draft. By default renders a readable campaign ▸ ad group ▸ ad status tree so the\n * agent can review everything it has staged at a glance; `--json` returns the raw envelope for tools,\n * and `--full` that envelope with every op's payload.\n */\nexport async function draftListAction(json: boolean, chat?: unknown, full = false, customerId?: string): Promise<void> {\n try {\n const chatId = resolveChatId(chat);\n const listed = await apiPost<DraftListEnvelope>(\"/api/ads/google/draft\", {\n chatId,\n ...(full ? { full: true } : {}),\n });\n const inAccount =\n customerId !== undefined && listed.ok && listed.data ? draftInAccount(listed.data, customerId) : undefined;\n const response = inAccount ? withHints({ ...listed, data: inAccount.data }, inAccount.hints) : listed;\n if (json || full || !response.ok || !response.data) {\n writeJsonEnvelope(response);\n return;\n }\n process.stdout.write(`${inAccount?.empty ?? renderDraftStatus(response.data)}${hintLines(response)}\\n`);\n } catch (err) {\n handleGoogleError(err);\n }\n}\n\nexport const customerIdArg = {\n \"customer-id\": { type: \"string\" as const, description: \"10-digit Google Ads customer id\" },\n};\n/** The entity a command changes, read by position the way `requireTarget` reads it — declared so --help shows it. */\nexport function targetArg(entity: string) {\n return {\n id: {\n type: \"positional\" as const,\n description: `The ${entity} to change: its id or resource name (customers/…)`,\n required: false,\n },\n };\n}\n\nconst PAYLOAD_FIELDS = \"run `baker schema` on this command for every field the payload takes\";\n\nfunction payloadShape(kind: string): () => string | undefined {\n return () => describeOpPayload(googleDraftOpInputSchema, kind);\n}\n\n/** `--file` for a command that stages one `kind` op; `baker schema` prints that op's payload shape. */\nexport function fileArg(kind: string) {\n return {\n file: payloadArg(\n {\n type: \"string\" as const,\n description: `The op payload: a JSON file path, or the JSON object inline (flags override it) — ${PAYLOAD_FIELDS}`,\n },\n payloadShape(kind),\n ),\n };\n}\n\n/** `--file` that stages one or many `kind` ops; `baker schema` prints that op's payload shape. */\nexport function fileBatchArg(kind: string) {\n return {\n file: payloadArg(\n {\n type: \"string\" as const,\n description: `The op payload: a JSON file path or inline JSON — one object, or a JSON array / JSON Lines of objects to stage many in one call (up to 500) — ${PAYLOAD_FIELDS}`,\n },\n payloadShape(kind),\n ),\n };\n}\n\n/** A create command whose payload is a JSON file or inline JSON — one object or an array staged as one batch. */\nexport function fileCreateCommand(\n name: string,\n kind: string,\n description: string,\n hints?: string[] | ((payload: Record<string, unknown>) => string[]),\n) {\n return defineCommand({\n meta: { name, description },\n args: { ...customerIdArg, ...fileBatchArg(kind) },\n run: async ({ args }) => {\n const customerId = requireCustomerId(args);\n const payloads = loadJsonPayloads(args.file);\n if (payloads.length === 0 || payloads.some((payload) => Object.keys(payload).length === 0)) {\n failWriteValidation(`${kind} needs --file with the op payload (one object, or a JSON array to stage many)`);\n }\n if (payloads.length > GOOGLE_DRAFT_BATCH_MAX) {\n failWriteValidation(\n `${payloads.length} payloads exceeds the batch limit of ${GOOGLE_DRAFT_BATCH_MAX} — split the file`,\n );\n }\n const payloadHints = [\n ...new Set(payloads.flatMap((payload) => (typeof hints === \"function\" ? hints(payload) : (hints ?? [])))),\n ];\n await stageGoogleOps(\n payloads.map((payload) => ({ kind, customerId, payload })),\n payloadHints,\n );\n },\n });\n}\n\n/**\n * `--bid-modifier` as a number, validated against the range Google actually accepts.\n *\n * Rejecting the (0, 0.1) gap here rather than at the backend is the point: 0 and 0.1 are a hundredth\n * apart in value and mean \"never serve\" versus \"bid a tenth\", so a typo between them is a real spend\n * decision, and the error should arrive before anything is staged.\n */\nexport function bidModifierFlag(value: unknown): number {\n if (value === undefined || value === null || value === \"\") {\n failWriteValidation(\n \"--bid-modifier is required: 1 for no adjustment, 1.25 to bid 25% more, 0.9 to bid 10% less, 0 to stop serving on a device\",\n );\n }\n const num = Number(value);\n if (Number.isNaN(num) || num < 0 || num > 10 || (num > 0 && num < 0.1)) {\n failWriteValidation(\"--bid-modifier must be 0 (stop serving on it) or between 0.1 and 10.0\");\n }\n return num;\n}\n","import type { z } from \"zod\";\n\n/** Appended to each copy flag's help, so `--help` and `baker schema` say how to pass a comma. */\nexport const AD_COPY_LIST_USAGE =\n \"repeat the flag once per item, or pass one comma-separated list and wrap an item that contains a comma in double quotes: '\\\"Fast, free quotes\\\",Book today'. A flag given once is read as a list, so a lone item with a comma needs its double quotes too: '\\\"Fast, free quotes\\\"'\";\n\n/** The op's copy-list fields, by the flag an agent passes them with. */\nconst COPY_LIST_FLAG: Readonly<Record<string, string>> = {\n headlines: \"--headlines\",\n descriptions: \"--descriptions\",\n longHeadlines: \"--long-headlines\",\n};\n\ninterface CountRefusal {\n flag: string;\n count: number | undefined;\n bound: string;\n tooMany: boolean;\n}\n\nfunction valueAt(root: unknown, path: readonly PropertyKey[]): unknown {\n let node = root;\n for (const key of path) {\n if (node === null || typeof node !== \"object\") return undefined;\n node = (node as Record<PropertyKey, unknown>)[key];\n }\n return node;\n}\n\nfunction countRefusal(op: unknown, issue: z.core.$ZodIssue): CountRefusal | undefined {\n if ((issue.code !== \"too_big\" && issue.code !== \"too_small\") || issue.origin !== \"array\") return undefined;\n const flag = COPY_LIST_FLAG[String(issue.path.at(-1))];\n if (!flag) return undefined;\n const value = valueAt(op, issue.path);\n const count = Array.isArray(value) ? value.length : undefined;\n return issue.code === \"too_big\"\n ? { flag, count, bound: `at most ${issue.maximum}`, tooMany: true }\n : { flag, count, bound: `at least ${issue.minimum}`, tooMany: false };\n}\n\n/**\n * The fix for a stage refused only for how many headlines, descriptions or long headlines it has.\n *\n * That is a limit on a field the agent named correctly, so the generic \"read `baker capabilities`,\n * do not guess another field name\" sent it through draft list, schema and --help before it saw the\n * cause. Too many items is usually copy cut at its commas — a flag given once is a comma-separated\n * list, so \"Rated 4,5/5\" becomes two items — which is why that case names the forms that keep a\n * comma. Undefined when anything else was refused too, so the capabilities pointer still covers it.\n */\nexport function copyListCountFix(\n op: unknown,\n issues: readonly z.core.$ZodIssue[],\n): { action: string; explanation: string } | undefined {\n const refusals = issues.map((issue) => countRefusal(op, issue));\n if (refusals.length === 0 || refusals.some((refusal) => refusal === undefined)) return undefined;\n const counted = refusals.filter((refusal): refusal is CountRefusal => refusal !== undefined);\n const limits = counted\n .map(({ flag, count, bound }) => `${flag} has ${count ?? \"the wrong number of\"} items; this ad takes ${bound}.`)\n .join(\" \");\n const commaCause = counted.some((refusal) => refusal.tooMany)\n ? ' If you meant fewer items, the copy was cut at its commas: a flag given once is read as a comma-separated list, so an item with a comma in it (\"Fast, free quotes\", a decimal like \"4,5/5\") becomes two. To keep a comma, ' +\n `${AD_COPY_LIST_USAGE} — or put the content in --file as JSON.`\n : \"\";\n return {\n action: \"fix_copy_list_count\",\n explanation: `${limits}${commaCause} ${commaCause ? \"Otherwise add\" : \"Add\"} or drop items to fit the limit, then stage again; the field names are right.`,\n };\n}\n","import type {\n GoogleDraftListResponse,\n GoogleDraftStatusCollection,\n GoogleDraftStatusNode,\n} from \"@baker/api/ads-google\";\n\n/**\n * Render the staged Google Ads draft as a readable campaign ▸ ad group ▸ ad tree — the CLI\n * counterpart to the dashboard's Google Ads tab, so an agent can review everything it has staged\n * with one command instead of reading raw JSON. Pure: takes the draft-list response, returns text.\n */\n\nconst OPERATION_LABELS: Record<string, string> = {\n create: \"Creating\",\n update: \"Updating\",\n pause: \"Pausing\",\n resume: \"Resuming\",\n remove: \"Removing\",\n};\n\nfunction badge(node: GoogleDraftStatusNode): string {\n const label = node.operation ? OPERATION_LABELS[node.operation] : undefined;\n if (label) {\n return label;\n }\n return node.existing ? \"on Google Ads\" : \"staged\";\n}\n\nfunction collectionLine(collection: GoogleDraftStatusCollection): string | undefined {\n const parts: string[] = [];\n if (collection.added > 0) {\n parts.push(`+${collection.added}`);\n }\n if (collection.existing > 0) {\n parts.push(`${collection.existing} existing`);\n }\n if (collection.removed > 0) {\n parts.push(`-${collection.removed}`);\n }\n // Neither an add nor a remove — a member that stays in the set with a changed value (a device's\n // bid adjustment). Left out, a draft whose only criterion change is one printed no line at all.\n if ((collection.updated ?? 0) > 0) {\n parts.push(`~${collection.updated}`);\n }\n return parts.length > 0 ? `${collection.label}: ${parts.join(\", \")}` : undefined;\n}\n\n/**\n * Every advertiser account the tree touches. A draft may legitimately span\n * several, and a criterion id is derived from the keyword's text and match type\n * — so the same keyword carries the same id in every account. The account is\n * printed on each node once there is more than one, and left off when there is not.\n */\nfunction accountsInTree(nodes: readonly GoogleDraftStatusNode[]): Set<string> {\n const accounts = new Set<string>();\n const walk = (node: GoogleDraftStatusNode): void => {\n accounts.add(node.customerId);\n for (const child of node.children) {\n walk(child);\n }\n };\n for (const node of nodes) {\n walk(node);\n }\n return accounts;\n}\n\nfunction renderNode(node: GoogleDraftStatusNode, depth: number, lines: string[], showAccount: boolean): void {\n const indent = \" \".repeat(depth);\n const account = showAccount ? ` · account ${node.customerId}` : \"\";\n lines.push(`${indent}• ${node.name} · ${badge(node)}${account}`);\n for (const warning of node.warnings ?? []) {\n lines.push(`${indent} ⚠ ${warning}`);\n }\n for (const collection of node.collections) {\n const line = collectionLine(collection);\n if (line) {\n lines.push(`${indent} ${line}`);\n }\n }\n for (const child of node.children) {\n renderNode(child, depth + 1, lines, showAccount);\n }\n}\n\nconst RESOURCE_ENTITIES = new Set([\n \"sharedSet\",\n \"biddingStrategy\",\n \"audience\",\n \"conversionAction\",\n \"label\",\n \"budget\",\n \"asset\",\n]);\n\nfunction renderSection(title: string, nodes: GoogleDraftStatusNode[], lines: string[], showAccount: boolean): void {\n if (nodes.length === 0) {\n return;\n }\n lines.push(\"\");\n lines.push(title);\n for (const node of nodes) {\n renderNode(node, 1, lines, showAccount);\n }\n}\n\nfunction renderAdvisories(data: GoogleDraftListResponse, lines: string[]): void {\n const advisories = data.advisories ?? [];\n // Every advisory is phrased as something to settle BEFORE publishing. On a published draft there\n // is nothing left to settle here, and printing them reads as work still outstanding on this chat.\n if (advisories.length === 0 || data.status === \"applied\") {\n return;\n }\n lines.push(\"\");\n // Two kinds of finding share this block: build-out nudges (\"this ad group has one ad\") and\n // whole-draft coherence findings (\"this campaign will report zero conversions\", \"two of your\n // campaigns bid on the same keyword\"). The coherence ones come first and cost money, so the\n // heading no longer frames the block as optional polish.\n lines.push(\"Advisories (non-blocking, checked across the whole draft — settle these before you publish)\");\n for (const advisory of advisories) {\n lines.push(` • ${advisory.message}`);\n }\n}\n\n/**\n * What the publish did, once there is a publish to report.\n *\n * A published Google Ads draft rendered exactly like a staged one — same count, every op still\n * reading \"Creating\" — so the surface `.claude/rules/cli-env.md` sends an agent to for the outcome\n * could not answer, and a failed op was invisible in the human output while sitting in the JSON\n * envelope the whole time. Found by publishing a BUSINESS_LOGO link that Google refused with\n * \"Customer is not verified\": the draft still read \"4 staged changes\". LinkedIn fixed the same\n * shape first; this is its counterpart.\n */\nfunction renderOutcome(data: GoogleDraftListResponse, lines: string[]): void {\n const counts = new Map<string, number>();\n for (const op of data.ops) {\n const status = op.result?.status ?? \"pending\";\n counts.set(status, (counts.get(status) ?? 0) + 1);\n }\n const summary = [...counts].map(([status, count]) => `${count} ${status}`).join(\", \");\n lines.push(`Google Ads — published · ${summary || `${data.count} op(s)`} · ${data.mode}`);\n // A failure is the reason to read this at all, so it is named with its error rather than left as\n // a number to go and look up.\n for (const op of data.ops) {\n const status = op.result?.status;\n if (status !== \"failed\" && status !== \"skipped\") {\n continue;\n }\n const reason = op.result?.error ?? op.result?.skippedBecause ?? \"no reason recorded\";\n lines.push(` ✗ ${op.summary} — ${status}: ${reason}`);\n }\n}\n\nexport function renderDraftStatus(data: GoogleDraftListResponse): string {\n if (data.status === \"none\" || data.count === 0) {\n return \"No staged Google Ads changes on this chat.\";\n }\n const modeNote =\n data.mode === \"live\"\n ? \"Live — publishing writes directly to Google Ads.\"\n : \"Simulated — publishing completes the whole draft without calling Google Ads.\";\n const lines: string[] = [];\n if (data.status === \"applied\") {\n renderOutcome(data, lines);\n } else if (data.status === \"publishing\") {\n lines.push(`Google Ads — publishing ${data.count} change${data.count === 1 ? \"\" : \"s\"} · ${data.mode}`);\n } else {\n lines.push(`Google Ads — ${data.count} staged change${data.count === 1 ? \"\" : \"s\"} · ${data.mode}`);\n }\n lines.push(modeNote);\n\n const tree = data.tree ?? [];\n const showAccount = accountsInTree(tree).size > 1;\n renderSection(\n \"Shared resources\",\n tree.filter((node) => RESOURCE_ENTITIES.has(node.entity)),\n lines,\n showAccount,\n );\n renderSection(\n \"Campaigns\",\n tree.filter((node) => node.entity === \"campaign\"),\n lines,\n showAccount,\n );\n const rest = tree.filter((node) => !RESOURCE_ENTITIES.has(node.entity) && node.entity !== \"campaign\");\n renderSection(\"Other\", rest, lines, showAccount);\n renderAdvisories(data, lines);\n\n return lines.join(\"\\n\");\n}\n","import { cacheGet, cacheSet } from \"../cache.ts\";\n\n/**\n * Bulk work done as a loop of single commands — one `keywords update` per keyword, one\n * `negative-keywords remove` per term — is one request, one rate-limit hit and one tool call per row;\n * production saw 1,284 of them. The CLI cannot see the loop from inside one call, so it remembers the\n * last few single stages per chat and, once the same kind repeats, says how to do the rest in one call.\n */\n\nexport interface StageStreak {\n kind: string;\n count: number;\n lastAt: number;\n}\n\n/** Singles further apart than this are separate decisions, not a loop. */\nconst STREAK_WINDOW_MS = 5 * 60_000;\n/** The streak length that reads as a loop. */\nconst STREAK_THRESHOLD = 5;\n\nexport function nextStageStreak(previous: StageStreak | undefined, kind: string, now: number): StageStreak {\n const continues = previous && previous.kind === kind && now - previous.lastAt <= STREAK_WINDOW_MS;\n return { kind, count: continues ? previous.count + 1 : 1, lastAt: now };\n}\n\n/** The one-call form of a kind, where a command has one beside `draft stage --file`. */\nconst BATCH_FORMS: Record<string, string> = {\n \"google.keyword.add\": \"`keywords add --file keywords.txt` (one term[:MATCH_TYPE] per line)\",\n \"google.keyword.update\":\n \"`keywords pause|resume <resource name> <resource name>…` (or --file, one per line) for status\",\n \"google.keyword.remove\": \"`draft stage --file` with one google.keyword.remove per target\",\n \"google.negativeKeyword.add\": \"`negative-keywords add --file terms.txt`\",\n \"google.sharedSetMember.add\": \"`keyword-lists add --file terms.txt`\",\n \"google.sharedSetMember.remove\": '`keyword-lists remove --list-ref <id> --text \"a,b,c\"`',\n};\n\nexport function stageStreakHints(streak: StageStreak): string[] {\n if (streak.count < STREAK_THRESHOLD) {\n return [];\n }\n const form = BATCH_FORMS[streak.kind];\n return [\n `LOOP: that is ${streak.count} ${streak.kind} ops staged one command at a time. Stop looping — put every remaining change in one file and stage them in ONE call: \\`baker ads google draft stage --file ops.json --customer-id <id>\\` (a JSON array of {\"kind\",\"target\"?,\"payload\"?}, up to 500, any mix of kinds)${form ? `, or ${form}` : \"\"}. Fix staged ops together with \\`draft amend --file\\`.`,\n ];\n}\n\nconst STREAK_CACHE = \"stage-streak\";\n\n/** Record one single stage on this chat and return the nudge it earns, if any. Never throws. */\nexport function recordSingleStage(chatId: string, kind: string): string[] {\n try {\n const streak = nextStageStreak(cacheGet<StageStreak>(STREAK_CACHE, chatId)?.data, kind, Date.now());\n cacheSet(STREAK_CACHE, chatId, streak, STREAK_WINDOW_MS);\n return stageStreakHints(streak);\n } catch {\n return [];\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,351 @@
1
+ import {
2
+ RESEARCH_GOOGLE_ADS_MAX_COPY
3
+ } from "./chunk-BTOGDXA4.js";
4
+
5
+ // src/commands/research/hints.ts
6
+ var AD_COPY_ROUTE = 'This returns competing domains and their SERP economics \u2014 no ad copy, no headlines, no creative. For a competitor\'s Google ads and their copy: `baker research google-ads <competitor.com> --copy` (Google\'s Ads Transparency Center: every ad, how long it has run, and the text ads\' headline and description). For Meta and LinkedIn: `baker winning-ads advertisers "<brand>"` \u2192 `baker winning-ads search "<brief>" --advertiser-id <id>` \u2192 `baker winning-ads content <adId>` (`primary_text` / `headline` / `cta`, plus the spoken transcript and on-screen text for video). Do not keep querying this command for copy.';
7
+ function noSerpRowsHints(rowCount, queryContext) {
8
+ if (rowCount > 0) {
9
+ return [];
10
+ }
11
+ const defaulted = queryContext.location_is_default || queryContext.language_is_default;
12
+ if (defaulted) {
13
+ return [
14
+ `No rows for ${queryContext.location} / ${queryContext.language} \u2014 the market you did not set. Set --location and --language for the client's actual market and re-run once (\`baker research countries\` / \`baker research languages\` for the accepted codes) before you touch the keyword.`
15
+ ];
16
+ }
17
+ return [
18
+ `No rows for ${queryContext.location} / ${queryContext.language}, which you set explicitly. This term has no third-party SERP coverage in that market \u2014 move on rather than re-querying it. For demand signal try \`baker research autocomplete\`; for a competitor's actual terms, \`baker research keywords-for-site <domain>\`.`
19
+ ];
20
+ }
21
+ function advertisersHints(rowCount, queryContext) {
22
+ return [...noSerpRowsHints(rowCount, queryContext), AD_COPY_ROUTE];
23
+ }
24
+ function keywordsForSiteHints(rowCount, queryContext, typeFilter) {
25
+ if (rowCount > 0) {
26
+ return [];
27
+ }
28
+ if (typeFilter === "paid" || typeFilter === "organic") {
29
+ return [
30
+ `No rows with --type ${typeFilter} in ${queryContext.location} / ${queryContext.language}. A domain with zero ${typeFilter} keywords in a market is itself the finding \u2014 record it and move on. Confirm once with --type all (nothing at all there means the domain has no SERP coverage, not that it has no ads) instead of re-running with a different --sort or --limit.`
31
+ ];
32
+ }
33
+ return noSerpRowsHints(rowCount, queryContext);
34
+ }
35
+ var THIN_ANSWER_CHARS = 600;
36
+ var THIN_SOURCE_COUNT = 2;
37
+ var ESCALATION = {
38
+ medium: "`medium` is a quick lookup, not a search. Re-ask the SAME question once with `--depth high` before concluding the web has nothing on it.",
39
+ high: "`high` already thought hard about this. `--depth xhigh` is the only step left and it can run 15 minutes \u2014 take it only if this answer blocks a deliverable; otherwise record the gap and move on."
40
+ };
41
+ function webSourceHints(sources) {
42
+ if (sources.length === 0) {
43
+ return [
44
+ "This answer came back with no sources. Treat every claim in it as Synthesis: \u2014 no source to cite. Do not attach a URL to it; to cite a fact, find the page that states it and read it with `baker research fetch`."
45
+ ];
46
+ }
47
+ const unresolved = sources.filter((s) => s.resolved === false).length;
48
+ if (unresolved > 0) {
49
+ return [
50
+ `${unresolved} of ${sources.length} sources are Google links that could not be followed (resolved: false). Do not cite them or guess a path from the site name \u2014 cite only a resolved URL, or open the claim's page yourself.`
51
+ ];
52
+ }
53
+ return [];
54
+ }
55
+ function fetchHints({
56
+ truncated,
57
+ contentChars,
58
+ shownChars
59
+ }) {
60
+ const hints = [];
61
+ if (shownChars < contentChars) {
62
+ hints.push(
63
+ `Showing the first ${shownChars.toLocaleString("en-US")} of ${contentChars.toLocaleString("en-US")} characters. Re-run the same command with \`--full\` for the whole page \u2014 the read is cached for 24h, so it costs no extra time and no extra credit.`
64
+ );
65
+ }
66
+ if (truncated) {
67
+ hints.push(
68
+ "This page is longer than one read returns, so the end of it is missing. Don't present this as the complete page; if the part you need is further down, fetch the deeper URL directly."
69
+ );
70
+ }
71
+ return hints;
72
+ }
73
+ function webDepthHints({
74
+ answer,
75
+ sourceCount,
76
+ depth
77
+ }) {
78
+ const thin = answer.length < THIN_ANSWER_CHARS || sourceCount <= THIN_SOURCE_COUNT;
79
+ const escalation = ESCALATION[depth];
80
+ if (!thin || !escalation) {
81
+ return [];
82
+ }
83
+ return [`Thin answer (${answer.length} chars, ${sourceCount} source(s)). ${escalation}`];
84
+ }
85
+ function keywordMetricsHints({
86
+ rows,
87
+ asked,
88
+ clickstream,
89
+ queryContext
90
+ }) {
91
+ if (rows.length === 0) {
92
+ return noSerpRowsHints(0, queryContext);
93
+ }
94
+ const provenance = "DataForSEO resells Google's Keyword Planner volume \u2014 planner_search_volume here is the SAME number `baker ads google keywords metrics` returns, not an independent reading of it. Quoting the two as agreeing sources is not corroboration." + (clickstream ? " clickstream_search_volume IS independent (DataForSEO's own panels); when the two disagree, say which one you are quoting." : " For a genuinely independent estimate of demand, re-run with --clickstream (costs 2x), or use first-party data: `baker gsc query` for what already reaches the site, or the account's own search terms.");
95
+ const hints = [provenance];
96
+ const empty = rows.filter((row) => row.search_volume === null).map((row) => row.keyword);
97
+ if (empty.length > 0) {
98
+ hints.push(
99
+ `${empty.length} of ${asked.length} keywords came back with no data in ${queryContext.location} / ${queryContext.language}: ${empty.join(", ")}. That is missing coverage, NOT zero demand \u2014 do not report them as unsearched, and do not re-query them reworded. \`baker research autocomplete\` on the head term is the way to find the phrasing that market uses.`
100
+ );
101
+ }
102
+ return hints;
103
+ }
104
+ var ARCHIVE_NOTE = "Read from the Reddit archive: the words are as posted, but points and comment counts on anything under ~36h old are as first captured \u2014 don't quote those numbers as current.";
105
+ function redditSearchHints({
106
+ resultCount,
107
+ kind,
108
+ source
109
+ }) {
110
+ const hints = [];
111
+ if (resultCount === 0) {
112
+ hints.push(
113
+ 'Nothing matched. Reddit search matches words, not meaning: try the audience\'s own phrasing (one distinctive word, or a seed from `baker research autocomplete`), a longer --since window, or other subreddits \u2014 `baker research reddit subreddits "<topic>"` finds where the audience actually talks' + (kind === "posts" ? ", and try --kind comments \u2014 most of the voice is in the replies." : ".")
114
+ );
115
+ } else if (kind === "posts") {
116
+ hints.push(
117
+ "Titles rarely carry the voice. Read the promising threads with `baker research reddit thread <permalink>` for the replies, or search the replies directly with --kind comments."
118
+ );
119
+ }
120
+ if (source === "archive" && resultCount > 0) hints.push(ARCHIVE_NOTE);
121
+ return hints;
122
+ }
123
+ function redditThreadHints({
124
+ commentsShown,
125
+ commentsAsked,
126
+ commentCount,
127
+ source
128
+ }) {
129
+ const hints = [];
130
+ if (commentsAsked > 0 && commentsShown === 0 && (commentCount ?? 0) > 0) {
131
+ hints.push(
132
+ `This thread has ${commentCount} comments but none could be read just now. Quote the post only, and don't describe the replies.`
133
+ );
134
+ }
135
+ if (source === "archive") hints.push(ARCHIVE_NOTE);
136
+ return hints;
137
+ }
138
+ var REDDIT_HOST = /(^|\.)reddit\.com$|^redd\.it$/i;
139
+ function redditSubredditsHints({ resultCount }) {
140
+ if (resultCount === 0) {
141
+ return [
142
+ 'No subreddits matched. Try the audience\'s role or the platform they work on ("amazon flex", "deliveroo", "nurses"), one word at a time, or a web search for `site:reddit.com <topic>`.'
143
+ ];
144
+ }
145
+ return [
146
+ 'Members say how big a subreddit is, not how active it is. Before mining one, run `baker research reddit search "<word>" --subreddit <name> --since <a recent date>`: nothing back means it is quiet, so pick another. `restricted` can still be read; `private` cannot.'
147
+ ];
148
+ }
149
+ var REDDIT_LINK_REJECTED = {
150
+ action: "reject",
151
+ explanation: "Do not quote anything attributed to this link \u2014 it does not lead to those words. Find the real thread with `baker research reddit search`, and if you already wrote a quote from it, remove it."
152
+ };
153
+ function redditPageFix(url, code) {
154
+ let host;
155
+ try {
156
+ host = new URL(url).hostname;
157
+ } catch {
158
+ return null;
159
+ }
160
+ if (!REDDIT_HOST.test(host)) return null;
161
+ if (code === "NOT_FOUND") return REDDIT_LINK_REJECTED;
162
+ if (code !== "FORBIDDEN") return null;
163
+ return {
164
+ action: "retry_with_changes",
165
+ explanation: 'Read Reddit with its own commands: `baker research reddit search "<words>" --subreddit <name>` to find what people said, `baker research reddit thread <url>` for one thread.'
166
+ };
167
+ }
168
+ function googleAdsHints({
169
+ target,
170
+ adCount,
171
+ located,
172
+ textWithoutCopy,
173
+ copyAsked,
174
+ copyUnread,
175
+ visual
176
+ }) {
177
+ if (adCount === 0) {
178
+ return [
179
+ `No Google ads point to ${target}${located ? " in that region" : ""} \u2014 that is the answer, not a failed call: this competitor is not advertising on Google there, or its ads point to another domain. ` + (located ? "Re-run once without --location to see every region; then move on. " : "Move on. ") + `Its paid search terms, if any: \`baker research keywords-for-site ${target} --type paid\`.`
180
+ ];
181
+ }
182
+ const hints = [];
183
+ if (!copyAsked && textWithoutCopy > 0) {
184
+ hints.push(
185
+ `${textWithoutCopy} text ads came back without their words. Re-run with --copy to read the headline and description of up to ${RESEARCH_GOOGLE_ADS_MAX_COPY} (cached, so only the reading is new).`
186
+ );
187
+ }
188
+ const pastCap = copyAsked ? textWithoutCopy - copyUnread : 0;
189
+ if (pastCap > 0) {
190
+ hints.push(
191
+ `${pastCap} text ads past the first ${RESEARCH_GOOGLE_ADS_MAX_COPY} were not read \u2014 one request reads at most ${RESEARCH_GOOGLE_ADS_MAX_COPY}. Narrow with --since, --location or --platform google_search and re-run for their words.`
192
+ );
193
+ }
194
+ if (visual > 0 || copyUnread > 0) {
195
+ const without = [
196
+ visual > 0 ? `${visual} image or video ads (Google gives no text for those)` : "",
197
+ copyUnread > 0 ? `${copyUnread} text ads whose image could not be read` : ""
198
+ ].filter(Boolean);
199
+ hints.push(
200
+ `No copy for ${without.join(" and ")}: show those by their \`transparency_url\`. Do not open the Transparency Center in agent-browser to read them \u2014 it is the browser load this command exists to avoid.`
201
+ );
202
+ }
203
+ return hints;
204
+ }
205
+ var LINKEDIN_PERSON_USE = "For ad and page messaging only; nothing is stored \u2014 quote their stated priorities into the creative brief for this account, and don't save the person to Knowledge or read them again to keep track of them.";
206
+ function peopleHints({
207
+ found,
208
+ dropped,
209
+ verified
210
+ }) {
211
+ if (found === 0) {
212
+ return [
213
+ `Nobody in public LinkedIn results holds this role here${dropped > 0 ? ` (${dropped} profiles were elsewhere now or in another role)` : ""}. Try the name people write on LinkedIn with --name, a broader --seniority, or the client's CRM: \`baker hubspot companies contacts <domain>\`.`
214
+ ];
215
+ }
216
+ const hints = [
217
+ verified ? "These are public search results a decision model checked \u2014 likely holders of the role, to confirm before anyone reaches out. Brief sales with them; never contact anyone or save them to Knowledge." : "The check could not run, so these profiles are unchecked: Google matched the words, not the person. Read each headline before naming anyone.",
218
+ "To write to one of them in their own words, read their profile once: `baker research linkedin-person <profile_url>`."
219
+ ];
220
+ return hints;
221
+ }
222
+ function linkedinPersonHints({ isPrivate, postCount }) {
223
+ if (isPrivate) {
224
+ return [
225
+ "LinkedIn doesn't show this profile publicly, and reading it again won't change that. Find their own words elsewhere \u2014 a keynote, podcast or earnings call through `baker research transcript <url>`, or an interview through `baker research fetch <url>` \u2014 or write the brief from the account's company-level priorities."
226
+ ];
227
+ }
228
+ if (postCount === 0) {
229
+ return [
230
+ LINKEDIN_PERSON_USE,
231
+ "They have no recent posts, so their `about` is the only first-person line here. Their priorities are more often said aloud: a keynote, podcast or earnings call through `baker research transcript <url>`."
232
+ ];
233
+ }
234
+ return [LINKEDIN_PERSON_USE];
235
+ }
236
+ function transcriptHints({ excerpted, truncated }) {
237
+ const hints = [];
238
+ if (excerpted) {
239
+ hints.push(
240
+ "This is the opening excerpt. Re-run with `--out <file>` to write the whole text to a file and read the parts you need, or `--full` to have it all here \u2014 the transcript is cached for 7 days, so either costs nothing more."
241
+ );
242
+ }
243
+ if (truncated) {
244
+ hints.push(
245
+ "The recording is longer than one transcript carries, so the end of the recording is missing. Don't quote this as the whole talk."
246
+ );
247
+ }
248
+ return hints;
249
+ }
250
+ function thinProfileHint(domain, profile) {
251
+ const missing = [
252
+ profile.linkedinUrl ? null : "no LinkedIn page",
253
+ profile.hqCountry ? null : "no HQ country",
254
+ profile.employees ? null : "no employee band"
255
+ ].filter((gap) => gap !== null);
256
+ const tiny = profile.employees === "1-10";
257
+ if (missing.length < 2 && !tiny) return null;
258
+ const why = [...missing, ...tiny ? ["1-10 employees"] : []].join(", ");
259
+ return `This profile is thin (${why}). Check ${domain} is the company's main website \u2014 companies often run on another domain (e.g. factorial.es vs factorialhr.com) \u2014 before using these facts for tiering.`;
260
+ }
261
+ function companyHints({
262
+ domain,
263
+ profile,
264
+ hiring
265
+ }) {
266
+ const hints = [];
267
+ if (!profile) {
268
+ hints.push(
269
+ "There's no company profile for this domain, only its hiring. Check it is the company's main website; otherwise take size, industry and location from its LinkedIn page or its own site."
270
+ );
271
+ } else {
272
+ const thin = thinProfileHint(domain, profile);
273
+ if (thin) hints.push(thin);
274
+ }
275
+ if (hiring.status === "unavailable" && hiring.reason === "not_configured") {
276
+ hints.push(
277
+ "Hiring signals aren't switched on for this workspace yet, so these are the firmographics alone. Score the account on them and leave hiring out of the reason."
278
+ );
279
+ }
280
+ if (hiring.status === "unavailable" && hiring.reason === "failed") {
281
+ hints.push(
282
+ "Hiring signals couldn't be read this time; don't retry in a loop. Use the firmographics and say hiring is unknown for this account."
283
+ );
284
+ }
285
+ if (hiring.status === "not_tracked") {
286
+ hints.push(
287
+ "No hiring data is kept for this company \u2014 that means unknown, not that it isn't hiring. Don't score it down for it."
288
+ );
289
+ }
290
+ return hints;
291
+ }
292
+ function industryList(industries) {
293
+ return industries.map(({ slug, companies }) => `${slug} (${companies.toLocaleString("en-US")})`).join(", ");
294
+ }
295
+ function relatedIndustriesHint(related) {
296
+ if (related.length === 0) return null;
297
+ return `Related industries not included (companies each adds with your other filters): ${industryList(related)} \u2014 add them with --industry a,b to widen.`;
298
+ }
299
+ function companySearchHints({
300
+ total,
301
+ returned,
302
+ page,
303
+ lastPage,
304
+ related
305
+ }) {
306
+ const hints = [];
307
+ if (total === 0) {
308
+ hints.push(
309
+ "No company matches every filter. Widen one at a time \u2014 a neighbouring size band, a related industry, one more country."
310
+ );
311
+ } else if (page < lastPage && returned > 0) {
312
+ hints.push(
313
+ `${total} companies match and ${returned} came back (each one returned is billed). Use \`total\` to size the market; ask for \`--page ${page + 1}\` only if you need the next rows for the list.`
314
+ );
315
+ }
316
+ const widen = relatedIndustriesHint(related);
317
+ if (widen) hints.push(widen);
318
+ return hints;
319
+ }
320
+ function unknownIndustriesFix(industries) {
321
+ const misses = industries.map(
322
+ ({ input, closest }) => closest.length > 0 ? `"${input}" is not an industry. Closest (companies each matches with your other filters): ${industryList(closest)}.` : `"${input}" is not an industry, and none is named like it \u2014 try a broader word (software, logistics, retail).`
323
+ );
324
+ return {
325
+ action: "retry_with_changes",
326
+ explanation: `${misses.join(" ")} Pass one or several of these slugs with --industry a,b \u2014 several widen the search, any of them matching. Nothing was charged.`
327
+ };
328
+ }
329
+
330
+ export {
331
+ noSerpRowsHints,
332
+ advertisersHints,
333
+ keywordsForSiteHints,
334
+ webSourceHints,
335
+ fetchHints,
336
+ webDepthHints,
337
+ keywordMetricsHints,
338
+ redditSearchHints,
339
+ redditThreadHints,
340
+ redditSubredditsHints,
341
+ REDDIT_LINK_REJECTED,
342
+ redditPageFix,
343
+ googleAdsHints,
344
+ peopleHints,
345
+ linkedinPersonHints,
346
+ transcriptHints,
347
+ companyHints,
348
+ companySearchHints,
349
+ unknownIndustriesFix
350
+ };
351
+ //# sourceMappingURL=chunk-ALCRXFIZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/research/hints.ts"],"sourcesContent":["/**\n * The `research` family shipped with no `hints[]` on any command. Everything\n * here is one nudge for one dead end that an audited run actually hit — not a\n * running commentary on healthy results.\n */\n\nimport {\n RESEARCH_GOOGLE_ADS_MAX_COPY,\n type ResearchCompanyHiring,\n type ResearchCompanyIndustry,\n type ResearchRedditSource,\n} from \"@baker/api\";\nimport type { QueryContext } from \"../../geo-context.ts\";\nimport type { ResearchFix } from \"./output.ts\";\n\ntype Depth = \"medium\" | \"high\" | \"xhigh\";\n\n/**\n * `advertisers` is named after advertisers and returns none of their advertising.\n * A run read the name as \"SERP ad creative\", got domain economics, and wrote \"no\n * live paid ad copy captured\" into the client's vault without ever trying the\n * command that does return copy. So this fires on every call, not just empty ones.\n */\nexport const AD_COPY_ROUTE =\n \"This returns competing domains and their SERP economics — no ad copy, no headlines, no creative. \" +\n \"For a competitor's Google ads and their copy: `baker research google-ads <competitor.com> --copy` \" +\n \"(Google's Ads Transparency Center: every ad, how long it has run, and the text ads' headline and description). \" +\n 'For Meta and LinkedIn: `baker winning-ads advertisers \"<brand>\"` → ' +\n '`baker winning-ads search \"<brief>\" --advertiser-id <id>` → `baker winning-ads content <adId>` ' +\n \"(`primary_text` / `headline` / `cta`, plus the spoken transcript and on-screen text for video). \" +\n \"Do not keep querying this command for copy.\";\n\n/**\n * Empty SERP data has two causes and only one is worth a second call: the wrong\n * market. Once the market was explicit, a re-query is waste — say so, because\n * \"no rows\" otherwise reads as \"reword the keyword\".\n */\nexport function noSerpRowsHints(rowCount: number, queryContext: QueryContext): string[] {\n if (rowCount > 0) {\n return [];\n }\n const defaulted = queryContext.location_is_default || queryContext.language_is_default;\n if (defaulted) {\n return [\n `No rows for ${queryContext.location} / ${queryContext.language} — the market you did not set. ` +\n \"Set --location and --language for the client's actual market and re-run once \" +\n \"(`baker research countries` / `baker research languages` for the accepted codes) \" +\n \"before you touch the keyword.\",\n ];\n }\n return [\n `No rows for ${queryContext.location} / ${queryContext.language}, which you set explicitly. ` +\n \"This term has no third-party SERP coverage in that market — move on rather than re-querying it. \" +\n \"For demand signal try `baker research autocomplete`; for a competitor's actual terms, \" +\n \"`baker research keywords-for-site <domain>`.\",\n ];\n}\n\nexport function advertisersHints(rowCount: number, queryContext: QueryContext): string[] {\n return [...noSerpRowsHints(rowCount, queryContext), AD_COPY_ROUTE];\n}\n\n/**\n * \"This competitor buys no paid search\" is a real competitive answer, but it\n * arrives as an empty array that looks like a broken call — so say which it is\n * before the agent re-runs the same query with a different sort.\n */\nexport function keywordsForSiteHints(\n rowCount: number,\n queryContext: QueryContext,\n typeFilter: string | undefined,\n): string[] {\n if (rowCount > 0) {\n return [];\n }\n if (typeFilter === \"paid\" || typeFilter === \"organic\") {\n return [\n `No rows with --type ${typeFilter} in ${queryContext.location} / ${queryContext.language}. ` +\n `A domain with zero ${typeFilter} keywords in a market is itself the finding — record it and move on. ` +\n \"Confirm once with --type all (nothing at all there means the domain has no SERP coverage, \" +\n \"not that it has no ads) instead of re-running with a different --sort or --limit.\",\n ];\n }\n return noSerpRowsHints(rowCount, queryContext);\n}\n\nconst THIN_ANSWER_CHARS = 600;\nconst THIN_SOURCE_COUNT = 2;\n\n// Only `medium` and `high` have somewhere to escalate to; `xhigh` is the ceiling,\n// so a thin answer there is a fact about the web, not a flag the agent forgot.\nconst ESCALATION: Partial<Record<Depth, string>> = {\n medium:\n \"`medium` is a quick lookup, not a search. Re-ask the SAME question once with `--depth high` before \" +\n \"concluding the web has nothing on it.\",\n high:\n \"`high` already thought hard about this. `--depth xhigh` is the only step left and it can run 15 minutes — \" +\n \"take it only if this answer blocks a deliverable; otherwise record the gap and move on.\",\n};\n\n/**\n * Google grounding used to come back as opaque redirect links labelled by domain,\n * and the agent guessed the real paths, 404'd, and invented links. The backend\n * now follows them; this says what to do with the ones it could not, and with\n * an answer that rests on nothing.\n */\nexport function webSourceHints(sources: Array<{ resolved?: boolean }>): string[] {\n if (sources.length === 0) {\n return [\n \"This answer came back with no sources. Treat every claim in it as Synthesis: — no source to cite. \" +\n \"Do not attach a URL to it; to cite a fact, find the page that states it and read it with `baker research fetch`.\",\n ];\n }\n // An older backend sends no `resolved`; only an explicit false is a link we know is opaque.\n const unresolved = sources.filter((s) => s.resolved === false).length;\n if (unresolved > 0) {\n return [\n `${unresolved} of ${sources.length} sources are Google links that could not be followed (resolved: false). ` +\n \"Do not cite them or guess a path from the site name — cite only a resolved URL, or open the claim's page yourself.\",\n ];\n }\n return [];\n}\n\n/**\n * The one thing worth saying about a page that came back fine is that you are\n * not looking at all of it — which the content itself cannot tell you.\n */\nexport function fetchHints({\n truncated,\n contentChars,\n shownChars,\n}: {\n truncated: boolean;\n contentChars: number;\n shownChars: number;\n}): string[] {\n const hints: string[] = [];\n\n if (shownChars < contentChars) {\n hints.push(\n `Showing the first ${shownChars.toLocaleString(\"en-US\")} of ${contentChars.toLocaleString(\"en-US\")} characters. ` +\n \"Re-run the same command with `--full` for the whole page — the read is cached for 24h, so it costs no extra time and no extra credit.\",\n );\n }\n\n if (truncated) {\n hints.push(\n \"This page is longer than one read returns, so the end of it is missing. \" +\n \"Don't present this as the complete page; if the part you need is further down, fetch the deeper URL directly.\",\n );\n }\n\n return hints;\n}\n\nexport function webDepthHints({\n answer,\n sourceCount,\n depth,\n}: {\n answer: string;\n sourceCount: number;\n depth: Depth;\n}): string[] {\n const thin = answer.length < THIN_ANSWER_CHARS || sourceCount <= THIN_SOURCE_COUNT;\n const escalation = ESCALATION[depth];\n if (!thin || !escalation) {\n return [];\n }\n return [`Thin answer (${answer.length} chars, ${sourceCount} source(s)). ${escalation}`];\n}\n\n/**\n * The volume DataForSEO returns is Google's own Keyword Planner figure resold,\n * so putting the two side by side validates nothing — a run did exactly that,\n * found all seven rows agreeing to the digit, and reported the agreement as\n * corroboration. This fires on every call rather than on a suspicious one,\n * because by the time the numbers are in a table the provenance is already gone.\n */\nexport function keywordMetricsHints({\n rows,\n asked,\n clickstream,\n queryContext,\n}: {\n rows: Array<{ keyword: string; search_volume: number | null }>;\n asked: string[];\n clickstream: boolean;\n queryContext: QueryContext;\n}): string[] {\n if (rows.length === 0) {\n return noSerpRowsHints(0, queryContext);\n }\n\n const provenance =\n \"DataForSEO resells Google's Keyword Planner volume — planner_search_volume here is the SAME number \" +\n \"`baker ads google keywords metrics` returns, not an independent reading of it. Quoting the two as agreeing \" +\n \"sources is not corroboration.\" +\n (clickstream\n ? \" clickstream_search_volume IS independent (DataForSEO's own panels); when the two disagree, say which one you are quoting.\"\n : \" For a genuinely independent estimate of demand, re-run with --clickstream (costs 2x), or use first-party data: \" +\n \"`baker gsc query` for what already reaches the site, or the account's own search terms.\");\n\n const hints = [provenance];\n\n const empty = rows.filter((row) => row.search_volume === null).map((row) => row.keyword);\n if (empty.length > 0) {\n hints.push(\n `${empty.length} of ${asked.length} keywords came back with no data in ${queryContext.location} / ${queryContext.language}: ` +\n `${empty.join(\", \")}. That is missing coverage, NOT zero demand — do not report them as unsearched, and do not ` +\n \"re-query them reworded. `baker research autocomplete` on the head term is the way to find the phrasing that market uses.\",\n );\n }\n\n return hints;\n}\n\n/**\n * The archive keeps a post's words the moment it is written and its points\n * only once it has settled, so a number on something young is not the number\n * Reddit shows. Said once, when it applies, so a count is never quoted as live.\n */\nconst ARCHIVE_NOTE =\n \"Read from the Reddit archive: the words are as posted, but points and comment counts on anything under ~36h old are as first captured — don't quote those numbers as current.\";\n\n/**\n * An empty Reddit search is almost always a phrasing miss, not a silent\n * audience: Reddit matches words, and people write in their own. A run that\n * came back empty on a posts search also never looked at the replies, which is\n * where most of the verbatim voice is.\n */\nexport function redditSearchHints({\n resultCount,\n kind,\n source,\n}: {\n resultCount: number;\n kind: \"posts\" | \"comments\";\n source: ResearchRedditSource;\n}): string[] {\n const hints: string[] = [];\n if (resultCount === 0) {\n hints.push(\n \"Nothing matched. Reddit search matches words, not meaning: try the audience's own phrasing (one distinctive word, \" +\n \"or a seed from `baker research autocomplete`), a longer --since window, or other subreddits — \" +\n '`baker research reddit subreddits \"<topic>\"` finds where the audience actually talks' +\n (kind === \"posts\" ? \", and try --kind comments — most of the voice is in the replies.\" : \".\"),\n );\n } else if (kind === \"posts\") {\n hints.push(\n \"Titles rarely carry the voice. Read the promising threads with `baker research reddit thread <permalink>` \" +\n \"for the replies, or search the replies directly with --kind comments.\",\n );\n }\n if (source === \"archive\" && resultCount > 0) hints.push(ARCHIVE_NOTE);\n return hints;\n}\n\n/** A thread whose replies no source would serve is still the post — but it must not read as a thread nobody answered. */\nexport function redditThreadHints({\n commentsShown,\n commentsAsked,\n commentCount,\n source,\n}: {\n commentsShown: number;\n commentsAsked: number;\n commentCount: number | null;\n source: ResearchRedditSource;\n}): string[] {\n const hints: string[] = [];\n if (commentsAsked > 0 && commentsShown === 0 && (commentCount ?? 0) > 0) {\n hints.push(\n `This thread has ${commentCount} comments but none could be read just now. Quote the post only, and don't describe the replies.`,\n );\n }\n if (source === \"archive\") hints.push(ARCHIVE_NOTE);\n return hints;\n}\n\nconst REDDIT_HOST = /(^|\\.)reddit\\.com$|^redd\\.it$/i;\n\n/**\n * A subreddit's member count is its size, not its pulse. The run that prompted\n * this command mined r/CouriersUK — a real subreddit, with one post in its whole\n * history — and found nothing. One dated search tells a living subreddit from a\n * dead one before it is relied on.\n */\nexport function redditSubredditsHints({ resultCount }: { resultCount: number }): string[] {\n if (resultCount === 0) {\n return [\n 'No subreddits matched. Try the audience\\'s role or the platform they work on (\"amazon flex\", \"deliveroo\", \"nurses\"), one word at a time, or a web search for `site:reddit.com <topic>`.',\n ];\n }\n return [\n 'Members say how big a subreddit is, not how active it is. Before mining one, run `baker research reddit search \"<word>\" --subreddit <name> --since <a recent date>`: nothing back means it is quiet, so pick another. `restricted` can still be read; `private` cannot.',\n ];\n}\n\n/** A Reddit link that does not lead to the words attributed to it. Shared by `reddit thread` and `fetch`. */\nexport const REDDIT_LINK_REJECTED: ResearchFix = {\n action: \"reject\",\n explanation:\n \"Do not quote anything attributed to this link — it does not lead to those words. Find the real thread with `baker research reddit search`, and if you already wrote a quote from it, remove it.\",\n};\n\n/**\n * `research fetch` hands a Reddit URL to the Reddit reader, but its generic\n * remediation was written for ordinary pages: FORBIDDEN reads \"this will not\n * open, carry on without it\" and NOT_FOUND \"carry on\". For Reddit both are the\n * wrong advice. A page the reader will not turn into a thread is one `reddit`\n * command away, and a link that leads nowhere real must not be quoted at all.\n */\nexport function redditPageFix(url: string, code: string): ResearchFix | null {\n let host: string;\n try {\n host = new URL(url).hostname;\n } catch {\n return null;\n }\n if (!REDDIT_HOST.test(host)) return null;\n if (code === \"NOT_FOUND\") return REDDIT_LINK_REJECTED;\n if (code !== \"FORBIDDEN\") return null;\n return {\n action: \"retry_with_changes\",\n explanation:\n 'Read Reddit with its own commands: `baker research reddit search \"<words>\" --subreddit <name>` to find what people said, `baker research reddit thread <url>` for one thread.',\n };\n}\n\n/**\n * `google-ads` replaces a browser trip through Google's Ads Transparency\n * Center, so its hints keep the agent out of one: no ads is an answer, and an\n * ad whose copy Google does not give is shown by its link, never opened.\n */\nexport function googleAdsHints({\n target,\n adCount,\n located,\n textWithoutCopy,\n copyAsked,\n copyUnread,\n visual,\n}: {\n target: string;\n adCount: number;\n located: boolean;\n textWithoutCopy: number;\n copyAsked: boolean;\n copyUnread: number;\n visual: number;\n}): string[] {\n if (adCount === 0) {\n return [\n `No Google ads point to ${target}${located ? \" in that region\" : \"\"} — that is the answer, not a failed call: ` +\n \"this competitor is not advertising on Google there, or its ads point to another domain. \" +\n (located ? \"Re-run once without --location to see every region; then move on. \" : \"Move on. \") +\n `Its paid search terms, if any: \\`baker research keywords-for-site ${target} --type paid\\`.`,\n ];\n }\n const hints: string[] = [];\n if (!copyAsked && textWithoutCopy > 0) {\n hints.push(\n `${textWithoutCopy} text ads came back without their words. Re-run with --copy to read the headline and description of up to ${RESEARCH_GOOGLE_ADS_MAX_COPY} (cached, so only the reading is new).`,\n );\n }\n const pastCap = copyAsked ? textWithoutCopy - copyUnread : 0;\n if (pastCap > 0) {\n hints.push(\n `${pastCap} text ads past the first ${RESEARCH_GOOGLE_ADS_MAX_COPY} were not read — one request reads at most ${RESEARCH_GOOGLE_ADS_MAX_COPY}. ` +\n \"Narrow with --since, --location or --platform google_search and re-run for their words.\",\n );\n }\n if (visual > 0 || copyUnread > 0) {\n const without = [\n visual > 0 ? `${visual} image or video ads (Google gives no text for those)` : \"\",\n copyUnread > 0 ? `${copyUnread} text ads whose image could not be read` : \"\",\n ].filter(Boolean);\n hints.push(\n `No copy for ${without.join(\" and \")}: show those by their \\`transparency_url\\`. ` +\n \"Do not open the Transparency Center in agent-browser to read them — it is the browser load this command exists to avoid.\",\n );\n }\n return hints;\n}\n\n/**\n * A person's profile is read to write one account's ads and pages, and that is\n * all it is for. Said on every read, because the next natural step — saving\n * them to Knowledge, or reading them again next week — is the one we don't take.\n */\nexport const LINKEDIN_PERSON_USE =\n \"For ad and page messaging only; nothing is stored — quote their stated priorities into the creative brief \" +\n \"for this account, and don't save the person to Knowledge or read them again to keep track of them.\";\n\n/**\n * The people a search found are public profiles a decision model checked, not\n * contacts: said on every read, with the one next step that deepens a lead.\n */\nexport function peopleHints({\n found,\n dropped,\n verified,\n}: {\n found: number;\n dropped: number;\n verified: boolean;\n}): string[] {\n if (found === 0) {\n return [\n `Nobody in public LinkedIn results holds this role here${dropped > 0 ? ` (${dropped} profiles were elsewhere now or in another role)` : \"\"}. ` +\n \"Try the name people write on LinkedIn with --name, a broader --seniority, or the client's CRM: `baker hubspot companies contacts <domain>`.\",\n ];\n }\n const hints = [\n verified\n ? \"These are public search results a decision model checked — likely holders of the role, to confirm before anyone reaches out. Brief sales with them; never contact anyone or save them to Knowledge.\"\n : \"The check could not run, so these profiles are unchecked: Google matched the words, not the person. Read each headline before naming anyone.\",\n \"To write to one of them in their own words, read their profile once: `baker research linkedin-person <profile_url>`.\",\n ];\n return hints;\n}\n\nexport function linkedinPersonHints({ isPrivate, postCount }: { isPrivate: boolean; postCount: number }): string[] {\n if (isPrivate) {\n return [\n \"LinkedIn doesn't show this profile publicly, and reading it again won't change that. \" +\n \"Find their own words elsewhere — a keynote, podcast or earnings call through \" +\n \"`baker research transcript <url>`, or an interview through `baker research fetch <url>` — \" +\n \"or write the brief from the account's company-level priorities.\",\n ];\n }\n if (postCount === 0) {\n return [\n LINKEDIN_PERSON_USE,\n \"They have no recent posts, so their `about` is the only first-person line here. \" +\n \"Their priorities are more often said aloud: a keynote, podcast or earnings call through `baker research transcript <url>`.\",\n ];\n }\n return [LINKEDIN_PERSON_USE];\n}\n\n/**\n * A keynote runs to tens of thousands of words, which is why the default is an\n * excerpt; the transcript is cached for a week, so asking again for the rest\n * costs nothing.\n */\nexport function transcriptHints({ excerpted, truncated }: { excerpted: boolean; truncated: boolean }): string[] {\n const hints: string[] = [];\n if (excerpted) {\n hints.push(\n \"This is the opening excerpt. Re-run with `--out <file>` to write the whole text to a file and read the parts you need, \" +\n \"or `--full` to have it all here — the transcript is cached for 7 days, so either costs nothing more.\",\n );\n }\n if (truncated) {\n hints.push(\n \"The recording is longer than one transcript carries, so the end of the recording is missing. \" +\n \"Don't quote this as the whole talk.\",\n );\n }\n return hints;\n}\n\n/** The facts whose absence marks a profile as possibly another company's. */\nexport interface CompanyProfileFacts {\n linkedinUrl: string | null;\n hqCountry: string | null;\n employees: string | null;\n}\n\n/**\n * A profile missing two of its anchor facts, or sized 1-10, is often a namesake\n * on the domain asked for while the company itself runs on another one.\n */\nfunction thinProfileHint(domain: string, profile: CompanyProfileFacts): string | null {\n const missing = [\n profile.linkedinUrl ? null : \"no LinkedIn page\",\n profile.hqCountry ? null : \"no HQ country\",\n profile.employees ? null : \"no employee band\",\n ].filter((gap) => gap !== null);\n const tiny = profile.employees === \"1-10\";\n if (missing.length < 2 && !tiny) return null;\n const why = [...missing, ...(tiny ? [\"1-10 employees\"] : [])].join(\", \");\n return (\n `This profile is thin (${why}). Check ${domain} is the company's main website — companies often run on another ` +\n \"domain (e.g. factorial.es vs factorialhr.com) — before using these facts for tiering.\"\n );\n}\n\n/**\n * Hiring is a signal on top of the profile, so a lookup without it still\n * answers — and says which half is missing, so the agent neither loops on it\n * nor reads \"no openings\" into a gap. A hiring read left out on purpose\n * (`--no-hiring`) says nothing.\n */\nexport function companyHints({\n domain,\n profile,\n hiring,\n}: {\n domain: string;\n profile: CompanyProfileFacts | null;\n hiring: ResearchCompanyHiring;\n}): string[] {\n const hints: string[] = [];\n if (!profile) {\n hints.push(\n \"There's no company profile for this domain, only its hiring. Check it is the company's main website; \" +\n \"otherwise take size, industry and location from its LinkedIn page or its own site.\",\n );\n } else {\n const thin = thinProfileHint(domain, profile);\n if (thin) hints.push(thin);\n }\n if (hiring.status === \"unavailable\" && hiring.reason === \"not_configured\") {\n hints.push(\n \"Hiring signals aren't switched on for this workspace yet, so these are the firmographics alone. \" +\n \"Score the account on them and leave hiring out of the reason.\",\n );\n }\n if (hiring.status === \"unavailable\" && hiring.reason === \"failed\") {\n hints.push(\n \"Hiring signals couldn't be read this time; don't retry in a loop. Use the firmographics and say hiring is unknown for this account.\",\n );\n }\n if (hiring.status === \"not_tracked\") {\n hints.push(\n \"No hiring data is kept for this company — that means unknown, not that it isn't hiring. Don't score it down for it.\",\n );\n }\n return hints;\n}\n\nfunction industryList(industries: readonly ResearchCompanyIndustry[]): string {\n return industries.map(({ slug, companies }) => `${slug} (${companies.toLocaleString(\"en-US\")})`).join(\", \");\n}\n\n/**\n * Neighbouring industries the search left out, so a thin market is widened on\n * purpose rather than guessed at. Each count is the companies it would add.\n */\nfunction relatedIndustriesHint(related: readonly ResearchCompanyIndustry[]): string | null {\n if (related.length === 0) return null;\n return (\n `Related industries not included (companies each adds with your other filters): ${industryList(related)}` +\n \" — add them with --industry a,b to widen.\"\n );\n}\n\nexport function companySearchHints({\n total,\n returned,\n page,\n lastPage,\n related,\n}: {\n total: number;\n returned: number;\n page: number;\n lastPage: number;\n related: readonly ResearchCompanyIndustry[];\n}): string[] {\n const hints: string[] = [];\n if (total === 0) {\n hints.push(\n \"No company matches every filter. Widen one at a time — a neighbouring size band, a related industry, one more country.\",\n );\n } else if (page < lastPage && returned > 0) {\n hints.push(\n `${total} companies match and ${returned} came back (each one returned is billed). ` +\n `Use \\`total\\` to size the market; ask for \\`--page ${page + 1}\\` only if you need the next rows for the list.`,\n );\n }\n const widen = relatedIndustriesHint(related);\n if (widen) hints.push(widen);\n return hints;\n}\n\n/** An industry that is no slug refuses the search before anything is billed; the fix offers the real ones. */\nexport function unknownIndustriesFix(industries: readonly { input: string; closest: ResearchCompanyIndustry[] }[]): {\n action: \"retry_with_changes\";\n explanation: string;\n} {\n const misses = industries.map(({ input, closest }) =>\n closest.length > 0\n ? `\"${input}\" is not an industry. Closest (companies each matches with your other filters): ${industryList(closest)}.`\n : `\"${input}\" is not an industry, and none is named like it — try a broader word (software, logistics, retail).`,\n );\n return {\n action: \"retry_with_changes\",\n explanation: `${misses.join(\" \")} Pass one or several of these slugs with --industry a,b — several widen the search, any of them matching. Nothing was charged.`,\n };\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,47 @@
1
+ // ../api/src/accounts/companyName.ts
2
+ var NOISE_WORDS = /* @__PURE__ */ new Set([
3
+ "inc",
4
+ "incorporated",
5
+ "llc",
6
+ "ltd",
7
+ "limited",
8
+ "plc",
9
+ "corp",
10
+ "corporation",
11
+ "co",
12
+ "company",
13
+ "gmbh",
14
+ "ag",
15
+ "kg",
16
+ "bv",
17
+ "nv",
18
+ "sa",
19
+ "sau",
20
+ "sl",
21
+ "slu",
22
+ "sas",
23
+ "sarl",
24
+ "srl",
25
+ "spa",
26
+ "oy",
27
+ "ab",
28
+ "as",
29
+ "aps",
30
+ "pty",
31
+ "lda",
32
+ "ltda",
33
+ "kk",
34
+ "group",
35
+ "grupo",
36
+ "holding",
37
+ "holdings",
38
+ "the"
39
+ ]);
40
+ function companyNameKey(name) {
41
+ 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(" ");
42
+ }
43
+
44
+ export {
45
+ companyNameKey
46
+ };
47
+ //# sourceMappingURL=chunk-AYKV2B6X.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../api/src/accounts/companyName.ts"],"sourcesContent":["/**\n * One company, however its name is spelled.\n *\n * Visitor companies arrive as a network's registered name — `Banco Santander\n * S.A.`, `ACME-CORP` — and nothing else: Cloudflare gives no website, so they\n * cannot join the Account insights rows or a target list on the registrable\n * domain everything else here joins on. This is the fallback key: case,\n * accents, punctuation and legal-entity suffixes removed, so `Telefónica, S.A.`\n * and `TELEFONICA` meet. Equality on the key, never a fuzzy score — a wrong\n * match puts the wrong company in a sales brief.\n */\n\n/** Legal-entity and filler words that say nothing about which company it is. */\nconst NOISE_WORDS = new Set([\n \"inc\",\n \"incorporated\",\n \"llc\",\n \"ltd\",\n \"limited\",\n \"plc\",\n \"corp\",\n \"corporation\",\n \"co\",\n \"company\",\n \"gmbh\",\n \"ag\",\n \"kg\",\n \"bv\",\n \"nv\",\n \"sa\",\n \"sau\",\n \"sl\",\n \"slu\",\n \"sas\",\n \"sarl\",\n \"srl\",\n \"spa\",\n \"oy\",\n \"ab\",\n \"as\",\n \"aps\",\n \"pty\",\n \"lda\",\n \"ltda\",\n \"kk\",\n \"group\",\n \"grupo\",\n \"holding\",\n \"holdings\",\n \"the\",\n]);\n\n/** The comparable form of a company name; empty when nothing distinctive is left. */\nexport function companyNameKey(name: string): string {\n return name\n .normalize(\"NFD\")\n .replace(/\\p{Diacritic}/gu, \"\")\n .toLowerCase()\n .replace(/\\./g, \"\")\n .split(/[^\\p{L}\\p{N}]+/u)\n .filter((word) => word !== \"\" && !NOISE_WORDS.has(word))\n .join(\" \");\n}\n"],"mappings":";AAaA,IAAM,cAAc,oBAAI,IAAI;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,SAAS,eAAe,MAAsB;AACnD,SAAO,KACJ,UAAU,KAAK,EACf,QAAQ,WAAC,kBAAc,IAAE,GAAE,EAAE,EAC7B,YAAY,EACZ,QAAQ,OAAO,EAAE,EACjB,MAAM,iBAAiB,EACvB,OAAO,CAAC,SAAS,SAAS,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,EACtD,KAAK,GAAG;AACb;","names":[]}