@koda-sl/baker-cli 0.513.0 → 0.515.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1231) hide show
  1. package/README.md +3 -3
  2. package/dist/account-BA3IO3AN.js +139 -0
  3. package/dist/account-LVJFHDA3.js +82 -0
  4. package/dist/account-LVJFHDA3.js.map +1 -0
  5. package/dist/account-PTJ6OK6Z.js +82 -0
  6. package/dist/account-PTJ6OK6Z.js.map +1 -0
  7. package/dist/account-assets-T3VVNBUG.js +290 -0
  8. package/dist/account-level-MPFWRPEK.js +611 -0
  9. package/dist/account-level-MPFWRPEK.js.map +1 -0
  10. package/dist/account-reads-5CXFLJ5Q.js +219 -0
  11. package/dist/account-users-B7DCJEFD.js +64 -0
  12. package/dist/account-users-B7DCJEFD.js.map +1 -0
  13. package/dist/account-writes-W5EOTS7P.js +68 -0
  14. package/dist/account-writes-W5EOTS7P.js.map +1 -0
  15. package/dist/accounts-4R3MBNJG.js +76 -0
  16. package/dist/accounts-5WF7VE7J.js +115 -0
  17. package/dist/accounts-IQTEH4BX.js +701 -0
  18. package/dist/accounts-IQTEH4BX.js.map +1 -0
  19. package/dist/accounts-SV7JZUCC.js +80 -0
  20. package/dist/accounts-SV7JZUCC.js.map +1 -0
  21. package/dist/accounts-VPWCLF6X.js +114 -0
  22. package/dist/actions-D7OWCP36.js +55 -0
  23. package/dist/active-entities-WDPW7652.js +103 -0
  24. package/dist/activecampaign-LBS4M4C4.js +938 -0
  25. package/dist/activecampaign-LBS4M4C4.js.map +1 -0
  26. package/dist/activities-WGPHYSFU.js +75 -0
  27. package/dist/ad-group-writes-JL56DPC4.js +172 -0
  28. package/dist/ad-group-writes-JL56DPC4.js.map +1 -0
  29. package/dist/ad-groups-62JPLIK3.js +70 -0
  30. package/dist/ad-groups-62JPLIK3.js.map +1 -0
  31. package/dist/ad-writes-WSKLRGB7.js +176 -0
  32. package/dist/ad-writes-WSKLRGB7.js.map +1 -0
  33. package/dist/add-HFQB2NTU.js +107 -0
  34. package/dist/add-HFQB2NTU.js.map +1 -0
  35. package/dist/add-IUYE5H6A.js +305 -0
  36. package/dist/add-IUYE5H6A.js.map +1 -0
  37. package/dist/ads-F7AUJWK7.js +115 -0
  38. package/dist/ads-JFI56MZL.js +79 -0
  39. package/dist/ads-JFI56MZL.js.map +1 -0
  40. package/dist/ads-OV3SMLKA.js +48 -0
  41. package/dist/adsets-XH2ULWPM.js +182 -0
  42. package/dist/advertisers-XXM6POO5.js +123 -0
  43. package/dist/advertisers-XXM6POO5.js.map +1 -0
  44. package/dist/analytics-MJT6DS3L.js +447 -0
  45. package/dist/analytics-MJT6DS3L.js.map +1 -0
  46. package/dist/analytics-W7EUOI2Q.js +2437 -0
  47. package/dist/analytics-W7EUOI2Q.js.map +1 -0
  48. package/dist/asset-writes-4X3AJQ4Q.js +50 -0
  49. package/dist/assign-2GQVQKKO.js +80 -0
  50. package/dist/assign-2GQVQKKO.js.map +1 -0
  51. package/dist/audience-size-VHXBNNIB.js +76 -0
  52. package/dist/audience-size-VHXBNNIB.js.map +1 -0
  53. package/dist/audience-writes-TXWPDJ2F.js +327 -0
  54. package/dist/audience-writes-TXWPDJ2F.js.map +1 -0
  55. package/dist/audiences-B2LFKWIS.js +280 -0
  56. package/dist/audiences-B2LFKWIS.js.map +1 -0
  57. package/dist/audiences-MBBXWEOI.js +86 -0
  58. package/dist/audiences-YUG5JLL4.js +85 -0
  59. package/dist/audit-VT2WSZWM.js +154 -0
  60. package/dist/audit-VT2WSZWM.js.map +1 -0
  61. package/dist/audit-WFXS5ELM.js +88 -0
  62. package/dist/autocomplete-ZYMHHV7E.js +114 -0
  63. package/dist/autocomplete-ZYMHHV7E.js.map +1 -0
  64. package/dist/avatars-WZ2JDMHH.js +38 -0
  65. package/dist/bid-pricing-5F3GBSAI.js +103 -0
  66. package/dist/bid-pricing-5F3GBSAI.js.map +1 -0
  67. package/dist/brand-IZTTBZII.js +22 -0
  68. package/dist/brief-OPQ7ICOY.js +543 -0
  69. package/dist/brief-OPQ7ICOY.js.map +1 -0
  70. package/dist/businesses-24JNY46Z.js +54 -0
  71. package/dist/campaign-groups-BDCDTMBF.js +99 -0
  72. package/dist/campaign-groups-BDCDTMBF.js.map +1 -0
  73. package/dist/campaign-writes-73H7G3JM.js +168 -0
  74. package/dist/campaign-writes-73H7G3JM.js.map +1 -0
  75. package/dist/campaign-writes-FNVOHONL.js +176 -0
  76. package/dist/campaign-writes-FNVOHONL.js.map +1 -0
  77. package/dist/campaigns-FUDZUVHN.js +78 -0
  78. package/dist/campaigns-FUDZUVHN.js.map +1 -0
  79. package/dist/campaigns-J65Q4WAZ.js +113 -0
  80. package/dist/campaigns-J65Q4WAZ.js.map +1 -0
  81. package/dist/campaigns-KXYGSH27.js +130 -0
  82. package/dist/campaigns-U5FQ2VWL.js +111 -0
  83. package/dist/canvas-IQ753Q2O.js +46 -0
  84. package/dist/capabilities-ZITW4RF7.js +147 -0
  85. package/dist/capabilities-ZITW4RF7.js.map +1 -0
  86. package/dist/cards-NSNAFTEB.js +85 -0
  87. package/dist/catalogs-OWQGGCIO.js +130 -0
  88. package/dist/catalogs-OWQGGCIO.js.map +1 -0
  89. package/dist/catalogs-VZYAATUR.js +781 -0
  90. package/dist/catalogs-VZYAATUR.js.map +1 -0
  91. package/dist/changes-RDWMNSTK.js +135 -0
  92. package/dist/chatgpt-27NEJVGF.js +47 -0
  93. package/dist/chats-AL2SYBJO.js +279 -0
  94. package/dist/chats-AL2SYBJO.js.map +1 -0
  95. package/dist/check-U2YLRD6H.js +107 -0
  96. package/dist/check-U2YLRD6H.js.map +1 -0
  97. package/dist/chunk-2F4DELSV.js +200 -0
  98. package/dist/chunk-2GYCWRF3.js +170 -0
  99. package/dist/chunk-2L7F7KR4.js +61 -0
  100. package/dist/chunk-44ZRCSR7.js +228 -0
  101. package/dist/chunk-46YLDIQG.js +4254 -0
  102. package/dist/chunk-4EDWXZ3I.js +363 -0
  103. package/dist/chunk-4FFBGR5L.js +66 -0
  104. package/dist/chunk-4UZUUSVL.js +592 -0
  105. package/dist/chunk-4XHCEYHI.js +831 -0
  106. package/dist/chunk-4Z6PVR3M.js +479 -0
  107. package/dist/chunk-5Y5FZV2W.js +122 -0
  108. package/dist/chunk-6DPSWLGY.js +324 -0
  109. package/dist/chunk-6DPSWLGY.js.map +1 -0
  110. package/dist/chunk-6HJXLGDV.js +392 -0
  111. package/dist/chunk-6S5CWGDA.js +429 -0
  112. package/dist/chunk-6VYROVWO.js +494 -0
  113. package/dist/chunk-AQRXXC6E.js +319 -0
  114. package/dist/chunk-ARBXT73X.js +387 -0
  115. package/dist/chunk-BEZHQIEI.js +97 -0
  116. package/dist/chunk-BFURWHVR.js +547 -0
  117. package/dist/chunk-EZSPVWLQ.js +169 -0
  118. package/dist/chunk-FCHZ5TNG.js +26 -0
  119. package/dist/chunk-FLWDFPXE.js +23 -0
  120. package/dist/chunk-FQMEX3GX.js +846 -0
  121. package/dist/chunk-G4FG5EQO.js +110 -0
  122. package/dist/chunk-G4FG5EQO.js.map +1 -0
  123. package/dist/chunk-GE3VT3CA.js +51 -0
  124. package/dist/chunk-GGK2CX6B.js +24026 -0
  125. package/dist/chunk-GGK2CX6B.js.map +1 -0
  126. package/dist/chunk-GHZ6HP2X.js +358 -0
  127. package/dist/chunk-GHZ6HP2X.js.map +1 -0
  128. package/dist/chunk-HCQJYI6X.js +74 -0
  129. package/dist/chunk-HGBJQGO5.js +142 -0
  130. package/dist/chunk-HHVWV5BJ.js +191 -0
  131. package/dist/chunk-I3WGTSDY.js +76 -0
  132. package/dist/chunk-I7AYMJZA.js +783 -0
  133. package/dist/chunk-IDSDJHRS.js +106 -0
  134. package/dist/chunk-ILPHIYAL.js +207 -0
  135. package/dist/chunk-IWKD56AY.js +156 -0
  136. package/dist/chunk-JLAQWMVF.js +3868 -0
  137. package/dist/chunk-JOE42ZW6.js +2984 -0
  138. package/dist/chunk-JOE42ZW6.js.map +1 -0
  139. package/dist/chunk-K6NULQN7.js +57 -0
  140. package/dist/chunk-L2BRAC2J.js +19 -0
  141. package/dist/chunk-LGMI4LSY.js +455 -0
  142. package/dist/chunk-LNODLR7W.js +149 -0
  143. package/dist/chunk-LQ2BRGMX.js +274 -0
  144. package/dist/chunk-M7QZSEHF.js +175 -0
  145. package/dist/chunk-NB2FU6EZ.js +179 -0
  146. package/dist/chunk-NFII3MTG.js +207 -0
  147. package/dist/chunk-NKQWDEB7.js +115 -0
  148. package/dist/chunk-NKQWDEB7.js.map +1 -0
  149. package/dist/chunk-OG47L5GG.js +275 -0
  150. package/dist/chunk-PC3FJEZH.js +7211 -0
  151. package/dist/chunk-PC3FJEZH.js.map +1 -0
  152. package/dist/chunk-Q3GSVLE5.js +4274 -0
  153. package/dist/chunk-Q3GSVLE5.js.map +1 -0
  154. package/dist/chunk-QIOFOD4K.js +344 -0
  155. package/dist/chunk-R2SYF5FC.js +249 -0
  156. package/dist/chunk-RTH2I55B.js +942 -0
  157. package/dist/chunk-S6VFDNSQ.js +63 -0
  158. package/dist/chunk-SG2TDQEE.js +150 -0
  159. package/dist/chunk-SOPVIIUW.js +68 -0
  160. package/dist/chunk-SOPVIIUW.js.map +1 -0
  161. package/dist/chunk-T3P6O2VU.js +89 -0
  162. package/dist/chunk-TU5LQUJM.js +74 -0
  163. package/dist/chunk-TU7DWSTW.js +69 -0
  164. package/dist/chunk-TXDE2QJ3.js +604 -0
  165. package/dist/chunk-TYXZ2SRW.js +287 -0
  166. package/dist/chunk-UDIEKCIR.js +203 -0
  167. package/dist/chunk-UQHHGT67.js +676 -0
  168. package/dist/chunk-USCADMM3.js +163 -0
  169. package/dist/chunk-UUGISMNE.js +910 -0
  170. package/dist/chunk-VDPOCAQ2.js +197 -0
  171. package/dist/chunk-VEJ3QX6M.js +103 -0
  172. package/dist/chunk-VFJB7OG6.js +91 -0
  173. package/dist/chunk-VPABGAN4.js +188 -0
  174. package/dist/chunk-VRIPVLE7.js +8954 -0
  175. package/dist/chunk-WLESMH4J.js +45 -0
  176. package/dist/chunk-XOQNM7I4.js +396 -0
  177. package/dist/chunk-XOQNM7I4.js.map +1 -0
  178. package/dist/chunk-YILZR3XI.js +224 -0
  179. package/dist/chunk-YJFLXOH4.js +191 -0
  180. package/dist/chunk-YWHZYR6S.js +297 -0
  181. package/dist/chunk-Z35KUMBW.js +219 -0
  182. package/dist/chunk-Z7I2ZFXS.js +1646 -0
  183. package/dist/claim-GOLUTAJ3.js +200 -0
  184. package/dist/claim-GOLUTAJ3.js.map +1 -0
  185. package/dist/cli.js +34 -34
  186. package/dist/companies-CSN7DPYW.js +198 -0
  187. package/dist/companies-CSN7DPYW.js.map +1 -0
  188. package/dist/company-MOSPLRZJ.js +308 -0
  189. package/dist/company-MOSPLRZJ.js.map +1 -0
  190. package/dist/complete-777BDV45.js +84 -0
  191. package/dist/complete-777BDV45.js.map +1 -0
  192. package/dist/config-55WGRLY3.js +88 -0
  193. package/dist/connect-3YY7MF3I.js +45 -0
  194. package/dist/conversation-6K2TNYBQ.js +96 -0
  195. package/dist/conversation-6K2TNYBQ.js.map +1 -0
  196. package/dist/conversion-report-WYYB3BK2.js +127 -0
  197. package/dist/conversion-report-WYYB3BK2.js.map +1 -0
  198. package/dist/conversion-upload-command-VM2P57K6.js +439 -0
  199. package/dist/conversion-writes-DHOPMA7X.js +122 -0
  200. package/dist/conversion-writes-DHOPMA7X.js.map +1 -0
  201. package/dist/conversions-KWY7BNDN.js +78 -0
  202. package/dist/conversions-KWY7BNDN.js.map +1 -0
  203. package/dist/conversions-MLRK35ZV.js +140 -0
  204. package/dist/conversions-MLRK35ZV.js.map +1 -0
  205. package/dist/copy-writes-E3V5TUVU.js +170 -0
  206. package/dist/copy-writes-E3V5TUVU.js.map +1 -0
  207. package/dist/create-3WOZO2XT.js +239 -0
  208. package/dist/create-3WOZO2XT.js.map +1 -0
  209. package/dist/create-7IFYLX7P.js +210 -0
  210. package/dist/create-7IFYLX7P.js.map +1 -0
  211. package/dist/create-FOHIQC3E.js +62 -0
  212. package/dist/create-FOHIQC3E.js.map +1 -0
  213. package/dist/create-UWQSQTK6.js +135 -0
  214. package/dist/create-UWQSQTK6.js.map +1 -0
  215. package/dist/creatives-2DR3QHJW.js +58 -0
  216. package/dist/creatives-DUR5Z5AN.js +89 -0
  217. package/dist/creatives-KN3MT533.js +223 -0
  218. package/dist/creatives-KN3MT533.js.map +1 -0
  219. package/dist/credentials-IP4L37XP.js +290 -0
  220. package/dist/credentials-IP4L37XP.js.map +1 -0
  221. package/dist/critique-LGDNMLBL.js +232 -0
  222. package/dist/critique-LGDNMLBL.js.map +1 -0
  223. package/dist/critique-LJMFAURK.js +1451 -0
  224. package/dist/critique-LJMFAURK.js.map +1 -0
  225. package/dist/crm-BNYW7PF7.js +323 -0
  226. package/dist/crm-BNYW7PF7.js.map +1 -0
  227. package/dist/crm-DMADHALO.js +227 -0
  228. package/dist/crm-DMADHALO.js.map +1 -0
  229. package/dist/currency-X4KEACEP.js +88 -0
  230. package/dist/custom-conversions-OIA5Y2GX.js +128 -0
  231. package/dist/customers-663K2OCP.js +59 -0
  232. package/dist/delete-5W3YVA4L.js +67 -0
  233. package/dist/delete-5W3YVA4L.js.map +1 -0
  234. package/dist/delete-6U7E6YUW.js +57 -0
  235. package/dist/delete-6U7E6YUW.js.map +1 -0
  236. package/dist/delete-G4NY6ZG6.js +69 -0
  237. package/dist/delete-G4NY6ZG6.js.map +1 -0
  238. package/dist/demographics-UZ7BCQ7K.js +141 -0
  239. package/dist/demographics-UZ7BCQ7K.js.map +1 -0
  240. package/dist/discard-RKCZNKMN.js +69 -0
  241. package/dist/discard-RKCZNKMN.js.map +1 -0
  242. package/dist/discover-2W42JB56.js +172 -0
  243. package/dist/domain-PLA2O4FW.js +101 -0
  244. package/dist/domain-PLA2O4FW.js.map +1 -0
  245. package/dist/download-4EFLVSA4.js +172 -0
  246. package/dist/download-4EFLVSA4.js.map +1 -0
  247. package/dist/draft-2ZX73IRO.js +238 -0
  248. package/dist/draft-6XMZYSMR.js +283 -0
  249. package/dist/draft-6XMZYSMR.js.map +1 -0
  250. package/dist/draft-CKLIIWXZ.js +308 -0
  251. package/dist/draft-IUEULQDT.js +310 -0
  252. package/dist/draft-IUEULQDT.js.map +1 -0
  253. package/dist/draft-JMNAGW7C.js +220 -0
  254. package/dist/draft-JMNAGW7C.js.map +1 -0
  255. package/dist/draft-L5Q6KEER.js +100 -0
  256. package/dist/draft-MJRMZGMP.js +103 -0
  257. package/dist/draft-WPMVLRME.js +335 -0
  258. package/dist/draft-WPMVLRME.js.map +1 -0
  259. package/dist/experiment-3VRHCQN5.js +1397 -0
  260. package/dist/experiments-S4TSXCK6.js +236 -0
  261. package/dist/experiments-S4TSXCK6.js.map +1 -0
  262. package/dist/facets-D3JG7OSO.js +117 -0
  263. package/dist/facets-D3JG7OSO.js.map +1 -0
  264. package/dist/feedback-IRSRPXV6.js +111 -0
  265. package/dist/feedback-IRSRPXV6.js.map +1 -0
  266. package/dist/feedback-record-DT3R4NA3.js +265 -0
  267. package/dist/feedback-record-DT3R4NA3.js.map +1 -0
  268. package/dist/fetch-YLQP5VQL.js +179 -0
  269. package/dist/fetch-YLQP5VQL.js.map +1 -0
  270. package/dist/fit-BEFCY2B4.js +65 -0
  271. package/dist/flows-FDMF3F3P.js +250 -0
  272. package/dist/flows-FDMF3F3P.js.map +1 -0
  273. package/dist/fonts-C6XN5667.js +39 -0
  274. package/dist/forecast-4YHMKO54.js +121 -0
  275. package/dist/forecast-4YHMKO54.js.map +1 -0
  276. package/dist/forecast-LYN6ZGQC.js +169 -0
  277. package/dist/funding-TCEPQXRQ.js +85 -0
  278. package/dist/funnel-CQIT3F23.js +397 -0
  279. package/dist/funnel-CQIT3F23.js.map +1 -0
  280. package/dist/ga4-JE3HS36B.js +55 -0
  281. package/dist/get-KBSKPTAV.js +59 -0
  282. package/dist/get-KBSKPTAV.js.map +1 -0
  283. package/dist/get-OSVQVMP6.js +82 -0
  284. package/dist/get-OSVQVMP6.js.map +1 -0
  285. package/dist/google-24FDG4C4.js +3267 -0
  286. package/dist/google-ads-XCJVAXWF.js +198 -0
  287. package/dist/google-ads-XCJVAXWF.js.map +1 -0
  288. package/dist/gsc-RMVOYIM3.js +30 -0
  289. package/dist/history-4TN2A6BL.js +136 -0
  290. package/dist/history-4TN2A6BL.js.map +1 -0
  291. package/dist/history-5IWW2X33.js +102 -0
  292. package/dist/history-5IWW2X33.js.map +1 -0
  293. package/dist/history-GIXIG276.js +69 -0
  294. package/dist/history-GIXIG276.js.map +1 -0
  295. package/dist/hubspot-5WB7TQBG.js +782 -0
  296. package/dist/hubspot-5WB7TQBG.js.map +1 -0
  297. package/dist/ideas-M66FU45H.js +45 -0
  298. package/dist/images-MM5OPUKV.js +92 -0
  299. package/dist/ingest-GU3WEBN3.js +110 -0
  300. package/dist/ingest-GU3WEBN3.js.map +1 -0
  301. package/dist/ingest-KMLYCFF4.js +26 -0
  302. package/dist/insights-HATH3IC6.js +439 -0
  303. package/dist/insights-HATH3IC6.js.map +1 -0
  304. package/dist/insights-VKPIVJMK.js +132 -0
  305. package/dist/insights-VKPIVJMK.js.map +1 -0
  306. package/dist/inspect-4JO2J3D6.js +192 -0
  307. package/dist/inspect-4JO2J3D6.js.map +1 -0
  308. package/dist/instant-experiences-A2SIQNB5.js +260 -0
  309. package/dist/instant-experiences-A2SIQNB5.js.map +1 -0
  310. package/dist/intent-YCQCUCV3.js +95 -0
  311. package/dist/job-SM2OQ2LO.js +202 -0
  312. package/dist/job-create-ECZHPVKH.js +109 -0
  313. package/dist/job-status-QSYDKIIV.js +74 -0
  314. package/dist/keyword-gap-PUSF7EKY.js +130 -0
  315. package/dist/keyword-metrics-JXBM22ZD.js +200 -0
  316. package/dist/keyword-metrics-JXBM22ZD.js.map +1 -0
  317. package/dist/keywords-for-site-OAYA7KP7.js +131 -0
  318. package/dist/keywords-for-site-OAYA7KP7.js.map +1 -0
  319. package/dist/landing-OZU5RRFV.js +28 -0
  320. package/dist/languages-Q5SKO4AM.js +40 -0
  321. package/dist/leads-QAYS7AJO.js +540 -0
  322. package/dist/leads-QAYS7AJO.js.map +1 -0
  323. package/dist/leads-VOSFVNUK.js +115 -0
  324. package/dist/leads-VOSFVNUK.js.map +1 -0
  325. package/dist/learn-NBBJRMVZ.js +207 -0
  326. package/dist/learn-NBBJRMVZ.js.map +1 -0
  327. package/dist/line-item-writes-VBBB3TRS.js +211 -0
  328. package/dist/line-item-writes-VBBB3TRS.js.map +1 -0
  329. package/dist/line-items-2V5FY33R.js +107 -0
  330. package/dist/link-WZSNUQQ2.js +67 -0
  331. package/dist/link-WZSNUQQ2.js.map +1 -0
  332. package/dist/linkedin-CDFCOHKI.js +1316 -0
  333. package/dist/linkedin-CDFCOHKI.js.map +1 -0
  334. package/dist/linkedin-person-MVRI7LLC.js +139 -0
  335. package/dist/linkedin-person-MVRI7LLC.js.map +1 -0
  336. package/dist/list-6S54IAUX.js +67 -0
  337. package/dist/list-6S54IAUX.js.map +1 -0
  338. package/dist/list-QRJ4E3SC.js +154 -0
  339. package/dist/list-QRJ4E3SC.js.map +1 -0
  340. package/dist/list-RZUDFLJN.js +306 -0
  341. package/dist/list-RZUDFLJN.js.map +1 -0
  342. package/dist/locations-RFTE42OS.js +69 -0
  343. package/dist/locations-RFTE42OS.js.map +1 -0
  344. package/dist/locations-VQYREHYI.js +40 -0
  345. package/dist/log-53SAPZZ3.js +95 -0
  346. package/dist/log-53SAPZZ3.js.map +1 -0
  347. package/dist/lookup-MELV3RUL.js +23 -0
  348. package/dist/make-ZF3YIMKW.js +1370 -0
  349. package/dist/make-ZF3YIMKW.js.map +1 -0
  350. package/dist/map-J37QFJSV.js +436 -0
  351. package/dist/map-J37QFJSV.js.map +1 -0
  352. package/dist/mcp-B7WSZQFD.js +729 -0
  353. package/dist/mcp-B7WSZQFD.js.map +1 -0
  354. package/dist/media-BPI2VE6A.js +89 -0
  355. package/dist/media-EEWZZU3P.js +18 -0
  356. package/dist/media-sources-EQI3U4TC.js +35 -0
  357. package/dist/members-GYVMSCKL.js +47 -0
  358. package/dist/members-GYVMSCKL.js.map +1 -0
  359. package/dist/meta-SMJUQP37.js +122 -0
  360. package/dist/metrics-EMAP7ESR.js +152 -0
  361. package/dist/normalize-MFN3WCH5.js +144 -0
  362. package/dist/normalize-MFN3WCH5.js.map +1 -0
  363. package/dist/options-DLHDHO7H.js +125 -0
  364. package/dist/options-DLHDHO7H.js.map +1 -0
  365. package/dist/organization-C2VOA2SD.js +949 -0
  366. package/dist/organization-C2VOA2SD.js.map +1 -0
  367. package/dist/output-4QBQEM4C.js +24 -0
  368. package/dist/page-photos-HRKPDQBM.js +118 -0
  369. package/dist/page-photos-HRKPDQBM.js.map +1 -0
  370. package/dist/pages-DTQWQUKP.js +67 -0
  371. package/dist/performance-NIF3CESZ.js +27 -0
  372. package/dist/performance-T6TBVHVU.js +5541 -0
  373. package/dist/performance-T6TBVHVU.js.map +1 -0
  374. package/dist/pixels-2BKADWE6.js +109 -0
  375. package/dist/pixels-F6BZNTDD.js +62 -0
  376. package/dist/pixels-F6BZNTDD.js.map +1 -0
  377. package/dist/plan-A6VC3ZO7.js +208 -0
  378. package/dist/plan-A6VC3ZO7.js.map +1 -0
  379. package/dist/preview-GGIGXPJW.js +218 -0
  380. package/dist/preview-GGIGXPJW.js.map +1 -0
  381. package/dist/promoted-tweet-writes-WU2SKKZF.js +183 -0
  382. package/dist/promoted-tweet-writes-WU2SKKZF.js.map +1 -0
  383. package/dist/promoted-tweets-653Q5AC6.js +119 -0
  384. package/dist/properties-VWKO3AAK.js +101 -0
  385. package/dist/publish-IOTMJCCY.js +344 -0
  386. package/dist/publish-IOTMJCCY.js.map +1 -0
  387. package/dist/query-CXIOL7WI.js +62 -0
  388. package/dist/query-OOP63DJF.js +236 -0
  389. package/dist/query-RBZFAIDK.js +247 -0
  390. package/dist/questionnaire-7SHYRTMJ.js +94 -0
  391. package/dist/questionnaire-7SHYRTMJ.js.map +1 -0
  392. package/dist/read-GOULD7YL.js +141 -0
  393. package/dist/reddit-JIHMAKAQ.js +29 -0
  394. package/dist/refresh-OQZ263CS.js +97 -0
  395. package/dist/refresh-OQZ263CS.js.map +1 -0
  396. package/dist/release-4CHFURO3.js +63 -0
  397. package/dist/release-4CHFURO3.js.map +1 -0
  398. package/dist/relevant-pages-FS7GBVXK.js +99 -0
  399. package/dist/remove-IJQPHPDI.js +53 -0
  400. package/dist/remove-IJQPHPDI.js.map +1 -0
  401. package/dist/reopen-YTLPVKUR.js +66 -0
  402. package/dist/reopen-YTLPVKUR.js.map +1 -0
  403. package/dist/rerun-C7NB7B35.js +95 -0
  404. package/dist/rerun-C7NB7B35.js.map +1 -0
  405. package/dist/research-PNBACCCP.js +72 -0
  406. package/dist/research-TLHNPK3O.js +265 -0
  407. package/dist/research-TLHNPK3O.js.map +1 -0
  408. package/dist/reset-JVLW7HA2.js +57 -0
  409. package/dist/reset-JVLW7HA2.js.map +1 -0
  410. package/dist/reset-Y6FXLAQE.js +57 -0
  411. package/dist/reset-Y6FXLAQE.js.map +1 -0
  412. package/dist/resolve-RCFAYPWR.js +124 -0
  413. package/dist/resolve-RCFAYPWR.js.map +1 -0
  414. package/dist/retry-3V3IGDRR.js +65 -0
  415. package/dist/retry-3V3IGDRR.js.map +1 -0
  416. package/dist/retry-AEKQLQMP.js +63 -0
  417. package/dist/retry-AEKQLQMP.js.map +1 -0
  418. package/dist/revenue-3R6JLYCQ.js +91 -0
  419. package/dist/revenue-3R6JLYCQ.js.map +1 -0
  420. package/dist/rule-writes-K4P3XBJW.js +525 -0
  421. package/dist/rule-writes-K4P3XBJW.js.map +1 -0
  422. package/dist/rules-34BQAWU3.js +99 -0
  423. package/dist/rules-34BQAWU3.js.map +1 -0
  424. package/dist/rules-HY7S2YTD.js +217 -0
  425. package/dist/rules-add-CM5XUYNS.js +465 -0
  426. package/dist/rules-add-CM5XUYNS.js.map +1 -0
  427. package/dist/run-MD64RDHZ.js +69 -0
  428. package/dist/run-MD64RDHZ.js.map +1 -0
  429. package/dist/run-QCNRR3CA.js +70 -0
  430. package/dist/scaffold-ad-NADPY3CB.js +1516 -0
  431. package/dist/scaffold-ad-NADPY3CB.js.map +1 -0
  432. package/dist/scaffold-static-ad-5YEYYVYH.js +1015 -0
  433. package/dist/scaffold-static-ad-5YEYYVYH.js.map +1 -0
  434. package/dist/scaffold-video-W7DF2CBJ.js +888 -0
  435. package/dist/scaffold-video-W7DF2CBJ.js.map +1 -0
  436. package/dist/schedule-CTRRF6TS.js +64 -0
  437. package/dist/schedule-CTRRF6TS.js.map +1 -0
  438. package/dist/scheduled-agents-OXYAVSIE.js +55 -0
  439. package/dist/schema-BEUYOGSW.js +135 -0
  440. package/dist/schema-BEUYOGSW.js.map +1 -0
  441. package/dist/search-GFJKWPKN.js +177 -0
  442. package/dist/search-GFJKWPKN.js.map +1 -0
  443. package/dist/select-S72CCL57.js +106 -0
  444. package/dist/select-S72CCL57.js.map +1 -0
  445. package/dist/sends-WBYTALR7.js +349 -0
  446. package/dist/sends-WBYTALR7.js.map +1 -0
  447. package/dist/set-prompt-YYFDRXRI.js +198 -0
  448. package/dist/set-prompt-YYFDRXRI.js.map +1 -0
  449. package/dist/setup-links-D4JJLESN.js +144 -0
  450. package/dist/setup-links-D4JJLESN.js.map +1 -0
  451. package/dist/shared-CGEJI2RB.js +32 -0
  452. package/dist/shopify-DQWEYPDX.js +3958 -0
  453. package/dist/shopify-DQWEYPDX.js.map +1 -0
  454. package/dist/site-BBZAUZA3.js +180 -0
  455. package/dist/site-BBZAUZA3.js.map +1 -0
  456. package/dist/sitemaps-5SP7PVQ6.js +87 -0
  457. package/dist/sites-YZDPHBST.js +101 -0
  458. package/dist/sources-7FIBHL6A.js +457 -0
  459. package/dist/sources-7FIBHL6A.js.map +1 -0
  460. package/dist/sources-FLUGHSVP.js +30 -0
  461. package/dist/stale-HP54JS5X.js +76 -0
  462. package/dist/stale-HP54JS5X.js.map +1 -0
  463. package/dist/stats-EGGNFTKI.js +34 -0
  464. package/dist/status-CLSWQFCQ.js +65 -0
  465. package/dist/status-CLSWQFCQ.js.map +1 -0
  466. package/dist/studies-6VUUOMZD.js +250 -0
  467. package/dist/study-writes-IR7RSSTK.js +470 -0
  468. package/dist/study-writes-IR7RSSTK.js.map +1 -0
  469. package/dist/sync-4YTVVEVC.js +57 -0
  470. package/dist/sync-4YTVVEVC.js.map +1 -0
  471. package/dist/sync-SCM6JGJP.js +279 -0
  472. package/dist/sync-definition-OGQ5XTQE.js +69 -0
  473. package/dist/tag-manager-REKD4WGU.js +43 -0
  474. package/dist/tags-CZTRQNXV.js +26 -0
  475. package/dist/tags-FDQXWTCQ.js +23 -0
  476. package/dist/tags-FDQXWTCQ.js.map +1 -0
  477. package/dist/tags-R67DKRZ6.js +23 -0
  478. package/dist/tags-R67DKRZ6.js.map +1 -0
  479. package/dist/tags-SA2LU6AW.js +227 -0
  480. package/dist/tags-SA2LU6AW.js.map +1 -0
  481. package/dist/tags-ZOXX6VRE.js +23 -0
  482. package/dist/tags-ZOXX6VRE.js.map +1 -0
  483. package/dist/targeting-BQUD54MF.js +762 -0
  484. package/dist/targeting-BQUD54MF.js.map +1 -0
  485. package/dist/targeting-constants-MRQB4N5I.js +118 -0
  486. package/dist/targeting-criteria-HSAESZIR.js +113 -0
  487. package/dist/targets-UUVCEG3F.js +106 -0
  488. package/dist/targets-UUVCEG3F.js.map +1 -0
  489. package/dist/terms-D2KAFHKJ.js +102 -0
  490. package/dist/testimonials-G3OCNPBY.js +32 -0
  491. package/dist/themes-X56KIX3Z.js +95 -0
  492. package/dist/top-companies-2RLNCSVS.js +111 -0
  493. package/dist/top-companies-2RLNCSVS.js.map +1 -0
  494. package/dist/transcript-U46AEOEI.js +165 -0
  495. package/dist/transcript-U46AEOEI.js.map +1 -0
  496. package/dist/translate-AS7JVKYM.js +609 -0
  497. package/dist/translate-AS7JVKYM.js.map +1 -0
  498. package/dist/triggers-ECRBPYYF.js +144 -0
  499. package/dist/triggers-ECRBPYYF.js.map +1 -0
  500. package/dist/tweets-JN6ARKF6.js +123 -0
  501. package/dist/unlink-VDNCSRJV.js +70 -0
  502. package/dist/unlink-VDNCSRJV.js.map +1 -0
  503. package/dist/unstage-5C27F2LZ.js +96 -0
  504. package/dist/unstage-5C27F2LZ.js.map +1 -0
  505. package/dist/unstage-ATDXUYP2.js +88 -0
  506. package/dist/unstage-ATDXUYP2.js.map +1 -0
  507. package/dist/update-FJ6TBV3E.js +101 -0
  508. package/dist/update-FJ6TBV3E.js.map +1 -0
  509. package/dist/update-HDBJCSTI.js +66 -0
  510. package/dist/update-HDBJCSTI.js.map +1 -0
  511. package/dist/update-U43DJRGV.js +155 -0
  512. package/dist/update-U43DJRGV.js.map +1 -0
  513. package/dist/update-Z7TIUBMJ.js +192 -0
  514. package/dist/update-Z7TIUBMJ.js.map +1 -0
  515. package/dist/upload-LXCFSRIU.js +129 -0
  516. package/dist/upload-LXCFSRIU.js.map +1 -0
  517. package/dist/url-options-C543MY7L.js +131 -0
  518. package/dist/url-options-C543MY7L.js.map +1 -0
  519. package/dist/url-params-TEFCXQ5N.js +101 -0
  520. package/dist/url-params-TEFCXQ5N.js.map +1 -0
  521. package/dist/validate-VR3HEOMJ.js +122 -0
  522. package/dist/validate-VR3HEOMJ.js.map +1 -0
  523. package/dist/videos-36AXDUGZ.js +41 -0
  524. package/dist/viewer-check-6HL4OUQY.js +83 -0
  525. package/dist/web-7BRJRQX7.js +143 -0
  526. package/dist/web-7BRJRQX7.js.map +1 -0
  527. package/dist/winning-ads-GMM5W2O4.js +86 -0
  528. package/dist/write-commands-B25W4FP5.js +713 -0
  529. package/dist/write-commands-DO2YUOMG.js +1502 -0
  530. package/dist/write-commands-DO2YUOMG.js.map +1 -0
  531. package/dist/write-commands-GNNEUVDW.js +206 -0
  532. package/dist/write-commands-NXJQQ62W.js +1172 -0
  533. package/dist/write-commands-NXJQQ62W.js.map +1 -0
  534. package/dist/x-JNR5SO6F.js +47 -0
  535. package/package.json +1 -1
  536. package/dist/account-UUAEQWO3.js +0 -80
  537. package/dist/account-UUAEQWO3.js.map +0 -1
  538. package/dist/account-WLQBAQMD.js +0 -80
  539. package/dist/account-WLQBAQMD.js.map +0 -1
  540. package/dist/account-ZY655BIU.js +0 -139
  541. package/dist/account-assets-O7IA37RE.js +0 -290
  542. package/dist/account-level-EU7BWCO7.js +0 -609
  543. package/dist/account-level-EU7BWCO7.js.map +0 -1
  544. package/dist/account-reads-SNOWDHHF.js +0 -219
  545. package/dist/account-users-NV37Z2XJ.js +0 -62
  546. package/dist/account-users-NV37Z2XJ.js.map +0 -1
  547. package/dist/account-writes-TU3WJRSI.js +0 -66
  548. package/dist/account-writes-TU3WJRSI.js.map +0 -1
  549. package/dist/accounts-FT2SRKMD.js +0 -76
  550. package/dist/accounts-K5XLEO6W.js +0 -114
  551. package/dist/accounts-MZ6SETJJ.js +0 -78
  552. package/dist/accounts-MZ6SETJJ.js.map +0 -1
  553. package/dist/accounts-SNB65ZEW.js +0 -115
  554. package/dist/accounts-U7ZBEAY6.js +0 -699
  555. package/dist/accounts-U7ZBEAY6.js.map +0 -1
  556. package/dist/actions-4JYHXRFH.js +0 -55
  557. package/dist/active-entities-3BAPHE4P.js +0 -103
  558. package/dist/activecampaign-IDBV26HH.js +0 -936
  559. package/dist/activecampaign-IDBV26HH.js.map +0 -1
  560. package/dist/activities-LKLPORDI.js +0 -75
  561. package/dist/ad-group-writes-HLBWN4E4.js +0 -170
  562. package/dist/ad-group-writes-HLBWN4E4.js.map +0 -1
  563. package/dist/ad-groups-33NZD6J3.js +0 -68
  564. package/dist/ad-groups-33NZD6J3.js.map +0 -1
  565. package/dist/ad-writes-7ZDNDZ2E.js +0 -174
  566. package/dist/ad-writes-7ZDNDZ2E.js.map +0 -1
  567. package/dist/add-AF42LQQQ.js +0 -105
  568. package/dist/add-AF42LQQQ.js.map +0 -1
  569. package/dist/add-LJRZYJ7I.js +0 -303
  570. package/dist/add-LJRZYJ7I.js.map +0 -1
  571. package/dist/ads-KBE5JXCH.js +0 -115
  572. package/dist/ads-LXWXOQHX.js +0 -48
  573. package/dist/ads-X3AM6M7L.js +0 -77
  574. package/dist/ads-X3AM6M7L.js.map +0 -1
  575. package/dist/adsets-YWBJFPAZ.js +0 -182
  576. package/dist/advertisers-6FOCN2W3.js +0 -121
  577. package/dist/advertisers-6FOCN2W3.js.map +0 -1
  578. package/dist/analytics-64HBRJJE.js +0 -2435
  579. package/dist/analytics-64HBRJJE.js.map +0 -1
  580. package/dist/analytics-VY5NL2GL.js +0 -445
  581. package/dist/analytics-VY5NL2GL.js.map +0 -1
  582. package/dist/asset-writes-72DEVXGO.js +0 -48
  583. package/dist/assign-N2I2BM67.js +0 -78
  584. package/dist/assign-N2I2BM67.js.map +0 -1
  585. package/dist/audience-size-H5DEZXJN.js +0 -74
  586. package/dist/audience-size-H5DEZXJN.js.map +0 -1
  587. package/dist/audience-writes-KCHLNFSI.js +0 -325
  588. package/dist/audience-writes-KCHLNFSI.js.map +0 -1
  589. package/dist/audiences-34IQKOGS.js +0 -85
  590. package/dist/audiences-QAH42HIM.js +0 -86
  591. package/dist/audiences-WCDWN64L.js +0 -268
  592. package/dist/audiences-WCDWN64L.js.map +0 -1
  593. package/dist/audit-2AAF6AOX.js +0 -152
  594. package/dist/audit-2AAF6AOX.js.map +0 -1
  595. package/dist/audit-7ED6CUTQ.js +0 -88
  596. package/dist/autocomplete-3GSKRNCZ.js +0 -112
  597. package/dist/autocomplete-3GSKRNCZ.js.map +0 -1
  598. package/dist/avatars-N6W6HUPP.js +0 -38
  599. package/dist/bid-pricing-IMITXHXN.js +0 -101
  600. package/dist/bid-pricing-IMITXHXN.js.map +0 -1
  601. package/dist/brand-ITWQVZD2.js +0 -22
  602. package/dist/brief-JJNEYPYB.js +0 -541
  603. package/dist/brief-JJNEYPYB.js.map +0 -1
  604. package/dist/businesses-MGP2YCEU.js +0 -54
  605. package/dist/campaign-groups-TTQLP32Q.js +0 -97
  606. package/dist/campaign-groups-TTQLP32Q.js.map +0 -1
  607. package/dist/campaign-writes-MAKPHQ3V.js +0 -166
  608. package/dist/campaign-writes-MAKPHQ3V.js.map +0 -1
  609. package/dist/campaign-writes-XO74BALZ.js +0 -174
  610. package/dist/campaign-writes-XO74BALZ.js.map +0 -1
  611. package/dist/campaigns-5BIDXYSR.js +0 -111
  612. package/dist/campaigns-LS65QM6W.js +0 -76
  613. package/dist/campaigns-LS65QM6W.js.map +0 -1
  614. package/dist/campaigns-XZOQ2VTK.js +0 -130
  615. package/dist/campaigns-XZPXCS7I.js +0 -111
  616. package/dist/campaigns-XZPXCS7I.js.map +0 -1
  617. package/dist/canvas-SL3RMOY5.js +0 -46
  618. package/dist/capabilities-LSR5GCE6.js +0 -145
  619. package/dist/capabilities-LSR5GCE6.js.map +0 -1
  620. package/dist/cards-A7GQVC7B.js +0 -85
  621. package/dist/catalogs-JLCSFZYC.js +0 -779
  622. package/dist/catalogs-JLCSFZYC.js.map +0 -1
  623. package/dist/catalogs-T23RKYFC.js +0 -128
  624. package/dist/catalogs-T23RKYFC.js.map +0 -1
  625. package/dist/changes-36C754R4.js +0 -135
  626. package/dist/chatgpt-3WFOPURY.js +0 -47
  627. package/dist/chats-GGYTXNJS.js +0 -277
  628. package/dist/chats-GGYTXNJS.js.map +0 -1
  629. package/dist/check-P7UPBBG7.js +0 -105
  630. package/dist/check-P7UPBBG7.js.map +0 -1
  631. package/dist/chunk-2TOIY2WN.js +0 -4254
  632. package/dist/chunk-3GAR4AZK.js +0 -149
  633. package/dist/chunk-4D46PS6J.js +0 -344
  634. package/dist/chunk-4GAEB6NK.js +0 -228
  635. package/dist/chunk-5XTGG4PV.js +0 -274
  636. package/dist/chunk-6JCX3YLM.js +0 -249
  637. package/dist/chunk-7J3NZBPV.js +0 -2982
  638. package/dist/chunk-7J3NZBPV.js.map +0 -1
  639. package/dist/chunk-7NF73SCB.js +0 -106
  640. package/dist/chunk-ALMYGH5U.js +0 -479
  641. package/dist/chunk-AQKRSEBQ.js +0 -103
  642. package/dist/chunk-B2POVFR2.js +0 -175
  643. package/dist/chunk-BL6RTOK3.js +0 -297
  644. package/dist/chunk-C6CBBZBO.js +0 -203
  645. package/dist/chunk-CCEDZTP7.js +0 -391
  646. package/dist/chunk-CCEDZTP7.js.map +0 -1
  647. package/dist/chunk-CKQTJ2LV.js +0 -89
  648. package/dist/chunk-D3KLDIPQ.js +0 -45
  649. package/dist/chunk-DL2UJNJ7.js +0 -8954
  650. package/dist/chunk-DM3Q6F5F.js +0 -26
  651. package/dist/chunk-DQ54POZN.js +0 -363
  652. package/dist/chunk-EDLZGTGN.js +0 -216
  653. package/dist/chunk-EDLZGTGN.js.map +0 -1
  654. package/dist/chunk-EXSHBYNQ.js +0 -349
  655. package/dist/chunk-EXSHBYNQ.js.map +0 -1
  656. package/dist/chunk-FFFJBNHA.js +0 -63
  657. package/dist/chunk-FKQK22IX.js +0 -51
  658. package/dist/chunk-FLK6QHOY.js +0 -142
  659. package/dist/chunk-GACSA5A6.js +0 -1646
  660. package/dist/chunk-GU5MXV2Y.js +0 -191
  661. package/dist/chunk-HGUYC5K6.js +0 -76
  662. package/dist/chunk-HJKYTNAZ.js +0 -61
  663. package/dist/chunk-HMIROUFV.js +0 -74
  664. package/dist/chunk-INUU3752.js +0 -392
  665. package/dist/chunk-IQHO2ABF.js +0 -197
  666. package/dist/chunk-J3UWMBOP.js +0 -547
  667. package/dist/chunk-JDR3HUEL.js +0 -191
  668. package/dist/chunk-JI77AKT6.js +0 -19
  669. package/dist/chunk-JNURZHZJ.js +0 -942
  670. package/dist/chunk-JSNMKTFM.js +0 -592
  671. package/dist/chunk-K4FLWDEX.js +0 -122
  672. package/dist/chunk-KBRJSPIM.js +0 -676
  673. package/dist/chunk-KUY26RCF.js +0 -200
  674. package/dist/chunk-LAC6YHHX.js +0 -97
  675. package/dist/chunk-M7HD42M6.js +0 -24017
  676. package/dist/chunk-M7HD42M6.js.map +0 -1
  677. package/dist/chunk-MGYC2IRC.js +0 -783
  678. package/dist/chunk-MI4HXE7M.js +0 -23
  679. package/dist/chunk-MJ7RNDD4.js +0 -910
  680. package/dist/chunk-OBJCNGZL.js +0 -207
  681. package/dist/chunk-OJGYYH6K.js +0 -179
  682. package/dist/chunk-OLBLXJNI.js +0 -224
  683. package/dist/chunk-PFTYKINE.js +0 -207
  684. package/dist/chunk-PLBITHV6.js +0 -846
  685. package/dist/chunk-Q6JMMBSQ.js +0 -831
  686. package/dist/chunk-RAQHUMKS.js +0 -169
  687. package/dist/chunk-RCJKABOS.js +0 -74
  688. package/dist/chunk-SA22KXWT.js +0 -163
  689. package/dist/chunk-SIXU5PDF.js +0 -66
  690. package/dist/chunk-SXMK5AEJ.js +0 -494
  691. package/dist/chunk-TLQOMWLQ.js +0 -69
  692. package/dist/chunk-TTLD66NI.js +0 -319
  693. package/dist/chunk-TVAIOC77.js +0 -287
  694. package/dist/chunk-TVTSA4EN.js +0 -188
  695. package/dist/chunk-V5NHJU3M.js +0 -604
  696. package/dist/chunk-VIPKDXGU.js +0 -4229
  697. package/dist/chunk-VIPKDXGU.js.map +0 -1
  698. package/dist/chunk-W4D7C74B.js +0 -387
  699. package/dist/chunk-WF25CCLD.js +0 -170
  700. package/dist/chunk-WQPUX3BA.js +0 -275
  701. package/dist/chunk-WR3FR3K3.js +0 -156
  702. package/dist/chunk-XDNJC62G.js +0 -91
  703. package/dist/chunk-XE6N4SZI.js +0 -429
  704. package/dist/chunk-XGPU2VDU.js +0 -219
  705. package/dist/chunk-XUJZO7MZ.js +0 -57
  706. package/dist/chunk-Y67LUJBE.js +0 -455
  707. package/dist/chunk-Y7XSDJEA.js +0 -3868
  708. package/dist/chunk-ZNNQK366.js +0 -7198
  709. package/dist/chunk-ZNNQK366.js.map +0 -1
  710. package/dist/chunk-ZNRGH4NS.js +0 -150
  711. package/dist/chunk-ZRP7Y2DM.js +0 -320
  712. package/dist/chunk-ZRP7Y2DM.js.map +0 -1
  713. package/dist/claim-4KUETSW3.js +0 -198
  714. package/dist/claim-4KUETSW3.js.map +0 -1
  715. package/dist/companies-XFO6WPVT.js +0 -196
  716. package/dist/companies-XFO6WPVT.js.map +0 -1
  717. package/dist/company-OJGISG7K.js +0 -306
  718. package/dist/company-OJGISG7K.js.map +0 -1
  719. package/dist/complete-CXOST5J3.js +0 -82
  720. package/dist/complete-CXOST5J3.js.map +0 -1
  721. package/dist/config-SMVIY6RW.js +0 -88
  722. package/dist/connect-HPQ32KGV.js +0 -43
  723. package/dist/conversation-D5HKCTDA.js +0 -94
  724. package/dist/conversation-D5HKCTDA.js.map +0 -1
  725. package/dist/conversion-report-DKXFHLLX.js +0 -125
  726. package/dist/conversion-report-DKXFHLLX.js.map +0 -1
  727. package/dist/conversion-upload-command-KTYAY7IG.js +0 -439
  728. package/dist/conversion-writes-7ODJDAUP.js +0 -120
  729. package/dist/conversion-writes-7ODJDAUP.js.map +0 -1
  730. package/dist/conversions-BKVGNNC6.js +0 -76
  731. package/dist/conversions-BKVGNNC6.js.map +0 -1
  732. package/dist/conversions-SYNDEB6D.js +0 -138
  733. package/dist/conversions-SYNDEB6D.js.map +0 -1
  734. package/dist/copy-writes-P4WK6OPM.js +0 -168
  735. package/dist/copy-writes-P4WK6OPM.js.map +0 -1
  736. package/dist/create-7D4VD4TC.js +0 -208
  737. package/dist/create-7D4VD4TC.js.map +0 -1
  738. package/dist/create-7QDEAWZS.js +0 -133
  739. package/dist/create-7QDEAWZS.js.map +0 -1
  740. package/dist/create-IQSYEC4M.js +0 -60
  741. package/dist/create-IQSYEC4M.js.map +0 -1
  742. package/dist/create-TQSCM7MG.js +0 -237
  743. package/dist/create-TQSCM7MG.js.map +0 -1
  744. package/dist/creatives-JPKA2RHU.js +0 -89
  745. package/dist/creatives-RNOL4F4E.js +0 -58
  746. package/dist/creatives-RXI27T2D.js +0 -221
  747. package/dist/creatives-RXI27T2D.js.map +0 -1
  748. package/dist/credentials-PYW55B52.js +0 -288
  749. package/dist/credentials-PYW55B52.js.map +0 -1
  750. package/dist/critique-2SYHNAW5.js +0 -1449
  751. package/dist/critique-2SYHNAW5.js.map +0 -1
  752. package/dist/critique-72GFZSHA.js +0 -230
  753. package/dist/critique-72GFZSHA.js.map +0 -1
  754. package/dist/crm-EATDSXXB.js +0 -225
  755. package/dist/crm-EATDSXXB.js.map +0 -1
  756. package/dist/crm-XXP3VBYD.js +0 -321
  757. package/dist/crm-XXP3VBYD.js.map +0 -1
  758. package/dist/currency-R4ORE2U3.js +0 -88
  759. package/dist/custom-conversions-5HJBB5XL.js +0 -128
  760. package/dist/customers-OFZTEXST.js +0 -57
  761. package/dist/delete-FGVZIK4R.js +0 -55
  762. package/dist/delete-FGVZIK4R.js.map +0 -1
  763. package/dist/delete-HBZZL4UA.js +0 -67
  764. package/dist/delete-HBZZL4UA.js.map +0 -1
  765. package/dist/delete-JOUXMRIX.js +0 -65
  766. package/dist/delete-JOUXMRIX.js.map +0 -1
  767. package/dist/demographics-SB7NBYOI.js +0 -139
  768. package/dist/demographics-SB7NBYOI.js.map +0 -1
  769. package/dist/discard-YYGIRDII.js +0 -67
  770. package/dist/discard-YYGIRDII.js.map +0 -1
  771. package/dist/discover-GSJRZUOC.js +0 -172
  772. package/dist/domain-3KRAJAUH.js +0 -99
  773. package/dist/domain-3KRAJAUH.js.map +0 -1
  774. package/dist/download-QCBKJ6OR.js +0 -170
  775. package/dist/download-QCBKJ6OR.js.map +0 -1
  776. package/dist/draft-7CGFFZTH.js +0 -333
  777. package/dist/draft-7CGFFZTH.js.map +0 -1
  778. package/dist/draft-BI4NW6AU.js +0 -308
  779. package/dist/draft-BI4NW6AU.js.map +0 -1
  780. package/dist/draft-DJIYEMZU.js +0 -103
  781. package/dist/draft-LPVK6YHI.js +0 -281
  782. package/dist/draft-LPVK6YHI.js.map +0 -1
  783. package/dist/draft-QF5JEUTH.js +0 -218
  784. package/dist/draft-QF5JEUTH.js.map +0 -1
  785. package/dist/draft-RIR2V6A2.js +0 -238
  786. package/dist/draft-WYDMLNYA.js +0 -308
  787. package/dist/draft-ZCL7FVBH.js +0 -100
  788. package/dist/experiment-I5CRLOVN.js +0 -1397
  789. package/dist/experiments-ZCEYRP3H.js +0 -234
  790. package/dist/experiments-ZCEYRP3H.js.map +0 -1
  791. package/dist/facets-G7ZDPI5Q.js +0 -115
  792. package/dist/facets-G7ZDPI5Q.js.map +0 -1
  793. package/dist/feedback-3U3CL2VB.js +0 -109
  794. package/dist/feedback-3U3CL2VB.js.map +0 -1
  795. package/dist/feedback-record-4ZHPENIP.js +0 -263
  796. package/dist/feedback-record-4ZHPENIP.js.map +0 -1
  797. package/dist/fetch-PNVNNWTP.js +0 -177
  798. package/dist/fetch-PNVNNWTP.js.map +0 -1
  799. package/dist/fit-53DGYRFD.js +0 -63
  800. package/dist/flows-JXLQBP5Q.js +0 -248
  801. package/dist/flows-JXLQBP5Q.js.map +0 -1
  802. package/dist/fonts-LFMBUT4R.js +0 -37
  803. package/dist/forecast-4AG5F7YC.js +0 -169
  804. package/dist/forecast-VZAXI74O.js +0 -119
  805. package/dist/forecast-VZAXI74O.js.map +0 -1
  806. package/dist/funding-5W4LX6DU.js +0 -85
  807. package/dist/funnel-EACC35UD.js +0 -395
  808. package/dist/funnel-EACC35UD.js.map +0 -1
  809. package/dist/ga4-BWVCDVIR.js +0 -55
  810. package/dist/get-AXBVYGAC.js +0 -57
  811. package/dist/get-AXBVYGAC.js.map +0 -1
  812. package/dist/get-D6A27Q4E.js +0 -80
  813. package/dist/get-D6A27Q4E.js.map +0 -1
  814. package/dist/google-NAA4BASO.js +0 -3267
  815. package/dist/google-ads-OIYUNDXQ.js +0 -196
  816. package/dist/google-ads-OIYUNDXQ.js.map +0 -1
  817. package/dist/gsc-2MPE4N32.js +0 -30
  818. package/dist/history-5MRLNTCI.js +0 -67
  819. package/dist/history-5MRLNTCI.js.map +0 -1
  820. package/dist/history-IDYNIB6R.js +0 -134
  821. package/dist/history-IDYNIB6R.js.map +0 -1
  822. package/dist/history-IOUKN3WD.js +0 -100
  823. package/dist/history-IOUKN3WD.js.map +0 -1
  824. package/dist/hubspot-HL6WGC4G.js +0 -780
  825. package/dist/hubspot-HL6WGC4G.js.map +0 -1
  826. package/dist/ideas-NK3KQHAK.js +0 -43
  827. package/dist/images-2XS3JT7E.js +0 -92
  828. package/dist/ingest-DHXWZZX4.js +0 -24
  829. package/dist/ingest-FGTJRCWK.js +0 -108
  830. package/dist/ingest-FGTJRCWK.js.map +0 -1
  831. package/dist/insights-M3CYB22P.js +0 -437
  832. package/dist/insights-M3CYB22P.js.map +0 -1
  833. package/dist/insights-XCT3ONC7.js +0 -130
  834. package/dist/insights-XCT3ONC7.js.map +0 -1
  835. package/dist/inspect-53GGYRC4.js +0 -190
  836. package/dist/inspect-53GGYRC4.js.map +0 -1
  837. package/dist/instant-experiences-HT3HB4QZ.js +0 -258
  838. package/dist/instant-experiences-HT3HB4QZ.js.map +0 -1
  839. package/dist/intent-NSHW7EJT.js +0 -95
  840. package/dist/job-DRFCQ27M.js +0 -202
  841. package/dist/job-create-2EC25Y3J.js +0 -109
  842. package/dist/job-status-UNVZRPIA.js +0 -74
  843. package/dist/keyword-gap-ITTWKBWZ.js +0 -130
  844. package/dist/keyword-metrics-LWPE3HHW.js +0 -198
  845. package/dist/keyword-metrics-LWPE3HHW.js.map +0 -1
  846. package/dist/keywords-for-site-5K25VJ35.js +0 -129
  847. package/dist/keywords-for-site-5K25VJ35.js.map +0 -1
  848. package/dist/landing-QONUUP3C.js +0 -28
  849. package/dist/languages-MEFQQBJ2.js +0 -40
  850. package/dist/leads-FSSISJGL.js +0 -113
  851. package/dist/leads-FSSISJGL.js.map +0 -1
  852. package/dist/leads-SZOGCQFK.js +0 -538
  853. package/dist/leads-SZOGCQFK.js.map +0 -1
  854. package/dist/learn-FWWJWBDN.js +0 -205
  855. package/dist/learn-FWWJWBDN.js.map +0 -1
  856. package/dist/line-item-writes-A3UQ44NG.js +0 -209
  857. package/dist/line-item-writes-A3UQ44NG.js.map +0 -1
  858. package/dist/line-items-OH426JGT.js +0 -107
  859. package/dist/link-67E4NVEX.js +0 -65
  860. package/dist/link-67E4NVEX.js.map +0 -1
  861. package/dist/linkedin-CT2OSQ2I.js +0 -1314
  862. package/dist/linkedin-CT2OSQ2I.js.map +0 -1
  863. package/dist/linkedin-person-OSNLPLJJ.js +0 -137
  864. package/dist/linkedin-person-OSNLPLJJ.js.map +0 -1
  865. package/dist/list-J4OUXAKN.js +0 -65
  866. package/dist/list-J4OUXAKN.js.map +0 -1
  867. package/dist/list-L2OQK4W3.js +0 -304
  868. package/dist/list-L2OQK4W3.js.map +0 -1
  869. package/dist/list-LHMDAA2D.js +0 -152
  870. package/dist/list-LHMDAA2D.js.map +0 -1
  871. package/dist/locations-RLWAS6AC.js +0 -40
  872. package/dist/locations-UKBOT6SB.js +0 -67
  873. package/dist/locations-UKBOT6SB.js.map +0 -1
  874. package/dist/log-4EIV54V4.js +0 -93
  875. package/dist/log-4EIV54V4.js.map +0 -1
  876. package/dist/lookup-ZJIP2M4X.js +0 -22
  877. package/dist/make-MFU3CSN7.js +0 -1368
  878. package/dist/make-MFU3CSN7.js.map +0 -1
  879. package/dist/map-VWWWMQLK.js +0 -434
  880. package/dist/map-VWWWMQLK.js.map +0 -1
  881. package/dist/mcp-EKLO2VD7.js +0 -715
  882. package/dist/mcp-EKLO2VD7.js.map +0 -1
  883. package/dist/media-XCTZJIW4.js +0 -89
  884. package/dist/media-ZWN7E777.js +0 -18
  885. package/dist/media-sources-7L622UTF.js +0 -35
  886. package/dist/members-QK5M5NCJ.js +0 -45
  887. package/dist/members-QK5M5NCJ.js.map +0 -1
  888. package/dist/meta-EHKXH257.js +0 -122
  889. package/dist/metrics-K6FDCMK7.js +0 -152
  890. package/dist/normalize-WI4OGKH5.js +0 -142
  891. package/dist/normalize-WI4OGKH5.js.map +0 -1
  892. package/dist/options-FKJ2QXI6.js +0 -123
  893. package/dist/options-FKJ2QXI6.js.map +0 -1
  894. package/dist/organization-7A7MPUDG.js +0 -947
  895. package/dist/organization-7A7MPUDG.js.map +0 -1
  896. package/dist/output-WTEPRUPE.js +0 -24
  897. package/dist/page-photos-HWKQOSCU.js +0 -116
  898. package/dist/page-photos-HWKQOSCU.js.map +0 -1
  899. package/dist/pages-J6AF5NDU.js +0 -67
  900. package/dist/performance-K4VB6L6Z.js +0 -25
  901. package/dist/performance-LHAL53YO.js +0 -5539
  902. package/dist/performance-LHAL53YO.js.map +0 -1
  903. package/dist/pixels-Z7ZGXAGB.js +0 -60
  904. package/dist/pixels-Z7ZGXAGB.js.map +0 -1
  905. package/dist/pixels-ZZTB6NWF.js +0 -109
  906. package/dist/plan-TVQSEKYL.js +0 -207
  907. package/dist/plan-TVQSEKYL.js.map +0 -1
  908. package/dist/preview-CWRGDFCP.js +0 -216
  909. package/dist/preview-CWRGDFCP.js.map +0 -1
  910. package/dist/promoted-tweet-writes-V4ZVJOJU.js +0 -181
  911. package/dist/promoted-tweet-writes-V4ZVJOJU.js.map +0 -1
  912. package/dist/promoted-tweets-KPG4IUVD.js +0 -119
  913. package/dist/properties-RBLJCVSG.js +0 -101
  914. package/dist/publish-Y465CVUD.js +0 -342
  915. package/dist/publish-Y465CVUD.js.map +0 -1
  916. package/dist/query-BJJYUGQZ.js +0 -247
  917. package/dist/query-KQ675KJZ.js +0 -236
  918. package/dist/query-QM7MBQD7.js +0 -62
  919. package/dist/questionnaire-LEZJLMAV.js +0 -93
  920. package/dist/questionnaire-LEZJLMAV.js.map +0 -1
  921. package/dist/read-QME7JYVF.js +0 -141
  922. package/dist/reddit-Z7DOVIGR.js +0 -27
  923. package/dist/refresh-A6TW2Z2F.js +0 -95
  924. package/dist/refresh-A6TW2Z2F.js.map +0 -1
  925. package/dist/release-UFESJ4TM.js +0 -61
  926. package/dist/release-UFESJ4TM.js.map +0 -1
  927. package/dist/relevant-pages-VOICMQ7U.js +0 -99
  928. package/dist/remove-YONNYA4G.js +0 -51
  929. package/dist/remove-YONNYA4G.js.map +0 -1
  930. package/dist/reopen-FYJU2IPO.js +0 -64
  931. package/dist/reopen-FYJU2IPO.js.map +0 -1
  932. package/dist/rerun-B5SBG6ZE.js +0 -93
  933. package/dist/rerun-B5SBG6ZE.js.map +0 -1
  934. package/dist/research-HW4EVOZU.js +0 -72
  935. package/dist/research-OV53DIBX.js +0 -263
  936. package/dist/research-OV53DIBX.js.map +0 -1
  937. package/dist/reset-R4SIQXFH.js +0 -55
  938. package/dist/reset-R4SIQXFH.js.map +0 -1
  939. package/dist/reset-X6ODAKYH.js +0 -55
  940. package/dist/reset-X6ODAKYH.js.map +0 -1
  941. package/dist/resolve-DNRJCLCR.js +0 -122
  942. package/dist/resolve-DNRJCLCR.js.map +0 -1
  943. package/dist/retry-D5MKBHUB.js +0 -63
  944. package/dist/retry-D5MKBHUB.js.map +0 -1
  945. package/dist/retry-DVFLE7JY.js +0 -61
  946. package/dist/retry-DVFLE7JY.js.map +0 -1
  947. package/dist/revenue-QGI6XWSK.js +0 -89
  948. package/dist/revenue-QGI6XWSK.js.map +0 -1
  949. package/dist/rule-writes-S3RN47OG.js +0 -523
  950. package/dist/rule-writes-S3RN47OG.js.map +0 -1
  951. package/dist/rules-KTJ2ZZ62.js +0 -217
  952. package/dist/rules-TR6BAC23.js +0 -97
  953. package/dist/rules-TR6BAC23.js.map +0 -1
  954. package/dist/rules-add-T5ZO5RLR.js +0 -463
  955. package/dist/rules-add-T5ZO5RLR.js.map +0 -1
  956. package/dist/run-WZ5IXWA4.js +0 -67
  957. package/dist/run-WZ5IXWA4.js.map +0 -1
  958. package/dist/run-YRR3KOUU.js +0 -68
  959. package/dist/scaffold-ad-DNUCGCIH.js +0 -1514
  960. package/dist/scaffold-ad-DNUCGCIH.js.map +0 -1
  961. package/dist/scaffold-static-ad-VR65EZAG.js +0 -1013
  962. package/dist/scaffold-static-ad-VR65EZAG.js.map +0 -1
  963. package/dist/scaffold-video-JLMKCCWE.js +0 -886
  964. package/dist/scaffold-video-JLMKCCWE.js.map +0 -1
  965. package/dist/schedule-VRHCVBZA.js +0 -62
  966. package/dist/schedule-VRHCVBZA.js.map +0 -1
  967. package/dist/scheduled-agents-DG7FTCUZ.js +0 -55
  968. package/dist/schema-WZKDWF5N.js +0 -133
  969. package/dist/schema-WZKDWF5N.js.map +0 -1
  970. package/dist/search-MN66QIKJ.js +0 -175
  971. package/dist/search-MN66QIKJ.js.map +0 -1
  972. package/dist/select-IPSM2BF2.js +0 -104
  973. package/dist/select-IPSM2BF2.js.map +0 -1
  974. package/dist/sends-6FI7WELX.js +0 -348
  975. package/dist/sends-6FI7WELX.js.map +0 -1
  976. package/dist/set-prompt-N6BD3DME.js +0 -196
  977. package/dist/set-prompt-N6BD3DME.js.map +0 -1
  978. package/dist/setup-links-GTA2AROS.js +0 -142
  979. package/dist/setup-links-GTA2AROS.js.map +0 -1
  980. package/dist/shared-ZFULUOPQ.js +0 -32
  981. package/dist/shopify-S4TG6WJH.js +0 -3956
  982. package/dist/shopify-S4TG6WJH.js.map +0 -1
  983. package/dist/site-NY622E3H.js +0 -178
  984. package/dist/site-NY622E3H.js.map +0 -1
  985. package/dist/sitemaps-F3HYH5ZP.js +0 -87
  986. package/dist/sites-JSMF72BY.js +0 -101
  987. package/dist/sources-4F2XO7Z6.js +0 -455
  988. package/dist/sources-4F2XO7Z6.js.map +0 -1
  989. package/dist/sources-562ITR77.js +0 -30
  990. package/dist/stale-JKM6MXJF.js +0 -74
  991. package/dist/stale-JKM6MXJF.js.map +0 -1
  992. package/dist/stats-QP4LFQZJ.js +0 -34
  993. package/dist/status-AUWMUDA4.js +0 -63
  994. package/dist/status-AUWMUDA4.js.map +0 -1
  995. package/dist/studies-ZOEUY6YP.js +0 -250
  996. package/dist/study-writes-DTGMCNFP.js +0 -468
  997. package/dist/study-writes-DTGMCNFP.js.map +0 -1
  998. package/dist/sync-76MCGHX4.js +0 -55
  999. package/dist/sync-76MCGHX4.js.map +0 -1
  1000. package/dist/sync-PHH65JFS.js +0 -279
  1001. package/dist/sync-definition-NJPT6ABG.js +0 -67
  1002. package/dist/tag-manager-F7PVTDBB.js +0 -43
  1003. package/dist/tags-5KBOJJ5R.js +0 -26
  1004. package/dist/tags-CSMLTHTU.js +0 -21
  1005. package/dist/tags-CSMLTHTU.js.map +0 -1
  1006. package/dist/tags-IFRZYM3G.js +0 -21
  1007. package/dist/tags-IFRZYM3G.js.map +0 -1
  1008. package/dist/tags-S44ADJ75.js +0 -21
  1009. package/dist/tags-S44ADJ75.js.map +0 -1
  1010. package/dist/tags-WR7IY3OT.js +0 -225
  1011. package/dist/tags-WR7IY3OT.js.map +0 -1
  1012. package/dist/targeting-VBQY3HUN.js +0 -760
  1013. package/dist/targeting-VBQY3HUN.js.map +0 -1
  1014. package/dist/targeting-constants-236ES5HE.js +0 -118
  1015. package/dist/targeting-criteria-FJWNK53T.js +0 -113
  1016. package/dist/targets-2EHMMXD4.js +0 -104
  1017. package/dist/targets-2EHMMXD4.js.map +0 -1
  1018. package/dist/terms-O6ODXEOK.js +0 -102
  1019. package/dist/testimonials-WAPFIGFJ.js +0 -32
  1020. package/dist/themes-B4LCQUXB.js +0 -95
  1021. package/dist/top-companies-DJ2XQKMW.js +0 -109
  1022. package/dist/top-companies-DJ2XQKMW.js.map +0 -1
  1023. package/dist/transcript-J3LGOHCM.js +0 -163
  1024. package/dist/transcript-J3LGOHCM.js.map +0 -1
  1025. package/dist/translate-6RXO4C6Z.js +0 -607
  1026. package/dist/translate-6RXO4C6Z.js.map +0 -1
  1027. package/dist/triggers-CYXPNHQB.js +0 -142
  1028. package/dist/triggers-CYXPNHQB.js.map +0 -1
  1029. package/dist/tweets-IUINLOXF.js +0 -123
  1030. package/dist/unlink-5FJI7XZB.js +0 -68
  1031. package/dist/unlink-5FJI7XZB.js.map +0 -1
  1032. package/dist/unstage-54ZE2SZK.js +0 -86
  1033. package/dist/unstage-54ZE2SZK.js.map +0 -1
  1034. package/dist/unstage-MDSSPUKV.js +0 -95
  1035. package/dist/unstage-MDSSPUKV.js.map +0 -1
  1036. package/dist/update-BVBFNFMO.js +0 -99
  1037. package/dist/update-BVBFNFMO.js.map +0 -1
  1038. package/dist/update-GV3T7ZRC.js +0 -190
  1039. package/dist/update-GV3T7ZRC.js.map +0 -1
  1040. package/dist/update-PUQWUGPJ.js +0 -64
  1041. package/dist/update-PUQWUGPJ.js.map +0 -1
  1042. package/dist/update-YQBK6C3L.js +0 -153
  1043. package/dist/update-YQBK6C3L.js.map +0 -1
  1044. package/dist/upload-PXT5JAEV.js +0 -127
  1045. package/dist/upload-PXT5JAEV.js.map +0 -1
  1046. package/dist/url-options-IHL4OU4C.js +0 -130
  1047. package/dist/url-options-IHL4OU4C.js.map +0 -1
  1048. package/dist/url-params-IYUI6SFJ.js +0 -99
  1049. package/dist/url-params-IYUI6SFJ.js.map +0 -1
  1050. package/dist/validate-AD7F7LQ5.js +0 -120
  1051. package/dist/validate-AD7F7LQ5.js.map +0 -1
  1052. package/dist/videos-ZJCTODEB.js +0 -41
  1053. package/dist/viewer-check-GWZNGWCO.js +0 -81
  1054. package/dist/web-76CWAZNW.js +0 -141
  1055. package/dist/web-76CWAZNW.js.map +0 -1
  1056. package/dist/winning-ads-W7GTXTX7.js +0 -86
  1057. package/dist/write-commands-5J47ZNO4.js +0 -206
  1058. package/dist/write-commands-K6M3RTVK.js +0 -1170
  1059. package/dist/write-commands-K6M3RTVK.js.map +0 -1
  1060. package/dist/write-commands-OTWH6BKZ.js +0 -713
  1061. package/dist/write-commands-VPU53DLB.js +0 -1498
  1062. package/dist/write-commands-VPU53DLB.js.map +0 -1
  1063. package/dist/x-V4NNNWRU.js +0 -47
  1064. /package/dist/{account-ZY655BIU.js.map → account-BA3IO3AN.js.map} +0 -0
  1065. /package/dist/{account-assets-O7IA37RE.js.map → account-assets-T3VVNBUG.js.map} +0 -0
  1066. /package/dist/{account-reads-SNOWDHHF.js.map → account-reads-5CXFLJ5Q.js.map} +0 -0
  1067. /package/dist/{accounts-FT2SRKMD.js.map → accounts-4R3MBNJG.js.map} +0 -0
  1068. /package/dist/{accounts-SNB65ZEW.js.map → accounts-5WF7VE7J.js.map} +0 -0
  1069. /package/dist/{accounts-K5XLEO6W.js.map → accounts-VPWCLF6X.js.map} +0 -0
  1070. /package/dist/{actions-4JYHXRFH.js.map → actions-D7OWCP36.js.map} +0 -0
  1071. /package/dist/{active-entities-3BAPHE4P.js.map → active-entities-WDPW7652.js.map} +0 -0
  1072. /package/dist/{activities-LKLPORDI.js.map → activities-WGPHYSFU.js.map} +0 -0
  1073. /package/dist/{ads-KBE5JXCH.js.map → ads-F7AUJWK7.js.map} +0 -0
  1074. /package/dist/{ads-LXWXOQHX.js.map → ads-OV3SMLKA.js.map} +0 -0
  1075. /package/dist/{adsets-YWBJFPAZ.js.map → adsets-XH2ULWPM.js.map} +0 -0
  1076. /package/dist/{asset-writes-72DEVXGO.js.map → asset-writes-4X3AJQ4Q.js.map} +0 -0
  1077. /package/dist/{audiences-QAH42HIM.js.map → audiences-MBBXWEOI.js.map} +0 -0
  1078. /package/dist/{audiences-34IQKOGS.js.map → audiences-YUG5JLL4.js.map} +0 -0
  1079. /package/dist/{audit-7ED6CUTQ.js.map → audit-WFXS5ELM.js.map} +0 -0
  1080. /package/dist/{avatars-N6W6HUPP.js.map → avatars-WZ2JDMHH.js.map} +0 -0
  1081. /package/dist/{brand-ITWQVZD2.js.map → brand-IZTTBZII.js.map} +0 -0
  1082. /package/dist/{businesses-MGP2YCEU.js.map → businesses-24JNY46Z.js.map} +0 -0
  1083. /package/dist/{campaigns-XZOQ2VTK.js.map → campaigns-KXYGSH27.js.map} +0 -0
  1084. /package/dist/{campaigns-5BIDXYSR.js.map → campaigns-U5FQ2VWL.js.map} +0 -0
  1085. /package/dist/{canvas-SL3RMOY5.js.map → canvas-IQ753Q2O.js.map} +0 -0
  1086. /package/dist/{cards-A7GQVC7B.js.map → cards-NSNAFTEB.js.map} +0 -0
  1087. /package/dist/{changes-36C754R4.js.map → changes-RDWMNSTK.js.map} +0 -0
  1088. /package/dist/{chatgpt-3WFOPURY.js.map → chatgpt-27NEJVGF.js.map} +0 -0
  1089. /package/dist/{chunk-KUY26RCF.js.map → chunk-2F4DELSV.js.map} +0 -0
  1090. /package/dist/{chunk-WF25CCLD.js.map → chunk-2GYCWRF3.js.map} +0 -0
  1091. /package/dist/{chunk-HJKYTNAZ.js.map → chunk-2L7F7KR4.js.map} +0 -0
  1092. /package/dist/{chunk-4GAEB6NK.js.map → chunk-44ZRCSR7.js.map} +0 -0
  1093. /package/dist/{chunk-2TOIY2WN.js.map → chunk-46YLDIQG.js.map} +0 -0
  1094. /package/dist/{chunk-DQ54POZN.js.map → chunk-4EDWXZ3I.js.map} +0 -0
  1095. /package/dist/{chunk-SIXU5PDF.js.map → chunk-4FFBGR5L.js.map} +0 -0
  1096. /package/dist/{chunk-JSNMKTFM.js.map → chunk-4UZUUSVL.js.map} +0 -0
  1097. /package/dist/{chunk-Q6JMMBSQ.js.map → chunk-4XHCEYHI.js.map} +0 -0
  1098. /package/dist/{chunk-ALMYGH5U.js.map → chunk-4Z6PVR3M.js.map} +0 -0
  1099. /package/dist/{chunk-K4FLWDEX.js.map → chunk-5Y5FZV2W.js.map} +0 -0
  1100. /package/dist/{chunk-INUU3752.js.map → chunk-6HJXLGDV.js.map} +0 -0
  1101. /package/dist/{chunk-XE6N4SZI.js.map → chunk-6S5CWGDA.js.map} +0 -0
  1102. /package/dist/{chunk-SXMK5AEJ.js.map → chunk-6VYROVWO.js.map} +0 -0
  1103. /package/dist/{chunk-TTLD66NI.js.map → chunk-AQRXXC6E.js.map} +0 -0
  1104. /package/dist/{chunk-W4D7C74B.js.map → chunk-ARBXT73X.js.map} +0 -0
  1105. /package/dist/{chunk-LAC6YHHX.js.map → chunk-BEZHQIEI.js.map} +0 -0
  1106. /package/dist/{chunk-J3UWMBOP.js.map → chunk-BFURWHVR.js.map} +0 -0
  1107. /package/dist/{chunk-RAQHUMKS.js.map → chunk-EZSPVWLQ.js.map} +0 -0
  1108. /package/dist/{chunk-DM3Q6F5F.js.map → chunk-FCHZ5TNG.js.map} +0 -0
  1109. /package/dist/{chunk-MI4HXE7M.js.map → chunk-FLWDFPXE.js.map} +0 -0
  1110. /package/dist/{chunk-PLBITHV6.js.map → chunk-FQMEX3GX.js.map} +0 -0
  1111. /package/dist/{chunk-FKQK22IX.js.map → chunk-GE3VT3CA.js.map} +0 -0
  1112. /package/dist/{chunk-HMIROUFV.js.map → chunk-HCQJYI6X.js.map} +0 -0
  1113. /package/dist/{chunk-FLK6QHOY.js.map → chunk-HGBJQGO5.js.map} +0 -0
  1114. /package/dist/{chunk-GU5MXV2Y.js.map → chunk-HHVWV5BJ.js.map} +0 -0
  1115. /package/dist/{chunk-HGUYC5K6.js.map → chunk-I3WGTSDY.js.map} +0 -0
  1116. /package/dist/{chunk-MGYC2IRC.js.map → chunk-I7AYMJZA.js.map} +0 -0
  1117. /package/dist/{chunk-7NF73SCB.js.map → chunk-IDSDJHRS.js.map} +0 -0
  1118. /package/dist/{chunk-OBJCNGZL.js.map → chunk-ILPHIYAL.js.map} +0 -0
  1119. /package/dist/{chunk-WR3FR3K3.js.map → chunk-IWKD56AY.js.map} +0 -0
  1120. /package/dist/{chunk-Y7XSDJEA.js.map → chunk-JLAQWMVF.js.map} +0 -0
  1121. /package/dist/{chunk-XUJZO7MZ.js.map → chunk-K6NULQN7.js.map} +0 -0
  1122. /package/dist/{chunk-JI77AKT6.js.map → chunk-L2BRAC2J.js.map} +0 -0
  1123. /package/dist/{chunk-Y67LUJBE.js.map → chunk-LGMI4LSY.js.map} +0 -0
  1124. /package/dist/{chunk-3GAR4AZK.js.map → chunk-LNODLR7W.js.map} +0 -0
  1125. /package/dist/{chunk-5XTGG4PV.js.map → chunk-LQ2BRGMX.js.map} +0 -0
  1126. /package/dist/{chunk-B2POVFR2.js.map → chunk-M7QZSEHF.js.map} +0 -0
  1127. /package/dist/{chunk-OJGYYH6K.js.map → chunk-NB2FU6EZ.js.map} +0 -0
  1128. /package/dist/{chunk-PFTYKINE.js.map → chunk-NFII3MTG.js.map} +0 -0
  1129. /package/dist/{chunk-WQPUX3BA.js.map → chunk-OG47L5GG.js.map} +0 -0
  1130. /package/dist/{chunk-4D46PS6J.js.map → chunk-QIOFOD4K.js.map} +0 -0
  1131. /package/dist/{chunk-6JCX3YLM.js.map → chunk-R2SYF5FC.js.map} +0 -0
  1132. /package/dist/{chunk-JNURZHZJ.js.map → chunk-RTH2I55B.js.map} +0 -0
  1133. /package/dist/{chunk-FFFJBNHA.js.map → chunk-S6VFDNSQ.js.map} +0 -0
  1134. /package/dist/{chunk-ZNRGH4NS.js.map → chunk-SG2TDQEE.js.map} +0 -0
  1135. /package/dist/{chunk-CKQTJ2LV.js.map → chunk-T3P6O2VU.js.map} +0 -0
  1136. /package/dist/{chunk-RCJKABOS.js.map → chunk-TU5LQUJM.js.map} +0 -0
  1137. /package/dist/{chunk-TLQOMWLQ.js.map → chunk-TU7DWSTW.js.map} +0 -0
  1138. /package/dist/{chunk-V5NHJU3M.js.map → chunk-TXDE2QJ3.js.map} +0 -0
  1139. /package/dist/{chunk-TVAIOC77.js.map → chunk-TYXZ2SRW.js.map} +0 -0
  1140. /package/dist/{chunk-C6CBBZBO.js.map → chunk-UDIEKCIR.js.map} +0 -0
  1141. /package/dist/{chunk-KBRJSPIM.js.map → chunk-UQHHGT67.js.map} +0 -0
  1142. /package/dist/{chunk-SA22KXWT.js.map → chunk-USCADMM3.js.map} +0 -0
  1143. /package/dist/{chunk-MJ7RNDD4.js.map → chunk-UUGISMNE.js.map} +0 -0
  1144. /package/dist/{chunk-IQHO2ABF.js.map → chunk-VDPOCAQ2.js.map} +0 -0
  1145. /package/dist/{chunk-AQKRSEBQ.js.map → chunk-VEJ3QX6M.js.map} +0 -0
  1146. /package/dist/{chunk-XDNJC62G.js.map → chunk-VFJB7OG6.js.map} +0 -0
  1147. /package/dist/{chunk-TVTSA4EN.js.map → chunk-VPABGAN4.js.map} +0 -0
  1148. /package/dist/{chunk-DL2UJNJ7.js.map → chunk-VRIPVLE7.js.map} +0 -0
  1149. /package/dist/{chunk-D3KLDIPQ.js.map → chunk-WLESMH4J.js.map} +0 -0
  1150. /package/dist/{chunk-OLBLXJNI.js.map → chunk-YILZR3XI.js.map} +0 -0
  1151. /package/dist/{chunk-JDR3HUEL.js.map → chunk-YJFLXOH4.js.map} +0 -0
  1152. /package/dist/{chunk-BL6RTOK3.js.map → chunk-YWHZYR6S.js.map} +0 -0
  1153. /package/dist/{chunk-XGPU2VDU.js.map → chunk-Z35KUMBW.js.map} +0 -0
  1154. /package/dist/{chunk-GACSA5A6.js.map → chunk-Z7I2ZFXS.js.map} +0 -0
  1155. /package/dist/{config-SMVIY6RW.js.map → config-55WGRLY3.js.map} +0 -0
  1156. /package/dist/{connect-HPQ32KGV.js.map → connect-3YY7MF3I.js.map} +0 -0
  1157. /package/dist/{conversion-upload-command-KTYAY7IG.js.map → conversion-upload-command-VM2P57K6.js.map} +0 -0
  1158. /package/dist/{creatives-RNOL4F4E.js.map → creatives-2DR3QHJW.js.map} +0 -0
  1159. /package/dist/{creatives-JPKA2RHU.js.map → creatives-DUR5Z5AN.js.map} +0 -0
  1160. /package/dist/{currency-R4ORE2U3.js.map → currency-X4KEACEP.js.map} +0 -0
  1161. /package/dist/{custom-conversions-5HJBB5XL.js.map → custom-conversions-OIA5Y2GX.js.map} +0 -0
  1162. /package/dist/{customers-OFZTEXST.js.map → customers-663K2OCP.js.map} +0 -0
  1163. /package/dist/{discover-GSJRZUOC.js.map → discover-2W42JB56.js.map} +0 -0
  1164. /package/dist/{draft-RIR2V6A2.js.map → draft-2ZX73IRO.js.map} +0 -0
  1165. /package/dist/{draft-WYDMLNYA.js.map → draft-CKLIIWXZ.js.map} +0 -0
  1166. /package/dist/{draft-ZCL7FVBH.js.map → draft-L5Q6KEER.js.map} +0 -0
  1167. /package/dist/{draft-DJIYEMZU.js.map → draft-MJRMZGMP.js.map} +0 -0
  1168. /package/dist/{experiment-I5CRLOVN.js.map → experiment-3VRHCQN5.js.map} +0 -0
  1169. /package/dist/{fit-53DGYRFD.js.map → fit-BEFCY2B4.js.map} +0 -0
  1170. /package/dist/{fonts-LFMBUT4R.js.map → fonts-C6XN5667.js.map} +0 -0
  1171. /package/dist/{forecast-4AG5F7YC.js.map → forecast-LYN6ZGQC.js.map} +0 -0
  1172. /package/dist/{funding-5W4LX6DU.js.map → funding-TCEPQXRQ.js.map} +0 -0
  1173. /package/dist/{ga4-BWVCDVIR.js.map → ga4-JE3HS36B.js.map} +0 -0
  1174. /package/dist/{google-NAA4BASO.js.map → google-24FDG4C4.js.map} +0 -0
  1175. /package/dist/{gsc-2MPE4N32.js.map → gsc-RMVOYIM3.js.map} +0 -0
  1176. /package/dist/{ideas-NK3KQHAK.js.map → ideas-M66FU45H.js.map} +0 -0
  1177. /package/dist/{images-2XS3JT7E.js.map → images-MM5OPUKV.js.map} +0 -0
  1178. /package/dist/{ingest-DHXWZZX4.js.map → ingest-KMLYCFF4.js.map} +0 -0
  1179. /package/dist/{intent-NSHW7EJT.js.map → intent-YCQCUCV3.js.map} +0 -0
  1180. /package/dist/{job-DRFCQ27M.js.map → job-SM2OQ2LO.js.map} +0 -0
  1181. /package/dist/{job-create-2EC25Y3J.js.map → job-create-ECZHPVKH.js.map} +0 -0
  1182. /package/dist/{job-status-UNVZRPIA.js.map → job-status-QSYDKIIV.js.map} +0 -0
  1183. /package/dist/{keyword-gap-ITTWKBWZ.js.map → keyword-gap-PUSF7EKY.js.map} +0 -0
  1184. /package/dist/{landing-QONUUP3C.js.map → landing-OZU5RRFV.js.map} +0 -0
  1185. /package/dist/{languages-MEFQQBJ2.js.map → languages-Q5SKO4AM.js.map} +0 -0
  1186. /package/dist/{line-items-OH426JGT.js.map → line-items-2V5FY33R.js.map} +0 -0
  1187. /package/dist/{locations-RLWAS6AC.js.map → locations-VQYREHYI.js.map} +0 -0
  1188. /package/dist/{lookup-ZJIP2M4X.js.map → lookup-MELV3RUL.js.map} +0 -0
  1189. /package/dist/{media-XCTZJIW4.js.map → media-BPI2VE6A.js.map} +0 -0
  1190. /package/dist/{media-ZWN7E777.js.map → media-EEWZZU3P.js.map} +0 -0
  1191. /package/dist/{media-sources-7L622UTF.js.map → media-sources-EQI3U4TC.js.map} +0 -0
  1192. /package/dist/{meta-EHKXH257.js.map → meta-SMJUQP37.js.map} +0 -0
  1193. /package/dist/{metrics-K6FDCMK7.js.map → metrics-EMAP7ESR.js.map} +0 -0
  1194. /package/dist/{output-WTEPRUPE.js.map → output-4QBQEM4C.js.map} +0 -0
  1195. /package/dist/{pages-J6AF5NDU.js.map → pages-DTQWQUKP.js.map} +0 -0
  1196. /package/dist/{performance-K4VB6L6Z.js.map → performance-NIF3CESZ.js.map} +0 -0
  1197. /package/dist/{pixels-ZZTB6NWF.js.map → pixels-2BKADWE6.js.map} +0 -0
  1198. /package/dist/{promoted-tweets-KPG4IUVD.js.map → promoted-tweets-653Q5AC6.js.map} +0 -0
  1199. /package/dist/{properties-RBLJCVSG.js.map → properties-VWKO3AAK.js.map} +0 -0
  1200. /package/dist/{query-QM7MBQD7.js.map → query-CXIOL7WI.js.map} +0 -0
  1201. /package/dist/{query-KQ675KJZ.js.map → query-OOP63DJF.js.map} +0 -0
  1202. /package/dist/{query-BJJYUGQZ.js.map → query-RBZFAIDK.js.map} +0 -0
  1203. /package/dist/{read-QME7JYVF.js.map → read-GOULD7YL.js.map} +0 -0
  1204. /package/dist/{reddit-Z7DOVIGR.js.map → reddit-JIHMAKAQ.js.map} +0 -0
  1205. /package/dist/{relevant-pages-VOICMQ7U.js.map → relevant-pages-FS7GBVXK.js.map} +0 -0
  1206. /package/dist/{research-HW4EVOZU.js.map → research-PNBACCCP.js.map} +0 -0
  1207. /package/dist/{rules-KTJ2ZZ62.js.map → rules-HY7S2YTD.js.map} +0 -0
  1208. /package/dist/{run-YRR3KOUU.js.map → run-QCNRR3CA.js.map} +0 -0
  1209. /package/dist/{scheduled-agents-DG7FTCUZ.js.map → scheduled-agents-OXYAVSIE.js.map} +0 -0
  1210. /package/dist/{shared-ZFULUOPQ.js.map → shared-CGEJI2RB.js.map} +0 -0
  1211. /package/dist/{sitemaps-F3HYH5ZP.js.map → sitemaps-5SP7PVQ6.js.map} +0 -0
  1212. /package/dist/{sites-JSMF72BY.js.map → sites-YZDPHBST.js.map} +0 -0
  1213. /package/dist/{sources-562ITR77.js.map → sources-FLUGHSVP.js.map} +0 -0
  1214. /package/dist/{stats-QP4LFQZJ.js.map → stats-EGGNFTKI.js.map} +0 -0
  1215. /package/dist/{studies-ZOEUY6YP.js.map → studies-6VUUOMZD.js.map} +0 -0
  1216. /package/dist/{sync-PHH65JFS.js.map → sync-SCM6JGJP.js.map} +0 -0
  1217. /package/dist/{sync-definition-NJPT6ABG.js.map → sync-definition-OGQ5XTQE.js.map} +0 -0
  1218. /package/dist/{tag-manager-F7PVTDBB.js.map → tag-manager-REKD4WGU.js.map} +0 -0
  1219. /package/dist/{tags-5KBOJJ5R.js.map → tags-CZTRQNXV.js.map} +0 -0
  1220. /package/dist/{targeting-constants-236ES5HE.js.map → targeting-constants-MRQB4N5I.js.map} +0 -0
  1221. /package/dist/{targeting-criteria-FJWNK53T.js.map → targeting-criteria-HSAESZIR.js.map} +0 -0
  1222. /package/dist/{terms-O6ODXEOK.js.map → terms-D2KAFHKJ.js.map} +0 -0
  1223. /package/dist/{testimonials-WAPFIGFJ.js.map → testimonials-G3OCNPBY.js.map} +0 -0
  1224. /package/dist/{themes-B4LCQUXB.js.map → themes-X56KIX3Z.js.map} +0 -0
  1225. /package/dist/{tweets-IUINLOXF.js.map → tweets-JN6ARKF6.js.map} +0 -0
  1226. /package/dist/{videos-ZJCTODEB.js.map → videos-36AXDUGZ.js.map} +0 -0
  1227. /package/dist/{viewer-check-GWZNGWCO.js.map → viewer-check-6HL4OUQY.js.map} +0 -0
  1228. /package/dist/{winning-ads-W7GTXTX7.js.map → winning-ads-GMM5W2O4.js.map} +0 -0
  1229. /package/dist/{write-commands-OTWH6BKZ.js.map → write-commands-B25W4FP5.js.map} +0 -0
  1230. /package/dist/{write-commands-5J47ZNO4.js.map → write-commands-GNNEUVDW.js.map} +0 -0
  1231. /package/dist/{x-V4NNNWRU.js.map → x-JNR5SO6F.js.map} +0 -0
@@ -0,0 +1,543 @@
1
+ import {
2
+ readCreativeSpecs,
3
+ rulesHints,
4
+ rulesView,
5
+ waiverCounts
6
+ } from "./chunk-QVQKCVP7.js";
7
+ import {
8
+ withDefinitions
9
+ } from "./chunk-USCADMM3.js";
10
+ import {
11
+ liveViewerLookups
12
+ } from "./chunk-4XHCEYHI.js";
13
+ import "./chunk-HGBJQGO5.js";
14
+ import "./chunk-T3P6O2VU.js";
15
+ import "./chunk-WHBFXR6F.js";
16
+ import {
17
+ buildSearchBody
18
+ } from "./chunk-TT7RFKUE.js";
19
+ import "./chunk-NNLVFRF6.js";
20
+ import "./chunk-XB63MQ6E.js";
21
+ import {
22
+ buildNext,
23
+ ideasReport
24
+ } from "./chunk-2GYCWRF3.js";
25
+ import "./chunk-DQVI7GCX.js";
26
+ import "./chunk-EKX37C3T.js";
27
+ import {
28
+ readInsights
29
+ } from "./chunk-SWN6OHXG.js";
30
+ import {
31
+ readAllRules,
32
+ readCompanyReading
33
+ } from "./chunk-QIOFOD4K.js";
34
+ import {
35
+ AWARENESS_STAGES,
36
+ IDEA_ANGLES,
37
+ IDEA_FORMATS
38
+ } from "./chunk-A3IQAONL.js";
39
+ import {
40
+ researchCustomers
41
+ } from "./chunk-4UZUUSVL.js";
42
+ import "./chunk-YWHZYR6S.js";
43
+ import "./chunk-AQRXXC6E.js";
44
+ import "./chunk-GSKZ3ZDO.js";
45
+ import "./chunk-3YJNSUNF.js";
46
+ import "./chunk-G6XKD7QE.js";
47
+ import "./chunk-ERSX3MKH.js";
48
+ import "./chunk-QPESDKZC.js";
49
+ import "./chunk-E44NXCTL.js";
50
+ import {
51
+ findWorkspaceRoot
52
+ } from "./chunk-EJGAJHLB.js";
53
+ import "./chunk-LRV6M2WB.js";
54
+ import {
55
+ selectRules
56
+ } from "./chunk-7HZSORAB.js";
57
+ import "./chunk-MCJ5I5LR.js";
58
+ import {
59
+ viewerFromKnowledge
60
+ } from "./chunk-2WZI36D3.js";
61
+ import "./chunk-65Y3RCWP.js";
62
+ import "./chunk-LNNTHEL7.js";
63
+ import "./chunk-FOMFU2RX.js";
64
+ import "./chunk-PSGIHSNC.js";
65
+ import "./chunk-PONLPYD7.js";
66
+ import "./chunk-UDIEKCIR.js";
67
+ import "./chunk-PC3FJEZH.js";
68
+ import "./chunk-CAZGM2NX.js";
69
+ import "./chunk-NZS3KEQ2.js";
70
+ import "./chunk-GIWHHCD6.js";
71
+ import "./chunk-SOPVIIUW.js";
72
+ import "./chunk-G4FG5EQO.js";
73
+ import "./chunk-NSBNIPIW.js";
74
+ import "./chunk-46YLDIQG.js";
75
+ import {
76
+ ApiError,
77
+ apiGet,
78
+ apiPost
79
+ } from "./chunk-X7VQFLHI.js";
80
+ import "./chunk-LU4HI4KI.js";
81
+ import {
82
+ getEnv
83
+ } from "./chunk-LGK7UWBN.js";
84
+ import {
85
+ registerSchema,
86
+ writeJson
87
+ } from "./chunk-Q7US4OOA.js";
88
+ import "./chunk-YQSBHWOI.js";
89
+
90
+ // src/commands/creatives/brief.ts
91
+ import { readFileSync } from "fs";
92
+ import { readdir, readFile } from "fs/promises";
93
+ import path from "path";
94
+ import { defineCommand } from "citty";
95
+
96
+ // src/commands/creatives/brief-model.ts
97
+ var MIN_IMPRESSIONS = 1e3;
98
+ var LOW_CTR = 1.5;
99
+ var LOW_CVR = 1;
100
+ var round = (n) => Math.round(n * 100) / 100;
101
+ function diagnoseBottleneck(totals) {
102
+ const ctr = totals.impressions > 0 ? round(totals.linkClicks / totals.impressions * 100) : null;
103
+ const cvr = totals.linkClicks > 0 ? round(totals.results / totals.linkClicks * 100) : null;
104
+ if (totals.impressions < MIN_IMPRESSIONS || ctr === null) {
105
+ return { verdict: "too_little_data", ctr, cvr, why: "Too little delivery in the last 30 days to call it." };
106
+ }
107
+ if (ctr < LOW_CTR) {
108
+ return {
109
+ verdict: "hook",
110
+ ctr,
111
+ cvr,
112
+ why: `Link click-through ${ctr}% (under ${LOW_CTR}%): people scroll past. New ideas and hooks are the fix.`
113
+ };
114
+ }
115
+ if (cvr !== null && cvr < LOW_CVR) {
116
+ return {
117
+ verdict: "after_click",
118
+ ctr,
119
+ cvr,
120
+ why: `People click (${ctr}%) but only ${cvr}% act: the page or the offer loses them, and a new ad will not fix that. Say so, make the ads' promise match the page, and make one idea an offer idea.`
121
+ };
122
+ }
123
+ return {
124
+ verdict: "none",
125
+ ctr,
126
+ cvr,
127
+ why: `Click-through ${ctr}% and ${cvr ?? 0}% of clicks act: the ads work. Build on the winners first.`
128
+ };
129
+ }
130
+ var CONVERSION_ACTION = /^(lead|purchase|complete_registration|submit_application|schedule|contact|start_trial|subscribe|offsite_conversion\.|onsite_conversion\.lead|onsite_web_lead|omni_purchase|omni_complete_registration)/;
131
+ function resultsOf(actions) {
132
+ if (!Array.isArray(actions)) return 0;
133
+ let total = 0;
134
+ for (const action of actions) {
135
+ const type = action?.action_type;
136
+ const value = Number(action?.value ?? 0);
137
+ if (typeof type === "string" && CONVERSION_ACTION.test(type) && Number.isFinite(value)) total += value;
138
+ }
139
+ return total;
140
+ }
141
+ var MIN_OBSERVED = 5;
142
+ var MAX_QUOTES = 6;
143
+ function customerTruth(insights) {
144
+ const byType = {};
145
+ for (const insight of insights) byType[insight.type] = (byType[insight.type] ?? 0) + 1;
146
+ const observed = insights.filter((i) => i.status === "observed");
147
+ const seen = /* @__PURE__ */ new Set();
148
+ const quotes = [];
149
+ for (const insight of observed) {
150
+ if (seen.has(insight.type) || quotes.length >= MAX_QUOTES) continue;
151
+ seen.add(insight.type);
152
+ quotes.push({
153
+ id: insight.id,
154
+ type: insight.type,
155
+ quote: insight.quote.length > 140 ? `${insight.quote.slice(0, 137)}...` : insight.quote
156
+ });
157
+ }
158
+ return { total: insights.length, observed: observed.length, thin: observed.length < MIN_OBSERVED, byType, quotes };
159
+ }
160
+ var MAX_SAYING = 6;
161
+ var KEPT_STAGES = /* @__PURE__ */ new Set(["proven", "evergreen"]);
162
+ function keptAfterTesting(ad) {
163
+ return ad.survived_test === true || KEPT_STAGES.has(ad.stage ?? "");
164
+ }
165
+ var SAME_ANGLE = 0.4;
166
+ function angleWords(angle) {
167
+ return new Set(
168
+ angle.toLowerCase().split(/[^\p{L}]+/u).filter((w) => w.length >= 4 && w !== "your" && w !== "with").map((w) => w.replace(/s$/, ""))
169
+ );
170
+ }
171
+ function overlap(a, b) {
172
+ const shared = [...a].filter((w) => b.has(w)).length;
173
+ const all = (/* @__PURE__ */ new Set([...a, ...b])).size;
174
+ return all === 0 ? 0 : shared / all;
175
+ }
176
+ function tally(values) {
177
+ const counts = {};
178
+ for (const value of values) if (value) counts[value] = (counts[value] ?? 0) + 1;
179
+ return counts;
180
+ }
181
+ function marketMap(ads, source) {
182
+ const groups = [];
183
+ for (const ad of ads) {
184
+ const angle = ad.dna.angle?.trim();
185
+ if (!angle) continue;
186
+ const words = angleWords(angle);
187
+ const brand = ad.advertiser ?? "?";
188
+ let group = groups.find((g) => overlap(g.words, words) >= SAME_ANGLE);
189
+ if (!group) {
190
+ group = { angle, words, brands: /* @__PURE__ */ new Set(), kept: /* @__PURE__ */ new Set() };
191
+ groups.push(group);
192
+ }
193
+ group.brands.add(brand);
194
+ if (keptAfterTesting(ad)) group.kept.add(brand);
195
+ }
196
+ const saying = groups.map((g) => ({ angle: g.angle, brands: g.brands.size, ...g.kept.size > 0 ? { kept_brands: g.kept.size } : {} })).sort((a, b) => (b.kept_brands ?? 0) - (a.kept_brands ?? 0) || b.brands - a.brands).slice(0, MAX_SAYING);
197
+ const keptAds = ads.filter(keptAfterTesting).length;
198
+ const stages = tally(ads.map((a) => a.dna.sophistication_stage));
199
+ const sophistication = Object.entries(stages).sort((a, b) => b[1] - a[1])[0]?.[0] ?? null;
200
+ const awareness = tally(ads.map((a) => a.dna.awareness_stage));
201
+ return {
202
+ source,
203
+ ads: ads.length,
204
+ brands: new Set(ads.map((a) => a.advertiser ?? "?")).size,
205
+ sophistication,
206
+ saying,
207
+ awareness,
208
+ containers: tally(ads.map((a) => a.dna.container)),
209
+ unspoken: AWARENESS_STAGES.filter((stage) => !awareness[stage]),
210
+ ...keptAds > 0 ? { kept_ads: keptAds } : {}
211
+ };
212
+ }
213
+
214
+ // src/commands/creatives/brief.ts
215
+ var DESCRIPTION = `Start here before making ads: one read of everything that decides what to make. Who sees the ads, what already works in the account and where it loses people (a verdict, not raw numbers), what this company's reviewers approved and rejected and what they said in their own words, the company's standing rules for every ad, what customers said in their own words, and the ideas already on file.
216
+
217
+ baker creatives brief # the viewer from the Knowledge
218
+ baker creatives brief --adset <id> # the viewer that ad set reaches
219
+ baker creatives brief --account-id act_<id> # when more than one Meta account is connected
220
+
221
+ Then write 4-8 ideas in src/creatives/_ideas/ and run \`baker creatives ideas\`. With few customer quotes on file it gathers them itself first (\`baker research customers\`, about 30 s; --no-research to skip).`;
222
+ var ARGS = {
223
+ adset: {
224
+ type: "string",
225
+ description: "The Meta ad set the ads are for: its viewer replaces the Knowledge's",
226
+ required: false
227
+ },
228
+ "account-id": {
229
+ type: "string",
230
+ description: "Meta ad account to read (act_<id>); default: the one connected account",
231
+ required: false
232
+ },
233
+ full: {
234
+ type: "boolean",
235
+ description: "Every quote, idea and creative instead of the top few",
236
+ required: false,
237
+ default: false
238
+ },
239
+ research: {
240
+ type: "boolean",
241
+ description: "Gather customer quotes first when few are on file (default true; --no-research skips it)",
242
+ required: false,
243
+ default: true
244
+ }
245
+ };
246
+ registerSchema({ command: "creatives.brief", description: DESCRIPTION, args: ARGS });
247
+ var unavailable = (err) => ({
248
+ unavailable: err instanceof Error ? err.message.slice(0, 200) : "could not be read"
249
+ });
250
+ async function section(read) {
251
+ try {
252
+ return await read();
253
+ } catch (err) {
254
+ return unavailable(err);
255
+ }
256
+ }
257
+ function isAvailable(value) {
258
+ return !(value !== null && typeof value === "object" && "unavailable" in value);
259
+ }
260
+ async function companyStatus(root) {
261
+ const doc = await readFile(path.join(root, "COMPANY.md"), "utf8").catch(() => "");
262
+ return doc.trim() && !/^#\s*Company\s*\n+\s*TODO/m.test(doc) ? "ready" : "missing";
263
+ }
264
+ async function readOffers(root) {
265
+ const dir = path.join(root, "src", "content", "offers");
266
+ const files = (await readdir(dir, { recursive: true }).catch(() => [])).filter(
267
+ (f) => f.endsWith(".md")
268
+ );
269
+ return files.map((f) => f.replace(/\.md$/, "")).sort();
270
+ }
271
+ function readDefinition(root, slug) {
272
+ try {
273
+ return readFileSync(path.join(root, "src", "creatives", slug, "_definition.md"), "utf8");
274
+ } catch {
275
+ return null;
276
+ }
277
+ }
278
+ async function readViewer(root, adSet) {
279
+ const lookups = liveViewerLookups(root);
280
+ if (adSet) {
281
+ const read = await lookups.adSetViewer(adSet).catch(() => null);
282
+ if (read) return read;
283
+ }
284
+ const personas = await lookups.personas().catch(() => []);
285
+ return viewerFromKnowledge({ personas: personas.map((p) => p.segment ?? p.title ?? p.slug) });
286
+ }
287
+ var MARKET_ADS = 40;
288
+ var MARKET_FALLBACK_ADS = 15;
289
+ var MARKET_SEARCH_MS = 12e3;
290
+ async function readMarket(root) {
291
+ const company = await readCompanyReading(root);
292
+ const query = company?.category ?? company?.sells;
293
+ if (!query) return null;
294
+ const search = (body) => apiPost("/api/ad-library/winners/search", body, {
295
+ timeoutMs: MARKET_SEARCH_MS
296
+ }).catch((err) => {
297
+ if (err instanceof ApiError && err.code === "TIMEOUT") {
298
+ throw new Error("the ad library did not answer in time, so competitors' claims are left out");
299
+ }
300
+ throw err;
301
+ });
302
+ const [followed, all] = await Promise.allSettled([
303
+ search(buildSearchBody({ scope: "followed", platform: "meta", limit: MARKET_ADS, maxPerAdvertiser: 8 })),
304
+ search(buildSearchBody({ query, scope: "all", platform: "meta", limit: MARKET_FALLBACK_ADS, maxPerAdvertiser: 3 }))
305
+ ]);
306
+ if (followed.status === "fulfilled" && followed.value.results.length > 0)
307
+ return marketMap(followed.value.results, "followed");
308
+ if (all.status === "rejected") throw all.reason;
309
+ return all.value.results.length > 0 ? marketMap(all.value.results, "library") : null;
310
+ }
311
+ async function metaAccountId(given) {
312
+ if (given) return given.startsWith("act_") ? given : `act_${given}`;
313
+ const named = getEnv().BAKER_META_AD_ACCOUNT_ID;
314
+ if (named) return `act_${named.replace(/^act_/, "")}`;
315
+ const accounts = await apiGet("/api/ads/meta/accounts");
316
+ const ids = accounts.flatMap((a) => {
317
+ const id2 = a.externalId ?? a.id;
318
+ return typeof id2 === "string" && id2 ? [id2] : [];
319
+ });
320
+ if (ids.length !== 1) return null;
321
+ const id = ids[0];
322
+ return id.startsWith("act_") ? id : `act_${id}`;
323
+ }
324
+ async function readBottleneck(accountId) {
325
+ const rows = await apiPost("/api/ads/meta/insights", {
326
+ object: accountId,
327
+ level: "account",
328
+ fields: ["impressions", "inline_link_clicks", "actions", "spend"],
329
+ actionBreakdowns: ["action_type"],
330
+ datePreset: "last_30d",
331
+ limit: 10
332
+ });
333
+ const totals = { impressions: 0, linkClicks: 0, results: 0 };
334
+ for (const row of rows) {
335
+ totals.impressions += Number(row.impressions ?? 0);
336
+ totals.linkClicks += Number(row.inline_link_clicks ?? 0);
337
+ totals.results += resultsOf(row.actions);
338
+ }
339
+ return diagnoseBottleneck(totals);
340
+ }
341
+ function leanCreative(c) {
342
+ return {
343
+ creative: c.slug ?? c.title,
344
+ costPerResult: c.costPerResult,
345
+ ...c.currency ? { currency: c.currency } : {},
346
+ ctr: c.ctr,
347
+ fatigue: c.fatigue,
348
+ ...c.definition?.idea ? { idea: c.definition.idea } : {},
349
+ ...c.definition?.angle ? { angle: c.definition.angle } : {}
350
+ };
351
+ }
352
+ function whatWorks(creatives, limit = 3) {
353
+ const priced = creatives.filter((c) => c.costPerResult !== null && c.costPerResult > 0);
354
+ const best = [...priced].sort((a, b) => (a.costPerResult ?? 0) - (b.costPerResult ?? 0)).slice(0, limit);
355
+ const tired = creatives.filter((c) => c.fatigue === "fatigued" || c.fatigue === "dead");
356
+ return { best: best.map(leanCreative), replace: tired.map(leanCreative) };
357
+ }
358
+ var HEARD_IT_ALL = /^s[345]/;
359
+ function customersHint(parts) {
360
+ if (parts.researched) {
361
+ return parts.researched.written > 0 ? `${parts.researched.written} customer quotes were just gathered from reviews and Reddit and are in \`customers\`: cite them by id in each idea's \`evidence\`.` : "Customer research found nothing to keep: ideas go in as explore bets (an empty `evidence` list). Never research customers again in this turn.";
362
+ }
363
+ if (!parts.customers.thin) return null;
364
+ return `Only ${parts.customers.observed} customer quotes on file: run \`baker research customers\` now, before writing ideas, so they stand on what customers said. It gathers reviews, Reddit and the web and writes the quotes with their sources in about a minute; never a subagent or web searches of your own for this.`;
365
+ }
366
+ function briefHints(parts) {
367
+ const hints = [];
368
+ if (parts.company === "missing") {
369
+ hints.push("COMPANY.md is empty: run /company-discovery first, or every idea is a guess about the business.");
370
+ }
371
+ const customers = customersHint(parts);
372
+ if (customers) hints.push(customers);
373
+ if (parts.rules) {
374
+ hints.push(
375
+ `Write every idea and every ad within the ${parts.rules} rules in \`rules\`: an ad saying words one bans (\`bans\`) is refused before it renders, and every finished ad is checked against the ones a person taught. When the person asks for something a rule forbids, do it and record why in the ad's prompt.json (\`"waive": [{"rule": "<id>", "why": "<their ask>"}]\`).`
376
+ );
377
+ }
378
+ if (parts.bottleneck && isAvailable(parts.bottleneck) && parts.bottleneck.verdict === "after_click") {
379
+ hints.push("The account loses people after the click: tell the person, and make one idea an offer idea.");
380
+ }
381
+ if (parts.market?.sophistication && HEARD_IT_ALL.test(parts.market.sophistication)) {
382
+ hints.push(
383
+ `This market has heard the plain claim (sophistication ${parts.market.sophistication}): lead with how it works (a mechanism), proof, or an angle nobody uses, never a bigger claim.`
384
+ );
385
+ }
386
+ const claims = parts.market?.saying.map(
387
+ (s) => s.kept_brands ? `"${s.angle}" (kept after testing by ${s.kept_brands})` : `"${s.angle}"`
388
+ ) ?? [];
389
+ if (claims.length > 0) {
390
+ hints.push(
391
+ `Competitors already say ${claims.join(", ")}. A message one of them could also run is not a new idea, however it is worded: say what only we have (the offer, a proof, a customer's words) or how it works.`
392
+ );
393
+ }
394
+ for (const won of parts.learned.winners) {
395
+ hints.push(
396
+ `${won.idea} won in the account ("${won.message}"): build on it first, the same message in a new format or for a new persona.`
397
+ );
398
+ }
399
+ if (parts.learned.failed.length > 0) {
400
+ const lost = parts.learned.failed.map((f) => `"${f.message}"`).join(", ");
401
+ hints.push(`Never repeat a message that lost in the account: ${lost}.`);
402
+ }
403
+ if (parts.rejected > parts.approved && parts.rejected > 0) {
404
+ hints.push(
405
+ "Reviewers rejected more than they approved: read `taste.notes` (their own words) and keep every idea clear of each."
406
+ );
407
+ }
408
+ if (parts.buildNext.length > 0) {
409
+ hints.push(`Ideas ready to build: ${parts.buildNext.join(", ")} (\`baker creatives make <idea>\`).`);
410
+ } else {
411
+ hints.push(
412
+ `Write 4-8 ideas in src/creatives/_ideas/<idea>.md (who, message, evidence, awareness, angle, format, job, why), then \`baker creatives ideas\`. awareness: ${AWARENESS_STAGES.join(" | ")}. angle: ${IDEA_ANGLES.join(", ")}. format: ${IDEA_FORMATS.join(", ")}.`
413
+ );
414
+ }
415
+ return hints;
416
+ }
417
+ async function readBrief(root, args) {
418
+ const account = metaAccountId(args.accountId).catch(() => null);
419
+ const [company, offers, viewer, insights, ideas, performance, feedback, accountId, bottleneck, market, rules, specs] = await Promise.all([
420
+ companyStatus(root),
421
+ readOffers(root),
422
+ readViewer(root, args.adset),
423
+ readInsights(root),
424
+ ideasReport(root),
425
+ section(
426
+ async () => withDefinitions(
427
+ await apiPost("/api/creatives/performance", {}),
428
+ (slug) => readDefinition(root, slug)
429
+ )
430
+ ),
431
+ section(() => apiPost("/api/creatives/feedback", {})),
432
+ account,
433
+ account.then((id) => id ? section(() => readBottleneck(id)) : null),
434
+ section(() => readMarket(root)),
435
+ readAllRules(root).then((all) => selectRules(all, {})),
436
+ readCreativeSpecs(root)
437
+ ]);
438
+ return {
439
+ company,
440
+ offers,
441
+ viewer,
442
+ insights,
443
+ ideas,
444
+ performance,
445
+ feedback,
446
+ accountId,
447
+ bottleneck,
448
+ market,
449
+ rules,
450
+ specs
451
+ };
452
+ }
453
+ function accountPart(brief, full) {
454
+ if (!brief.accountId) {
455
+ return { unavailable: "no single Meta ad account connected: pass --account-id act_<id>, or work from customers" };
456
+ }
457
+ const works = isAvailable(brief.performance) ? whatWorks(brief.performance.data.creatives, full ? 10 : 3) : { creatives: brief.performance };
458
+ return { id: brief.accountId, bottleneck: brief.bottleneck, ...works };
459
+ }
460
+ function marketPart(market, full) {
461
+ if (!isAvailable(market)) return market;
462
+ if (!market) return { unavailable: "no library ads match what COMPANY.md says the company sells" };
463
+ if (full) return market;
464
+ const { containers: _containers, ...lean } = market;
465
+ return lean;
466
+ }
467
+ function tastePart(feedback) {
468
+ const { summary, notes } = feedback.data;
469
+ return {
470
+ approved: summary.approved,
471
+ rejected: summary.rejected,
472
+ topRejectionReasons: summary.topRejectionReasons.slice(0, 3).map((r) => r.label),
473
+ ...notes && notes.length > 0 ? { notes: notes.map((n) => ({ creative: n.creative, note: n.note })) } : {}
474
+ };
475
+ }
476
+ function briefEnvelope(brief, full, researched) {
477
+ const customers = customerTruth(brief.insights);
478
+ const summary = isAvailable(brief.feedback) ? brief.feedback.data.summary : null;
479
+ const next = buildNext(brief.ideas.ideas);
480
+ const toBuild = brief.ideas.ideas.filter((i) => i.status === "idea").length;
481
+ const withStatus = (status) => brief.ideas.ideas.filter((i) => i.status === status).map((i) => ({ idea: i.id, message: i.message }));
482
+ const learned = { winners: withStatus("winner"), failed: withStatus("failed") };
483
+ return {
484
+ ok: true,
485
+ data: {
486
+ company: brief.company,
487
+ viewer: { temperature: brief.viewer.temperature, knows: brief.viewer.knows, source: brief.viewer.source },
488
+ offers: brief.offers,
489
+ account: accountPart(brief, full),
490
+ taste: isAvailable(brief.feedback) ? tastePart(brief.feedback) : brief.feedback,
491
+ customers: full ? { ...customers, quotes: brief.insights.map((i) => ({ id: i.id, type: i.type, quote: i.quote })) } : customers,
492
+ market: marketPart(brief.market, full),
493
+ rules: rulesView(brief.rules, { full }),
494
+ ideas: {
495
+ to_build: toBuild,
496
+ built: brief.ideas.ideas.length - toBuild,
497
+ build_next: next,
498
+ ...learned.winners.length > 0 ? { winners: learned.winners } : {},
499
+ ...learned.failed.length > 0 ? { failed: learned.failed } : {}
500
+ }
501
+ },
502
+ hints: briefHints({
503
+ company: brief.company,
504
+ customers,
505
+ bottleneck: brief.bottleneck,
506
+ ideasToBuild: toBuild,
507
+ buildNext: next,
508
+ approved: summary?.approved ?? 0,
509
+ rejected: summary?.rejected ?? 0,
510
+ market: isAvailable(brief.market) ? brief.market : null,
511
+ learned,
512
+ ...researched ? { researched } : {},
513
+ rules: brief.rules.length
514
+ }).concat(rulesHints(brief.rules, waiverCounts(brief.specs)))
515
+ };
516
+ }
517
+ var briefCommand = defineCommand({
518
+ meta: { name: "brief", description: DESCRIPTION },
519
+ args: ARGS,
520
+ async run({ args }) {
521
+ const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();
522
+ const full = args.full === true;
523
+ const thin = args.research !== false && customerTruth(await readInsights(root)).thin;
524
+ const research = thin ? researchCustomers(root, {}).catch(() => null) : null;
525
+ const brief = await readBrief(root, {
526
+ ...typeof args.adset === "string" && args.adset ? { adset: args.adset } : {},
527
+ ...typeof args["account-id"] === "string" && args["account-id"] ? { accountId: args["account-id"] } : {},
528
+ full
529
+ });
530
+ const found = research ? await research : null;
531
+ const written = found?.shown.length ?? 0;
532
+ const insights = written > 0 ? await readInsights(root) : brief.insights;
533
+ writeJson(briefEnvelope({ ...brief, insights }, full, research ? { written } : void 0));
534
+ }
535
+ });
536
+ export {
537
+ briefCommand,
538
+ briefEnvelope,
539
+ briefHints,
540
+ tastePart,
541
+ whatWorks
542
+ };
543
+ //# sourceMappingURL=brief-OPQ7ICOY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/creatives/brief.ts","../src/commands/creatives/brief-model.ts"],"sourcesContent":["/**\n * `baker creatives brief`: everything the agent needs before deciding what ads to make, in one\n * compact read. Who sees the ads, what the account says works and where it loses people, what the\n * company's reviewers liked, what customers said, and which ideas already exist. Each part is\n * read on its own and a failed read is reported as missing, never as a failed brief.\n */\nimport { readFileSync } from \"node:fs\";\nimport { readdir, readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport type { CreativePerformance, CreativesFeedbackResponse, CreativesPerformanceResponse } from \"@baker/api\";\nimport type { ScopedWinnersSearchResponse } from \"@baker/api/ad-library\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiGet, apiPost } from \"../../client.ts\";\nimport { readCompanyReading } from \"../../engine/creative-context/company.ts\";\nimport { readAllRules } from \"../../engine/creative-context/index.ts\";\nimport { selectRules } from \"../../engine/creative-rules/select.ts\";\nimport { getEnv } from \"../../env.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { type ViewerProfile, viewerFromKnowledge } from \"../../viewer-profile.ts\";\nimport { findWorkspaceRoot } from \"../canvas/normalize-paths.ts\";\nimport { liveViewerLookups } from \"../canvas/viewer-check.ts\";\nimport { researchCustomers } from \"../research/customers.ts\";\nimport { buildSearchBody } from \"../winning-ads/search.ts\";\nimport {\n type Bottleneck,\n type CustomerTruth,\n customerTruth,\n diagnoseBottleneck,\n type MarketMap,\n marketMap,\n resultsOf,\n} from \"./brief-model.ts\";\nimport { buildNext, ideasReport } from \"./ideas.ts\";\nimport { AWARENESS_STAGES, IDEA_ANGLES, IDEA_FORMATS } from \"./ideas-model.ts\";\nimport { readInsights } from \"./ideas-workspace.ts\";\nimport { withDefinitions } from \"./performance.ts\";\nimport { readCreativeSpecs, rulesHints, rulesView, waiverCounts } from \"./rules-view.ts\";\n\nconst DESCRIPTION = `Start here before making ads: one read of everything that decides what to make. Who sees the ads, what already works in the account and where it loses people (a verdict, not raw numbers), what this company's reviewers approved and rejected and what they said in their own words, the company's standing rules for every ad, what customers said in their own words, and the ideas already on file.\n\n baker creatives brief # the viewer from the Knowledge\n baker creatives brief --adset <id> # the viewer that ad set reaches\n baker creatives brief --account-id act_<id> # when more than one Meta account is connected\n\nThen write 4-8 ideas in src/creatives/_ideas/ and run \\`baker creatives ideas\\`. With few customer quotes on file it gathers them itself first (\\`baker research customers\\`, about 30 s; --no-research to skip).`;\n\nconst ARGS = {\n adset: {\n type: \"string\",\n description: \"The Meta ad set the ads are for: its viewer replaces the Knowledge's\",\n required: false,\n },\n \"account-id\": {\n type: \"string\",\n description: \"Meta ad account to read (act_<id>); default: the one connected account\",\n required: false,\n },\n full: {\n type: \"boolean\",\n description: \"Every quote, idea and creative instead of the top few\",\n required: false,\n default: false,\n },\n research: {\n type: \"boolean\",\n description: \"Gather customer quotes first when few are on file (default true; --no-research skips it)\",\n required: false,\n default: true,\n },\n} as const;\n\nregisterSchema({ command: \"creatives.brief\", description: DESCRIPTION, args: ARGS });\n\ntype Section<T> = T | { unavailable: string };\n\nconst unavailable = (err: unknown) => ({\n unavailable: err instanceof Error ? err.message.slice(0, 200) : \"could not be read\",\n});\n\nasync function section<T>(read: () => Promise<T>): Promise<Section<T>> {\n try {\n return await read();\n } catch (err) {\n return unavailable(err);\n }\n}\n\nfunction isAvailable<T>(value: Section<T>): value is T {\n return !(value !== null && typeof value === \"object\" && \"unavailable\" in value);\n}\n\nasync function companyStatus(root: string): Promise<\"ready\" | \"missing\"> {\n const doc = await readFile(path.join(root, \"COMPANY.md\"), \"utf8\").catch(() => \"\");\n return doc.trim() && !/^#\\s*Company\\s*\\n+\\s*TODO/m.test(doc) ? \"ready\" : \"missing\";\n}\n\nasync function readOffers(root: string): Promise<string[]> {\n const dir = path.join(root, \"src\", \"content\", \"offers\");\n const files = ((await readdir(dir, { recursive: true }).catch(() => [])) as string[]).filter((f) =>\n f.endsWith(\".md\"),\n );\n return files.map((f) => f.replace(/\\.md$/, \"\")).sort();\n}\n\nfunction readDefinition(root: string, slug: string): string | null {\n try {\n return readFileSync(path.join(root, \"src\", \"creatives\", slug, \"_definition.md\"), \"utf8\");\n } catch {\n return null;\n }\n}\n\nasync function readViewer(root: string, adSet: string | undefined): Promise<ViewerProfile> {\n const lookups = liveViewerLookups(root);\n if (adSet) {\n const read = await lookups.adSetViewer(adSet).catch(() => null);\n if (read) return read;\n }\n const personas = await lookups.personas().catch(() => []);\n return viewerFromKnowledge({ personas: personas.map((p) => p.segment ?? p.title ?? p.slug) });\n}\n\nconst MARKET_ADS = 40;\nconst MARKET_FALLBACK_ADS = 15;\n/**\n * The most a market search may hold the brief: a followed brands' browse answers in ~2 s, a short\n * library query in ~8 s (dev, Oct 2026). The market is context, not a step: a slow library leaves it out.\n */\nconst MARKET_SEARCH_MS = 12_000;\n\n/** What the market's ads already say: the brands the company follows, else the whole library. */\nasync function readMarket(root: string): Promise<MarketMap | null> {\n const company = await readCompanyReading(root);\n // What a library files the company under, in English; its own words when no model read it.\n const query = company?.category ?? company?.sells;\n if (!query) return null;\n const search = (body: Record<string, unknown>) =>\n apiPost<ScopedWinnersSearchResponse>(\"/api/ad-library/winners/search\", body, {\n timeoutMs: MARKET_SEARCH_MS,\n }).catch((err: unknown) => {\n if (err instanceof ApiError && err.code === \"TIMEOUT\") {\n throw new Error(\"the ad library did not answer in time, so competitors' claims are left out\");\n }\n throw err;\n });\n // The followed brands' best ads, browsed (no query, so no relevance judge), and the library's ads\n // for what the company sells, asked at once: the second answers in ~8 s, after the first's ~2 s.\n const [followed, all] = await Promise.allSettled([\n search(buildSearchBody({ scope: \"followed\", platform: \"meta\", limit: MARKET_ADS, maxPerAdvertiser: 8 })),\n search(buildSearchBody({ query, scope: \"all\", platform: \"meta\", limit: MARKET_FALLBACK_ADS, maxPerAdvertiser: 3 })),\n ]);\n if (followed.status === \"fulfilled\" && followed.value.results.length > 0)\n return marketMap(followed.value.results, \"followed\");\n if (all.status === \"rejected\") throw all.reason;\n return all.value.results.length > 0 ? marketMap(all.value.results, \"library\") : null;\n}\n\ntype MetaAccount = { externalId?: unknown; id?: unknown };\n\nasync function metaAccountId(given: string | undefined): Promise<string | null> {\n if (given) return given.startsWith(\"act_\") ? given : `act_${given}`;\n const named = getEnv().BAKER_META_AD_ACCOUNT_ID;\n if (named) return `act_${named.replace(/^act_/, \"\")}`;\n const accounts = await apiGet<MetaAccount[]>(\"/api/ads/meta/accounts\");\n const ids = accounts.flatMap((a) => {\n const id = a.externalId ?? a.id;\n return typeof id === \"string\" && id ? [id] : [];\n });\n if (ids.length !== 1) return null;\n const id = ids[0] as string;\n return id.startsWith(\"act_\") ? id : `act_${id}`;\n}\n\nasync function readBottleneck(accountId: string): Promise<Bottleneck> {\n const rows = await apiPost<Array<Record<string, unknown>>>(\"/api/ads/meta/insights\", {\n object: accountId,\n level: \"account\",\n fields: [\"impressions\", \"inline_link_clicks\", \"actions\", \"spend\"],\n actionBreakdowns: [\"action_type\"],\n datePreset: \"last_30d\",\n limit: 10,\n });\n const totals = { impressions: 0, linkClicks: 0, results: 0 };\n for (const row of rows) {\n totals.impressions += Number(row.impressions ?? 0);\n totals.linkClicks += Number(row.inline_link_clicks ?? 0);\n totals.results += resultsOf(row.actions);\n }\n return diagnoseBottleneck(totals);\n}\n\nfunction leanCreative(c: CreativePerformance) {\n return {\n creative: c.slug ?? c.title,\n costPerResult: c.costPerResult,\n ...(c.currency ? { currency: c.currency } : {}),\n ctr: c.ctr,\n fatigue: c.fatigue,\n ...(c.definition?.idea ? { idea: c.definition.idea } : {}),\n ...(c.definition?.angle ? { angle: c.definition.angle } : {}),\n };\n}\n\n/** The own-account read: the best creatives by cost per result, and the ones to replace. Pure. */\nexport function whatWorks(creatives: readonly CreativePerformance[], limit = 3) {\n const priced = creatives.filter((c) => c.costPerResult !== null && c.costPerResult > 0);\n const best = [...priced].sort((a, b) => (a.costPerResult ?? 0) - (b.costPerResult ?? 0)).slice(0, limit);\n const tired = creatives.filter((c) => c.fatigue === \"fatigued\" || c.fatigue === \"dead\");\n return { best: best.map(leanCreative), replace: tired.map(leanCreative) };\n}\n\ntype BriefParts = {\n company: \"ready\" | \"missing\";\n customers: CustomerTruth;\n bottleneck: Section<Bottleneck> | null;\n ideasToBuild: number;\n buildNext: string[];\n approved: number;\n rejected: number;\n market?: MarketMap | null;\n /** What earlier ideas did once their ads ran (`baker creatives learn`). */\n learned: { winners: LearnedIdea[]; failed: LearnedIdea[] };\n /** The customer research this brief ran itself, few quotes being on file. */\n researched?: { written: number };\n /** How many of the company's rules hold for its ads (`rules`). */\n rules?: number;\n};\n\ntype LearnedIdea = { idea: string; message: string };\n\n/** A market whose ads mostly speak at stage s3 or later has heard the plain claim already. */\nconst HEARD_IT_ALL = /^s[345]/;\n\n/** What the brief says about customer quotes: what its own research found, or that it is needed. Pure. */\nfunction customersHint(parts: Pick<BriefParts, \"customers\" | \"researched\">): string | null {\n if (parts.researched) {\n return parts.researched.written > 0\n ? `${parts.researched.written} customer quotes were just gathered from reviews and Reddit and are in \\`customers\\`: cite them by id in each idea's \\`evidence\\`.`\n : \"Customer research found nothing to keep: ideas go in as explore bets (an empty `evidence` list). Never research customers again in this turn.\";\n }\n if (!parts.customers.thin) return null;\n return `Only ${parts.customers.observed} customer quotes on file: run \\`baker research customers\\` now, before writing ideas, so they stand on what customers said. It gathers reviews, Reddit and the web and writes the quotes with their sources in about a minute; never a subagent or web searches of your own for this.`;\n}\n\n/** The one or two next steps the brief points to. Pure. */\nexport function briefHints(parts: BriefParts): string[] {\n const hints: string[] = [];\n if (parts.company === \"missing\") {\n hints.push(\"COMPANY.md is empty: run /company-discovery first, or every idea is a guess about the business.\");\n }\n const customers = customersHint(parts);\n if (customers) hints.push(customers);\n if (parts.rules) {\n hints.push(\n `Write every idea and every ad within the ${parts.rules} rules in \\`rules\\`: an ad saying words one bans (\\`bans\\`) is refused before it renders, and every finished ad is checked against the ones a person taught. When the person asks for something a rule forbids, do it and record why in the ad's prompt.json (\\`\"waive\": [{\"rule\": \"<id>\", \"why\": \"<their ask>\"}]\\`).`,\n );\n }\n if (parts.bottleneck && isAvailable(parts.bottleneck) && parts.bottleneck.verdict === \"after_click\") {\n hints.push(\"The account loses people after the click: tell the person, and make one idea an offer idea.\");\n }\n if (parts.market?.sophistication && HEARD_IT_ALL.test(parts.market.sophistication)) {\n hints.push(\n `This market has heard the plain claim (sophistication ${parts.market.sophistication}): lead with how it works (a mechanism), proof, or an angle nobody uses, never a bigger claim.`,\n );\n }\n // Every claim, not only the ones several brands share word for word: the same claim is often worded apart.\n // A claim kept after testing is one a competitor proved, not only launched: labelled, it leads.\n const claims =\n parts.market?.saying.map((s) =>\n s.kept_brands ? `\"${s.angle}\" (kept after testing by ${s.kept_brands})` : `\"${s.angle}\"`,\n ) ?? [];\n if (claims.length > 0) {\n hints.push(\n `Competitors already say ${claims.join(\", \")}. A message one of them could also run is not a new idea, however it is worded: say what only we have (the offer, a proof, a customer's words) or how it works.`,\n );\n }\n for (const won of parts.learned.winners) {\n hints.push(\n `${won.idea} won in the account (\"${won.message}\"): build on it first, the same message in a new format or for a new persona.`,\n );\n }\n if (parts.learned.failed.length > 0) {\n const lost = parts.learned.failed.map((f) => `\"${f.message}\"`).join(\", \");\n hints.push(`Never repeat a message that lost in the account: ${lost}.`);\n }\n if (parts.rejected > parts.approved && parts.rejected > 0) {\n hints.push(\n \"Reviewers rejected more than they approved: read `taste.notes` (their own words) and keep every idea clear of each.\",\n );\n }\n if (parts.buildNext.length > 0) {\n hints.push(`Ideas ready to build: ${parts.buildNext.join(\", \")} (\\`baker creatives make <idea>\\`).`);\n } else {\n hints.push(\n `Write 4-8 ideas in src/creatives/_ideas/<idea>.md (who, message, evidence, awareness, angle, format, job, why), then \\`baker creatives ideas\\`. awareness: ${AWARENESS_STAGES.join(\" | \")}. angle: ${IDEA_ANGLES.join(\", \")}. format: ${IDEA_FORMATS.join(\", \")}.`,\n );\n }\n return hints;\n}\n\ntype BriefArgs = { adset?: string; accountId?: string; full: boolean };\n\nasync function readBrief(root: string, args: BriefArgs) {\n // Every read starts at once: the account's diagnosis waits only for the account, never for the rest.\n const account = metaAccountId(args.accountId).catch(() => null);\n const [company, offers, viewer, insights, ideas, performance, feedback, accountId, bottleneck, market, rules, specs] =\n await Promise.all([\n companyStatus(root),\n readOffers(root),\n readViewer(root, args.adset),\n readInsights(root),\n ideasReport(root),\n section(async () =>\n withDefinitions(await apiPost<CreativesPerformanceResponse>(\"/api/creatives/performance\", {}), (slug) =>\n readDefinition(root, slug),\n ),\n ),\n section(() => apiPost<CreativesFeedbackResponse>(\"/api/creatives/feedback\", {})),\n account,\n account.then((id) => (id ? section(() => readBottleneck(id)) : null)),\n section(() => readMarket(root)),\n readAllRules(root).then((all) => selectRules(all, {})),\n readCreativeSpecs(root),\n ]);\n return {\n company,\n offers,\n viewer,\n insights,\n ideas,\n performance,\n feedback,\n accountId,\n bottleneck,\n market,\n rules,\n specs,\n };\n}\n\ntype Brief = Awaited<ReturnType<typeof readBrief>>;\n\nfunction accountPart(brief: Brief, full: boolean) {\n if (!brief.accountId) {\n return { unavailable: \"no single Meta ad account connected: pass --account-id act_<id>, or work from customers\" };\n }\n const works = isAvailable(brief.performance)\n ? whatWorks(brief.performance.data.creatives, full ? 10 : 3)\n : { creatives: brief.performance };\n return { id: brief.accountId, bottleneck: brief.bottleneck, ...works };\n}\n\nfunction marketPart(market: Section<MarketMap | null>, full: boolean) {\n if (!isAvailable(market)) return market;\n if (!market) return { unavailable: \"no library ads match what COMPANY.md says the company sells\" };\n if (full) return market;\n const { containers: _containers, ...lean } = market;\n return lean;\n}\n\n/** What the company's reviewers said: the counts, and each distinct thing they said in their own words. Pure. */\nexport function tastePart(feedback: CreativesFeedbackResponse) {\n const { summary, notes } = feedback.data;\n return {\n approved: summary.approved,\n rejected: summary.rejected,\n topRejectionReasons: summary.topRejectionReasons.slice(0, 3).map((r) => r.label),\n ...(notes && notes.length > 0 ? { notes: notes.map((n) => ({ creative: n.creative, note: n.note })) } : {}),\n };\n}\n\n/** The brief as the agent reads it, and the hints that point at the next step. */\nexport function briefEnvelope(brief: Brief, full: boolean, researched?: { written: number }) {\n const customers = customerTruth(brief.insights);\n const summary = isAvailable(brief.feedback) ? brief.feedback.data.summary : null;\n const next = buildNext(brief.ideas.ideas);\n const toBuild = brief.ideas.ideas.filter((i) => i.status === \"idea\").length;\n const withStatus = (status: string) =>\n brief.ideas.ideas.filter((i) => i.status === status).map((i) => ({ idea: i.id, message: i.message }));\n const learned = { winners: withStatus(\"winner\"), failed: withStatus(\"failed\") };\n return {\n ok: true as const,\n data: {\n company: brief.company,\n viewer: { temperature: brief.viewer.temperature, knows: brief.viewer.knows, source: brief.viewer.source },\n offers: brief.offers,\n account: accountPart(brief, full),\n taste: isAvailable(brief.feedback) ? tastePart(brief.feedback) : brief.feedback,\n customers: full\n ? { ...customers, quotes: brief.insights.map((i) => ({ id: i.id, type: i.type, quote: i.quote })) }\n : customers,\n market: marketPart(brief.market, full),\n rules: rulesView(brief.rules, { full }),\n ideas: {\n to_build: toBuild,\n built: brief.ideas.ideas.length - toBuild,\n build_next: next,\n ...(learned.winners.length > 0 ? { winners: learned.winners } : {}),\n ...(learned.failed.length > 0 ? { failed: learned.failed } : {}),\n },\n },\n hints: briefHints({\n company: brief.company,\n customers,\n bottleneck: brief.bottleneck,\n ideasToBuild: toBuild,\n buildNext: next,\n approved: summary?.approved ?? 0,\n rejected: summary?.rejected ?? 0,\n market: isAvailable(brief.market) ? brief.market : null,\n learned,\n ...(researched ? { researched } : {}),\n rules: brief.rules.length,\n }).concat(rulesHints(brief.rules, waiverCounts(brief.specs))),\n };\n}\n\nexport const briefCommand = defineCommand({\n meta: { name: \"brief\", description: DESCRIPTION },\n args: ARGS,\n async run({ args }) {\n const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();\n const full = args.full === true;\n // Few quotes on file: the research runs alongside the reads, never left to the agent (dev, Oct\n // 2026: told to run it first, the chat agent skipped it and every idea went in as an explore bet).\n const thin = args.research !== false && customerTruth(await readInsights(root)).thin;\n const research = thin ? researchCustomers(root, {}).catch(() => null) : null;\n const brief = await readBrief(root, {\n ...(typeof args.adset === \"string\" && args.adset ? { adset: args.adset } : {}),\n ...(typeof args[\"account-id\"] === \"string\" && args[\"account-id\"] ? { accountId: args[\"account-id\"] } : {}),\n full,\n });\n const found = research ? await research : null;\n const written = found?.shown.length ?? 0;\n const insights = written > 0 ? await readInsights(root) : brief.insights;\n writeJson(briefEnvelope({ ...brief, insights }, full, research ? { written } : undefined));\n },\n});\n","/**\n * The judgments `baker creatives brief` makes from the numbers, so the agent reads a verdict\n * instead of applying thresholds from prose. Pure.\n */\nimport { AWARENESS_STAGES, type Insight } from \"./ideas-model.ts\";\n\n/** Below this many impressions the account has not said anything yet. */\nconst MIN_IMPRESSIONS = 1000;\n/** meta-ads-playbook 17-testing-methodology § \"Bottleneck identification\". */\nconst LOW_CTR = 1.5;\nconst LOW_CVR = 1;\n\nexport type Bottleneck = {\n verdict: \"hook\" | \"after_click\" | \"none\" | \"too_little_data\";\n ctr: number | null;\n cvr: number | null;\n why: string;\n};\n\nconst round = (n: number) => Math.round(n * 100) / 100;\n\n/** Where the account loses people: before the click (the hook), after it (page or offer), or nowhere. */\nexport function diagnoseBottleneck(totals: { impressions: number; linkClicks: number; results: number }): Bottleneck {\n const ctr = totals.impressions > 0 ? round((totals.linkClicks / totals.impressions) * 100) : null;\n const cvr = totals.linkClicks > 0 ? round((totals.results / totals.linkClicks) * 100) : null;\n if (totals.impressions < MIN_IMPRESSIONS || ctr === null) {\n return { verdict: \"too_little_data\", ctr, cvr, why: \"Too little delivery in the last 30 days to call it.\" };\n }\n if (ctr < LOW_CTR) {\n return {\n verdict: \"hook\",\n ctr,\n cvr,\n why: `Link click-through ${ctr}% (under ${LOW_CTR}%): people scroll past. New ideas and hooks are the fix.`,\n };\n }\n if (cvr !== null && cvr < LOW_CVR) {\n return {\n verdict: \"after_click\",\n ctr,\n cvr,\n why: `People click (${ctr}%) but only ${cvr}% act: the page or the offer loses them, and a new ad will not fix that. Say so, make the ads' promise match the page, and make one idea an offer idea.`,\n };\n }\n return {\n verdict: \"none\",\n ctr,\n cvr,\n why: `Click-through ${ctr}% and ${cvr ?? 0}% of clicks act: the ads work. Build on the winners first.`,\n };\n}\n\nconst CONVERSION_ACTION =\n /^(lead|purchase|complete_registration|submit_application|schedule|contact|start_trial|subscribe|offsite_conversion\\.|onsite_conversion\\.lead|onsite_web_lead|omni_purchase|omni_complete_registration)/;\n\n/** The conversions in a Meta `actions[]` list, engagement left out. */\nexport function resultsOf(actions: unknown): number {\n if (!Array.isArray(actions)) return 0;\n let total = 0;\n for (const action of actions) {\n const type = (action as { action_type?: unknown })?.action_type;\n const value = Number((action as { value?: unknown })?.value ?? 0);\n if (typeof type === \"string\" && CONVERSION_ACTION.test(type) && Number.isFinite(value)) total += value;\n }\n return total;\n}\n\nconst MIN_OBSERVED = 5;\nconst MAX_QUOTES = 6;\n\nexport type CustomerTruth = {\n total: number;\n observed: number;\n thin: boolean;\n byType: Record<string, number>;\n /** One observed quote per kind of truth, the strongest material for ideas and hooks. */\n quotes: Array<{ id: string; type: string; quote: string }>;\n};\n\nexport function customerTruth(insights: readonly Insight[]): CustomerTruth {\n const byType: Record<string, number> = {};\n for (const insight of insights) byType[insight.type] = (byType[insight.type] ?? 0) + 1;\n const observed = insights.filter((i) => i.status === \"observed\");\n const seen = new Set<string>();\n const quotes: CustomerTruth[\"quotes\"] = [];\n for (const insight of observed) {\n if (seen.has(insight.type) || quotes.length >= MAX_QUOTES) continue;\n seen.add(insight.type);\n quotes.push({\n id: insight.id,\n type: insight.type,\n quote: insight.quote.length > 140 ? `${insight.quote.slice(0, 137)}...` : insight.quote,\n });\n }\n return { total: insights.length, observed: observed.length, thin: observed.length < MIN_OBSERVED, byType, quotes };\n}\n\n/**\n * One library ad as the market map reads it: whose it is, what its DNA says,\n * and where it is in its life (`stage`, and `survived_test` when it is the\n * version its brand kept after testing).\n */\nexport type MarketAd = {\n advertiser: string | null;\n stage?: string | null;\n survived_test?: boolean | null;\n dna: {\n angle?: string | null;\n awareness_stage?: string | null;\n container?: string | null;\n sophistication_stage?: string | null;\n };\n};\n\nexport type MarketMap = {\n source: \"followed\" | \"library\";\n ads: number;\n brands: number;\n /** The stage most of the market's ads speak at: s1 first to say it … s5 tired of claims. */\n sophistication: string | null;\n /**\n * What the market already says: an idea that says the same is not a new idea. What competitors\n * kept after testing leads (`kept_brands`: how many brands kept an ad saying it), then most brands.\n */\n saying: Array<{ angle: string; brands: number; kept_brands?: number }>;\n /** How many of these ads competitors kept after testing; absent when none (or an older library). */\n kept_ads?: number;\n awareness: Record<string, number>;\n containers: Record<string, number>;\n /** Awareness stages none of these ads speaks to. */\n unspoken: string[];\n};\n\nconst MAX_SAYING = 6;\nconst KEPT_STAGES = new Set([\"proven\", \"evergreen\"]);\n\n/** What a competitor kept after testing: the version a test kept, or an ad running past its test window. */\nexport function keptAfterTesting(ad: Pick<MarketAd, \"stage\" | \"survived_test\">): boolean {\n return ad.survived_test === true || KEPT_STAGES.has(ad.stage ?? \"\");\n}\n/** Two angles sharing this share of their content words say the same thing. */\nconst SAME_ANGLE = 0.4;\n\n/** An angle's content words: 4+ letters, a plural folded to its singular. */\nfunction angleWords(angle: string): Set<string> {\n return new Set(\n angle\n .toLowerCase()\n .split(/[^\\p{L}]+/u)\n .filter((w) => w.length >= 4 && w !== \"your\" && w !== \"with\")\n .map((w) => w.replace(/s$/, \"\")),\n );\n}\n\n/** Shared words over all words (Jaccard). */\nfunction overlap(a: ReadonlySet<string>, b: ReadonlySet<string>): number {\n const shared = [...a].filter((w) => b.has(w)).length;\n const all = new Set([...a, ...b]).size;\n return all === 0 ? 0 : shared / all;\n}\n\nfunction tally(values: ReadonlyArray<string | null | undefined>): Record<string, number> {\n const counts: Record<string, number> = {};\n for (const value of values) if (value) counts[value] = (counts[value] ?? 0) + 1;\n return counts;\n}\n\n/** What the market's ads already say and to whom, from a library search over it. Pure. */\nexport function marketMap(ads: readonly MarketAd[], source: MarketMap[\"source\"]): MarketMap {\n const groups: Array<{ angle: string; words: Set<string>; brands: Set<string>; kept: Set<string> }> = [];\n for (const ad of ads) {\n const angle = ad.dna.angle?.trim();\n if (!angle) continue;\n const words = angleWords(angle);\n const brand = ad.advertiser ?? \"?\";\n let group = groups.find((g) => overlap(g.words, words) >= SAME_ANGLE);\n if (!group) {\n group = { angle, words, brands: new Set(), kept: new Set() };\n groups.push(group);\n }\n group.brands.add(brand);\n if (keptAfterTesting(ad)) group.kept.add(brand);\n }\n const saying = groups\n .map((g) => ({ angle: g.angle, brands: g.brands.size, ...(g.kept.size > 0 ? { kept_brands: g.kept.size } : {}) }))\n .sort((a, b) => (b.kept_brands ?? 0) - (a.kept_brands ?? 0) || b.brands - a.brands)\n .slice(0, MAX_SAYING);\n const keptAds = ads.filter(keptAfterTesting).length;\n const stages = tally(ads.map((a) => a.dna.sophistication_stage));\n const sophistication = Object.entries(stages).sort((a, b) => b[1] - a[1])[0]?.[0] ?? null;\n const awareness = tally(ads.map((a) => a.dna.awareness_stage));\n return {\n source,\n ads: ads.length,\n brands: new Set(ads.map((a) => a.advertiser ?? \"?\")).size,\n sophistication,\n saying,\n awareness,\n containers: tally(ads.map((a) => a.dna.container)),\n unspoken: AWARENESS_STAGES.filter((stage) => !awareness[stage]),\n ...(keptAds > 0 ? { kept_ads: keptAds } : {}),\n };\n}\n"],"mappings":"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","names":["id"]}