@koda-sl/baker-cli 0.540.0 → 0.541.0-dev.b27330e67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (855) hide show
  1. package/README.md +11 -3
  2. package/dist/account-LKIEXMSK.js +82 -0
  3. package/dist/account-T26J6HSJ.js +82 -0
  4. package/dist/account-reads-P2WXB3NZ.js +219 -0
  5. package/dist/account-users-HB5DPMF4.js +64 -0
  6. package/dist/account-writes-QEZQCU46.js +68 -0
  7. package/dist/accounts-7D4O5QMV.js +80 -0
  8. package/dist/accounts-AOVLG52F.js +701 -0
  9. package/dist/actions-CMHAY6P5.js +55 -0
  10. package/dist/activecampaign-U65MB4UD.js +938 -0
  11. package/dist/ad-group-writes-MVQKICSC.js +172 -0
  12. package/dist/ad-groups-5OGD7PJ7.js +70 -0
  13. package/dist/ad-writes-OVD6EESQ.js +176 -0
  14. package/dist/add-AHRTXSBZ.js +107 -0
  15. package/dist/add-HGR6XPCB.js +305 -0
  16. package/dist/ads-BHZLZT3C.js +48 -0
  17. package/dist/ads-SCWCG2YI.js +79 -0
  18. package/dist/advertisers-KJDYCVU7.js +123 -0
  19. package/dist/analytics-2QTC4ZJT.js +2437 -0
  20. package/dist/analytics-RSCTSZPC.js +447 -0
  21. package/dist/animate-HV2QJWVE.js +480 -0
  22. package/dist/assign-RKN3XDEA.js +80 -0
  23. package/dist/audience-size-J5T2SOWX.js +76 -0
  24. package/dist/audiences-6N5B7CA2.js +280 -0
  25. package/dist/audit-O2R2R3BH.js +154 -0
  26. package/dist/autocomplete-7R5TRWE3.js +114 -0
  27. package/dist/avatars-URGC2PRJ.js +38 -0
  28. package/dist/bid-pricing-ZIGIQLKJ.js +103 -0
  29. package/dist/brand-7MLMDFLT.js +22 -0
  30. package/dist/brief-ZWIEUGIJ.js +543 -0
  31. package/dist/campaign-groups-Z6LNJMHY.js +99 -0
  32. package/dist/campaign-writes-EOFSYPW4.js +168 -0
  33. package/dist/campaign-writes-TFRV62VN.js +176 -0
  34. package/dist/campaigns-FHD3KMLV.js +111 -0
  35. package/dist/campaigns-KPUA4GP2.js +78 -0
  36. package/dist/campaigns-SIJKAEFM.js +113 -0
  37. package/dist/canvas-PHUXBTDM.js +46 -0
  38. package/dist/capabilities-MVOMUZVT.js +147 -0
  39. package/dist/catalog-JVBRY2U6.js +66 -0
  40. package/dist/catalogs-QYAAPTMV.js +130 -0
  41. package/dist/changes-2UFWG4T3.js +143 -0
  42. package/dist/chatgpt-KJAUJBRK.js +47 -0
  43. package/dist/chats-ETYNGJ3D.js +449 -0
  44. package/dist/chats-ETYNGJ3D.js.map +1 -0
  45. package/dist/check-G6IGCJKG.js +107 -0
  46. package/dist/chunk-274UO7N7.js +344 -0
  47. package/dist/chunk-27KV27F6.js +169 -0
  48. package/dist/chunk-2OCUXPWT.js +1919 -0
  49. package/dist/chunk-3N7YWOTX.js +438 -0
  50. package/dist/chunk-4L4SG26L.js +429 -0
  51. package/dist/chunk-6OIKNJ7G.js +26 -0
  52. package/dist/chunk-7OLJBIKI.js +494 -0
  53. package/dist/chunk-7XSVJFA3.js +170 -0
  54. package/dist/chunk-AHN5UNQP.js +910 -0
  55. package/dist/chunk-AQBJ3XRD.js +1902 -0
  56. package/dist/chunk-AUO4QNMI.js +148 -0
  57. package/dist/chunk-B5MJXVBP.js +66 -0
  58. package/dist/chunk-B6WOWVAA.js +285 -0
  59. package/dist/chunk-BF32BRMX.js +98 -0
  60. package/dist/chunk-BNO3EFGR.js +4266 -0
  61. package/dist/chunk-BNO3EFGR.js.map +1 -0
  62. package/dist/chunk-CATPBEZ3.js +51 -0
  63. package/dist/chunk-DBLOEIJ2.js +5368 -0
  64. package/dist/chunk-DQIPDAPH.js +274 -0
  65. package/dist/chunk-E4JZV7ZY.js +455 -0
  66. package/dist/chunk-F3CZFUXZ.js +3187 -0
  67. package/dist/chunk-F3CZFUXZ.js.map +1 -0
  68. package/dist/chunk-FPS7WKLY.js +207 -0
  69. package/dist/chunk-FSHIEGAY.js +7725 -0
  70. package/dist/chunk-FY6CMZDG.js +831 -0
  71. package/dist/chunk-GCFC2MNR.js +228 -0
  72. package/dist/chunk-H5P4XNTR.js +1646 -0
  73. package/dist/chunk-H7TJX6MJ.js +19 -0
  74. package/dist/chunk-HMFIOE4P.js +63 -0
  75. package/dist/chunk-HMZ6FUXY.js +61 -0
  76. package/dist/chunk-HN2W55DC.js +156 -0
  77. package/dist/chunk-HPS7HLN4.js +930 -0
  78. package/dist/chunk-HXLCETLB.js +3510 -0
  79. package/dist/chunk-HZQ64QEY.js +479 -0
  80. package/dist/chunk-I62QW2UL.js +197 -0
  81. package/dist/chunk-KAUW3OFC.js +843 -0
  82. package/dist/chunk-KFHW5TCM.js +167 -0
  83. package/dist/chunk-KT2YKHCH.js +319 -0
  84. package/dist/chunk-LFWGMR3F.js +91 -0
  85. package/dist/chunk-LNEUE4BR.js +592 -0
  86. package/dist/chunk-MDBRRR3J.js +191 -0
  87. package/dist/chunk-MHRFRSQ6.js +676 -0
  88. package/dist/chunk-N26ZASAC.js +275 -0
  89. package/dist/chunk-NPGI5DXP.js +89 -0
  90. package/dist/chunk-NQF5U6FX.js +150 -0
  91. package/dist/chunk-NTOCO72A.js +297 -0
  92. package/dist/chunk-OATKGUUI.js +103 -0
  93. package/dist/chunk-P2C6X574.js +163 -0
  94. package/dist/chunk-POI76GQV.js +57 -0
  95. package/dist/chunk-PZ3EFXL7.js +203 -0
  96. package/dist/chunk-QCONJUK6.js +387 -0
  97. package/dist/chunk-RAO7FTMY.js +64 -0
  98. package/dist/chunk-RM5T4MA6.js +783 -0
  99. package/dist/chunk-RRH5QWVS.js +91 -0
  100. package/dist/chunk-SIKCVWM3.js +76 -0
  101. package/dist/chunk-SPBUHC2K.js +224 -0
  102. package/dist/chunk-VAWAFQW3.js +142 -0
  103. package/dist/chunk-VFESCAO4.js +249 -0
  104. package/dist/chunk-VLE433LA.js +547 -0
  105. package/dist/chunk-W2MHGOUZ.js +2209 -0
  106. package/dist/chunk-WM6JHUPY.js +5471 -0
  107. package/dist/chunk-XAHY53IO.js +857 -0
  108. package/dist/chunk-XJ62F6EA.js +392 -0
  109. package/dist/chunk-XMHTLWWE.js +225 -0
  110. package/dist/chunk-XPXHJ6EP.js +24026 -0
  111. package/dist/chunk-XPXHJ6EP.js.map +1 -0
  112. package/dist/chunk-Y3ESEQRI.js +46 -0
  113. package/dist/chunk-YAX5CGUY.js +638 -0
  114. package/dist/chunk-YPYI3YBK.js +377 -0
  115. package/dist/chunk-YXCSJQKQ.js +23 -0
  116. package/dist/chunk-Z6ZYGDCQ.js +8954 -0
  117. package/dist/chunk-ZJOXRK2G.js +1518 -0
  118. package/dist/chunk-ZPHHJPDG.js +131 -0
  119. package/dist/chunk-ZV4K6E3S.js +604 -0
  120. package/dist/claim-VN6RHORQ.js +200 -0
  121. package/dist/cli.js +31 -31
  122. package/dist/companies-UNXZLC4T.js +198 -0
  123. package/dist/company-E7J2I4B5.js +308 -0
  124. package/dist/complete-TI6ME7P2.js +84 -0
  125. package/dist/connect-VYCZ7APH.js +45 -0
  126. package/dist/conversation-AVJMT6NK.js +96 -0
  127. package/dist/conversion-report-GK2FUT2R.js +127 -0
  128. package/dist/conversion-upload-command-Q7LZFFZL.js +439 -0
  129. package/dist/conversion-writes-STESFLTB.js +122 -0
  130. package/dist/conversions-6KDF5AVY.js +140 -0
  131. package/dist/conversions-JBRU7CGB.js +78 -0
  132. package/dist/create-7R5HTOI2.js +135 -0
  133. package/dist/create-BGIE2YTE.js +239 -0
  134. package/dist/create-HI53LEYE.js +62 -0
  135. package/dist/create-YVKJC5IT.js +210 -0
  136. package/dist/creatives-ACU2HGZW.js +223 -0
  137. package/dist/creatives-ISYALGKS.js +58 -0
  138. package/dist/credentials-UCROYYPD.js +290 -0
  139. package/dist/critique-SGEKRORA.js +232 -0
  140. package/dist/critique-SJLBIGD2.js +1451 -0
  141. package/dist/crm-OZ626TTR.js +227 -0
  142. package/dist/crm-X7FX34QY.js +323 -0
  143. package/dist/currency-HB3MFXLJ.js +88 -0
  144. package/dist/customers-I3T6HJD4.js +59 -0
  145. package/dist/delete-24S5ICGH.js +67 -0
  146. package/dist/delete-ICXIKJZF.js +69 -0
  147. package/dist/delete-RWZCVPYV.js +57 -0
  148. package/dist/demographics-PUJKNWCF.js +141 -0
  149. package/dist/discard-4GLM3TVC.js +69 -0
  150. package/dist/discover-DLGO3VW6.js +172 -0
  151. package/dist/domain-A4IVVFI6.js +101 -0
  152. package/dist/download-KIOTQW3Z.js +172 -0
  153. package/dist/draft-4MKYX4VU.js +396 -0
  154. package/dist/draft-6QUGODCB.js +310 -0
  155. package/dist/draft-AMSBOSM2.js +335 -0
  156. package/dist/draft-I7HIRQ6F.js +283 -0
  157. package/dist/draft-IB5A3RFD.js +220 -0
  158. package/dist/engine/index.js +8 -8
  159. package/dist/experiments-NW4GVPAF.js +236 -0
  160. package/dist/facets-SIY7OICY.js +117 -0
  161. package/dist/feedback-LUNPSQEO.js +115 -0
  162. package/dist/feedback-record-ML67WVIX.js +269 -0
  163. package/dist/fetch-T7OO6FDT.js +179 -0
  164. package/dist/fit-63FKT2JJ.js +65 -0
  165. package/dist/flows-RWQSQKUL.js +250 -0
  166. package/dist/fonts-UQ6ISHO3.js +39 -0
  167. package/dist/forecast-AODSMD7S.js +169 -0
  168. package/dist/forecast-JTKQQYMN.js +121 -0
  169. package/dist/funnel-J5IJQPUP.js +397 -0
  170. package/dist/generate-HSDSCKDW.js +263 -0
  171. package/dist/get-VLS22SZR.js +82 -0
  172. package/dist/get-X6TC6UBK.js +59 -0
  173. package/dist/google-FOZYYKNY.js +3267 -0
  174. package/dist/google-ads-HBNPBUR4.js +198 -0
  175. package/dist/history-E25YCUQO.js +153 -0
  176. package/dist/history-SHQVK5I7.js +69 -0
  177. package/dist/history-ZNPAN36E.js +102 -0
  178. package/dist/hubspot-WFJ22XGN.js +782 -0
  179. package/dist/ideas-FCL5SDI4.js +45 -0
  180. package/dist/images-SXBR3MLH.js +92 -0
  181. package/dist/ingest-UJBMV7PZ.js +27 -0
  182. package/dist/ingest-YRWIO6DV.js +123 -0
  183. package/dist/insights-7NC2JFXU.js +658 -0
  184. package/dist/insights-7NC2JFXU.js.map +1 -0
  185. package/dist/insights-UMPXHRKD.js +132 -0
  186. package/dist/inspect-I2CJDQSA.js +192 -0
  187. package/dist/intent-NBP5IDND.js +95 -0
  188. package/dist/keyword-gap-67UJ2LDD.js +130 -0
  189. package/dist/keyword-metrics-U6IWGT4N.js +200 -0
  190. package/dist/keywords-for-site-PXID3WEP.js +131 -0
  191. package/dist/landing-PIQYR6XI.js +28 -0
  192. package/dist/languages-TM7SHGRO.js +40 -0
  193. package/dist/leads-DOFRCD7J.js +115 -0
  194. package/dist/learn-VMNUQL6D.js +207 -0
  195. package/dist/line-item-writes-6MCXCXYM.js +211 -0
  196. package/dist/line-items-X3GEB5P7.js +107 -0
  197. package/dist/link-TX5PWJBH.js +67 -0
  198. package/dist/linkedin-3DYXRHL7.js +1328 -0
  199. package/dist/linkedin-person-TP7DAJST.js +139 -0
  200. package/dist/list-2WFSHJ2I.js +154 -0
  201. package/dist/list-GMMNLVCA.js +306 -0
  202. package/dist/list-I77SLBPO.js +67 -0
  203. package/dist/locations-HAXZUHJP.js +40 -0
  204. package/dist/locations-JFBM4XBL.js +69 -0
  205. package/dist/log-3HSJ3RYY.js +95 -0
  206. package/dist/make-OKIBB4LM.js +1367 -0
  207. package/dist/map-O63QGACI.js +436 -0
  208. package/dist/mcp-GJEZ37AM.js +729 -0
  209. package/dist/media-sources-KE6XXCTY.js +35 -0
  210. package/dist/members-WF453RSC.js +47 -0
  211. package/dist/meta-6IFYEOZL.js +122 -0
  212. package/dist/metrics-XWHE4LYQ.js +152 -0
  213. package/dist/models-3C6BWHEC.js +155 -0
  214. package/dist/normalize-HWMMP6LX.js +144 -0
  215. package/dist/options-XGYNQCQM.js +125 -0
  216. package/dist/organization-X27LDCZU.js +949 -0
  217. package/dist/performance-JLQIJK4V.js +27 -0
  218. package/dist/performance-XYGEV4TX.js +5565 -0
  219. package/dist/pixels-PMPL63ON.js +62 -0
  220. package/dist/promoted-tweet-writes-7DGO5Z2G.js +183 -0
  221. package/dist/promoted-tweets-SPBZXSYI.js +119 -0
  222. package/dist/publish-RRJRO5DC.js +344 -0
  223. package/dist/query-CTQGGPXW.js +62 -0
  224. package/dist/reddit-OCRVXWJC.js +29 -0
  225. package/dist/refresh-M6BXIMQD.js +97 -0
  226. package/dist/release-ZRKZEBEB.js +63 -0
  227. package/dist/relevant-pages-NPUSAV3K.js +99 -0
  228. package/dist/remove-JW3RRNB6.js +53 -0
  229. package/dist/reopen-G6ZE5YNP.js +66 -0
  230. package/dist/rerun-OKOYKQXC.js +96 -0
  231. package/dist/research-DZZBRX4V.js +265 -0
  232. package/dist/research-NLZ34525.js +72 -0
  233. package/dist/reset-ABZVGJE6.js +57 -0
  234. package/dist/reset-JYER2WPC.js +57 -0
  235. package/dist/resolve-EH3ONOYE.js +124 -0
  236. package/dist/retry-LKJWY5BC.js +63 -0
  237. package/dist/retry-VY76DPS5.js +65 -0
  238. package/dist/revenue-7GIOE3TG.js +91 -0
  239. package/dist/rules-NUNJBT6R.js +99 -0
  240. package/dist/rules-add-7FB67IDD.js +465 -0
  241. package/dist/run-3GV2FYWG.js +71 -0
  242. package/dist/run-OVOXZUXN.js +69 -0
  243. package/dist/scaffold-ad-7D5EUDU7.js +1513 -0
  244. package/dist/scaffold-static-ad-TWF2RRM2.js +1011 -0
  245. package/dist/scaffold-video-4P2ONEQV.js +885 -0
  246. package/dist/schedule-XQ725JG6.js +64 -0
  247. package/dist/scheduled-agents-KBSD55GW.js +55 -0
  248. package/dist/schema-WJVWY4IA.js +135 -0
  249. package/dist/search-KQGMLU2Z.js +177 -0
  250. package/dist/select-CLD5MFCK.js +110 -0
  251. package/dist/set-prompt-COD76I6E.js +199 -0
  252. package/dist/setup-links-H5L5CJJN.js +144 -0
  253. package/dist/shopify-M2I65ZB5.js +3958 -0
  254. package/dist/site-AIJK3MNO.js +180 -0
  255. package/dist/sources-JRMCBVLK.js +457 -0
  256. package/dist/sources-YVDTULK6.js +30 -0
  257. package/dist/stale-AVBULN3A.js +90 -0
  258. package/dist/status-RXA4BBXZ.js +65 -0
  259. package/dist/studio-C2UVCTDD.js +49 -0
  260. package/dist/sync-CMYHAJSZ.js +57 -0
  261. package/dist/sync-definition-IKI2NFUO.js +70 -0
  262. package/dist/tags-5IVIDOPC.js +26 -0
  263. package/dist/tags-5L5MV6XZ.js +23 -0
  264. package/dist/tags-LIG4SXDB.js +23 -0
  265. package/dist/tags-LRFFVAZ3.js +227 -0
  266. package/dist/tags-VMMVSG6J.js +23 -0
  267. package/dist/targeting-criteria-AMVFYZ2H.js +113 -0
  268. package/dist/targets-RE24B2LL.js +106 -0
  269. package/dist/testimonials-FWJRO4MB.js +32 -0
  270. package/dist/themes-32CUPT4M.js +95 -0
  271. package/dist/top-companies-6GI6AWGA.js +111 -0
  272. package/dist/transcript-XMWBCLQO.js +165 -0
  273. package/dist/translate-2UYIIMEG.js +603 -0
  274. package/dist/triggers-WCI5DERM.js +144 -0
  275. package/dist/unlink-MM23NOTI.js +70 -0
  276. package/dist/unstage-YQXFED4J.js +88 -0
  277. package/dist/update-3BGBYU5R.js +155 -0
  278. package/dist/update-A53QG3XM.js +66 -0
  279. package/dist/update-S2CJ5FNS.js +192 -0
  280. package/dist/update-VMN5BHTP.js +101 -0
  281. package/dist/upload-VT7NPRAM.js +130 -0
  282. package/dist/url-options-JJIA77MZ.js +131 -0
  283. package/dist/url-params-RFMWR2PZ.js +101 -0
  284. package/dist/validate-KMY5ZVQX.js +125 -0
  285. package/dist/videos-DZT3TMKO.js +41 -0
  286. package/dist/viewer-check-QHXKGGH2.js +83 -0
  287. package/dist/web-HP45GOIL.js +143 -0
  288. package/dist/winning-ads-ZJVGEPZ7.js +86 -0
  289. package/dist/write-commands-YKWSFUO5.js +1525 -0
  290. package/dist/x-V76UQMEM.js +47 -0
  291. package/package.json +1 -1
  292. package/dist/account-JT5DRUNO.js +0 -82
  293. package/dist/account-V5XHQY2D.js +0 -82
  294. package/dist/account-reads-CPL3HLZ5.js +0 -219
  295. package/dist/account-users-AZBPCE3S.js +0 -64
  296. package/dist/account-writes-MFKCVMMV.js +0 -68
  297. package/dist/accounts-CZOZDD5I.js +0 -701
  298. package/dist/accounts-PQZRFWGU.js +0 -80
  299. package/dist/actions-7ELREPKR.js +0 -55
  300. package/dist/activecampaign-VOKDHWP7.js +0 -938
  301. package/dist/ad-group-writes-WFYPFO7R.js +0 -172
  302. package/dist/ad-groups-IPY3TJUX.js +0 -70
  303. package/dist/ad-writes-LDNNN72V.js +0 -176
  304. package/dist/add-NZE6J7AI.js +0 -107
  305. package/dist/add-RMKXE2ZO.js +0 -305
  306. package/dist/ads-NTDJRTEG.js +0 -79
  307. package/dist/ads-SJ6T366Q.js +0 -48
  308. package/dist/advertisers-E27BJ2FV.js +0 -123
  309. package/dist/analytics-PJ7JR4VU.js +0 -447
  310. package/dist/analytics-TBEIK33Y.js +0 -2437
  311. package/dist/animate-CQON6SZE.js +0 -480
  312. package/dist/assign-MTHCAP54.js +0 -80
  313. package/dist/audience-size-AXULID2E.js +0 -76
  314. package/dist/audiences-KRI7E7FY.js +0 -280
  315. package/dist/audit-YQIL6UGM.js +0 -154
  316. package/dist/autocomplete-S2WRGXOM.js +0 -114
  317. package/dist/avatars-H5RIENFM.js +0 -38
  318. package/dist/bid-pricing-5RTQDTK3.js +0 -103
  319. package/dist/brand-YCYKIUIL.js +0 -22
  320. package/dist/brief-AEICFSR7.js +0 -543
  321. package/dist/campaign-groups-PZ4J25O5.js +0 -99
  322. package/dist/campaign-writes-2OSYV72Z.js +0 -168
  323. package/dist/campaign-writes-DAL4EFIV.js +0 -176
  324. package/dist/campaigns-CDPQ2RDY.js +0 -111
  325. package/dist/campaigns-TKQDXU5H.js +0 -78
  326. package/dist/campaigns-XFIW7ODL.js +0 -113
  327. package/dist/canvas-FWG5JGG4.js +0 -46
  328. package/dist/capabilities-Y2UYDZZO.js +0 -147
  329. package/dist/catalog-6CXOEKBI.js +0 -66
  330. package/dist/catalogs-ETVY5OZ5.js +0 -130
  331. package/dist/changes-2P2P4LAU.js +0 -143
  332. package/dist/chatgpt-GINMQJBI.js +0 -47
  333. package/dist/chats-HNOUUEII.js +0 -442
  334. package/dist/chats-HNOUUEII.js.map +0 -1
  335. package/dist/check-UHV27GZU.js +0 -107
  336. package/dist/chunk-24SPBLU4.js +0 -1646
  337. package/dist/chunk-2AJ5UNOF.js +0 -131
  338. package/dist/chunk-2OEECI2R.js +0 -51
  339. package/dist/chunk-2Y3VZILY.js +0 -98
  340. package/dist/chunk-337ZJ3PX.js +0 -377
  341. package/dist/chunk-35T6LCB2.js +0 -197
  342. package/dist/chunk-3RWSYI6N.js +0 -63
  343. package/dist/chunk-3V4R55B4.js +0 -163
  344. package/dist/chunk-3YHOU5IA.js +0 -169
  345. package/dist/chunk-4KGQZHCV.js +0 -224
  346. package/dist/chunk-4PWC4KAK.js +0 -843
  347. package/dist/chunk-5VVXF3OS.js +0 -676
  348. package/dist/chunk-7E4S2NBD.js +0 -170
  349. package/dist/chunk-7Y6CPXM5.js +0 -2209
  350. package/dist/chunk-A4TWHQEF.js +0 -191
  351. package/dist/chunk-AMHVCMBW.js +0 -3510
  352. package/dist/chunk-AUGAC2OT.js +0 -319
  353. package/dist/chunk-BQSDW6FT.js +0 -344
  354. package/dist/chunk-C54JXXV3.js +0 -24026
  355. package/dist/chunk-C54JXXV3.js.map +0 -1
  356. package/dist/chunk-C6CWI43A.js +0 -392
  357. package/dist/chunk-CISJ7CUA.js +0 -207
  358. package/dist/chunk-CKT5SR7F.js +0 -103
  359. package/dist/chunk-CTBDVZ5E.js +0 -274
  360. package/dist/chunk-DR7PLON5.js +0 -1902
  361. package/dist/chunk-EPW33OQJ.js +0 -203
  362. package/dist/chunk-F4QYUDXE.js +0 -91
  363. package/dist/chunk-FKGYEK54.js +0 -387
  364. package/dist/chunk-FSLSISPI.js +0 -46
  365. package/dist/chunk-GT76FWES.js +0 -1919
  366. package/dist/chunk-GTIQUOYC.js +0 -148
  367. package/dist/chunk-GZN2RP7D.js +0 -494
  368. package/dist/chunk-H23Q55DS.js +0 -604
  369. package/dist/chunk-H27R5IVQ.js +0 -64
  370. package/dist/chunk-HDYJ6YVI.js +0 -930
  371. package/dist/chunk-HHQYP6RM.js +0 -783
  372. package/dist/chunk-HOZI7GOT.js +0 -66
  373. package/dist/chunk-IJ5DWALA.js +0 -225
  374. package/dist/chunk-JAC6JVCI.js +0 -26
  375. package/dist/chunk-JEMYDBKC.js +0 -547
  376. package/dist/chunk-KGZXQIM5.js +0 -19
  377. package/dist/chunk-KSECMOHE.js +0 -857
  378. package/dist/chunk-LE33VXJV.js +0 -831
  379. package/dist/chunk-LE6VTYWQ.js +0 -910
  380. package/dist/chunk-MCJ5I5LR.js +0 -3187
  381. package/dist/chunk-MCJ5I5LR.js.map +0 -1
  382. package/dist/chunk-MI3J4O42.js +0 -297
  383. package/dist/chunk-MIOE5IN3.js +0 -479
  384. package/dist/chunk-MMUT4W5L.js +0 -438
  385. package/dist/chunk-MZPS46OR.js +0 -76
  386. package/dist/chunk-N3T4ALXV.js +0 -8954
  387. package/dist/chunk-NGXZQESA.js +0 -5471
  388. package/dist/chunk-NPZ5VWFE.js +0 -592
  389. package/dist/chunk-NQ5O2NCJ.js +0 -5368
  390. package/dist/chunk-OQGE5GSP.js +0 -429
  391. package/dist/chunk-QIZY55Z6.js +0 -89
  392. package/dist/chunk-RD63FPG6.js +0 -150
  393. package/dist/chunk-RW32BYY3.js +0 -1518
  394. package/dist/chunk-RZUXHIRN.js +0 -23
  395. package/dist/chunk-S4PK55OH.js +0 -156
  396. package/dist/chunk-T2JHHSPI.js +0 -142
  397. package/dist/chunk-TFCZOTQ5.js +0 -249
  398. package/dist/chunk-TI4UL56R.js +0 -4266
  399. package/dist/chunk-TI4UL56R.js.map +0 -1
  400. package/dist/chunk-TML65SGQ.js +0 -455
  401. package/dist/chunk-TP6QJATO.js +0 -57
  402. package/dist/chunk-TQDZQT6U.js +0 -167
  403. package/dist/chunk-UIPSSTMA.js +0 -228
  404. package/dist/chunk-UREDSNQS.js +0 -7725
  405. package/dist/chunk-VWKFQ4ZY.js +0 -285
  406. package/dist/chunk-WDPOXO34.js +0 -91
  407. package/dist/chunk-YFIWCMVC.js +0 -638
  408. package/dist/chunk-YFRNONXL.js +0 -275
  409. package/dist/chunk-ZBP735CV.js +0 -61
  410. package/dist/claim-65UCFSNU.js +0 -200
  411. package/dist/companies-PUU5HQPO.js +0 -198
  412. package/dist/company-P64YHCCF.js +0 -308
  413. package/dist/complete-D7LIEFAQ.js +0 -84
  414. package/dist/connect-OJEK3NSN.js +0 -45
  415. package/dist/conversation-S2I75E4X.js +0 -96
  416. package/dist/conversion-report-JNWBTLA5.js +0 -127
  417. package/dist/conversion-upload-command-6OKMSO2T.js +0 -439
  418. package/dist/conversion-writes-2VOWP4RD.js +0 -122
  419. package/dist/conversions-JGIBYLK5.js +0 -78
  420. package/dist/conversions-XQLNBKCS.js +0 -140
  421. package/dist/create-DXRRIN2L.js +0 -210
  422. package/dist/create-UBQF3F43.js +0 -239
  423. package/dist/create-URSL4J7P.js +0 -62
  424. package/dist/create-WTG4PLR7.js +0 -135
  425. package/dist/creatives-KHU3PAMN.js +0 -223
  426. package/dist/creatives-MXMQDNL6.js +0 -58
  427. package/dist/credentials-CMOO7W6D.js +0 -290
  428. package/dist/critique-455CFJQ2.js +0 -1451
  429. package/dist/critique-MABDKWHC.js +0 -232
  430. package/dist/crm-LKQBWL7L.js +0 -227
  431. package/dist/crm-YAFF2LM2.js +0 -323
  432. package/dist/currency-JDAVYMD3.js +0 -88
  433. package/dist/customers-XQJTF7HT.js +0 -59
  434. package/dist/delete-7OTBPZGJ.js +0 -67
  435. package/dist/delete-ROD2G6IL.js +0 -57
  436. package/dist/delete-ZRMD5TG4.js +0 -69
  437. package/dist/demographics-HM2TV4T2.js +0 -141
  438. package/dist/discard-55OBCTIR.js +0 -69
  439. package/dist/discover-VEHKBNCY.js +0 -172
  440. package/dist/domain-226C6VIF.js +0 -101
  441. package/dist/download-UMEQIQKE.js +0 -172
  442. package/dist/draft-DUAFRL2G.js +0 -283
  443. package/dist/draft-MPSQIDMM.js +0 -310
  444. package/dist/draft-S2QTWVIA.js +0 -220
  445. package/dist/draft-TUTXQNHP.js +0 -335
  446. package/dist/draft-V7VGPJK4.js +0 -396
  447. package/dist/experiments-6UHDVVII.js +0 -236
  448. package/dist/facets-BZ5AFGHD.js +0 -117
  449. package/dist/feedback-A5DR3IMR.js +0 -115
  450. package/dist/feedback-record-KABFVNHS.js +0 -269
  451. package/dist/fetch-XNE63FNS.js +0 -179
  452. package/dist/fit-T2D4E52B.js +0 -65
  453. package/dist/flows-P5T4LNJ2.js +0 -250
  454. package/dist/fonts-U3NGQYJN.js +0 -39
  455. package/dist/forecast-TG5RS5DG.js +0 -121
  456. package/dist/forecast-UYBYSH3Y.js +0 -169
  457. package/dist/funnel-D6YXU7C4.js +0 -397
  458. package/dist/generate-QG7GX6WO.js +0 -263
  459. package/dist/get-E4VOTCE6.js +0 -59
  460. package/dist/get-TISXCTDV.js +0 -82
  461. package/dist/google-UQLYCYSX.js +0 -3267
  462. package/dist/google-ads-GBX5YHPT.js +0 -198
  463. package/dist/history-BRWYSJQL.js +0 -153
  464. package/dist/history-M2KVZ2E7.js +0 -102
  465. package/dist/history-XOB23MLX.js +0 -69
  466. package/dist/hubspot-YEZGTOM2.js +0 -782
  467. package/dist/ideas-J6GCTQ6U.js +0 -45
  468. package/dist/images-55KBTRVO.js +0 -92
  469. package/dist/ingest-LKGF5E5V.js +0 -27
  470. package/dist/ingest-QNV3B2ST.js +0 -123
  471. package/dist/insights-7CQJOBWX.js +0 -132
  472. package/dist/insights-UOO6OK3U.js +0 -439
  473. package/dist/insights-UOO6OK3U.js.map +0 -1
  474. package/dist/inspect-WNPQXU4H.js +0 -192
  475. package/dist/intent-P75BDP4H.js +0 -95
  476. package/dist/keyword-gap-54F6CZLM.js +0 -130
  477. package/dist/keyword-metrics-SJLYED7I.js +0 -200
  478. package/dist/keywords-for-site-CY2XUFR4.js +0 -131
  479. package/dist/landing-DZLICA3P.js +0 -28
  480. package/dist/languages-PEGOE365.js +0 -40
  481. package/dist/leads-WBZP37CG.js +0 -115
  482. package/dist/learn-QNOTY4JA.js +0 -207
  483. package/dist/line-item-writes-6RNUOFKK.js +0 -211
  484. package/dist/line-items-YOBU6DYQ.js +0 -107
  485. package/dist/link-7PEVIIUA.js +0 -67
  486. package/dist/linkedin-YYNBLBM3.js +0 -1328
  487. package/dist/linkedin-person-JGQTT54I.js +0 -139
  488. package/dist/list-H2XBHKQK.js +0 -154
  489. package/dist/list-IFVBO2E2.js +0 -306
  490. package/dist/list-N5FHLG2Z.js +0 -67
  491. package/dist/locations-MXWGZIGU.js +0 -69
  492. package/dist/locations-SHYN5J4Q.js +0 -40
  493. package/dist/log-HCWZ6C4R.js +0 -95
  494. package/dist/make-VZKIB23N.js +0 -1367
  495. package/dist/map-RFMJ4AF7.js +0 -436
  496. package/dist/mcp-VRFT3QJW.js +0 -729
  497. package/dist/media-sources-NTZRJGFU.js +0 -35
  498. package/dist/members-EOIF2XN3.js +0 -47
  499. package/dist/meta-MBW5LM5V.js +0 -122
  500. package/dist/metrics-25LYUEB7.js +0 -152
  501. package/dist/models-EU3NO4IY.js +0 -155
  502. package/dist/normalize-UQIZEJHT.js +0 -144
  503. package/dist/options-Y6JI2ZVZ.js +0 -125
  504. package/dist/organization-TO2V7AWX.js +0 -949
  505. package/dist/performance-V26JUNGC.js +0 -27
  506. package/dist/performance-YAUOH75F.js +0 -5565
  507. package/dist/pixels-NLH2PN6Q.js +0 -62
  508. package/dist/promoted-tweet-writes-3SLFZQDA.js +0 -183
  509. package/dist/promoted-tweets-3WRSJYKK.js +0 -119
  510. package/dist/publish-T6ITLSJA.js +0 -344
  511. package/dist/query-SRJXJVDY.js +0 -62
  512. package/dist/reddit-O2TNBMD6.js +0 -29
  513. package/dist/refresh-N726O36Z.js +0 -97
  514. package/dist/release-A5HKTUMV.js +0 -63
  515. package/dist/relevant-pages-VJHTUJMB.js +0 -99
  516. package/dist/remove-BHUYRNRU.js +0 -53
  517. package/dist/reopen-TTDYNANZ.js +0 -66
  518. package/dist/rerun-KFTQ6Y64.js +0 -96
  519. package/dist/research-FISSUVIK.js +0 -72
  520. package/dist/research-YWON4E4H.js +0 -265
  521. package/dist/reset-SSNHRP5C.js +0 -57
  522. package/dist/reset-VTNVCE23.js +0 -57
  523. package/dist/resolve-375FALNN.js +0 -124
  524. package/dist/retry-PNS6RWJ6.js +0 -63
  525. package/dist/retry-TLGYZ6RJ.js +0 -65
  526. package/dist/revenue-6L2AY7L7.js +0 -91
  527. package/dist/rules-F6J4V7PZ.js +0 -99
  528. package/dist/rules-add-7UI5A3MJ.js +0 -465
  529. package/dist/run-B77D2TGX.js +0 -71
  530. package/dist/run-UN4HXEGZ.js +0 -69
  531. package/dist/scaffold-ad-74CEBCRR.js +0 -1513
  532. package/dist/scaffold-static-ad-2IMVWNYB.js +0 -1011
  533. package/dist/scaffold-video-JDCX3BIT.js +0 -885
  534. package/dist/schedule-WK5MRYCJ.js +0 -64
  535. package/dist/scheduled-agents-2NTFBABN.js +0 -55
  536. package/dist/schema-BBC6AARZ.js +0 -135
  537. package/dist/search-KC4QRMU2.js +0 -177
  538. package/dist/select-SZAJR4QY.js +0 -110
  539. package/dist/set-prompt-KHB4JJV2.js +0 -199
  540. package/dist/setup-links-SJVDPNOF.js +0 -144
  541. package/dist/shopify-MODNP6LT.js +0 -3958
  542. package/dist/site-5K73B2MI.js +0 -180
  543. package/dist/sources-2E6EK6YK.js +0 -457
  544. package/dist/sources-S7LAV2EP.js +0 -30
  545. package/dist/stale-3IPYZ7BI.js +0 -90
  546. package/dist/status-6QTJSJN7.js +0 -65
  547. package/dist/studio-4QOFG7MQ.js +0 -49
  548. package/dist/sync-37P7TZQH.js +0 -57
  549. package/dist/sync-definition-CDQCNCU2.js +0 -70
  550. package/dist/tags-2VZUCNNH.js +0 -26
  551. package/dist/tags-CBINFGAN.js +0 -227
  552. package/dist/tags-FVRIF3XS.js +0 -23
  553. package/dist/tags-OB24PQKE.js +0 -23
  554. package/dist/tags-SS7FE52N.js +0 -23
  555. package/dist/targeting-criteria-ECC662DL.js +0 -113
  556. package/dist/targets-GIRHNZ4W.js +0 -106
  557. package/dist/testimonials-IEJ24MH7.js +0 -32
  558. package/dist/themes-JBX6W4SP.js +0 -95
  559. package/dist/top-companies-POSJMWSB.js +0 -111
  560. package/dist/transcript-FCKURXTT.js +0 -165
  561. package/dist/translate-F4B3WEJO.js +0 -603
  562. package/dist/triggers-DRAKT5QB.js +0 -144
  563. package/dist/unlink-OEUJXG64.js +0 -70
  564. package/dist/unstage-F362CYM7.js +0 -88
  565. package/dist/update-4CVNP3B5.js +0 -66
  566. package/dist/update-BAE3BEEW.js +0 -155
  567. package/dist/update-UME7HHOC.js +0 -101
  568. package/dist/update-XOSKQEMK.js +0 -192
  569. package/dist/upload-BABKWQIN.js +0 -130
  570. package/dist/url-options-JSRAMMEM.js +0 -131
  571. package/dist/url-params-ZVIYOHM2.js +0 -101
  572. package/dist/validate-DN44TVXS.js +0 -125
  573. package/dist/videos-OVVH4LC2.js +0 -41
  574. package/dist/viewer-check-SOPRTRNX.js +0 -83
  575. package/dist/web-PLEFETCJ.js +0 -143
  576. package/dist/winning-ads-HIP6PWPL.js +0 -86
  577. package/dist/write-commands-U3JZ6UHG.js +0 -1525
  578. package/dist/x-ROOD4SQH.js +0 -47
  579. /package/dist/{account-JT5DRUNO.js.map → account-LKIEXMSK.js.map} +0 -0
  580. /package/dist/{account-V5XHQY2D.js.map → account-T26J6HSJ.js.map} +0 -0
  581. /package/dist/{account-reads-CPL3HLZ5.js.map → account-reads-P2WXB3NZ.js.map} +0 -0
  582. /package/dist/{account-users-AZBPCE3S.js.map → account-users-HB5DPMF4.js.map} +0 -0
  583. /package/dist/{account-writes-MFKCVMMV.js.map → account-writes-QEZQCU46.js.map} +0 -0
  584. /package/dist/{accounts-PQZRFWGU.js.map → accounts-7D4O5QMV.js.map} +0 -0
  585. /package/dist/{accounts-CZOZDD5I.js.map → accounts-AOVLG52F.js.map} +0 -0
  586. /package/dist/{actions-7ELREPKR.js.map → actions-CMHAY6P5.js.map} +0 -0
  587. /package/dist/{activecampaign-VOKDHWP7.js.map → activecampaign-U65MB4UD.js.map} +0 -0
  588. /package/dist/{ad-group-writes-WFYPFO7R.js.map → ad-group-writes-MVQKICSC.js.map} +0 -0
  589. /package/dist/{ad-groups-IPY3TJUX.js.map → ad-groups-5OGD7PJ7.js.map} +0 -0
  590. /package/dist/{ad-writes-LDNNN72V.js.map → ad-writes-OVD6EESQ.js.map} +0 -0
  591. /package/dist/{add-NZE6J7AI.js.map → add-AHRTXSBZ.js.map} +0 -0
  592. /package/dist/{add-RMKXE2ZO.js.map → add-HGR6XPCB.js.map} +0 -0
  593. /package/dist/{ads-SJ6T366Q.js.map → ads-BHZLZT3C.js.map} +0 -0
  594. /package/dist/{ads-NTDJRTEG.js.map → ads-SCWCG2YI.js.map} +0 -0
  595. /package/dist/{advertisers-E27BJ2FV.js.map → advertisers-KJDYCVU7.js.map} +0 -0
  596. /package/dist/{analytics-TBEIK33Y.js.map → analytics-2QTC4ZJT.js.map} +0 -0
  597. /package/dist/{analytics-PJ7JR4VU.js.map → analytics-RSCTSZPC.js.map} +0 -0
  598. /package/dist/{animate-CQON6SZE.js.map → animate-HV2QJWVE.js.map} +0 -0
  599. /package/dist/{assign-MTHCAP54.js.map → assign-RKN3XDEA.js.map} +0 -0
  600. /package/dist/{audience-size-AXULID2E.js.map → audience-size-J5T2SOWX.js.map} +0 -0
  601. /package/dist/{audiences-KRI7E7FY.js.map → audiences-6N5B7CA2.js.map} +0 -0
  602. /package/dist/{audit-YQIL6UGM.js.map → audit-O2R2R3BH.js.map} +0 -0
  603. /package/dist/{autocomplete-S2WRGXOM.js.map → autocomplete-7R5TRWE3.js.map} +0 -0
  604. /package/dist/{avatars-H5RIENFM.js.map → avatars-URGC2PRJ.js.map} +0 -0
  605. /package/dist/{bid-pricing-5RTQDTK3.js.map → bid-pricing-ZIGIQLKJ.js.map} +0 -0
  606. /package/dist/{brand-YCYKIUIL.js.map → brand-7MLMDFLT.js.map} +0 -0
  607. /package/dist/{brief-AEICFSR7.js.map → brief-ZWIEUGIJ.js.map} +0 -0
  608. /package/dist/{campaign-groups-PZ4J25O5.js.map → campaign-groups-Z6LNJMHY.js.map} +0 -0
  609. /package/dist/{campaign-writes-2OSYV72Z.js.map → campaign-writes-EOFSYPW4.js.map} +0 -0
  610. /package/dist/{campaign-writes-DAL4EFIV.js.map → campaign-writes-TFRV62VN.js.map} +0 -0
  611. /package/dist/{campaigns-CDPQ2RDY.js.map → campaigns-FHD3KMLV.js.map} +0 -0
  612. /package/dist/{campaigns-TKQDXU5H.js.map → campaigns-KPUA4GP2.js.map} +0 -0
  613. /package/dist/{campaigns-XFIW7ODL.js.map → campaigns-SIJKAEFM.js.map} +0 -0
  614. /package/dist/{canvas-FWG5JGG4.js.map → canvas-PHUXBTDM.js.map} +0 -0
  615. /package/dist/{capabilities-Y2UYDZZO.js.map → capabilities-MVOMUZVT.js.map} +0 -0
  616. /package/dist/{catalog-6CXOEKBI.js.map → catalog-JVBRY2U6.js.map} +0 -0
  617. /package/dist/{catalogs-ETVY5OZ5.js.map → catalogs-QYAAPTMV.js.map} +0 -0
  618. /package/dist/{changes-2P2P4LAU.js.map → changes-2UFWG4T3.js.map} +0 -0
  619. /package/dist/{chatgpt-GINMQJBI.js.map → chatgpt-KJAUJBRK.js.map} +0 -0
  620. /package/dist/{check-UHV27GZU.js.map → check-G6IGCJKG.js.map} +0 -0
  621. /package/dist/{chunk-BQSDW6FT.js.map → chunk-274UO7N7.js.map} +0 -0
  622. /package/dist/{chunk-3YHOU5IA.js.map → chunk-27KV27F6.js.map} +0 -0
  623. /package/dist/{chunk-GT76FWES.js.map → chunk-2OCUXPWT.js.map} +0 -0
  624. /package/dist/{chunk-MMUT4W5L.js.map → chunk-3N7YWOTX.js.map} +0 -0
  625. /package/dist/{chunk-OQGE5GSP.js.map → chunk-4L4SG26L.js.map} +0 -0
  626. /package/dist/{chunk-JAC6JVCI.js.map → chunk-6OIKNJ7G.js.map} +0 -0
  627. /package/dist/{chunk-GZN2RP7D.js.map → chunk-7OLJBIKI.js.map} +0 -0
  628. /package/dist/{chunk-7E4S2NBD.js.map → chunk-7XSVJFA3.js.map} +0 -0
  629. /package/dist/{chunk-LE6VTYWQ.js.map → chunk-AHN5UNQP.js.map} +0 -0
  630. /package/dist/{chunk-DR7PLON5.js.map → chunk-AQBJ3XRD.js.map} +0 -0
  631. /package/dist/{chunk-GTIQUOYC.js.map → chunk-AUO4QNMI.js.map} +0 -0
  632. /package/dist/{chunk-HOZI7GOT.js.map → chunk-B5MJXVBP.js.map} +0 -0
  633. /package/dist/{chunk-VWKFQ4ZY.js.map → chunk-B6WOWVAA.js.map} +0 -0
  634. /package/dist/{chunk-2Y3VZILY.js.map → chunk-BF32BRMX.js.map} +0 -0
  635. /package/dist/{chunk-2OEECI2R.js.map → chunk-CATPBEZ3.js.map} +0 -0
  636. /package/dist/{chunk-NQ5O2NCJ.js.map → chunk-DBLOEIJ2.js.map} +0 -0
  637. /package/dist/{chunk-CTBDVZ5E.js.map → chunk-DQIPDAPH.js.map} +0 -0
  638. /package/dist/{chunk-TML65SGQ.js.map → chunk-E4JZV7ZY.js.map} +0 -0
  639. /package/dist/{chunk-CISJ7CUA.js.map → chunk-FPS7WKLY.js.map} +0 -0
  640. /package/dist/{chunk-UREDSNQS.js.map → chunk-FSHIEGAY.js.map} +0 -0
  641. /package/dist/{chunk-LE33VXJV.js.map → chunk-FY6CMZDG.js.map} +0 -0
  642. /package/dist/{chunk-UIPSSTMA.js.map → chunk-GCFC2MNR.js.map} +0 -0
  643. /package/dist/{chunk-24SPBLU4.js.map → chunk-H5P4XNTR.js.map} +0 -0
  644. /package/dist/{chunk-KGZXQIM5.js.map → chunk-H7TJX6MJ.js.map} +0 -0
  645. /package/dist/{chunk-3RWSYI6N.js.map → chunk-HMFIOE4P.js.map} +0 -0
  646. /package/dist/{chunk-ZBP735CV.js.map → chunk-HMZ6FUXY.js.map} +0 -0
  647. /package/dist/{chunk-S4PK55OH.js.map → chunk-HN2W55DC.js.map} +0 -0
  648. /package/dist/{chunk-HDYJ6YVI.js.map → chunk-HPS7HLN4.js.map} +0 -0
  649. /package/dist/{chunk-AMHVCMBW.js.map → chunk-HXLCETLB.js.map} +0 -0
  650. /package/dist/{chunk-MIOE5IN3.js.map → chunk-HZQ64QEY.js.map} +0 -0
  651. /package/dist/{chunk-35T6LCB2.js.map → chunk-I62QW2UL.js.map} +0 -0
  652. /package/dist/{chunk-4PWC4KAK.js.map → chunk-KAUW3OFC.js.map} +0 -0
  653. /package/dist/{chunk-TQDZQT6U.js.map → chunk-KFHW5TCM.js.map} +0 -0
  654. /package/dist/{chunk-AUGAC2OT.js.map → chunk-KT2YKHCH.js.map} +0 -0
  655. /package/dist/{chunk-F4QYUDXE.js.map → chunk-LFWGMR3F.js.map} +0 -0
  656. /package/dist/{chunk-NPZ5VWFE.js.map → chunk-LNEUE4BR.js.map} +0 -0
  657. /package/dist/{chunk-A4TWHQEF.js.map → chunk-MDBRRR3J.js.map} +0 -0
  658. /package/dist/{chunk-5VVXF3OS.js.map → chunk-MHRFRSQ6.js.map} +0 -0
  659. /package/dist/{chunk-YFRNONXL.js.map → chunk-N26ZASAC.js.map} +0 -0
  660. /package/dist/{chunk-QIZY55Z6.js.map → chunk-NPGI5DXP.js.map} +0 -0
  661. /package/dist/{chunk-RD63FPG6.js.map → chunk-NQF5U6FX.js.map} +0 -0
  662. /package/dist/{chunk-MI3J4O42.js.map → chunk-NTOCO72A.js.map} +0 -0
  663. /package/dist/{chunk-CKT5SR7F.js.map → chunk-OATKGUUI.js.map} +0 -0
  664. /package/dist/{chunk-3V4R55B4.js.map → chunk-P2C6X574.js.map} +0 -0
  665. /package/dist/{chunk-TP6QJATO.js.map → chunk-POI76GQV.js.map} +0 -0
  666. /package/dist/{chunk-EPW33OQJ.js.map → chunk-PZ3EFXL7.js.map} +0 -0
  667. /package/dist/{chunk-FKGYEK54.js.map → chunk-QCONJUK6.js.map} +0 -0
  668. /package/dist/{chunk-H27R5IVQ.js.map → chunk-RAO7FTMY.js.map} +0 -0
  669. /package/dist/{chunk-HHQYP6RM.js.map → chunk-RM5T4MA6.js.map} +0 -0
  670. /package/dist/{chunk-WDPOXO34.js.map → chunk-RRH5QWVS.js.map} +0 -0
  671. /package/dist/{chunk-MZPS46OR.js.map → chunk-SIKCVWM3.js.map} +0 -0
  672. /package/dist/{chunk-4KGQZHCV.js.map → chunk-SPBUHC2K.js.map} +0 -0
  673. /package/dist/{chunk-T2JHHSPI.js.map → chunk-VAWAFQW3.js.map} +0 -0
  674. /package/dist/{chunk-TFCZOTQ5.js.map → chunk-VFESCAO4.js.map} +0 -0
  675. /package/dist/{chunk-JEMYDBKC.js.map → chunk-VLE433LA.js.map} +0 -0
  676. /package/dist/{chunk-7Y6CPXM5.js.map → chunk-W2MHGOUZ.js.map} +0 -0
  677. /package/dist/{chunk-NGXZQESA.js.map → chunk-WM6JHUPY.js.map} +0 -0
  678. /package/dist/{chunk-KSECMOHE.js.map → chunk-XAHY53IO.js.map} +0 -0
  679. /package/dist/{chunk-C6CWI43A.js.map → chunk-XJ62F6EA.js.map} +0 -0
  680. /package/dist/{chunk-IJ5DWALA.js.map → chunk-XMHTLWWE.js.map} +0 -0
  681. /package/dist/{chunk-FSLSISPI.js.map → chunk-Y3ESEQRI.js.map} +0 -0
  682. /package/dist/{chunk-YFIWCMVC.js.map → chunk-YAX5CGUY.js.map} +0 -0
  683. /package/dist/{chunk-337ZJ3PX.js.map → chunk-YPYI3YBK.js.map} +0 -0
  684. /package/dist/{chunk-RZUXHIRN.js.map → chunk-YXCSJQKQ.js.map} +0 -0
  685. /package/dist/{chunk-N3T4ALXV.js.map → chunk-Z6ZYGDCQ.js.map} +0 -0
  686. /package/dist/{chunk-RW32BYY3.js.map → chunk-ZJOXRK2G.js.map} +0 -0
  687. /package/dist/{chunk-2AJ5UNOF.js.map → chunk-ZPHHJPDG.js.map} +0 -0
  688. /package/dist/{chunk-H23Q55DS.js.map → chunk-ZV4K6E3S.js.map} +0 -0
  689. /package/dist/{claim-65UCFSNU.js.map → claim-VN6RHORQ.js.map} +0 -0
  690. /package/dist/{companies-PUU5HQPO.js.map → companies-UNXZLC4T.js.map} +0 -0
  691. /package/dist/{company-P64YHCCF.js.map → company-E7J2I4B5.js.map} +0 -0
  692. /package/dist/{complete-D7LIEFAQ.js.map → complete-TI6ME7P2.js.map} +0 -0
  693. /package/dist/{connect-OJEK3NSN.js.map → connect-VYCZ7APH.js.map} +0 -0
  694. /package/dist/{conversation-S2I75E4X.js.map → conversation-AVJMT6NK.js.map} +0 -0
  695. /package/dist/{conversion-report-JNWBTLA5.js.map → conversion-report-GK2FUT2R.js.map} +0 -0
  696. /package/dist/{conversion-upload-command-6OKMSO2T.js.map → conversion-upload-command-Q7LZFFZL.js.map} +0 -0
  697. /package/dist/{conversion-writes-2VOWP4RD.js.map → conversion-writes-STESFLTB.js.map} +0 -0
  698. /package/dist/{conversions-XQLNBKCS.js.map → conversions-6KDF5AVY.js.map} +0 -0
  699. /package/dist/{conversions-JGIBYLK5.js.map → conversions-JBRU7CGB.js.map} +0 -0
  700. /package/dist/{create-WTG4PLR7.js.map → create-7R5HTOI2.js.map} +0 -0
  701. /package/dist/{create-UBQF3F43.js.map → create-BGIE2YTE.js.map} +0 -0
  702. /package/dist/{create-URSL4J7P.js.map → create-HI53LEYE.js.map} +0 -0
  703. /package/dist/{create-DXRRIN2L.js.map → create-YVKJC5IT.js.map} +0 -0
  704. /package/dist/{creatives-KHU3PAMN.js.map → creatives-ACU2HGZW.js.map} +0 -0
  705. /package/dist/{creatives-MXMQDNL6.js.map → creatives-ISYALGKS.js.map} +0 -0
  706. /package/dist/{credentials-CMOO7W6D.js.map → credentials-UCROYYPD.js.map} +0 -0
  707. /package/dist/{critique-MABDKWHC.js.map → critique-SGEKRORA.js.map} +0 -0
  708. /package/dist/{critique-455CFJQ2.js.map → critique-SJLBIGD2.js.map} +0 -0
  709. /package/dist/{crm-LKQBWL7L.js.map → crm-OZ626TTR.js.map} +0 -0
  710. /package/dist/{crm-YAFF2LM2.js.map → crm-X7FX34QY.js.map} +0 -0
  711. /package/dist/{currency-JDAVYMD3.js.map → currency-HB3MFXLJ.js.map} +0 -0
  712. /package/dist/{customers-XQJTF7HT.js.map → customers-I3T6HJD4.js.map} +0 -0
  713. /package/dist/{delete-7OTBPZGJ.js.map → delete-24S5ICGH.js.map} +0 -0
  714. /package/dist/{delete-ZRMD5TG4.js.map → delete-ICXIKJZF.js.map} +0 -0
  715. /package/dist/{delete-ROD2G6IL.js.map → delete-RWZCVPYV.js.map} +0 -0
  716. /package/dist/{demographics-HM2TV4T2.js.map → demographics-PUJKNWCF.js.map} +0 -0
  717. /package/dist/{discard-55OBCTIR.js.map → discard-4GLM3TVC.js.map} +0 -0
  718. /package/dist/{discover-VEHKBNCY.js.map → discover-DLGO3VW6.js.map} +0 -0
  719. /package/dist/{domain-226C6VIF.js.map → domain-A4IVVFI6.js.map} +0 -0
  720. /package/dist/{download-UMEQIQKE.js.map → download-KIOTQW3Z.js.map} +0 -0
  721. /package/dist/{draft-V7VGPJK4.js.map → draft-4MKYX4VU.js.map} +0 -0
  722. /package/dist/{draft-MPSQIDMM.js.map → draft-6QUGODCB.js.map} +0 -0
  723. /package/dist/{draft-TUTXQNHP.js.map → draft-AMSBOSM2.js.map} +0 -0
  724. /package/dist/{draft-DUAFRL2G.js.map → draft-I7HIRQ6F.js.map} +0 -0
  725. /package/dist/{draft-S2QTWVIA.js.map → draft-IB5A3RFD.js.map} +0 -0
  726. /package/dist/{experiments-6UHDVVII.js.map → experiments-NW4GVPAF.js.map} +0 -0
  727. /package/dist/{facets-BZ5AFGHD.js.map → facets-SIY7OICY.js.map} +0 -0
  728. /package/dist/{feedback-A5DR3IMR.js.map → feedback-LUNPSQEO.js.map} +0 -0
  729. /package/dist/{feedback-record-KABFVNHS.js.map → feedback-record-ML67WVIX.js.map} +0 -0
  730. /package/dist/{fetch-XNE63FNS.js.map → fetch-T7OO6FDT.js.map} +0 -0
  731. /package/dist/{fit-T2D4E52B.js.map → fit-63FKT2JJ.js.map} +0 -0
  732. /package/dist/{flows-P5T4LNJ2.js.map → flows-RWQSQKUL.js.map} +0 -0
  733. /package/dist/{fonts-U3NGQYJN.js.map → fonts-UQ6ISHO3.js.map} +0 -0
  734. /package/dist/{forecast-UYBYSH3Y.js.map → forecast-AODSMD7S.js.map} +0 -0
  735. /package/dist/{forecast-TG5RS5DG.js.map → forecast-JTKQQYMN.js.map} +0 -0
  736. /package/dist/{funnel-D6YXU7C4.js.map → funnel-J5IJQPUP.js.map} +0 -0
  737. /package/dist/{generate-QG7GX6WO.js.map → generate-HSDSCKDW.js.map} +0 -0
  738. /package/dist/{get-TISXCTDV.js.map → get-VLS22SZR.js.map} +0 -0
  739. /package/dist/{get-E4VOTCE6.js.map → get-X6TC6UBK.js.map} +0 -0
  740. /package/dist/{google-UQLYCYSX.js.map → google-FOZYYKNY.js.map} +0 -0
  741. /package/dist/{google-ads-GBX5YHPT.js.map → google-ads-HBNPBUR4.js.map} +0 -0
  742. /package/dist/{history-BRWYSJQL.js.map → history-E25YCUQO.js.map} +0 -0
  743. /package/dist/{history-XOB23MLX.js.map → history-SHQVK5I7.js.map} +0 -0
  744. /package/dist/{history-M2KVZ2E7.js.map → history-ZNPAN36E.js.map} +0 -0
  745. /package/dist/{hubspot-YEZGTOM2.js.map → hubspot-WFJ22XGN.js.map} +0 -0
  746. /package/dist/{ideas-J6GCTQ6U.js.map → ideas-FCL5SDI4.js.map} +0 -0
  747. /package/dist/{images-55KBTRVO.js.map → images-SXBR3MLH.js.map} +0 -0
  748. /package/dist/{ingest-LKGF5E5V.js.map → ingest-UJBMV7PZ.js.map} +0 -0
  749. /package/dist/{ingest-QNV3B2ST.js.map → ingest-YRWIO6DV.js.map} +0 -0
  750. /package/dist/{insights-7CQJOBWX.js.map → insights-UMPXHRKD.js.map} +0 -0
  751. /package/dist/{inspect-WNPQXU4H.js.map → inspect-I2CJDQSA.js.map} +0 -0
  752. /package/dist/{intent-P75BDP4H.js.map → intent-NBP5IDND.js.map} +0 -0
  753. /package/dist/{keyword-gap-54F6CZLM.js.map → keyword-gap-67UJ2LDD.js.map} +0 -0
  754. /package/dist/{keyword-metrics-SJLYED7I.js.map → keyword-metrics-U6IWGT4N.js.map} +0 -0
  755. /package/dist/{keywords-for-site-CY2XUFR4.js.map → keywords-for-site-PXID3WEP.js.map} +0 -0
  756. /package/dist/{landing-DZLICA3P.js.map → landing-PIQYR6XI.js.map} +0 -0
  757. /package/dist/{languages-PEGOE365.js.map → languages-TM7SHGRO.js.map} +0 -0
  758. /package/dist/{leads-WBZP37CG.js.map → leads-DOFRCD7J.js.map} +0 -0
  759. /package/dist/{learn-QNOTY4JA.js.map → learn-VMNUQL6D.js.map} +0 -0
  760. /package/dist/{line-item-writes-6RNUOFKK.js.map → line-item-writes-6MCXCXYM.js.map} +0 -0
  761. /package/dist/{line-items-YOBU6DYQ.js.map → line-items-X3GEB5P7.js.map} +0 -0
  762. /package/dist/{link-7PEVIIUA.js.map → link-TX5PWJBH.js.map} +0 -0
  763. /package/dist/{linkedin-YYNBLBM3.js.map → linkedin-3DYXRHL7.js.map} +0 -0
  764. /package/dist/{linkedin-person-JGQTT54I.js.map → linkedin-person-TP7DAJST.js.map} +0 -0
  765. /package/dist/{list-H2XBHKQK.js.map → list-2WFSHJ2I.js.map} +0 -0
  766. /package/dist/{list-IFVBO2E2.js.map → list-GMMNLVCA.js.map} +0 -0
  767. /package/dist/{list-N5FHLG2Z.js.map → list-I77SLBPO.js.map} +0 -0
  768. /package/dist/{locations-SHYN5J4Q.js.map → locations-HAXZUHJP.js.map} +0 -0
  769. /package/dist/{locations-MXWGZIGU.js.map → locations-JFBM4XBL.js.map} +0 -0
  770. /package/dist/{log-HCWZ6C4R.js.map → log-3HSJ3RYY.js.map} +0 -0
  771. /package/dist/{make-VZKIB23N.js.map → make-OKIBB4LM.js.map} +0 -0
  772. /package/dist/{map-RFMJ4AF7.js.map → map-O63QGACI.js.map} +0 -0
  773. /package/dist/{mcp-VRFT3QJW.js.map → mcp-GJEZ37AM.js.map} +0 -0
  774. /package/dist/{media-sources-NTZRJGFU.js.map → media-sources-KE6XXCTY.js.map} +0 -0
  775. /package/dist/{members-EOIF2XN3.js.map → members-WF453RSC.js.map} +0 -0
  776. /package/dist/{meta-MBW5LM5V.js.map → meta-6IFYEOZL.js.map} +0 -0
  777. /package/dist/{metrics-25LYUEB7.js.map → metrics-XWHE4LYQ.js.map} +0 -0
  778. /package/dist/{models-EU3NO4IY.js.map → models-3C6BWHEC.js.map} +0 -0
  779. /package/dist/{normalize-UQIZEJHT.js.map → normalize-HWMMP6LX.js.map} +0 -0
  780. /package/dist/{options-Y6JI2ZVZ.js.map → options-XGYNQCQM.js.map} +0 -0
  781. /package/dist/{organization-TO2V7AWX.js.map → organization-X27LDCZU.js.map} +0 -0
  782. /package/dist/{performance-V26JUNGC.js.map → performance-JLQIJK4V.js.map} +0 -0
  783. /package/dist/{performance-YAUOH75F.js.map → performance-XYGEV4TX.js.map} +0 -0
  784. /package/dist/{pixels-NLH2PN6Q.js.map → pixels-PMPL63ON.js.map} +0 -0
  785. /package/dist/{promoted-tweet-writes-3SLFZQDA.js.map → promoted-tweet-writes-7DGO5Z2G.js.map} +0 -0
  786. /package/dist/{promoted-tweets-3WRSJYKK.js.map → promoted-tweets-SPBZXSYI.js.map} +0 -0
  787. /package/dist/{publish-T6ITLSJA.js.map → publish-RRJRO5DC.js.map} +0 -0
  788. /package/dist/{query-SRJXJVDY.js.map → query-CTQGGPXW.js.map} +0 -0
  789. /package/dist/{reddit-O2TNBMD6.js.map → reddit-OCRVXWJC.js.map} +0 -0
  790. /package/dist/{refresh-N726O36Z.js.map → refresh-M6BXIMQD.js.map} +0 -0
  791. /package/dist/{release-A5HKTUMV.js.map → release-ZRKZEBEB.js.map} +0 -0
  792. /package/dist/{relevant-pages-VJHTUJMB.js.map → relevant-pages-NPUSAV3K.js.map} +0 -0
  793. /package/dist/{remove-BHUYRNRU.js.map → remove-JW3RRNB6.js.map} +0 -0
  794. /package/dist/{reopen-TTDYNANZ.js.map → reopen-G6ZE5YNP.js.map} +0 -0
  795. /package/dist/{rerun-KFTQ6Y64.js.map → rerun-OKOYKQXC.js.map} +0 -0
  796. /package/dist/{research-YWON4E4H.js.map → research-DZZBRX4V.js.map} +0 -0
  797. /package/dist/{research-FISSUVIK.js.map → research-NLZ34525.js.map} +0 -0
  798. /package/dist/{reset-SSNHRP5C.js.map → reset-ABZVGJE6.js.map} +0 -0
  799. /package/dist/{reset-VTNVCE23.js.map → reset-JYER2WPC.js.map} +0 -0
  800. /package/dist/{resolve-375FALNN.js.map → resolve-EH3ONOYE.js.map} +0 -0
  801. /package/dist/{retry-PNS6RWJ6.js.map → retry-LKJWY5BC.js.map} +0 -0
  802. /package/dist/{retry-TLGYZ6RJ.js.map → retry-VY76DPS5.js.map} +0 -0
  803. /package/dist/{revenue-6L2AY7L7.js.map → revenue-7GIOE3TG.js.map} +0 -0
  804. /package/dist/{rules-F6J4V7PZ.js.map → rules-NUNJBT6R.js.map} +0 -0
  805. /package/dist/{rules-add-7UI5A3MJ.js.map → rules-add-7FB67IDD.js.map} +0 -0
  806. /package/dist/{run-B77D2TGX.js.map → run-3GV2FYWG.js.map} +0 -0
  807. /package/dist/{run-UN4HXEGZ.js.map → run-OVOXZUXN.js.map} +0 -0
  808. /package/dist/{scaffold-ad-74CEBCRR.js.map → scaffold-ad-7D5EUDU7.js.map} +0 -0
  809. /package/dist/{scaffold-static-ad-2IMVWNYB.js.map → scaffold-static-ad-TWF2RRM2.js.map} +0 -0
  810. /package/dist/{scaffold-video-JDCX3BIT.js.map → scaffold-video-4P2ONEQV.js.map} +0 -0
  811. /package/dist/{schedule-WK5MRYCJ.js.map → schedule-XQ725JG6.js.map} +0 -0
  812. /package/dist/{scheduled-agents-2NTFBABN.js.map → scheduled-agents-KBSD55GW.js.map} +0 -0
  813. /package/dist/{schema-BBC6AARZ.js.map → schema-WJVWY4IA.js.map} +0 -0
  814. /package/dist/{search-KC4QRMU2.js.map → search-KQGMLU2Z.js.map} +0 -0
  815. /package/dist/{select-SZAJR4QY.js.map → select-CLD5MFCK.js.map} +0 -0
  816. /package/dist/{set-prompt-KHB4JJV2.js.map → set-prompt-COD76I6E.js.map} +0 -0
  817. /package/dist/{setup-links-SJVDPNOF.js.map → setup-links-H5L5CJJN.js.map} +0 -0
  818. /package/dist/{shopify-MODNP6LT.js.map → shopify-M2I65ZB5.js.map} +0 -0
  819. /package/dist/{site-5K73B2MI.js.map → site-AIJK3MNO.js.map} +0 -0
  820. /package/dist/{sources-2E6EK6YK.js.map → sources-JRMCBVLK.js.map} +0 -0
  821. /package/dist/{sources-S7LAV2EP.js.map → sources-YVDTULK6.js.map} +0 -0
  822. /package/dist/{stale-3IPYZ7BI.js.map → stale-AVBULN3A.js.map} +0 -0
  823. /package/dist/{status-6QTJSJN7.js.map → status-RXA4BBXZ.js.map} +0 -0
  824. /package/dist/{studio-4QOFG7MQ.js.map → studio-C2UVCTDD.js.map} +0 -0
  825. /package/dist/{sync-37P7TZQH.js.map → sync-CMYHAJSZ.js.map} +0 -0
  826. /package/dist/{sync-definition-CDQCNCU2.js.map → sync-definition-IKI2NFUO.js.map} +0 -0
  827. /package/dist/{tags-2VZUCNNH.js.map → tags-5IVIDOPC.js.map} +0 -0
  828. /package/dist/{tags-FVRIF3XS.js.map → tags-5L5MV6XZ.js.map} +0 -0
  829. /package/dist/{tags-SS7FE52N.js.map → tags-LIG4SXDB.js.map} +0 -0
  830. /package/dist/{tags-CBINFGAN.js.map → tags-LRFFVAZ3.js.map} +0 -0
  831. /package/dist/{tags-OB24PQKE.js.map → tags-VMMVSG6J.js.map} +0 -0
  832. /package/dist/{targeting-criteria-ECC662DL.js.map → targeting-criteria-AMVFYZ2H.js.map} +0 -0
  833. /package/dist/{targets-GIRHNZ4W.js.map → targets-RE24B2LL.js.map} +0 -0
  834. /package/dist/{testimonials-IEJ24MH7.js.map → testimonials-FWJRO4MB.js.map} +0 -0
  835. /package/dist/{themes-JBX6W4SP.js.map → themes-32CUPT4M.js.map} +0 -0
  836. /package/dist/{top-companies-POSJMWSB.js.map → top-companies-6GI6AWGA.js.map} +0 -0
  837. /package/dist/{transcript-FCKURXTT.js.map → transcript-XMWBCLQO.js.map} +0 -0
  838. /package/dist/{translate-F4B3WEJO.js.map → translate-2UYIIMEG.js.map} +0 -0
  839. /package/dist/{triggers-DRAKT5QB.js.map → triggers-WCI5DERM.js.map} +0 -0
  840. /package/dist/{unlink-OEUJXG64.js.map → unlink-MM23NOTI.js.map} +0 -0
  841. /package/dist/{unstage-F362CYM7.js.map → unstage-YQXFED4J.js.map} +0 -0
  842. /package/dist/{update-BAE3BEEW.js.map → update-3BGBYU5R.js.map} +0 -0
  843. /package/dist/{update-4CVNP3B5.js.map → update-A53QG3XM.js.map} +0 -0
  844. /package/dist/{update-XOSKQEMK.js.map → update-S2CJ5FNS.js.map} +0 -0
  845. /package/dist/{update-UME7HHOC.js.map → update-VMN5BHTP.js.map} +0 -0
  846. /package/dist/{upload-BABKWQIN.js.map → upload-VT7NPRAM.js.map} +0 -0
  847. /package/dist/{url-options-JSRAMMEM.js.map → url-options-JJIA77MZ.js.map} +0 -0
  848. /package/dist/{url-params-ZVIYOHM2.js.map → url-params-RFMWR2PZ.js.map} +0 -0
  849. /package/dist/{validate-DN44TVXS.js.map → validate-KMY5ZVQX.js.map} +0 -0
  850. /package/dist/{videos-OVVH4LC2.js.map → videos-DZT3TMKO.js.map} +0 -0
  851. /package/dist/{viewer-check-SOPRTRNX.js.map → viewer-check-QHXKGGH2.js.map} +0 -0
  852. /package/dist/{web-PLEFETCJ.js.map → web-HP45GOIL.js.map} +0 -0
  853. /package/dist/{winning-ads-HIP6PWPL.js.map → winning-ads-ZJVGEPZ7.js.map} +0 -0
  854. /package/dist/{write-commands-U3JZ6UHG.js.map → write-commands-YKWSFUO5.js.map} +0 -0
  855. /package/dist/{x-ROOD4SQH.js.map → x-V76UQMEM.js.map} +0 -0
@@ -1,319 +0,0 @@
1
- import {
2
- RESEARCH_GOOGLE_ADS_MAX_COPY
3
- } from "./chunk-UREDSNQS.js";
4
-
5
- // src/commands/research/hints.ts
6
- var AD_COPY_ROUTE = 'This returns competing domains and their SERP economics \u2014 no ad copy, no headlines, no creative. For a competitor\'s Google ads and their copy: `baker research google-ads <competitor.com> --copy` (Google\'s Ads Transparency Center: every ad, how long it has run, and the text ads\' headline and description). For Meta and LinkedIn: `baker winning-ads advertisers "<brand>"` \u2192 `baker winning-ads search "<brief>" --advertiser-id <id>` \u2192 `baker winning-ads content <adId>` (`primary_text` / `headline` / `cta`, plus the spoken transcript and on-screen text for video). Do not keep querying this command for copy.';
7
- function noSerpRowsHints(rowCount, queryContext) {
8
- if (rowCount > 0) {
9
- return [];
10
- }
11
- const defaulted = queryContext.location_is_default || queryContext.language_is_default;
12
- if (defaulted) {
13
- return [
14
- `No rows for ${queryContext.location} / ${queryContext.language} \u2014 the market you did not set. Set --location and --language for the client's actual market and re-run once (\`baker research countries\` / \`baker research languages\` for the accepted codes) before you touch the keyword.`
15
- ];
16
- }
17
- return [
18
- `No rows for ${queryContext.location} / ${queryContext.language}, which you set explicitly. This term has no third-party SERP coverage in that market \u2014 move on rather than re-querying it. For demand signal try \`baker research autocomplete\`; for a competitor's actual terms, \`baker research keywords-for-site <domain>\`.`
19
- ];
20
- }
21
- function advertisersHints(rowCount, queryContext) {
22
- return [...noSerpRowsHints(rowCount, queryContext), AD_COPY_ROUTE];
23
- }
24
- function keywordsForSiteHints(rowCount, queryContext, typeFilter) {
25
- if (rowCount > 0) {
26
- return [];
27
- }
28
- if (typeFilter === "paid" || typeFilter === "organic") {
29
- return [
30
- `No rows with --type ${typeFilter} in ${queryContext.location} / ${queryContext.language}. A domain with zero ${typeFilter} keywords in a market is itself the finding \u2014 record it and move on. Confirm once with --type all (nothing at all there means the domain has no SERP coverage, not that it has no ads) instead of re-running with a different --sort or --limit.`
31
- ];
32
- }
33
- return noSerpRowsHints(rowCount, queryContext);
34
- }
35
- var THIN_ANSWER_CHARS = 600;
36
- var THIN_SOURCE_COUNT = 2;
37
- var ESCALATION = {
38
- medium: "`medium` is a quick lookup, not a search. Re-ask the SAME question once with `--depth high` before concluding the web has nothing on it.",
39
- high: "`high` already thought hard about this. `--depth xhigh` is the only step left and it can run 15 minutes \u2014 take it only if this answer blocks a deliverable; otherwise record the gap and move on."
40
- };
41
- function fetchHints({
42
- truncated,
43
- contentChars,
44
- shownChars
45
- }) {
46
- const hints = [];
47
- if (shownChars < contentChars) {
48
- hints.push(
49
- `Showing the first ${shownChars.toLocaleString("en-US")} of ${contentChars.toLocaleString("en-US")} characters. Re-run the same command with \`--full\` for the whole page \u2014 the read is cached for 24h, so it costs no extra time and no extra credit.`
50
- );
51
- }
52
- if (truncated) {
53
- hints.push(
54
- "This page is longer than one read returns, so the end of it is missing. Don't present this as the complete page; if the part you need is further down, fetch the deeper URL directly."
55
- );
56
- }
57
- return hints;
58
- }
59
- function webDepthHints({
60
- answer,
61
- sourceCount,
62
- depth
63
- }) {
64
- const thin = answer.length < THIN_ANSWER_CHARS || sourceCount <= THIN_SOURCE_COUNT;
65
- const escalation = ESCALATION[depth];
66
- if (!thin || !escalation) {
67
- return [];
68
- }
69
- return [`Thin answer (${answer.length} chars, ${sourceCount} source(s)). ${escalation}`];
70
- }
71
- function keywordMetricsHints({
72
- rows,
73
- asked,
74
- clickstream,
75
- queryContext
76
- }) {
77
- if (rows.length === 0) {
78
- return noSerpRowsHints(0, queryContext);
79
- }
80
- const provenance = "DataForSEO resells Google's Keyword Planner volume \u2014 planner_search_volume here is the SAME number `baker ads google keywords metrics` returns, not an independent reading of it. Quoting the two as agreeing sources is not corroboration." + (clickstream ? " clickstream_search_volume IS independent (DataForSEO's own panels); when the two disagree, say which one you are quoting." : " For a genuinely independent estimate of demand, re-run with --clickstream (costs 2x), or use first-party data: `baker gsc query` for what already reaches the site, or the account's own search terms.");
81
- const hints = [provenance];
82
- const empty = rows.filter((row) => row.search_volume === null).map((row) => row.keyword);
83
- if (empty.length > 0) {
84
- hints.push(
85
- `${empty.length} of ${asked.length} keywords came back with no data in ${queryContext.location} / ${queryContext.language}: ${empty.join(", ")}. That is missing coverage, NOT zero demand \u2014 do not report them as unsearched, and do not re-query them reworded. \`baker research autocomplete\` on the head term is the way to find the phrasing that market uses.`
86
- );
87
- }
88
- return hints;
89
- }
90
- var ARCHIVE_NOTE = "Read from the Reddit archive: the words are as posted, but points and comment counts on anything under ~36h old are as first captured \u2014 don't quote those numbers as current.";
91
- function redditSearchHints({
92
- resultCount,
93
- kind,
94
- source
95
- }) {
96
- const hints = [];
97
- if (resultCount === 0) {
98
- hints.push(
99
- 'Nothing matched. Reddit search matches words, not meaning: try the audience\'s own phrasing (one distinctive word, or a seed from `baker research autocomplete`), a longer --since window, or other subreddits \u2014 `baker research reddit subreddits "<topic>"` finds where the audience actually talks' + (kind === "posts" ? ", and try --kind comments \u2014 most of the voice is in the replies." : ".")
100
- );
101
- } else if (kind === "posts") {
102
- hints.push(
103
- "Titles rarely carry the voice. Read the promising threads with `baker research reddit thread <permalink>` for the replies, or search the replies directly with --kind comments."
104
- );
105
- }
106
- if (source === "archive" && resultCount > 0) hints.push(ARCHIVE_NOTE);
107
- return hints;
108
- }
109
- function redditThreadHints({
110
- commentsShown,
111
- commentsAsked,
112
- commentCount,
113
- source
114
- }) {
115
- const hints = [];
116
- if (commentsAsked > 0 && commentsShown === 0 && (commentCount ?? 0) > 0) {
117
- hints.push(
118
- `This thread has ${commentCount} comments but none could be read just now. Quote the post only, and don't describe the replies.`
119
- );
120
- }
121
- if (source === "archive") hints.push(ARCHIVE_NOTE);
122
- return hints;
123
- }
124
- var REDDIT_HOST = /(^|\.)reddit\.com$|^redd\.it$/i;
125
- function redditSubredditsHints({ resultCount }) {
126
- if (resultCount === 0) {
127
- return [
128
- 'No subreddits matched. Try the audience\'s role or the platform they work on ("amazon flex", "deliveroo", "nurses"), one word at a time, or a web search for `site:reddit.com <topic>`.'
129
- ];
130
- }
131
- return [
132
- 'Members say how big a subreddit is, not how active it is. Before mining one, run `baker research reddit search "<word>" --subreddit <name> --since <a recent date>`: nothing back means it is quiet, so pick another. `restricted` can still be read; `private` cannot.'
133
- ];
134
- }
135
- var REDDIT_LINK_REJECTED = {
136
- action: "reject",
137
- explanation: "Do not quote anything attributed to this link \u2014 it does not lead to those words. Find the real thread with `baker research reddit search`, and if you already wrote a quote from it, remove it."
138
- };
139
- function redditPageFix(url, code) {
140
- let host;
141
- try {
142
- host = new URL(url).hostname;
143
- } catch {
144
- return null;
145
- }
146
- if (!REDDIT_HOST.test(host)) return null;
147
- if (code === "NOT_FOUND") return REDDIT_LINK_REJECTED;
148
- if (code !== "FORBIDDEN") return null;
149
- return {
150
- action: "retry_with_changes",
151
- explanation: 'Read Reddit with its own commands: `baker research reddit search "<words>" --subreddit <name>` to find what people said, `baker research reddit thread <url>` for one thread.'
152
- };
153
- }
154
- function googleAdsHints({
155
- target,
156
- adCount,
157
- located,
158
- textWithoutCopy,
159
- copyAsked,
160
- copyUnread,
161
- visual
162
- }) {
163
- if (adCount === 0) {
164
- return [
165
- `No Google ads point to ${target}${located ? " in that region" : ""} \u2014 that is the answer, not a failed call: this competitor is not advertising on Google there, or its ads point to another domain. ` + (located ? "Re-run once without --location to see every region; then move on. " : "Move on. ") + `Its paid search terms, if any: \`baker research keywords-for-site ${target} --type paid\`.`
166
- ];
167
- }
168
- const hints = [];
169
- if (!copyAsked && textWithoutCopy > 0) {
170
- hints.push(
171
- `${textWithoutCopy} text ads came back without their words. Re-run with --copy to read the headline and description of up to ${RESEARCH_GOOGLE_ADS_MAX_COPY} (cached, so only the reading is new).`
172
- );
173
- }
174
- const pastCap = copyAsked ? textWithoutCopy - copyUnread : 0;
175
- if (pastCap > 0) {
176
- hints.push(
177
- `${pastCap} text ads past the first ${RESEARCH_GOOGLE_ADS_MAX_COPY} were not read \u2014 one request reads at most ${RESEARCH_GOOGLE_ADS_MAX_COPY}. Narrow with --since, --location or --platform google_search and re-run for their words.`
178
- );
179
- }
180
- if (visual > 0 || copyUnread > 0) {
181
- const without = [
182
- visual > 0 ? `${visual} image or video ads (Google gives no text for those)` : "",
183
- copyUnread > 0 ? `${copyUnread} text ads whose image could not be read` : ""
184
- ].filter(Boolean);
185
- hints.push(
186
- `No copy for ${without.join(" and ")}: show those by their \`transparency_url\`. Do not open the Transparency Center in agent-browser to read them \u2014 it is the browser load this command exists to avoid.`
187
- );
188
- }
189
- return hints;
190
- }
191
- var LINKEDIN_PERSON_USE = "For ad and page messaging only; nothing is stored \u2014 quote their stated priorities into the creative brief for this account, and don't save the person to Knowledge or read them again to keep track of them.";
192
- function linkedinPersonHints({ isPrivate, postCount }) {
193
- if (isPrivate) {
194
- return [
195
- "LinkedIn doesn't show this profile publicly, and reading it again won't change that. Find their own words elsewhere \u2014 a keynote, podcast or earnings call through `baker research transcript <url>`, or an interview through `baker research fetch <url>` \u2014 or write the brief from the account's company-level priorities."
196
- ];
197
- }
198
- if (postCount === 0) {
199
- return [
200
- LINKEDIN_PERSON_USE,
201
- "They have no recent posts, so their `about` is the only first-person line here. Their priorities are more often said aloud: a keynote, podcast or earnings call through `baker research transcript <url>`."
202
- ];
203
- }
204
- return [LINKEDIN_PERSON_USE];
205
- }
206
- function transcriptHints({ excerpted, truncated }) {
207
- const hints = [];
208
- if (excerpted) {
209
- hints.push(
210
- "This is the opening excerpt. Re-run with `--out <file>` to write the whole text to a file and read the parts you need, or `--full` to have it all here \u2014 the transcript is cached for 7 days, so either costs nothing more."
211
- );
212
- }
213
- if (truncated) {
214
- hints.push(
215
- "The recording is longer than one transcript carries, so the end of the recording is missing. Don't quote this as the whole talk."
216
- );
217
- }
218
- return hints;
219
- }
220
- function thinProfileHint(domain, profile) {
221
- const missing = [
222
- profile.linkedinUrl ? null : "no LinkedIn page",
223
- profile.hqCountry ? null : "no HQ country",
224
- profile.employees ? null : "no employee band"
225
- ].filter((gap) => gap !== null);
226
- const tiny = profile.employees === "1-10";
227
- if (missing.length < 2 && !tiny) return null;
228
- const why = [...missing, ...tiny ? ["1-10 employees"] : []].join(", ");
229
- return `This profile is thin (${why}). Check ${domain} is the company's main website \u2014 companies often run on another domain (e.g. factorial.es vs factorialhr.com) \u2014 before using these facts for tiering.`;
230
- }
231
- function companyHints({
232
- domain,
233
- profile,
234
- hiring
235
- }) {
236
- const hints = [];
237
- if (!profile) {
238
- hints.push(
239
- "There's no company profile for this domain, only its hiring. Check it is the company's main website; otherwise take size, industry and location from its LinkedIn page or its own site."
240
- );
241
- } else {
242
- const thin = thinProfileHint(domain, profile);
243
- if (thin) hints.push(thin);
244
- }
245
- if (hiring.status === "unavailable" && hiring.reason === "not_configured") {
246
- hints.push(
247
- "Hiring signals aren't switched on for this workspace yet, so these are the firmographics alone. Score the account on them and leave hiring out of the reason."
248
- );
249
- }
250
- if (hiring.status === "unavailable" && hiring.reason === "failed") {
251
- hints.push(
252
- "Hiring signals couldn't be read this time; don't retry in a loop. Use the firmographics and say hiring is unknown for this account."
253
- );
254
- }
255
- if (hiring.status === "not_tracked") {
256
- hints.push(
257
- "No hiring data is kept for this company \u2014 that means unknown, not that it isn't hiring. Don't score it down for it."
258
- );
259
- }
260
- return hints;
261
- }
262
- function industryList(industries) {
263
- return industries.map(({ slug, companies }) => `${slug} (${companies.toLocaleString("en-US")})`).join(", ");
264
- }
265
- function relatedIndustriesHint(related) {
266
- if (related.length === 0) return null;
267
- return `Related industries not included (companies each adds with your other filters): ${industryList(related)} \u2014 add them with --industry a,b to widen.`;
268
- }
269
- function companySearchHints({
270
- total,
271
- returned,
272
- page,
273
- lastPage,
274
- related
275
- }) {
276
- const hints = [];
277
- if (total === 0) {
278
- hints.push(
279
- "No company matches every filter. Widen one at a time \u2014 a neighbouring size band, a related industry, one more country."
280
- );
281
- } else if (page < lastPage && returned > 0) {
282
- hints.push(
283
- `${total} companies match and ${returned} came back (each one returned is billed). Use \`total\` to size the market; ask for \`--page ${page + 1}\` only if you need the next rows for the list.`
284
- );
285
- }
286
- const widen = relatedIndustriesHint(related);
287
- if (widen) hints.push(widen);
288
- return hints;
289
- }
290
- function unknownIndustriesFix(industries) {
291
- const misses = industries.map(
292
- ({ input, closest }) => closest.length > 0 ? `"${input}" is not an industry. Closest (companies each matches with your other filters): ${industryList(closest)}.` : `"${input}" is not an industry, and none is named like it \u2014 try a broader word (software, logistics, retail).`
293
- );
294
- return {
295
- action: "retry_with_changes",
296
- explanation: `${misses.join(" ")} Pass one or several of these slugs with --industry a,b \u2014 several widen the search, any of them matching. Nothing was charged.`
297
- };
298
- }
299
-
300
- export {
301
- noSerpRowsHints,
302
- advertisersHints,
303
- keywordsForSiteHints,
304
- fetchHints,
305
- webDepthHints,
306
- keywordMetricsHints,
307
- redditSearchHints,
308
- redditThreadHints,
309
- redditSubredditsHints,
310
- REDDIT_LINK_REJECTED,
311
- redditPageFix,
312
- googleAdsHints,
313
- linkedinPersonHints,
314
- transcriptHints,
315
- companyHints,
316
- companySearchHints,
317
- unknownIndustriesFix
318
- };
319
- //# sourceMappingURL=chunk-AUGAC2OT.js.map
@@ -1,344 +0,0 @@
1
- import {
2
- Phrases,
3
- RULE_APPLIES,
4
- RULE_STRENGTHS,
5
- declaredRules,
6
- readLearnedRules
7
- } from "./chunk-YFIWCMVC.js";
8
- import {
9
- readWorkspaceBrandDoc
10
- } from "./chunk-2AJ5UNOF.js";
11
- import {
12
- holdUnbilledSpend
13
- } from "./chunk-W3PJ7V4W.js";
14
- import {
15
- askAboutText,
16
- rulesDigest,
17
- selectRules
18
- } from "./chunk-4PWC4KAK.js";
19
- import {
20
- CREATIVE_FEEDBACK_REASON_LABELS
21
- } from "./chunk-UREDSNQS.js";
22
- import {
23
- apiPost
24
- } from "./chunk-C35UMKYG.js";
25
-
26
- // src/engine/creative-context/company.ts
27
- import { createHash } from "crypto";
28
- import { mkdir, readdir, readFile, writeFile } from "fs/promises";
29
- import path from "path";
30
- import { z } from "zod";
31
- var text = z.string().transform((s) => s.trim()).pipe(z.string().min(1).max(300)).optional().catch(void 0);
32
- var Answer = z.object({
33
- sells: text,
34
- category: text,
35
- industry: text,
36
- buyer: z.enum(["consumer", "small_business", "enterprise"]).optional().catch(void 0),
37
- country: z.string().transform((s) => s.trim().toUpperCase()).pipe(z.union([z.literal("").transform(() => null), z.string().regex(/^[A-Z]{2}$/)])).optional().catch(void 0),
38
- humour: z.enum(["fits", "risky", "off_brand"]).optional().catch(void 0),
39
- voice: z.enum(["playful", "peer", "neutral", "reassuring", "formal"]).optional().catch(void 0),
40
- memes: z.enum(["fits", "off_brand"]).optional().catch(void 0),
41
- memes_why: text,
42
- brands: z.array(z.string()).transform(
43
- (list) => list.map((s) => s.trim()).filter(Boolean).slice(0, 4)
44
- ).catch([])
45
- });
46
- function parseCompanyReading(answer) {
47
- const parsed = Answer.safeParse(answer);
48
- if (!parsed.success || !parsed.data.category) return null;
49
- const { brands, ...rest } = parsed.data;
50
- return { ...Object.fromEntries(Object.entries(rest).filter(([, v]) => v !== void 0)), brands };
51
- }
52
- var COMPANY_READING_MODEL = "google/gemini-3.5-flash-lite";
53
- var REQUEST = {
54
- provider: { order: ["google-vertex"], allow_fallbacks: false },
55
- seed: 0,
56
- temperature: 0,
57
- response_format: { type: "json_object" }
58
- };
59
- var PROMPT_VERSION = 5;
60
- var TIMEOUT_MS = 2e4;
61
- var COMPANY_CHARS = 12e3;
62
- function companyReadingPrompt(companyDoc, audience) {
63
- const notes = [
64
- audience?.personas ? `Its personas (who buys):
65
- ${audience.personas}` : "",
66
- audience?.voice ? `BRAND.md, how the brand speaks:
67
- ${audience.voice}` : ""
68
- ].filter(Boolean);
69
- return `You read a company's own notes (COMPANY.md), in whatever language they are written, for the people who make its ads. Extract only what they say; never invent.
70
-
71
- """
72
- ${companyDoc.slice(0, COMPANY_CHARS)}
73
- """
74
- ${notes.length > 0 ? `
75
- ${notes.join("\n\n")}
76
- ` : ""}
77
- Answer only JSON:
78
- {
79
- "sells": "what the company sells and to whom, one plain sentence of at most 20 words in the notes' own language, no brand names (e.g. 'Cursos de electricidad y fontaner\xEDa para desempleados que buscan un oficio estable')",
80
- "category": "what it sells, 2-6 plain English words an ads library would file it under, no brand names (e.g. 'electrician training course', 'pet health insurance', 'ecommerce customer service AI'); for a company selling several lines, the line its notes lead with",
81
- "industry": "the broader industry, 1-3 English words (e.g. 'vocational education', 'insurance', 'customer service software')",
82
- "buyer": "consumer" | "small_business" | "enterprise",
83
- "country": "the ISO country code it sells in, or '' when several",
84
- "humour": "fits" | "risky" | "off_brand",
85
- "voice": "playful" | "peer" | "neutral" | "reassuring" | "formal" (how the brand talks, from the BRAND.md voice and how it speaks on its site, ads and social, never from who buys: playful = witty, casual, irreverent, internet-native; peer = talks as an insider to its own crowd, developer-to-developer, builder to builder; neutral = plain, direct, informative with no personality signal; reassuring = warm, caring, guaranteeing, protecting, calming a fear about money, time or risk; formal = premium, institutional, solemn, corporate-confident),
86
- "memes": "fits" | "off_brand" (does that voice run a meme or a reaction-face ad? playful and peer fit, enterprise included; neutral, reassuring and formal are off_brand, consumer brands included),
87
- "memes_why": "the voice line that decides it, at most 20 words, quoting it (e.g. 'voice: "playful, a little irreverent"' or 'voice: "formal, premium, understated"')",
88
- "brands": ["the company's own brand and product names, as an advertiser name would show them, at most 4"]
89
- }`;
90
- }
91
- var RUNS_MEMES = /* @__PURE__ */ new Set(["playful", "peer"]);
92
- function memeRegister(reading3) {
93
- const memes = reading3?.voice ? RUNS_MEMES.has(reading3.voice) ? "fits" : "off_brand" : reading3?.memes;
94
- if (!memes) return void 0;
95
- const why = reading3?.memes_why;
96
- return { memes, ...why ? { why } : {} };
97
- }
98
- function companyLine(reading3) {
99
- if (!reading3) return "";
100
- const what = reading3.sells ?? reading3.category ?? "";
101
- return reading3.industry && what ? `${what} (${reading3.industry})` : what;
102
- }
103
- function firstLineSells(companyDoc) {
104
- const first = companyDoc.split("\n").find((line) => line.trim() && !line.trim().startsWith("#")) ?? "";
105
- if (/^\s*TODO\b/.test(first)) return "";
106
- const what = first.replace(/^\s*[-*]\s+/, "").replace(/^\*\*[^*]+\*\*\s*[—–:-]?\s*/, "").split(/\s+for\s+|[,.;:(]|\s[—–-]\s/)[0];
107
- return (what ?? "").trim().split(/\s+/).filter(Boolean).slice(0, SELLS_WORDS).join(" ");
108
- }
109
- var SELLS_WORDS = 6;
110
- var askModel = (root) => async (prompt) => {
111
- const spent = [];
112
- const answer = await askAboutText(COMPANY_READING_MODEL, prompt, (u) => spent.push(u), {
113
- timeoutMs: TIMEOUT_MS,
114
- request: REQUEST
115
- }).catch(() => null);
116
- await holdUnbilledSpend(path.join(root, "canvas", ".cache"), spent).catch(() => void 0);
117
- return answer;
118
- };
119
- async function readCompanyReading(root, ask = askModel(root)) {
120
- const doc = await readFile(path.join(root, "COMPANY.md"), "utf8").catch(() => "");
121
- const fallback = firstLineSells(doc);
122
- if (!fallback) return null;
123
- const prompt = companyReadingPrompt(doc, await audienceNotes(root));
124
- const key = createHash("sha256").update(JSON.stringify([PROMPT_VERSION, COMPANY_READING_MODEL, prompt])).digest("hex").slice(0, 16);
125
- const file = path.join(root, "canvas", ".cache", "company-reading", `${key}.json`);
126
- const inFlight = reading.get(file);
127
- if (inFlight) return await inFlight;
128
- const read = readOrAsk(file, prompt, ask, fallback).finally(() => reading.delete(file));
129
- reading.set(file, read);
130
- return await read;
131
- }
132
- var PERSONA_CHARS = 600;
133
- var VOICE_CHARS = 800;
134
- async function audienceNotes(root) {
135
- const dir = path.join(root, "src", "content", "personas");
136
- const files = (await readdir(dir).catch(() => [])).filter((f) => f.endsWith(".md")).sort();
137
- const personas = [];
138
- for (const file of files.slice(0, 8)) {
139
- const raw = await readFile(path.join(dir, file), "utf8").catch(() => "");
140
- const front = /^---\n([\s\S]*?)\n---/.exec(raw)?.[1] ?? raw.slice(0, 300);
141
- const lines = front.split("\n").filter((l) => /^\s*(title|name|role|job|description)\s*:/i.test(l));
142
- const line = (lines.length > 0 ? lines.join("; ") : file.replace(/\.md$/, "")).slice(0, PERSONA_CHARS);
143
- personas.push(`- ${line}`);
144
- }
145
- const brand = await readFile(path.join(root, "src", "brand", "BRAND.md"), "utf8").catch(() => "");
146
- const section = /^##\s+[^\n]*\b(?:tone|voice)\b[^\n]*\n([\s\S]*?)(?=^##\s|(?![\s\S]))/im.exec(brand)?.[1] ?? "";
147
- return { personas: personas.join("\n"), voice: section.trim().slice(0, VOICE_CHARS) };
148
- }
149
- var reading = /* @__PURE__ */ new Map();
150
- async function readOrAsk(file, prompt, ask, fallback) {
151
- const cached = await readFile(file, "utf8").then((raw) => parseCompanyReading(JSON.parse(raw))).catch(() => null);
152
- if (cached) return cached;
153
- const answer = parseCompanyReading(await ask(prompt).catch(() => null));
154
- if (!answer) return { sells: fallback, brands: [] };
155
- await mkdir(path.dirname(file), { recursive: true });
156
- await writeFile(file, `${JSON.stringify(answer, null, 2)}
157
- `, "utf8");
158
- return answer;
159
- }
160
-
161
- // src/engine/creative-context/case-file.ts
162
- var CASE_FILE_CHARS = 3e3;
163
- function caseFileNotes(entries) {
164
- const seen = /* @__PURE__ */ new Set();
165
- const lines = [];
166
- let used = 0;
167
- for (const entry of entries) {
168
- if (entry.verdict !== "rejected") continue;
169
- const note = entry.note?.trim();
170
- const reasons = entry.reasons.map((r) => CREATIVE_FEEDBACK_REASON_LABELS[r].toLowerCase()).join(", ");
171
- const key = note ?? reasons;
172
- if (!key || seen.has(key)) continue;
173
- seen.add(key);
174
- const line = `Rejected${reasons ? ` (${reasons})` : ""}${note ? `: "${note}"` : ""}`;
175
- if (used + line.length > CASE_FILE_CHARS && lines.length > 0) break;
176
- used += line.length;
177
- lines.push(line);
178
- }
179
- return lines;
180
- }
181
- async function readCaseFile(slug, read = (body) => apiPost("/api/creatives/feedback", body)) {
182
- const response = await read({ slug }).catch(() => null);
183
- return response?.ok ? caseFileNotes(response.data.recent) : [];
184
- }
185
-
186
- // src/engine/creative-context/index.ts
187
- import path3 from "path";
188
-
189
- // src/engine/brand/brand-rules.ts
190
- import { createHash as createHash2 } from "crypto";
191
- import { mkdir as mkdir2, readFile as readFile2, writeFile as writeFile2 } from "fs/promises";
192
- import path2 from "path";
193
- import { z as z2 } from "zod";
194
- var BRAND_RULES_MODEL = "google/gemini-3.5-flash";
195
- var REQUEST2 = {
196
- provider: { order: ["google-vertex"], allow_fallbacks: false },
197
- seed: 0,
198
- reasoning: { effort: "low" },
199
- response_format: { type: "json_object" }
200
- };
201
- var PROMPT_VERSION2 = 2;
202
- var TIMEOUT_MS2 = 6e4;
203
- var BRAND_MD_CHARS = 6e4;
204
- var MAX_RULES = 60;
205
- var RULE_CHARS = 400;
206
- var optionalPhrases = Phrases.optional().catch(void 0);
207
- var Rule = z2.object({
208
- text: z2.string().trim().min(1).max(RULE_CHARS),
209
- strength: z2.enum(RULE_STRENGTHS).catch("must"),
210
- applies: z2.enum(RULE_APPLIES).catch("any"),
211
- forbid: optionalPhrases,
212
- require: optionalPhrases,
213
- allow: optionalPhrases
214
- });
215
- var Answer2 = z2.object({ rules: z2.array(z2.unknown()) });
216
- function parseBrandRules(answer) {
217
- const parsed = Answer2.safeParse(answer);
218
- if (!parsed.success) return null;
219
- return parsed.data.rules.flatMap((raw) => {
220
- const rule = Rule.safeParse(raw);
221
- if (!rule.success) return [];
222
- const { forbid, require: require2, allow, ...rest } = rule.data;
223
- return [
224
- {
225
- ...rest,
226
- ...forbid?.length ? { forbid } : {},
227
- ...require2?.length ? { require: require2 } : {},
228
- ...allow?.length ? { allow } : {}
229
- }
230
- ];
231
- }).slice(0, MAX_RULES);
232
- }
233
- var RULE_HEADING = /rule|never|copy|voice|tone|logo|imag|photo|illustrat|legal|claim|checklist|reflex|prohibit|say|regla|nunca|voz|tono|imagen|foto|prohib|decir|règle|jamais|regel|stimme|bild|regra|imagem/i;
234
- function ruleSections(brandMd) {
235
- const headings = [...brandMd.slice(0, BRAND_MD_CHARS).matchAll(/^#{2,4}\s+(.+)$/gm)].map((m) => (m[1] ?? "").trim()).filter((h) => RULE_HEADING.test(h));
236
- const fence = /```generation-style/.test(brandMd) ? ["the ```generation-style block"] : [];
237
- return [.../* @__PURE__ */ new Set([...headings, ...fence])];
238
- }
239
- var PRIVATE_QUOTE_LINE = "Never publish a customer quote or an identifiable customer conversation.";
240
- var PRIVATE_QUOTE_MEANT = "Never publish what a customer said in a private call, chat or note, nor a conversation that identifies them. A testimonial, review or case study the customer published or agreed to is not a private call: an ad may quote it.";
241
- function brandRulesPrompt(document) {
242
- const brandMd = document.replaceAll(PRIVATE_QUOTE_LINE, PRIVATE_QUOTE_MEANT);
243
- const sections = ruleSections(brandMd);
244
- return [
245
- "You read a company's brand guidelines (BRAND.md), written in any language, for the people who make its ads. List every standing rule they set that an ad, its words, its pictures, its people or its logo must follow. Extract only what they state; never invent a rule.",
246
- "",
247
- "Go through the document section by section: every bullet or sentence of a section about copy or wording, voice, what the brand never says, things to reject, legal risk or claims it may not make, a checklist before publishing, how its name, numbers or prices are written, which logo to use and what never to do to it, photography, illustration, imagery or a generation-style block is one rule; keep each, a style taste included (as a prefer), whatever language the section is in. Leave out only rules about web pages, components, code, spacing, typefaces, colours' hex values and where a colour goes on a page.",
248
- ...sections.length > 0 ? [
249
- "",
250
- `Sections that most likely hold rules, each to be read to its end: ${sections.map((h) => `"${h}"`).join(", ")}.`
251
- ] : [],
252
- "",
253
- `Return JSON only: {"rules": [{"text": string, "strength": "never" | "must" | "prefer", "applies": "copy" | "picture" | "cast" | "logo" | "voice" | "sound" | "subtitles" | "any", "forbid": string[], "require": string[], "allow": string[]}]}, at most ${MAX_RULES}, each rule once.`,
254
- `- text: the rule quoted from the document in its own language, whole but short (one bullet, at most one sentence of why). It must make sense read alone, as an ad's reviewer reads it: when a bullet leans on its heading or table, name what it is about ("Brand red: never for text or buttons", not "Never text, never a button").`,
255
- '- strength: "never" for a ban, "must" for something every ad has to do, "prefer" for a taste or a default.',
256
- `- applies: "copy" for words, "picture" for what is shown, "cast" for who appears, "logo", "voice" or "sound" for a video's voice and audio, "subtitles", else "any".`,
257
- '- forbid: the exact words the rule bans in every case, as the document quotes them ("\u2014" for em-dashes, "usted"); [] when the ban depends on the context or names no words. allow: the right spelling when the rule is about how a word is written or capitalised ("ZentIA"). require: words every ad must say; usually [].',
258
- "",
259
- "<brand_md>",
260
- brandMd.slice(0, BRAND_MD_CHARS),
261
- "</brand_md>"
262
- ].join("\n");
263
- }
264
- function brandRulesReader(cacheDir, onSpend) {
265
- return async (brandMd) => {
266
- const prompt = brandRulesPrompt(brandMd);
267
- const key = createHash2("sha256").update(JSON.stringify([PROMPT_VERSION2, BRAND_RULES_MODEL, prompt])).digest("hex");
268
- const file = path2.join(cacheDir, "brand-rules", `${key}.json`);
269
- const inFlight = reading2.get(file);
270
- if (inFlight) return await inFlight;
271
- if (failed.has(file)) return null;
272
- const read = readOrAsk2(file, prompt, onSpend, cacheDir).then((rules) => {
273
- if (rules === null) failed.add(file);
274
- return rules;
275
- }).finally(() => reading2.delete(file));
276
- reading2.set(file, read);
277
- return await read;
278
- };
279
- }
280
- var reading2 = /* @__PURE__ */ new Map();
281
- var failed = /* @__PURE__ */ new Set();
282
- async function readOrAsk2(file, prompt, onSpend, cacheDir) {
283
- const cached = parseBrandRules(await readFile2(file, "utf8").then(JSON.parse, () => null));
284
- if (cached) return cached;
285
- const spent = [];
286
- const answer = await askAboutText(BRAND_RULES_MODEL, prompt, (u) => onSpend ? onSpend(u) : spent.push(u), {
287
- timeoutMs: TIMEOUT_MS2,
288
- request: REQUEST2
289
- }).catch(() => null);
290
- await holdUnbilledSpend(cacheDir, spent).catch(() => void 0);
291
- const rules = parseBrandRules(answer);
292
- if (rules) {
293
- await mkdir2(path2.dirname(file), { recursive: true }).catch(() => void 0);
294
- await writeFile2(file, JSON.stringify({ rules }), "utf8").catch(() => void 0);
295
- }
296
- return rules;
297
- }
298
- async function readWorkspaceBrandRules(root, opts = {}) {
299
- const brandMd = await readFile2(path2.join(root, "src", "brand", "BRAND.md"), "utf8").catch(() => "");
300
- if (!brandMd.trim()) return [];
301
- const read = opts.read ?? brandRulesReader(path2.join(root, "canvas", ".cache"), opts.onSpend);
302
- return await read(brandMd).catch(() => null) ?? [];
303
- }
304
-
305
- // src/engine/creative-context/index.ts
306
- async function readAllRules(root, readers = {}) {
307
- const [declared, learned] = await Promise.all([
308
- readWorkspaceBrandRules(root, {
309
- ...readers.brandRules ? { read: readers.brandRules } : {},
310
- ...readers.onSpend ? { onSpend: readers.onSpend } : {}
311
- }),
312
- readLearnedRules(root)
313
- ]);
314
- return [...learned, ...declaredRules(declared)];
315
- }
316
- async function readCreativeContext(root, target = {}, opts = {}) {
317
- const readers = opts.readers ?? {};
318
- const [company, brand, rules] = await Promise.all([
319
- readCompanyReading(root, ...readers.company ? [readers.company] : []).catch(() => null),
320
- readWorkspaceBrandDoc(root, {
321
- ...readers.brand ? { read: readers.brand } : {},
322
- ...readers.onSpend ? { onSpend: readers.onSpend } : {}
323
- }).catch(() => null),
324
- readAllRules(root, readers).catch(() => [])
325
- ]);
326
- const held = selectRules(rules, target, opts.waived);
327
- return { company, brand, rules: held, rulesDigest: rulesDigest(held), caseFile: (slug) => readCaseFile(slug) };
328
- }
329
- var workspaceOfCreative = (creativeDir) => path3.resolve(creativeDir, "../../..");
330
- function avoidOf(rules, max = 5) {
331
- return rules.filter((r) => r.strength === "never" && r.applies !== "voice" && r.applies !== "sound").slice(0, max).map((r) => r.text.length > 90 ? `${r.text.slice(0, 89)}\u2026` : r.text);
332
- }
333
-
334
- export {
335
- memeRegister,
336
- companyLine,
337
- readCompanyReading,
338
- readCaseFile,
339
- readAllRules,
340
- readCreativeContext,
341
- workspaceOfCreative,
342
- avoidOf
343
- };
344
- //# sourceMappingURL=chunk-BQSDW6FT.js.map