@koda-sl/baker-cli 0.571.0 → 0.572.0-dev.61ba69c66

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 (1589) hide show
  1. package/README.md +6 -5
  2. package/dist/account-6RJ6ZI3B.js +82 -0
  3. package/dist/account-AIGNJ2RP.js +82 -0
  4. package/dist/account-E5LLPRZ6.js +139 -0
  5. package/dist/account-assets-J6SVHSXR.js +290 -0
  6. package/dist/account-level-FGE33OJT.js +612 -0
  7. package/dist/account-level-FGE33OJT.js.map +1 -0
  8. package/dist/account-reads-BNVCJ37E.js +220 -0
  9. package/dist/account-reads-BNVCJ37E.js.map +1 -0
  10. package/dist/account-users-MFH5CJIA.js +65 -0
  11. package/dist/account-users-MFH5CJIA.js.map +1 -0
  12. package/dist/account-writes-XNS4IKZV.js +68 -0
  13. package/dist/accounts-3ZWYGRVM.js +80 -0
  14. package/dist/accounts-5TLHSEZR.js +119 -0
  15. package/dist/accounts-BAZYYDFV.js +713 -0
  16. package/dist/accounts-L2HVNJUF.js +76 -0
  17. package/dist/accounts-NTBIRB52.js +115 -0
  18. package/dist/actions-N2FBJMT4.js +55 -0
  19. package/dist/active-entities-IJPRN45K.js +103 -0
  20. package/dist/activecampaign-U77COT2F.js +938 -0
  21. package/dist/activities-SS3SUWSS.js +75 -0
  22. package/dist/ad-group-writes-DTQSUNE2.js +172 -0
  23. package/dist/ad-groups-CX23GLVE.js +70 -0
  24. package/dist/ad-writes-HAAUOJCG.js +176 -0
  25. package/dist/add-ABPQTO2M.js +305 -0
  26. package/dist/add-BK6N7KWU.js +97 -0
  27. package/dist/add-ECN2FTMH.js +85 -0
  28. package/dist/add-FH7OVKFF.js +148 -0
  29. package/dist/add-KHY3H54G.js +81 -0
  30. package/dist/add-MZZLFU3M.js +513 -0
  31. package/dist/add-MZZLFU3M.js.map +1 -0
  32. package/dist/add-VDH2VCXR.js +107 -0
  33. package/dist/add-accounts-6JAOSCXK.js +91 -0
  34. package/dist/ads-BEMEXBDJ.js +128 -0
  35. package/dist/ads-GAU2XKNL.js +48 -0
  36. package/dist/ads-HZOXZ3FY.js +79 -0
  37. package/dist/ads-I5OBZ5VI.js +120 -0
  38. package/dist/adsets-PMQGA6TW.js +182 -0
  39. package/dist/advertisers-EOLL3VFQ.js +123 -0
  40. package/dist/advertisers-FNKY2PP4.js +125 -0
  41. package/dist/analytics-DOAUCF2Y.js +2437 -0
  42. package/dist/analytics-MR3T34KN.js +447 -0
  43. package/dist/animate-EKGVDSWM.js +480 -0
  44. package/dist/approved-WQL4Z4EB.js +73 -0
  45. package/dist/asset-writes-A5X2T6LQ.js +51 -0
  46. package/dist/assign-UMNHINRA.js +80 -0
  47. package/dist/audience-size-Q7DZ6TGM.js +76 -0
  48. package/dist/audience-writes-SNFFF2QR.js +328 -0
  49. package/dist/audience-writes-SNFFF2QR.js.map +1 -0
  50. package/dist/audiences-HBJGEGKL.js +106 -0
  51. package/dist/audiences-RDQZNGPI.js +280 -0
  52. package/dist/audiences-TA636UBN.js +85 -0
  53. package/dist/audit-H3F6FZNE.js +154 -0
  54. package/dist/audit-QMCK76AT.js +88 -0
  55. package/dist/autocomplete-DIBJ57VC.js +114 -0
  56. package/dist/avatars-UIXRGLPA.js +38 -0
  57. package/dist/bid-pricing-OMY2F2SB.js +103 -0
  58. package/dist/brand-WV6CAU3M.js +22 -0
  59. package/dist/brief-PNBP56X2.js +543 -0
  60. package/dist/brief-PNBP56X2.js.map +1 -0
  61. package/dist/businesses-56IUB5X4.js +54 -0
  62. package/dist/campaign-groups-PGJIQV4S.js +99 -0
  63. package/dist/campaign-writes-MAJ5FGXG.js +176 -0
  64. package/dist/campaign-writes-WL3YAEGJ.js +168 -0
  65. package/dist/campaigns-5L4ZTGF7.js +130 -0
  66. package/dist/campaigns-EK7EUKZD.js +113 -0
  67. package/dist/campaigns-HCJ3AIDK.js +78 -0
  68. package/dist/campaigns-NHACWGWS.js +111 -0
  69. package/dist/canvas-INL3J7HO.js +46 -0
  70. package/dist/capabilities-Y33EWDMJ.js +147 -0
  71. package/dist/cards-IWWKA5WH.js +85 -0
  72. package/dist/catalog-NSA2FUI2.js +66 -0
  73. package/dist/catalogs-QOE2V4QK.js +783 -0
  74. package/dist/catalogs-QOE2V4QK.js.map +1 -0
  75. package/dist/catalogs-SJMYID7N.js +130 -0
  76. package/dist/changes-2HOF2HSV.js +167 -0
  77. package/dist/chatgpt-J6MNVQVT.js +47 -0
  78. package/dist/chats-4HK6UYD2.js +584 -0
  79. package/dist/check-DJOIL56P.js +169 -0
  80. package/dist/check-DJOIL56P.js.map +1 -0
  81. package/dist/chunk-2B2JFTWI.js +296 -0
  82. package/dist/chunk-2HWX6AWY.js +2235 -0
  83. package/dist/chunk-2O5CCKV7.js +23 -0
  84. package/dist/chunk-2W6DMVGH.js +8954 -0
  85. package/dist/chunk-3BKESS5W.js +66 -0
  86. package/dist/chunk-3VBPJQ7L.js +288 -0
  87. package/dist/chunk-3X262BEG.js +19 -0
  88. package/dist/chunk-4CUBOXBS.js +99 -0
  89. package/dist/chunk-4CUBOXBS.js.map +1 -0
  90. package/dist/chunk-4CYB33V3.js +136 -0
  91. package/dist/chunk-4JB556VC.js +142 -0
  92. package/dist/chunk-4LZNCDHU.js +46 -0
  93. package/dist/chunk-4LZNCDHU.js.map +1 -0
  94. package/dist/chunk-4QYZJPSM.js +207 -0
  95. package/dist/chunk-4WLJYLRL.js +544 -0
  96. package/dist/chunk-55AX6DOP.js +86 -0
  97. package/dist/chunk-55AX6DOP.js.map +1 -0
  98. package/dist/chunk-56ZJO7TM.js +1320 -0
  99. package/dist/chunk-5LQGW5UF.js +138 -0
  100. package/dist/chunk-5U6OL4NN.js +709 -0
  101. package/dist/chunk-5U6OL4NN.js.map +1 -0
  102. package/dist/chunk-6IL7JFX5.js +203 -0
  103. package/dist/chunk-6LNCKT6S.js +35 -0
  104. package/dist/chunk-6LUDG5AB.js +476 -0
  105. package/dist/chunk-6OIKNJ7G.js +26 -0
  106. package/dist/chunk-6UQV5DOD.js +45 -0
  107. package/dist/chunk-6V4UAC5I.js +2523 -0
  108. package/dist/chunk-6V4UAC5I.js.map +1 -0
  109. package/dist/chunk-6WA7QSCN.js +46 -0
  110. package/dist/chunk-7CHPHER2.js +455 -0
  111. package/dist/chunk-7J7ASYIM.js +225 -0
  112. package/dist/chunk-7MMTIJO3.js +220 -0
  113. package/dist/chunk-7Y3LKR4P.js +5368 -0
  114. package/dist/chunk-AA3D7GZF.js +125 -0
  115. package/dist/chunk-AGL7EWP2.js +75 -0
  116. package/dist/chunk-AHVD6IEI.js +76 -0
  117. package/dist/chunk-ASJMLTMX.js +106 -0
  118. package/dist/chunk-AWENMEFC.js +297 -0
  119. package/dist/chunk-AYX7PB2L.js +1920 -0
  120. package/dist/chunk-BHZLKLK7.js +69 -0
  121. package/dist/chunk-BVER7I36.js +58 -0
  122. package/dist/chunk-C3RZNVLM.js +98 -0
  123. package/dist/chunk-CA5QBLIZ.js +114 -0
  124. package/dist/chunk-CKIENAAO.js +156 -0
  125. package/dist/chunk-CKIENAAO.js.map +1 -0
  126. package/dist/chunk-CONTVNSN.js +51 -0
  127. package/dist/chunk-CUTTTFAU.js +783 -0
  128. package/dist/chunk-D32EWSMB.js +150 -0
  129. package/dist/chunk-EE6NZ6NG.js +225 -0
  130. package/dist/chunk-EG6HMBCF.js +188 -0
  131. package/dist/chunk-EGZM35HT.js +3510 -0
  132. package/dist/chunk-ESSA3AWR.js +133 -0
  133. package/dist/chunk-ESSA3AWR.js.map +1 -0
  134. package/dist/chunk-F3CZFUXZ.js +3187 -0
  135. package/dist/chunk-F3CZFUXZ.js.map +1 -0
  136. package/dist/chunk-FHLAJYZE.js +225 -0
  137. package/dist/chunk-FSNQFZ2Z.js +718 -0
  138. package/dist/chunk-G67OBCXI.js +91 -0
  139. package/dist/chunk-GFYGVIT3.js +392 -0
  140. package/dist/chunk-GRNHQWSV.js +430 -0
  141. package/dist/chunk-GWQSZWHT.js +42 -0
  142. package/dist/chunk-HBXR26LB.js +1518 -0
  143. package/dist/chunk-HKKHOMEQ.js +180 -0
  144. package/dist/chunk-HKKHOMEQ.js.map +1 -0
  145. package/dist/chunk-HUO5MZ7S.js +962 -0
  146. package/dist/chunk-HVL22WUU.js +930 -0
  147. package/dist/chunk-IA5GLVRV.js +64 -0
  148. package/dist/chunk-IEPCI2EB.js +479 -0
  149. package/dist/chunk-IKSBLQTL.js +5471 -0
  150. package/dist/chunk-IMS53EQU.js +4277 -0
  151. package/dist/chunk-IMS53EQU.js.map +1 -0
  152. package/dist/chunk-IRLMIKI7.js +224 -0
  153. package/dist/chunk-IW4MX7OX.js +399 -0
  154. package/dist/chunk-J4WOF6WK.js +97 -0
  155. package/dist/chunk-J63TN3GR.js +89 -0
  156. package/dist/chunk-JESSFI7R.js +468 -0
  157. package/dist/chunk-K4QPBXV7.js +61 -0
  158. package/dist/chunk-K5VDDKKF.js +219 -0
  159. package/dist/chunk-KM5K47TW.js +152 -0
  160. package/dist/chunk-KPVZ2CZA.js +642 -0
  161. package/dist/chunk-KPVZ2CZA.js.map +1 -0
  162. package/dist/chunk-LGJIJVVH.js +131 -0
  163. package/dist/chunk-LHSSIUU4.js +604 -0
  164. package/dist/chunk-LQMPA4DY.js +685 -0
  165. package/dist/chunk-M3IXPK6U.js +344 -0
  166. package/dist/chunk-MJU5VKX2.js +91 -0
  167. package/dist/chunk-MRGU3NPN.js +163 -0
  168. package/dist/chunk-MSLFPL77.js +454 -0
  169. package/dist/chunk-MX5NQAK6.js +54 -0
  170. package/dist/chunk-MX5NQAK6.js.map +1 -0
  171. package/dist/chunk-NKCWJPMN.js +111 -0
  172. package/dist/chunk-NT7NCSEB.js +24026 -0
  173. package/dist/chunk-NT7NCSEB.js.map +1 -0
  174. package/dist/chunk-O5GZJ6YJ.js +1085 -0
  175. package/dist/chunk-O5GZJ6YJ.js.map +1 -0
  176. package/dist/chunk-OADMSHME.js +334 -0
  177. package/dist/chunk-OGWCLE4W.js +858 -0
  178. package/dist/chunk-OGWCLE4W.js.map +1 -0
  179. package/dist/chunk-ONGZKI5J.js +57 -0
  180. package/dist/chunk-OOZNTJP6.js +26 -0
  181. package/dist/chunk-OP3NHIFH.js +39 -0
  182. package/dist/chunk-OU4KWL6B.js +106 -0
  183. package/dist/chunk-OW3D63SI.js +91 -0
  184. package/dist/chunk-OW3D63SI.js.map +1 -0
  185. package/dist/chunk-PLIGHRIQ.js +312 -0
  186. package/dist/chunk-PLROJ3SX.js +73 -0
  187. package/dist/chunk-PSM3RI4B.js +167 -0
  188. package/dist/chunk-Q4O7ICAK.js +84 -0
  189. package/dist/chunk-Q6XM6ZDB.js +547 -0
  190. package/dist/chunk-QHRUCSRI.js +197 -0
  191. package/dist/chunk-QUDPMIW7.js +74 -0
  192. package/dist/chunk-QZ4YHQLW.js +63 -0
  193. package/dist/chunk-R2JGUOT6.js +64 -0
  194. package/dist/chunk-R5I4IHJ5.js +494 -0
  195. package/dist/chunk-R5NABIJ4.js +1919 -0
  196. package/dist/chunk-R5NABIJ4.js.map +1 -0
  197. package/dist/chunk-RJXO66C4.js +66 -0
  198. package/dist/chunk-RYNN6UUF.js +69 -0
  199. package/dist/chunk-S4V2GOKV.js +215 -0
  200. package/dist/chunk-S7D4GTYY.js +191 -0
  201. package/dist/chunk-SIKCVWM3.js +76 -0
  202. package/dist/chunk-T4RV7XOC.js +217 -0
  203. package/dist/chunk-TDUAGNSQ.js +52 -0
  204. package/dist/chunk-TZRWET3S.js +285 -0
  205. package/dist/chunk-U5V4CIIG.js +274 -0
  206. package/dist/chunk-U625CQ3Y.js +287 -0
  207. package/dist/chunk-UDEVIXKX.js +1254 -0
  208. package/dist/chunk-UNLFRXST.js +126 -0
  209. package/dist/chunk-UNLFRXST.js.map +1 -0
  210. package/dist/chunk-UUDWZIDC.js +246 -0
  211. package/dist/chunk-VAQBBNLD.js +98 -0
  212. package/dist/chunk-VCDFBFPT.js +97 -0
  213. package/dist/chunk-VF3W7CI7.js +325 -0
  214. package/dist/chunk-VHOOAQY4.js +169 -0
  215. package/dist/chunk-VK2VC6A2.js +25 -0
  216. package/dist/chunk-WWPRSJOS.js +94 -0
  217. package/dist/chunk-WZXMZFVB.js +238 -0
  218. package/dist/chunk-XKYFNMTB.js +343 -0
  219. package/dist/chunk-XL42ZEVH.js +170 -0
  220. package/dist/chunk-XPUQFPIU.js +831 -0
  221. package/dist/chunk-XQEHLDGP.js +1744 -0
  222. package/dist/chunk-XQWC223L.js +56 -0
  223. package/dist/chunk-XYDHBLZ2.js +103 -0
  224. package/dist/chunk-XZO6ONVI.js +115 -0
  225. package/dist/chunk-YFFQ3HY4.js +139 -0
  226. package/dist/chunk-YGUGL4ZL.js +76 -0
  227. package/dist/chunk-YOHGEF2N.js +7899 -0
  228. package/dist/chunk-YT3S2XFG.js +84 -0
  229. package/dist/chunk-ZPCZ4XDB.js +148 -0
  230. package/dist/cite-2ZJG3FBV.js +191 -0
  231. package/dist/claim-IGU5W4CT.js +200 -0
  232. package/dist/cli.js +48 -47
  233. package/dist/cli.js.map +1 -1
  234. package/dist/client-MSRCSDB7.js +19 -0
  235. package/dist/code-T7Z5JDQ2.js +76 -0
  236. package/dist/companies-HCSBVXCE.js +198 -0
  237. package/dist/company-SSMY4G2T.js +308 -0
  238. package/dist/complete-FQNRXUI5.js +84 -0
  239. package/dist/config-XRPKA5QR.js +88 -0
  240. package/dist/connect-VXEE3QBU.js +45 -0
  241. package/dist/content-2JFP747N.js +85 -0
  242. package/dist/conversation-KKJKZIX5.js +96 -0
  243. package/dist/conversion-report-G65UHQRO.js +127 -0
  244. package/dist/conversion-upload-command-Z7IOS6ZG.js +440 -0
  245. package/dist/conversion-upload-command-Z7IOS6ZG.js.map +1 -0
  246. package/dist/conversion-writes-333V4OVR.js +122 -0
  247. package/dist/conversions-7UHCNIAO.js +140 -0
  248. package/dist/conversions-L6775Q22.js +78 -0
  249. package/dist/copy-writes-G7GJ5RWS.js +171 -0
  250. package/dist/copy-writes-G7GJ5RWS.js.map +1 -0
  251. package/dist/countries-XJVDM635.js +82 -0
  252. package/dist/create-AXWJECPP.js +239 -0
  253. package/dist/create-B24XHUGZ.js +62 -0
  254. package/dist/create-HJKTD5FN.js +218 -0
  255. package/dist/create-V4NGP5KB.js +135 -0
  256. package/dist/creatives-HLWMABYL.js +55 -0
  257. package/dist/creatives-HLWMABYL.js.map +1 -0
  258. package/dist/creatives-OKFLX67Y.js +118 -0
  259. package/dist/creatives-WX6GQ37F.js +229 -0
  260. package/dist/credentials-4JFUH6FN.js +290 -0
  261. package/dist/critique-4SF44VFJ.js +420 -0
  262. package/dist/critique-4SF44VFJ.js.map +1 -0
  263. package/dist/critique-S3PDXLAZ.js +233 -0
  264. package/dist/critique-S3PDXLAZ.js.map +1 -0
  265. package/dist/crm-6MLYUEK7.js +323 -0
  266. package/dist/crm-PUQBWZKE.js +229 -0
  267. package/dist/crop-V5MSIY5F.js +113 -0
  268. package/dist/currency-SCSJ5FW2.js +88 -0
  269. package/dist/custom-conversions-GN4JDS5F.js +128 -0
  270. package/dist/customers-WXD2LTUC.js +65 -0
  271. package/dist/decide-PW2NRMRK.js +199 -0
  272. package/dist/delete-EAJN6ZHT.js +67 -0
  273. package/dist/delete-GDIFIYA2.js +69 -0
  274. package/dist/delete-JQG3ZWQX.js +57 -0
  275. package/dist/delete-L7CGJ23X.js +71 -0
  276. package/dist/delete-OQREQEGN.js +85 -0
  277. package/dist/delete-ZR3DVLWU.js +69 -0
  278. package/dist/demographics-LMRGNO7J.js +141 -0
  279. package/dist/describe-OHWLLBDE.js +97 -0
  280. package/dist/describe-YELOXWHY.js +97 -0
  281. package/dist/dimensions-CLLCVVRY.js +101 -0
  282. package/dist/discard-K2KIIFJQ.js +69 -0
  283. package/dist/discover-SQJLRS4G.js +93 -0
  284. package/dist/discover-UJMDGDQO.js +172 -0
  285. package/dist/domain-CJX5JSLS.js +101 -0
  286. package/dist/download-HFDBP6BO.js +172 -0
  287. package/dist/download-SZ5P3GLV.js +337 -0
  288. package/dist/draft-7QDE2Z3N.js +315 -0
  289. package/dist/draft-A7ZQPUFS.js +579 -0
  290. package/dist/draft-A7ZQPUFS.js.map +1 -0
  291. package/dist/draft-ILXHFWTT.js +134 -0
  292. package/dist/draft-NUFU5YME.js +374 -0
  293. package/dist/draft-QSTD3DH2.js +220 -0
  294. package/dist/draft-TV5IH5U4.js +260 -0
  295. package/dist/draft-WNMHUFAH.js +138 -0
  296. package/dist/draft-XJP3SCZ6.js +333 -0
  297. package/dist/draft-XJP3SCZ6.js.map +1 -0
  298. package/dist/engine/index.js +15 -15
  299. package/dist/env-3256G2OE.js +53 -0
  300. package/dist/experiment-5L5USMAL.js +1397 -0
  301. package/dist/experiments-CFBG5UOT.js +237 -0
  302. package/dist/experiments-CFBG5UOT.js.map +1 -0
  303. package/dist/export-YSOM4E3B.js +168 -0
  304. package/dist/extract-7FYXXEQZ.js +143 -0
  305. package/dist/facets-2FRELYRC.js +117 -0
  306. package/dist/favorites-LTG2F6W2.js +178 -0
  307. package/dist/feed-RSBWEI75.js +177 -0
  308. package/dist/feedback-LZSJR5KL.js +116 -0
  309. package/dist/feedback-LZSJR5KL.js.map +1 -0
  310. package/dist/feedback-PQUM7UBT.js +114 -0
  311. package/dist/feedback-record-4MVI4O3Q.js +270 -0
  312. package/dist/feedback-record-4MVI4O3Q.js.map +1 -0
  313. package/dist/fetch-3PWYTX4R.js +139 -0
  314. package/dist/fetch-FLQYW27W.js +204 -0
  315. package/dist/find-SHHDWCPM.js +144 -0
  316. package/dist/fit-4XCDLF7C.js +65 -0
  317. package/dist/flows-4ALWJVNF.js +340 -0
  318. package/dist/follow-N4TKU3UM.js +94 -0
  319. package/dist/follow-competitors-AHQ57BWS.js +112 -0
  320. package/dist/following-CEYH33DW.js +113 -0
  321. package/dist/fonts-CYJ5EFR4.js +40 -0
  322. package/dist/forecast-AH3AFVJ7.js +170 -0
  323. package/dist/forecast-AH3AFVJ7.js.map +1 -0
  324. package/dist/forecast-SG2VUBZD.js +121 -0
  325. package/dist/funding-X7M5WLDX.js +85 -0
  326. package/dist/funnel-F7DS7PUN.js +397 -0
  327. package/dist/ga4-QPBAKGSH.js +55 -0
  328. package/dist/generate-LVBI3VDD.js +263 -0
  329. package/dist/get-DMV7KG2F.js +92 -0
  330. package/dist/get-EA7AX4NW.js +59 -0
  331. package/dist/get-EOSJWMWT.js +38 -0
  332. package/dist/get-HVQHHDW6.js +74 -0
  333. package/dist/get-KQLCVQCK.js +56 -0
  334. package/dist/get-NAOMB6Q2.js +62 -0
  335. package/dist/get-XYJBQFIT.js +62 -0
  336. package/dist/get-XZ7XPXZE.js +82 -0
  337. package/dist/gif-XJ26IWAP.js +111 -0
  338. package/dist/google-ED4VGLSX.js +3301 -0
  339. package/dist/google-ED4VGLSX.js.map +1 -0
  340. package/dist/google-QOKWSPOA.js +163 -0
  341. package/dist/google-ads-B4FBPQ7O.js +198 -0
  342. package/dist/group-7EYM3PNJ.js +43 -0
  343. package/dist/group-GDTEICRY.js +43 -0
  344. package/dist/gsc-KVIAZMF4.js +30 -0
  345. package/dist/history-22YGILIT.js +69 -0
  346. package/dist/history-E3JGYADF.js +102 -0
  347. package/dist/history-HKCSYH5L.js +153 -0
  348. package/dist/hubspot-LEW2RP5D.js +814 -0
  349. package/dist/icon-JLVEYF34.js +138 -0
  350. package/dist/ideas-JAIU4GC4.js +45 -0
  351. package/dist/images-ZG6RRAEP.js +92 -0
  352. package/dist/improve-XSHWCMZS.js +86 -0
  353. package/dist/ingest-GTXBGUNQ.js +28 -0
  354. package/dist/ingest-SX7K6GNE.js +131 -0
  355. package/dist/insights-IVUUWSQL.js +132 -0
  356. package/dist/insights-PJPQB46E.js +658 -0
  357. package/dist/inspect-55BXSPJG.js +192 -0
  358. package/dist/inspiration-NBOKHPZ5.js +53 -0
  359. package/dist/instant-experiences-ARST4KWB.js +265 -0
  360. package/dist/instant-experiences-ARST4KWB.js.map +1 -0
  361. package/dist/intent-KSVTHFFE.js +95 -0
  362. package/dist/job-4VXDCYSG.js +202 -0
  363. package/dist/job-create-NZEZDOZT.js +109 -0
  364. package/dist/job-status-XI3ENS7D.js +74 -0
  365. package/dist/keep-UYNOC3JZ.js +78 -0
  366. package/dist/keyword-gap-7UVDSID5.js +130 -0
  367. package/dist/keyword-metrics-QFRXZRAQ.js +200 -0
  368. package/dist/keywords-for-site-Q4BCJ4PQ.js +131 -0
  369. package/dist/knowledge-LVE3J3AK.js +195 -0
  370. package/dist/landing-AJYM5GBY.js +28 -0
  371. package/dist/landings-SIN3MTUZ.js +151 -0
  372. package/dist/languages-AIASAINW.js +40 -0
  373. package/dist/languages-RDR6EBNJ.js +55 -0
  374. package/dist/launches-4TVHXAZT.js +19 -0
  375. package/dist/layerize-OLVGZRND.js +190 -0
  376. package/dist/lead-routes-ZOQDPCR3.js +733 -0
  377. package/dist/leads-M57K5EDK.js +542 -0
  378. package/dist/leads-M57K5EDK.js.map +1 -0
  379. package/dist/leads-YSDLFBHN.js +115 -0
  380. package/dist/learn-FDQZNIP3.js +207 -0
  381. package/dist/library-7CLWRDM3.js +212 -0
  382. package/dist/lighthouse-3ACQ3MVG.js +75 -0
  383. package/dist/line-item-writes-JARN73DV.js +211 -0
  384. package/dist/line-items-B5GLDAJ2.js +107 -0
  385. package/dist/link-YAZF34BZ.js +67 -0
  386. package/dist/linkedin-MLPAY7IL.js +1345 -0
  387. package/dist/linkedin-MLPAY7IL.js.map +1 -0
  388. package/dist/linkedin-person-XDH7Q3PB.js +139 -0
  389. package/dist/list-6NYRZXKQ.js +76 -0
  390. package/dist/list-6WISGNQ2.js +65 -0
  391. package/dist/list-6YBIWX44.js +50 -0
  392. package/dist/list-72JQGWNO.js +154 -0
  393. package/dist/list-FX7OG3OJ.js +67 -0
  394. package/dist/list-ITPBLMV3.js +51 -0
  395. package/dist/list-J43GOBOX.js +57 -0
  396. package/dist/list-K4Z3BOWI.js +93 -0
  397. package/dist/list-ONSYTCX2.js +306 -0
  398. package/dist/locations-UNSREUBX.js +69 -0
  399. package/dist/locations-XAC3GME3.js +40 -0
  400. package/dist/log-PPNNFETI.js +95 -0
  401. package/dist/logo-UNVIMA4B.js +19 -0
  402. package/dist/lookup-L5QG3BWH.js +23 -0
  403. package/dist/make-YWW7Q4T5.js +1368 -0
  404. package/dist/make-YWW7Q4T5.js.map +1 -0
  405. package/dist/map-QILMIKS7.js +445 -0
  406. package/dist/mcp-GOKFM4PF.js +729 -0
  407. package/dist/media-BN6B75NF.js +18 -0
  408. package/dist/media-YDDWV32Y.js +89 -0
  409. package/dist/media-sources-HABLVJE3.js +35 -0
  410. package/dist/members-B4UI6ISY.js +47 -0
  411. package/dist/meme-2MERLAVW.js +108 -0
  412. package/dist/meta-7FJQD44L.js +124 -0
  413. package/dist/metrics-SBKBEZJR.js +152 -0
  414. package/dist/models-ZBLBNNEH.js +155 -0
  415. package/dist/normalize-5WVEQJXD.js +806 -0
  416. package/dist/normalize-YPQBHWYS.js +144 -0
  417. package/dist/older-spellings-KGYXGRHU.js +70 -0
  418. package/dist/older-spellings-KGYXGRHU.js.map +1 -0
  419. package/dist/options-BV3TVUCK.js +125 -0
  420. package/dist/organization-4OTGNRHP.js +949 -0
  421. package/dist/output-FX4KJAO5.js +24 -0
  422. package/dist/page-5KWQ7PM3.js +105 -0
  423. package/dist/page-photos-AUTUSCVR.js +119 -0
  424. package/dist/page-photos-AUTUSCVR.js.map +1 -0
  425. package/dist/pages-HKTAGXH3.js +67 -0
  426. package/dist/performance-4MWQVTTA.js +5565 -0
  427. package/dist/performance-TKE7NQF6.js +27 -0
  428. package/dist/pinterest-UDX53CWY.js +105 -0
  429. package/dist/pixels-BSNCVT77.js +109 -0
  430. package/dist/pixels-TR2PAYWV.js +62 -0
  431. package/dist/plan-V57AATQ5.js +208 -0
  432. package/dist/posts-JHMXNHDV.js +36 -0
  433. package/dist/preview-VY7UH2SK.js +245 -0
  434. package/dist/preview-XUG4K4KV.js +101 -0
  435. package/dist/profile-PV3R3BEG.js +159 -0
  436. package/dist/promoted-tweet-writes-O3S5OKUZ.js +183 -0
  437. package/dist/promoted-tweets-4ZKSEC4I.js +119 -0
  438. package/dist/properties-U2XUD2M6.js +101 -0
  439. package/dist/publish-4RAYD7VI.js +350 -0
  440. package/dist/query-4C6UQN42.js +62 -0
  441. package/dist/query-7FWE7GLV.js +231 -0
  442. package/dist/query-7Y2Y6YFI.js +236 -0
  443. package/dist/questionnaire-3IPJXJT7.js +94 -0
  444. package/dist/read-WEQLEI7R.js +141 -0
  445. package/dist/reddit-2FWCB7XY.js +29 -0
  446. package/dist/refresh-SGDB4QOD.js +97 -0
  447. package/dist/refresh-WZBVPKWE.js +42 -0
  448. package/dist/release-YL3ZII3Z.js +63 -0
  449. package/dist/relevant-pages-PF3LLUED.js +99 -0
  450. package/dist/remove-52MSQXSW.js +49 -0
  451. package/dist/remove-EIV7LJUA.js +53 -0
  452. package/dist/reopen-CW27MUJH.js +66 -0
  453. package/dist/rerun-4WUZY4SO.js +98 -0
  454. package/dist/rerun-4WUZY4SO.js.map +1 -0
  455. package/dist/research-234BOCKM.js +265 -0
  456. package/dist/research-RABLL4HR.js +75 -0
  457. package/dist/reset-5KJDDVJL.js +57 -0
  458. package/dist/reset-REUL47CB.js +57 -0
  459. package/dist/resolve-WRDEHLYL.js +124 -0
  460. package/dist/retry-2A5HV4SN.js +63 -0
  461. package/dist/retry-FNT2XVH3.js +65 -0
  462. package/dist/retry-failed-ND7UXYTJ.js +45 -0
  463. package/dist/revenue-YQV2BRGA.js +92 -0
  464. package/dist/revenue-YQV2BRGA.js.map +1 -0
  465. package/dist/rule-writes-L7BRELYW.js +531 -0
  466. package/dist/rule-writes-L7BRELYW.js.map +1 -0
  467. package/dist/rules-2CUG2YG7.js +217 -0
  468. package/dist/rules-5DIOAOOO.js +55 -0
  469. package/dist/rules-5DIOAOOO.js.map +1 -0
  470. package/dist/run-RKLNKV2U.js +73 -0
  471. package/dist/run-YKGN3GQR.js +69 -0
  472. package/dist/scaffold-ad-SPU2HKHU.js +1514 -0
  473. package/dist/scaffold-ad-SPU2HKHU.js.map +1 -0
  474. package/dist/scaffold-static-ad-ENGGU26W.js +1013 -0
  475. package/dist/scaffold-static-ad-ENGGU26W.js.map +1 -0
  476. package/dist/scaffold-video-OZHIU3SZ.js +886 -0
  477. package/dist/scaffold-video-OZHIU3SZ.js.map +1 -0
  478. package/dist/schedule-774JCRVM.js +67 -0
  479. package/dist/schedule-PKKSZ5RX.js +64 -0
  480. package/dist/scheduled-agents-ZI3EWKAT.js +55 -0
  481. package/dist/schema-BXNL4LKR.js +135 -0
  482. package/dist/schema-GFMVUZL2.js +152 -0
  483. package/dist/scrape-KKLE4WAU.js +2209 -0
  484. package/dist/screenshot-K6XOER6Z.js +103 -0
  485. package/dist/search-43ULIJL3.js +91 -0
  486. package/dist/search-AXUNJUWY.js +51 -0
  487. package/dist/search-DLLJEYMB.js +26 -0
  488. package/dist/search-LWWTXBB2.js +92 -0
  489. package/dist/search-VU6GI3U3.js +228 -0
  490. package/dist/search-XO365KES.js +177 -0
  491. package/dist/search-copy-BHNLLCUV.js +168 -0
  492. package/dist/seeds-6ROVZBFB.js +101 -0
  493. package/dist/select-4KMA72MV.js +111 -0
  494. package/dist/select-4KMA72MV.js.map +1 -0
  495. package/dist/sends-P6OPCYH5.js +349 -0
  496. package/dist/sequences-DP4BHM3E.js +146 -0
  497. package/dist/set-prompt-AII24NMX.js +200 -0
  498. package/dist/set-prompt-AII24NMX.js.map +1 -0
  499. package/dist/setup-links-T5TJZA3E.js +144 -0
  500. package/dist/shared-24IPELBM.js +32 -0
  501. package/dist/shopify-OQEKI7HC.js +4009 -0
  502. package/dist/site-QRLBZPEV.js +180 -0
  503. package/dist/sitemaps-SWADO4SI.js +77 -0
  504. package/dist/sites-H3FYJQFO.js +97 -0
  505. package/dist/skills-OYO6Y3DQ.js +47 -0
  506. package/dist/sources-U2WRH6D7.js +457 -0
  507. package/dist/sources-Y2BKZVXA.js +30 -0
  508. package/dist/stale-KE4K36UE.js +91 -0
  509. package/dist/stale-KE4K36UE.js.map +1 -0
  510. package/dist/stats-TTJHXR3E.js +34 -0
  511. package/dist/status-4BSXND3I.js +65 -0
  512. package/dist/sticker-CRIAIO75.js +103 -0
  513. package/dist/stock-TOFKLWSR.js +212 -0
  514. package/dist/studies-VFNWS6ND.js +250 -0
  515. package/dist/studio-WD364TWB.js +49 -0
  516. package/dist/study-writes-R7XYH3VH.js +472 -0
  517. package/dist/study-writes-R7XYH3VH.js.map +1 -0
  518. package/dist/suggest-GX4IROQN.js +66 -0
  519. package/dist/sync-BU7HU3FS.js +55 -0
  520. package/dist/sync-GQL5JX4U.js +57 -0
  521. package/dist/sync-VNBBOVBU.js +279 -0
  522. package/dist/sync-definition-EOARPSBS.js +71 -0
  523. package/dist/tag-SQ5ROLTP.js +57 -0
  524. package/dist/tag-manager-7S7PVYIJ.js +43 -0
  525. package/dist/tags-2226Q3VK.js +23 -0
  526. package/dist/tags-7QIBFIBX.js +227 -0
  527. package/dist/tags-BNWKAV3H.js +23 -0
  528. package/dist/tags-HG5EBHSO.js +23 -0
  529. package/dist/tags-WTN4EBT5.js +26 -0
  530. package/dist/targeting-SSI2F7XM.js +763 -0
  531. package/dist/targeting-SSI2F7XM.js.map +1 -0
  532. package/dist/targeting-constants-6KZXMRNI.js +118 -0
  533. package/dist/targeting-criteria-QSCRW75G.js +113 -0
  534. package/dist/targets-3KT3DO6O.js +106 -0
  535. package/dist/terms-IRLEAMIY.js +102 -0
  536. package/dist/testimonials-35FTFNQ5.js +32 -0
  537. package/dist/themes-WTMD2RE2.js +96 -0
  538. package/dist/themes-WTMD2RE2.js.map +1 -0
  539. package/dist/top-companies-JAWMSK2Q.js +111 -0
  540. package/dist/transcript-OIYU7F4E.js +165 -0
  541. package/dist/translate-S7ZQXQJH.js +604 -0
  542. package/dist/translate-S7ZQXQJH.js.map +1 -0
  543. package/dist/triggers-7QRQFTVM.js +144 -0
  544. package/dist/tweets-7XVF7PJO.js +123 -0
  545. package/dist/unfollow-ZCP6D2SC.js +46 -0
  546. package/dist/unlink-PYCYTYVN.js +70 -0
  547. package/dist/unstage-2OUF6ELM.js +88 -0
  548. package/dist/unstage-YADONHH6.js +96 -0
  549. package/dist/update-DEBDSBDI.js +81 -0
  550. package/dist/update-IDUSNDOI.js +192 -0
  551. package/dist/update-NG3HUYZZ.js +101 -0
  552. package/dist/update-P5IT7AIN.js +155 -0
  553. package/dist/update-U6NU7OXI.js +66 -0
  554. package/dist/upload-4F2JICEH.js +137 -0
  555. package/dist/upload-SS64KHDS.js +155 -0
  556. package/dist/upscale-JNNXDN6X.js +109 -0
  557. package/dist/url-options-EDPKAPPP.js +131 -0
  558. package/dist/url-params-4G26OEOO.js +101 -0
  559. package/dist/use-TKFP6WVP.js +111 -0
  560. package/dist/validate-HER6GMOZ.js +136 -0
  561. package/dist/validate-HER6GMOZ.js.map +1 -0
  562. package/dist/variant-3VTKOQUR.js +338 -0
  563. package/dist/videos-EDTBHLOZ.js +146 -0
  564. package/dist/videos-JRNJH66J.js +41 -0
  565. package/dist/view-6HX3FYMS.js +133 -0
  566. package/dist/viewer-check-OBBBAYV5.js +83 -0
  567. package/dist/web-GPUEUIDT.js +173 -0
  568. package/dist/winners-MEC77MZ4.js +113 -0
  569. package/dist/winning-ads-2DECFON4.js +86 -0
  570. package/dist/write-commands-AU2NJ4MR.js +1525 -0
  571. package/dist/write-commands-AU2NJ4MR.js.map +1 -0
  572. package/dist/write-commands-D5M5A4YI.js +721 -0
  573. package/dist/write-commands-LQVERLAQ.js +206 -0
  574. package/dist/write-commands-Y6U4WABA.js +1170 -0
  575. package/dist/write-commands-Y6U4WABA.js.map +1 -0
  576. package/dist/x-4TM5RET4.js +47 -0
  577. package/package.json +1 -1
  578. package/dist/account-52WDLW4Z.js +0 -82
  579. package/dist/account-7KZ7MHMN.js +0 -82
  580. package/dist/account-NSBALYYS.js +0 -139
  581. package/dist/account-assets-EPEYTJFD.js +0 -290
  582. package/dist/account-level-VD4NLB2D.js +0 -611
  583. package/dist/account-level-VD4NLB2D.js.map +0 -1
  584. package/dist/account-reads-CQIJCPCH.js +0 -219
  585. package/dist/account-reads-CQIJCPCH.js.map +0 -1
  586. package/dist/account-users-NUI3ILRE.js +0 -64
  587. package/dist/account-users-NUI3ILRE.js.map +0 -1
  588. package/dist/account-writes-3BJSUM2V.js +0 -68
  589. package/dist/accounts-A47QUTTB.js +0 -76
  590. package/dist/accounts-E5TF2AFI.js +0 -115
  591. package/dist/accounts-FLKNFDIE.js +0 -713
  592. package/dist/accounts-I2ZLR76R.js +0 -80
  593. package/dist/accounts-ZV4IXOF5.js +0 -119
  594. package/dist/actions-IR47GVZ6.js +0 -55
  595. package/dist/active-entities-XRSJNBOV.js +0 -103
  596. package/dist/activecampaign-MNJYIWJL.js +0 -938
  597. package/dist/activities-ZDWREYR7.js +0 -75
  598. package/dist/ad-group-writes-KU4QMQZP.js +0 -172
  599. package/dist/ad-groups-NMW2G32A.js +0 -70
  600. package/dist/ad-writes-7NOFTOM4.js +0 -176
  601. package/dist/add-25YZMFSH.js +0 -85
  602. package/dist/add-4I25INAO.js +0 -107
  603. package/dist/add-7MAL7JRX.js +0 -81
  604. package/dist/add-D44VCDRU.js +0 -148
  605. package/dist/add-JO4ZPS23.js +0 -97
  606. package/dist/add-QMTD6EGI.js +0 -305
  607. package/dist/add-accounts-EKMSHAA4.js +0 -91
  608. package/dist/ads-4YZYNU66.js +0 -128
  609. package/dist/ads-DGL5SGP3.js +0 -120
  610. package/dist/ads-P4Z3MLKS.js +0 -79
  611. package/dist/ads-PWTQC6KV.js +0 -48
  612. package/dist/adsets-PSVCPCE3.js +0 -182
  613. package/dist/advertisers-7NAPI5ZU.js +0 -125
  614. package/dist/advertisers-LOIXTTGP.js +0 -123
  615. package/dist/analytics-6AHC3J4L.js +0 -447
  616. package/dist/analytics-NL2KGDLK.js +0 -2437
  617. package/dist/animate-VX7E7KJE.js +0 -480
  618. package/dist/approved-E4EZA5RT.js +0 -73
  619. package/dist/asset-writes-NDSHY5OT.js +0 -50
  620. package/dist/assign-NKHIHVGI.js +0 -80
  621. package/dist/audience-size-WEOM6XIL.js +0 -76
  622. package/dist/audience-writes-4KQXVGHO.js +0 -327
  623. package/dist/audience-writes-4KQXVGHO.js.map +0 -1
  624. package/dist/audiences-P3SPTAJT.js +0 -280
  625. package/dist/audiences-T5LMTT3B.js +0 -85
  626. package/dist/audiences-UHLVATR6.js +0 -106
  627. package/dist/audit-46DO2HV3.js +0 -88
  628. package/dist/audit-4RIBJ7BR.js +0 -154
  629. package/dist/autocomplete-FMTJDXTL.js +0 -114
  630. package/dist/avatars-LY5SFMWO.js +0 -38
  631. package/dist/bid-pricing-MQ7WLV5U.js +0 -103
  632. package/dist/brand-LR5IXW3W.js +0 -22
  633. package/dist/brief-4DSXIX3F.js +0 -543
  634. package/dist/brief-4DSXIX3F.js.map +0 -1
  635. package/dist/businesses-TRFYMZ4I.js +0 -54
  636. package/dist/campaign-groups-EZYLKMO2.js +0 -99
  637. package/dist/campaign-writes-P5XPFTRK.js +0 -176
  638. package/dist/campaign-writes-UMENYMKO.js +0 -168
  639. package/dist/campaigns-2MTON2IE.js +0 -130
  640. package/dist/campaigns-PP2DQMJE.js +0 -113
  641. package/dist/campaigns-SWZJVE2T.js +0 -78
  642. package/dist/campaigns-TAFDM242.js +0 -111
  643. package/dist/canvas-RKR3ZB4E.js +0 -46
  644. package/dist/capabilities-45RZ6E6W.js +0 -147
  645. package/dist/cards-CXKIVM4D.js +0 -85
  646. package/dist/catalog-TOHUVBEU.js +0 -66
  647. package/dist/catalogs-4DNLG4AM.js +0 -782
  648. package/dist/catalogs-4DNLG4AM.js.map +0 -1
  649. package/dist/catalogs-V7PTEJBO.js +0 -130
  650. package/dist/changes-5OW3UYMF.js +0 -167
  651. package/dist/chatgpt-JBMYNVJB.js +0 -47
  652. package/dist/chats-VOLBYA3R.js +0 -584
  653. package/dist/check-4DI73QX4.js +0 -107
  654. package/dist/check-4DI73QX4.js.map +0 -1
  655. package/dist/chunk-22RM3UOO.js +0 -63
  656. package/dist/chunk-2CC4CPDT.js +0 -225
  657. package/dist/chunk-2N7TB346.js +0 -5368
  658. package/dist/chunk-2Q7K4F4H.js +0 -7899
  659. package/dist/chunk-2TS2ITSG.js +0 -392
  660. package/dist/chunk-2YXTXSYG.js +0 -454
  661. package/dist/chunk-2Z6PFHD2.js +0 -91
  662. package/dist/chunk-3GXHML4V.js +0 -106
  663. package/dist/chunk-3QPG2D27.js +0 -125
  664. package/dist/chunk-3WN5GWX4.js +0 -94
  665. package/dist/chunk-47VWQ7FQ.js +0 -843
  666. package/dist/chunk-47VWQ7FQ.js.map +0 -1
  667. package/dist/chunk-4AO3LSYM.js +0 -73
  668. package/dist/chunk-4HFM5RCP.js +0 -217
  669. package/dist/chunk-4NZ47VXO.js +0 -137
  670. package/dist/chunk-4NZ47VXO.js.map +0 -1
  671. package/dist/chunk-4QFMRL6O.js +0 -455
  672. package/dist/chunk-5OC6VUDZ.js +0 -930
  673. package/dist/chunk-5QNW5PCM.js +0 -106
  674. package/dist/chunk-5VXEH72O.js +0 -249
  675. package/dist/chunk-5VXEH72O.js.map +0 -1
  676. package/dist/chunk-6AMN346B.js +0 -114
  677. package/dist/chunk-6EOWBGGW.js +0 -191
  678. package/dist/chunk-6MJKVNLL.js +0 -25
  679. package/dist/chunk-7NBQQOCU.js +0 -97
  680. package/dist/chunk-AQRBEPZL.js +0 -138
  681. package/dist/chunk-AZIXX73C.js +0 -64
  682. package/dist/chunk-B4BITHOD.js +0 -2235
  683. package/dist/chunk-B64KJW5C.js +0 -476
  684. package/dist/chunk-BFAPSFS7.js +0 -1518
  685. package/dist/chunk-BIBXZJZI.js +0 -97
  686. package/dist/chunk-BMMXYR7A.js +0 -238
  687. package/dist/chunk-BNEWJXKU.js +0 -638
  688. package/dist/chunk-BNEWJXKU.js.map +0 -1
  689. package/dist/chunk-BXTIG5JL.js +0 -66
  690. package/dist/chunk-C7KV5O5J.js +0 -274
  691. package/dist/chunk-CBVUO7SK.js +0 -1744
  692. package/dist/chunk-CDPX6WAL.js +0 -207
  693. package/dist/chunk-CF5I4Q5M.js +0 -69
  694. package/dist/chunk-COOJKEJE.js +0 -312
  695. package/dist/chunk-CTJWMZPL.js +0 -430
  696. package/dist/chunk-D5HD46VV.js +0 -163
  697. package/dist/chunk-DGHSXHZR.js +0 -136
  698. package/dist/chunk-DHF4FXWS.js +0 -58
  699. package/dist/chunk-DPOUS5DN.js +0 -287
  700. package/dist/chunk-EGICPBDY.js +0 -1920
  701. package/dist/chunk-EJ6EED6I.js +0 -69
  702. package/dist/chunk-EKOMZH2S.js +0 -685
  703. package/dist/chunk-ELC42LJJ.js +0 -8954
  704. package/dist/chunk-FLTAPEVY.js +0 -288
  705. package/dist/chunk-G4FU6VC5.js +0 -23
  706. package/dist/chunk-H25GY4U4.js +0 -139
  707. package/dist/chunk-H3RCEM6L.js +0 -61
  708. package/dist/chunk-H6ASYVQX.js +0 -544
  709. package/dist/chunk-H7LKYGLJ.js +0 -24026
  710. package/dist/chunk-H7LKYGLJ.js.map +0 -1
  711. package/dist/chunk-HM4NWA72.js +0 -5471
  712. package/dist/chunk-HPF3USL2.js +0 -52
  713. package/dist/chunk-I33FO2ON.js +0 -170
  714. package/dist/chunk-IAE24RKD.js +0 -604
  715. package/dist/chunk-IB6VWG32.js +0 -755
  716. package/dist/chunk-IB6VWG32.js.map +0 -1
  717. package/dist/chunk-IGCS3X4F.js +0 -150
  718. package/dist/chunk-IJ6WA2JW.js +0 -148
  719. package/dist/chunk-ITIUWJGQ.js +0 -131
  720. package/dist/chunk-IYDESWW4.js +0 -74
  721. package/dist/chunk-J4BJLHLQ.js +0 -3510
  722. package/dist/chunk-JAC6JVCI.js +0 -26
  723. package/dist/chunk-JAME5NBT.js +0 -42
  724. package/dist/chunk-JCDCIQMA.js +0 -479
  725. package/dist/chunk-JGK2FDZW.js +0 -1919
  726. package/dist/chunk-JGK2FDZW.js.map +0 -1
  727. package/dist/chunk-JSOOLOHP.js +0 -468
  728. package/dist/chunk-JT3UUBID.js +0 -142
  729. package/dist/chunk-KGJ6EIX3.js +0 -76
  730. package/dist/chunk-KUI74TNG.js +0 -169
  731. package/dist/chunk-L4QEMWNJ.js +0 -111
  732. package/dist/chunk-L7I47VGM.js +0 -46
  733. package/dist/chunk-LAOCXV6Z.js +0 -98
  734. package/dist/chunk-LJEJCIHR.js +0 -246
  735. package/dist/chunk-LQACNCAV.js +0 -334
  736. package/dist/chunk-M4KFO256.js +0 -188
  737. package/dist/chunk-MC5F2L64.js +0 -962
  738. package/dist/chunk-MCJ5I5LR.js +0 -3187
  739. package/dist/chunk-MCJ5I5LR.js.map +0 -1
  740. package/dist/chunk-MIHY534L.js +0 -39
  741. package/dist/chunk-MKG57P2E.js +0 -783
  742. package/dist/chunk-MKOI6QYM.js +0 -225
  743. package/dist/chunk-MPTNN35I.js +0 -325
  744. package/dist/chunk-MSIOGH67.js +0 -66
  745. package/dist/chunk-MTW2NDDD.js +0 -98
  746. package/dist/chunk-MZPS46OR.js +0 -76
  747. package/dist/chunk-NXNOXZGB.js +0 -2523
  748. package/dist/chunk-NXNOXZGB.js.map +0 -1
  749. package/dist/chunk-O2ECZKXP.js +0 -197
  750. package/dist/chunk-O5VSYBUA.js +0 -343
  751. package/dist/chunk-OJZKY5UM.js +0 -46
  752. package/dist/chunk-OJZKY5UM.js.map +0 -1
  753. package/dist/chunk-P4UCSXNA.js +0 -156
  754. package/dist/chunk-P4UCSXNA.js.map +0 -1
  755. package/dist/chunk-Q3G4ZI2U.js +0 -84
  756. package/dist/chunk-Q5XUFN2W.js +0 -35
  757. package/dist/chunk-Q736UFSD.js +0 -75
  758. package/dist/chunk-QLO4RNHU.js +0 -51
  759. package/dist/chunk-QSS34JWZ.js +0 -224
  760. package/dist/chunk-QVHZTCB5.js +0 -1254
  761. package/dist/chunk-QVQKCVP7.js +0 -85
  762. package/dist/chunk-QVQKCVP7.js.map +0 -1
  763. package/dist/chunk-RRKUXGAU.js +0 -26
  764. package/dist/chunk-RVIBHENP.js +0 -344
  765. package/dist/chunk-S5S54J2K.js +0 -56
  766. package/dist/chunk-SIRRBWQ2.js +0 -215
  767. package/dist/chunk-TEJOILEY.js +0 -203
  768. package/dist/chunk-TEQEZAJI.js +0 -1320
  769. package/dist/chunk-TLQY4QBW.js +0 -84
  770. package/dist/chunk-TNI7CN4L.js +0 -547
  771. package/dist/chunk-TPJ34LXX.js +0 -220
  772. package/dist/chunk-U6AWJIFP.js +0 -225
  773. package/dist/chunk-UK4XSLV2.js +0 -296
  774. package/dist/chunk-URGXEDFV.js +0 -76
  775. package/dist/chunk-V5ODOBBI.js +0 -399
  776. package/dist/chunk-V7EN5LFS.js +0 -115
  777. package/dist/chunk-VAURJ4QJ.js +0 -89
  778. package/dist/chunk-VAV5CCDD.js +0 -167
  779. package/dist/chunk-VWHUO3AP.js +0 -103
  780. package/dist/chunk-W3TZPHZO.js +0 -285
  781. package/dist/chunk-WTPID22G.js +0 -152
  782. package/dist/chunk-WZATC4O5.js +0 -297
  783. package/dist/chunk-X25XRSDP.js +0 -57
  784. package/dist/chunk-XA76OGSL.js +0 -718
  785. package/dist/chunk-XGG72YRO.js +0 -91
  786. package/dist/chunk-XHWHBGKX.js +0 -4277
  787. package/dist/chunk-XHWHBGKX.js.map +0 -1
  788. package/dist/chunk-XWAOECD2.js +0 -831
  789. package/dist/chunk-YAMKCMAS.js +0 -219
  790. package/dist/chunk-YDALLZNS.js +0 -494
  791. package/dist/chunk-YRWCXYWW.js +0 -178
  792. package/dist/chunk-YRWCXYWW.js.map +0 -1
  793. package/dist/chunk-Z3RGBLVJ.js +0 -64
  794. package/dist/chunk-Z5JWFNG4.js +0 -19
  795. package/dist/chunk-ZCGM7ZWM.js +0 -45
  796. package/dist/cite-WCAOCOO5.js +0 -191
  797. package/dist/claim-3UMAFZEM.js +0 -200
  798. package/dist/client-VCKP6WBR.js +0 -19
  799. package/dist/code-VXOTFGD2.js +0 -76
  800. package/dist/companies-RL5A26AT.js +0 -198
  801. package/dist/company-DJ44F5C6.js +0 -308
  802. package/dist/complete-PGNIP3LN.js +0 -84
  803. package/dist/config-UR45YCIN.js +0 -88
  804. package/dist/connect-ROARWN63.js +0 -45
  805. package/dist/content-EQQIKG5H.js +0 -85
  806. package/dist/conversation-GDFMJL7X.js +0 -96
  807. package/dist/conversion-report-2FREFML5.js +0 -127
  808. package/dist/conversion-upload-command-JAGV6GMG.js +0 -439
  809. package/dist/conversion-upload-command-JAGV6GMG.js.map +0 -1
  810. package/dist/conversion-writes-JZIJSQ7T.js +0 -122
  811. package/dist/conversions-2IFWDQKK.js +0 -140
  812. package/dist/conversions-Q5EBTEXA.js +0 -78
  813. package/dist/copy-writes-JVUX3YDL.js +0 -170
  814. package/dist/copy-writes-JVUX3YDL.js.map +0 -1
  815. package/dist/countries-GRCU4IGM.js +0 -82
  816. package/dist/create-B5DIYK5D.js +0 -218
  817. package/dist/create-BRCSXXFO.js +0 -239
  818. package/dist/create-PXAUL6FF.js +0 -62
  819. package/dist/create-R6CMATVY.js +0 -135
  820. package/dist/creatives-4EPM3RHG.js +0 -118
  821. package/dist/creatives-D6O6Z46U.js +0 -229
  822. package/dist/creatives-XNVWQWFF.js +0 -58
  823. package/dist/creatives-XNVWQWFF.js.map +0 -1
  824. package/dist/credentials-CLJO7WWY.js +0 -290
  825. package/dist/critique-MBMKW6SL.js +0 -1451
  826. package/dist/critique-MBMKW6SL.js.map +0 -1
  827. package/dist/critique-OUJDTVMI.js +0 -232
  828. package/dist/critique-OUJDTVMI.js.map +0 -1
  829. package/dist/crm-H5ITJ2RC.js +0 -229
  830. package/dist/crm-JJHYRABB.js +0 -323
  831. package/dist/crop-NE7YX4SS.js +0 -113
  832. package/dist/currency-EFDQYW5B.js +0 -88
  833. package/dist/custom-conversions-GQTU5E6X.js +0 -128
  834. package/dist/customers-C5YXAVXI.js +0 -65
  835. package/dist/decide-6Q5X3V3F.js +0 -199
  836. package/dist/delete-3GYCQK6B.js +0 -57
  837. package/dist/delete-EKKOEB3N.js +0 -69
  838. package/dist/delete-NBUDIGSD.js +0 -69
  839. package/dist/delete-QHDDR66K.js +0 -85
  840. package/dist/delete-SP66F7ZV.js +0 -71
  841. package/dist/delete-WZ3KVVX5.js +0 -67
  842. package/dist/demographics-O7AJW7DO.js +0 -141
  843. package/dist/describe-DJPIUEFE.js +0 -97
  844. package/dist/describe-MAGTSOW4.js +0 -97
  845. package/dist/dimensions-IC2H7V3H.js +0 -101
  846. package/dist/discard-RMVZAX2J.js +0 -69
  847. package/dist/discover-BPUUWRBP.js +0 -172
  848. package/dist/discover-PSL2NBJL.js +0 -93
  849. package/dist/domain-J3ZMBOHS.js +0 -101
  850. package/dist/download-EHDJXBAC.js +0 -337
  851. package/dist/download-ZVOGLTFB.js +0 -172
  852. package/dist/draft-27NMTARB.js +0 -134
  853. package/dist/draft-6PJD3MCW.js +0 -374
  854. package/dist/draft-GCOCG4PO.js +0 -315
  855. package/dist/draft-GSDDK6FO.js +0 -614
  856. package/dist/draft-GSDDK6FO.js.map +0 -1
  857. package/dist/draft-JESKGZ6O.js +0 -138
  858. package/dist/draft-MWYKIZC4.js +0 -260
  859. package/dist/draft-TPR3DH5N.js +0 -220
  860. package/dist/draft-ZPGGWU7E.js +0 -332
  861. package/dist/draft-ZPGGWU7E.js.map +0 -1
  862. package/dist/env-NZXNMWSD.js +0 -53
  863. package/dist/experiment-XAYSEYTU.js +0 -1397
  864. package/dist/experiments-MM4BYHRH.js +0 -236
  865. package/dist/experiments-MM4BYHRH.js.map +0 -1
  866. package/dist/export-W54UZ62P.js +0 -168
  867. package/dist/extract-JMY6YRPW.js +0 -143
  868. package/dist/facets-B5AZAU2C.js +0 -117
  869. package/dist/favorites-Y6CT6NSQ.js +0 -178
  870. package/dist/feed-35BRQPTH.js +0 -177
  871. package/dist/feedback-2EVDGTEN.js +0 -115
  872. package/dist/feedback-2EVDGTEN.js.map +0 -1
  873. package/dist/feedback-4MCMOMVN.js +0 -114
  874. package/dist/feedback-record-DL7UEU2H.js +0 -269
  875. package/dist/feedback-record-DL7UEU2H.js.map +0 -1
  876. package/dist/fetch-I6P72CDL.js +0 -139
  877. package/dist/fetch-JDNFK476.js +0 -204
  878. package/dist/find-SVGRA7IA.js +0 -144
  879. package/dist/fit-DKVH5BDW.js +0 -65
  880. package/dist/flows-LURTZICL.js +0 -340
  881. package/dist/follow-24QSDNAG.js +0 -94
  882. package/dist/follow-competitors-AG4E4XFA.js +0 -112
  883. package/dist/following-YGM6TBK3.js +0 -113
  884. package/dist/fonts-HUXFDDAE.js +0 -39
  885. package/dist/forecast-HMNQZFVL.js +0 -169
  886. package/dist/forecast-HMNQZFVL.js.map +0 -1
  887. package/dist/forecast-UHTW4Y7Q.js +0 -121
  888. package/dist/funding-WZNGXRLJ.js +0 -85
  889. package/dist/funnel-QM7WFFMD.js +0 -397
  890. package/dist/ga4-W3U5YTRT.js +0 -55
  891. package/dist/generate-KAWRRYTT.js +0 -263
  892. package/dist/get-237TYJZT.js +0 -82
  893. package/dist/get-3MTAVNTP.js +0 -56
  894. package/dist/get-5SPNAIUQ.js +0 -62
  895. package/dist/get-FWPR2YPC.js +0 -62
  896. package/dist/get-GEUSRD5Y.js +0 -59
  897. package/dist/get-JIZPYK3Z.js +0 -74
  898. package/dist/get-TS2ZJDCQ.js +0 -38
  899. package/dist/get-YWDZYEAC.js +0 -92
  900. package/dist/gif-NP6EDGEE.js +0 -111
  901. package/dist/google-3CAUWNWE.js +0 -3300
  902. package/dist/google-3CAUWNWE.js.map +0 -1
  903. package/dist/google-DTSLO3PT.js +0 -163
  904. package/dist/google-ads-RZOQQDQN.js +0 -198
  905. package/dist/group-3DT4UYSR.js +0 -43
  906. package/dist/group-OEKKCFXT.js +0 -43
  907. package/dist/gsc-4FEFPFPB.js +0 -30
  908. package/dist/history-H7S7XRBX.js +0 -153
  909. package/dist/history-XL52537O.js +0 -102
  910. package/dist/history-YQSYXBJH.js +0 -69
  911. package/dist/hubspot-2DSISSUI.js +0 -814
  912. package/dist/icon-43UJTGGE.js +0 -138
  913. package/dist/ideas-2XBFQJ56.js +0 -45
  914. package/dist/images-VFRQ32G5.js +0 -92
  915. package/dist/improve-IMXQN6OD.js +0 -86
  916. package/dist/ingest-4RPLN54K.js +0 -28
  917. package/dist/ingest-TPVH44VI.js +0 -131
  918. package/dist/insights-BR3456EI.js +0 -658
  919. package/dist/insights-UVCFOB3N.js +0 -132
  920. package/dist/inspect-VD3GVXDU.js +0 -192
  921. package/dist/inspiration-XZI5KCQW.js +0 -53
  922. package/dist/instant-experiences-2LKF7XVK.js +0 -264
  923. package/dist/instant-experiences-2LKF7XVK.js.map +0 -1
  924. package/dist/intent-F5NTOSQC.js +0 -95
  925. package/dist/job-GOX3KIKG.js +0 -202
  926. package/dist/job-create-F2PQSN3C.js +0 -109
  927. package/dist/job-status-3FMA5D7T.js +0 -74
  928. package/dist/keep-23ZYMWPG.js +0 -78
  929. package/dist/keyword-gap-EB5QATYN.js +0 -130
  930. package/dist/keyword-metrics-PW2DDIJW.js +0 -200
  931. package/dist/keywords-for-site-JEPABY6E.js +0 -131
  932. package/dist/knowledge-7M7DSRF3.js +0 -195
  933. package/dist/landing-4N6YSB4L.js +0 -28
  934. package/dist/landings-VNQ4VA2U.js +0 -151
  935. package/dist/languages-2X22HXM3.js +0 -55
  936. package/dist/languages-4S26FJDP.js +0 -40
  937. package/dist/launches-L4EUROCJ.js +0 -19
  938. package/dist/layerize-6QHQMA7Q.js +0 -190
  939. package/dist/lead-routes-5TPFJEVH.js +0 -733
  940. package/dist/leads-4TLOH47R.js +0 -541
  941. package/dist/leads-4TLOH47R.js.map +0 -1
  942. package/dist/leads-R5OZJQHW.js +0 -115
  943. package/dist/learn-AQ2FRFB7.js +0 -207
  944. package/dist/library-MNJC24E4.js +0 -212
  945. package/dist/lighthouse-DJMAXFTD.js +0 -75
  946. package/dist/line-item-writes-LGO7HIJJ.js +0 -211
  947. package/dist/line-items-AAZVKQ7E.js +0 -107
  948. package/dist/link-7IGHVARH.js +0 -67
  949. package/dist/linkedin-UB2CW4KP.js +0 -1344
  950. package/dist/linkedin-UB2CW4KP.js.map +0 -1
  951. package/dist/linkedin-person-D6U2ZAUW.js +0 -139
  952. package/dist/list-2277GCPH.js +0 -51
  953. package/dist/list-537S75BZ.js +0 -76
  954. package/dist/list-P44QRX2O.js +0 -154
  955. package/dist/list-Q52FPW3H.js +0 -50
  956. package/dist/list-UMJACDTQ.js +0 -67
  957. package/dist/list-V4PSDBLX.js +0 -93
  958. package/dist/list-VZKUHY4Y.js +0 -306
  959. package/dist/list-WIXQXNKB.js +0 -65
  960. package/dist/list-XK33NCSC.js +0 -57
  961. package/dist/locations-UWBQLHXW.js +0 -40
  962. package/dist/locations-WXGOI3VV.js +0 -69
  963. package/dist/log-6ZKMUTYS.js +0 -95
  964. package/dist/logo-4LSFZ3ZO.js +0 -19
  965. package/dist/lookup-WIM5WR25.js +0 -23
  966. package/dist/make-5CEIJRBC.js +0 -1367
  967. package/dist/make-5CEIJRBC.js.map +0 -1
  968. package/dist/map-ZL4MQVJZ.js +0 -445
  969. package/dist/mcp-GSRYLRD4.js +0 -729
  970. package/dist/media-34I7UB7Z.js +0 -89
  971. package/dist/media-KKI3KWLR.js +0 -18
  972. package/dist/media-sources-VSPVHLYN.js +0 -35
  973. package/dist/members-L6SXP6GC.js +0 -47
  974. package/dist/meme-6NFYFQ7T.js +0 -108
  975. package/dist/meta-2UK7KIE4.js +0 -124
  976. package/dist/metrics-4AFEEDVP.js +0 -152
  977. package/dist/models-2ZEM64H5.js +0 -155
  978. package/dist/normalize-G75RDSE4.js +0 -806
  979. package/dist/normalize-GK7DH7ZP.js +0 -144
  980. package/dist/options-FDAAHG7C.js +0 -125
  981. package/dist/organization-K2FTFAAO.js +0 -949
  982. package/dist/output-ELEO2Z6R.js +0 -24
  983. package/dist/page-4X6IBUWG.js +0 -105
  984. package/dist/page-photos-KNBLMFLN.js +0 -118
  985. package/dist/page-photos-KNBLMFLN.js.map +0 -1
  986. package/dist/pages-7HW5YOZV.js +0 -67
  987. package/dist/performance-N3UROH7Z.js +0 -5565
  988. package/dist/performance-RG2HR46T.js +0 -27
  989. package/dist/pinterest-KA6VFDM4.js +0 -105
  990. package/dist/pixels-D5HF24FI.js +0 -109
  991. package/dist/pixels-HEI5WVAO.js +0 -62
  992. package/dist/plan-XCA6R3HZ.js +0 -208
  993. package/dist/posts-ALGM6ONV.js +0 -36
  994. package/dist/preview-55TRUF4Q.js +0 -245
  995. package/dist/preview-NVWIEUHF.js +0 -101
  996. package/dist/profile-NHUPUCBR.js +0 -159
  997. package/dist/promoted-tweet-writes-7QZRFDOM.js +0 -183
  998. package/dist/promoted-tweets-V555Y7DN.js +0 -119
  999. package/dist/properties-2ZXA5BPJ.js +0 -101
  1000. package/dist/publish-5KR6YLA6.js +0 -350
  1001. package/dist/query-63CTX2PH.js +0 -231
  1002. package/dist/query-DMWY3TDD.js +0 -236
  1003. package/dist/query-K7MYBRTS.js +0 -62
  1004. package/dist/questionnaire-WHE42RD4.js +0 -94
  1005. package/dist/read-NESEKULG.js +0 -141
  1006. package/dist/reddit-XPQ7YAJW.js +0 -29
  1007. package/dist/refresh-ILDEPU5A.js +0 -42
  1008. package/dist/refresh-XFHEBSDU.js +0 -97
  1009. package/dist/release-3ECEF26P.js +0 -63
  1010. package/dist/relevant-pages-XYQKVX3U.js +0 -99
  1011. package/dist/remove-NHE4UT7G.js +0 -49
  1012. package/dist/remove-OCTUC3RB.js +0 -53
  1013. package/dist/reopen-JRI3TYD4.js +0 -66
  1014. package/dist/rerun-HWWYCDT2.js +0 -97
  1015. package/dist/rerun-HWWYCDT2.js.map +0 -1
  1016. package/dist/research-ODPU62BA.js +0 -265
  1017. package/dist/research-TG5CBTYP.js +0 -75
  1018. package/dist/reset-J2NLNITD.js +0 -57
  1019. package/dist/reset-SRU7YJUR.js +0 -57
  1020. package/dist/resolve-KHMMUGB2.js +0 -124
  1021. package/dist/retry-VLH4AO7F.js +0 -65
  1022. package/dist/retry-WP7LWKZF.js +0 -63
  1023. package/dist/retry-failed-R5HPQ3KQ.js +0 -45
  1024. package/dist/revenue-EEIS2AV5.js +0 -91
  1025. package/dist/revenue-EEIS2AV5.js.map +0 -1
  1026. package/dist/rule-writes-QB4IWFCJ.js +0 -530
  1027. package/dist/rule-writes-QB4IWFCJ.js.map +0 -1
  1028. package/dist/rules-FYVD2QBB.js +0 -217
  1029. package/dist/rules-TTUGQAEB.js +0 -99
  1030. package/dist/rules-TTUGQAEB.js.map +0 -1
  1031. package/dist/rules-add-AIXUAZXG.js +0 -465
  1032. package/dist/rules-add-AIXUAZXG.js.map +0 -1
  1033. package/dist/run-AQTACLY6.js +0 -69
  1034. package/dist/run-YA6IWQAJ.js +0 -72
  1035. package/dist/scaffold-ad-IYNFJPT7.js +0 -1513
  1036. package/dist/scaffold-ad-IYNFJPT7.js.map +0 -1
  1037. package/dist/scaffold-static-ad-SPYKSAJR.js +0 -1012
  1038. package/dist/scaffold-static-ad-SPYKSAJR.js.map +0 -1
  1039. package/dist/scaffold-video-BUN27PKS.js +0 -885
  1040. package/dist/scaffold-video-BUN27PKS.js.map +0 -1
  1041. package/dist/schedule-D7EDEM45.js +0 -67
  1042. package/dist/schedule-EH2MOC5C.js +0 -64
  1043. package/dist/scheduled-agents-DTAEP25E.js +0 -55
  1044. package/dist/schema-7B4MVVAS.js +0 -135
  1045. package/dist/schema-Z43AJOJ4.js +0 -152
  1046. package/dist/scrape-VL2RWSTW.js +0 -2209
  1047. package/dist/screenshot-Y6EEXS3Q.js +0 -103
  1048. package/dist/search-CXC7N5XJ.js +0 -51
  1049. package/dist/search-JEXYEAPQ.js +0 -228
  1050. package/dist/search-L3GTZYRW.js +0 -92
  1051. package/dist/search-TXBYKNQC.js +0 -91
  1052. package/dist/search-XHSTUBDY.js +0 -26
  1053. package/dist/search-ZZWIJRXJ.js +0 -177
  1054. package/dist/search-copy-FIPG7OCC.js +0 -168
  1055. package/dist/seeds-ADJKURNG.js +0 -101
  1056. package/dist/select-LWZRF7KV.js +0 -110
  1057. package/dist/select-LWZRF7KV.js.map +0 -1
  1058. package/dist/sends-RS4LWRAC.js +0 -349
  1059. package/dist/sequences-2RPKDKGQ.js +0 -146
  1060. package/dist/set-prompt-YKDH6FYK.js +0 -199
  1061. package/dist/set-prompt-YKDH6FYK.js.map +0 -1
  1062. package/dist/setup-links-OE6PC2YQ.js +0 -144
  1063. package/dist/shared-4GGUIOF2.js +0 -32
  1064. package/dist/shopify-CCPLZI2H.js +0 -4009
  1065. package/dist/site-FW5BBLYG.js +0 -180
  1066. package/dist/sitemaps-Z6IELTQV.js +0 -77
  1067. package/dist/sites-KLAKI2EY.js +0 -97
  1068. package/dist/skills-OJP36EVR.js +0 -47
  1069. package/dist/sources-WPHMWBEK.js +0 -30
  1070. package/dist/sources-X77TGJ52.js +0 -457
  1071. package/dist/stale-SPCDL73V.js +0 -90
  1072. package/dist/stale-SPCDL73V.js.map +0 -1
  1073. package/dist/stats-MIMFX4R7.js +0 -34
  1074. package/dist/status-FLETGJ2A.js +0 -65
  1075. package/dist/sticker-IREEEN7I.js +0 -103
  1076. package/dist/stock-5AOSQH52.js +0 -212
  1077. package/dist/studies-YGYAH3JI.js +0 -250
  1078. package/dist/studio-4EV5S7PR.js +0 -49
  1079. package/dist/study-writes-UPGJB36A.js +0 -471
  1080. package/dist/study-writes-UPGJB36A.js.map +0 -1
  1081. package/dist/suggest-5RTISDLI.js +0 -66
  1082. package/dist/sync-363VKXU3.js +0 -57
  1083. package/dist/sync-OHIXI4I6.js +0 -55
  1084. package/dist/sync-VCAFAYW4.js +0 -279
  1085. package/dist/sync-definition-ZDE5L644.js +0 -70
  1086. package/dist/tag-DSCUKNC3.js +0 -57
  1087. package/dist/tag-manager-IINALUEJ.js +0 -43
  1088. package/dist/tags-6MN3AWKN.js +0 -23
  1089. package/dist/tags-VOKUNEIW.js +0 -227
  1090. package/dist/tags-Y6MNMIEA.js +0 -23
  1091. package/dist/tags-YHAC3NVY.js +0 -23
  1092. package/dist/tags-ZCQMJ5YH.js +0 -26
  1093. package/dist/targeting-BM72UTI6.js +0 -762
  1094. package/dist/targeting-BM72UTI6.js.map +0 -1
  1095. package/dist/targeting-constants-54S3FXIF.js +0 -118
  1096. package/dist/targeting-criteria-ECQFHQF3.js +0 -113
  1097. package/dist/targets-U2JHTB5U.js +0 -106
  1098. package/dist/terms-OFHNLW6U.js +0 -102
  1099. package/dist/testimonials-IDVLMXDT.js +0 -32
  1100. package/dist/themes-FW3VWZJE.js +0 -95
  1101. package/dist/themes-FW3VWZJE.js.map +0 -1
  1102. package/dist/top-companies-CBI4O3ZB.js +0 -111
  1103. package/dist/transcript-IIRFTFRW.js +0 -165
  1104. package/dist/translate-N6QW4FZB.js +0 -603
  1105. package/dist/translate-N6QW4FZB.js.map +0 -1
  1106. package/dist/triggers-Q3KRAMA3.js +0 -144
  1107. package/dist/tweets-TRTXC6O4.js +0 -123
  1108. package/dist/unfollow-DATOGPLZ.js +0 -46
  1109. package/dist/unlink-7RVQXKAR.js +0 -70
  1110. package/dist/unstage-3LPHNZKR.js +0 -88
  1111. package/dist/unstage-LLQCMZ5H.js +0 -96
  1112. package/dist/update-AL3LBHGK.js +0 -192
  1113. package/dist/update-AWR7EHGA.js +0 -155
  1114. package/dist/update-LNSSLZXG.js +0 -66
  1115. package/dist/update-SD5YQIJC.js +0 -81
  1116. package/dist/update-YBTFH5MN.js +0 -101
  1117. package/dist/upload-45GCGMA5.js +0 -137
  1118. package/dist/upload-7PPMVWVA.js +0 -155
  1119. package/dist/upscale-WVJZG76V.js +0 -109
  1120. package/dist/url-options-AHJPR5VY.js +0 -131
  1121. package/dist/url-params-U6ZM4LL2.js +0 -101
  1122. package/dist/use-6FADOAFZ.js +0 -111
  1123. package/dist/validate-S325RXPH.js +0 -135
  1124. package/dist/validate-S325RXPH.js.map +0 -1
  1125. package/dist/variant-RNM36P4J.js +0 -338
  1126. package/dist/videos-GHFCOTT7.js +0 -146
  1127. package/dist/videos-NW2UP342.js +0 -41
  1128. package/dist/view-YR6MDLWL.js +0 -133
  1129. package/dist/viewer-check-IDXFRRCO.js +0 -83
  1130. package/dist/web-VMPKMBKA.js +0 -173
  1131. package/dist/winners-4T5RFQXU.js +0 -113
  1132. package/dist/winning-ads-7UJXCWFH.js +0 -86
  1133. package/dist/write-commands-6D55SB56.js +0 -206
  1134. package/dist/write-commands-AIWLEGO2.js +0 -1169
  1135. package/dist/write-commands-AIWLEGO2.js.map +0 -1
  1136. package/dist/write-commands-R42DQEW6.js +0 -1524
  1137. package/dist/write-commands-R42DQEW6.js.map +0 -1
  1138. package/dist/write-commands-UO3OQIHH.js +0 -721
  1139. package/dist/x-UGTUOCVR.js +0 -47
  1140. /package/dist/{account-52WDLW4Z.js.map → account-6RJ6ZI3B.js.map} +0 -0
  1141. /package/dist/{account-7KZ7MHMN.js.map → account-AIGNJ2RP.js.map} +0 -0
  1142. /package/dist/{account-NSBALYYS.js.map → account-E5LLPRZ6.js.map} +0 -0
  1143. /package/dist/{account-assets-EPEYTJFD.js.map → account-assets-J6SVHSXR.js.map} +0 -0
  1144. /package/dist/{account-writes-3BJSUM2V.js.map → account-writes-XNS4IKZV.js.map} +0 -0
  1145. /package/dist/{accounts-I2ZLR76R.js.map → accounts-3ZWYGRVM.js.map} +0 -0
  1146. /package/dist/{accounts-ZV4IXOF5.js.map → accounts-5TLHSEZR.js.map} +0 -0
  1147. /package/dist/{accounts-FLKNFDIE.js.map → accounts-BAZYYDFV.js.map} +0 -0
  1148. /package/dist/{accounts-A47QUTTB.js.map → accounts-L2HVNJUF.js.map} +0 -0
  1149. /package/dist/{accounts-E5TF2AFI.js.map → accounts-NTBIRB52.js.map} +0 -0
  1150. /package/dist/{actions-IR47GVZ6.js.map → actions-N2FBJMT4.js.map} +0 -0
  1151. /package/dist/{active-entities-XRSJNBOV.js.map → active-entities-IJPRN45K.js.map} +0 -0
  1152. /package/dist/{activecampaign-MNJYIWJL.js.map → activecampaign-U77COT2F.js.map} +0 -0
  1153. /package/dist/{activities-ZDWREYR7.js.map → activities-SS3SUWSS.js.map} +0 -0
  1154. /package/dist/{ad-group-writes-KU4QMQZP.js.map → ad-group-writes-DTQSUNE2.js.map} +0 -0
  1155. /package/dist/{ad-groups-NMW2G32A.js.map → ad-groups-CX23GLVE.js.map} +0 -0
  1156. /package/dist/{ad-writes-7NOFTOM4.js.map → ad-writes-HAAUOJCG.js.map} +0 -0
  1157. /package/dist/{add-QMTD6EGI.js.map → add-ABPQTO2M.js.map} +0 -0
  1158. /package/dist/{add-JO4ZPS23.js.map → add-BK6N7KWU.js.map} +0 -0
  1159. /package/dist/{add-25YZMFSH.js.map → add-ECN2FTMH.js.map} +0 -0
  1160. /package/dist/{add-D44VCDRU.js.map → add-FH7OVKFF.js.map} +0 -0
  1161. /package/dist/{add-7MAL7JRX.js.map → add-KHY3H54G.js.map} +0 -0
  1162. /package/dist/{add-4I25INAO.js.map → add-VDH2VCXR.js.map} +0 -0
  1163. /package/dist/{add-accounts-EKMSHAA4.js.map → add-accounts-6JAOSCXK.js.map} +0 -0
  1164. /package/dist/{ads-4YZYNU66.js.map → ads-BEMEXBDJ.js.map} +0 -0
  1165. /package/dist/{ads-PWTQC6KV.js.map → ads-GAU2XKNL.js.map} +0 -0
  1166. /package/dist/{ads-P4Z3MLKS.js.map → ads-HZOXZ3FY.js.map} +0 -0
  1167. /package/dist/{ads-DGL5SGP3.js.map → ads-I5OBZ5VI.js.map} +0 -0
  1168. /package/dist/{adsets-PSVCPCE3.js.map → adsets-PMQGA6TW.js.map} +0 -0
  1169. /package/dist/{advertisers-LOIXTTGP.js.map → advertisers-EOLL3VFQ.js.map} +0 -0
  1170. /package/dist/{advertisers-7NAPI5ZU.js.map → advertisers-FNKY2PP4.js.map} +0 -0
  1171. /package/dist/{analytics-NL2KGDLK.js.map → analytics-DOAUCF2Y.js.map} +0 -0
  1172. /package/dist/{analytics-6AHC3J4L.js.map → analytics-MR3T34KN.js.map} +0 -0
  1173. /package/dist/{animate-VX7E7KJE.js.map → animate-EKGVDSWM.js.map} +0 -0
  1174. /package/dist/{approved-E4EZA5RT.js.map → approved-WQL4Z4EB.js.map} +0 -0
  1175. /package/dist/{asset-writes-NDSHY5OT.js.map → asset-writes-A5X2T6LQ.js.map} +0 -0
  1176. /package/dist/{assign-NKHIHVGI.js.map → assign-UMNHINRA.js.map} +0 -0
  1177. /package/dist/{audience-size-WEOM6XIL.js.map → audience-size-Q7DZ6TGM.js.map} +0 -0
  1178. /package/dist/{audiences-UHLVATR6.js.map → audiences-HBJGEGKL.js.map} +0 -0
  1179. /package/dist/{audiences-P3SPTAJT.js.map → audiences-RDQZNGPI.js.map} +0 -0
  1180. /package/dist/{audiences-T5LMTT3B.js.map → audiences-TA636UBN.js.map} +0 -0
  1181. /package/dist/{audit-4RIBJ7BR.js.map → audit-H3F6FZNE.js.map} +0 -0
  1182. /package/dist/{audit-46DO2HV3.js.map → audit-QMCK76AT.js.map} +0 -0
  1183. /package/dist/{autocomplete-FMTJDXTL.js.map → autocomplete-DIBJ57VC.js.map} +0 -0
  1184. /package/dist/{avatars-LY5SFMWO.js.map → avatars-UIXRGLPA.js.map} +0 -0
  1185. /package/dist/{bid-pricing-MQ7WLV5U.js.map → bid-pricing-OMY2F2SB.js.map} +0 -0
  1186. /package/dist/{brand-LR5IXW3W.js.map → brand-WV6CAU3M.js.map} +0 -0
  1187. /package/dist/{businesses-TRFYMZ4I.js.map → businesses-56IUB5X4.js.map} +0 -0
  1188. /package/dist/{campaign-groups-EZYLKMO2.js.map → campaign-groups-PGJIQV4S.js.map} +0 -0
  1189. /package/dist/{campaign-writes-P5XPFTRK.js.map → campaign-writes-MAJ5FGXG.js.map} +0 -0
  1190. /package/dist/{campaign-writes-UMENYMKO.js.map → campaign-writes-WL3YAEGJ.js.map} +0 -0
  1191. /package/dist/{campaigns-2MTON2IE.js.map → campaigns-5L4ZTGF7.js.map} +0 -0
  1192. /package/dist/{campaigns-PP2DQMJE.js.map → campaigns-EK7EUKZD.js.map} +0 -0
  1193. /package/dist/{campaigns-SWZJVE2T.js.map → campaigns-HCJ3AIDK.js.map} +0 -0
  1194. /package/dist/{campaigns-TAFDM242.js.map → campaigns-NHACWGWS.js.map} +0 -0
  1195. /package/dist/{canvas-RKR3ZB4E.js.map → canvas-INL3J7HO.js.map} +0 -0
  1196. /package/dist/{capabilities-45RZ6E6W.js.map → capabilities-Y33EWDMJ.js.map} +0 -0
  1197. /package/dist/{cards-CXKIVM4D.js.map → cards-IWWKA5WH.js.map} +0 -0
  1198. /package/dist/{catalog-TOHUVBEU.js.map → catalog-NSA2FUI2.js.map} +0 -0
  1199. /package/dist/{catalogs-V7PTEJBO.js.map → catalogs-SJMYID7N.js.map} +0 -0
  1200. /package/dist/{changes-5OW3UYMF.js.map → changes-2HOF2HSV.js.map} +0 -0
  1201. /package/dist/{chatgpt-JBMYNVJB.js.map → chatgpt-J6MNVQVT.js.map} +0 -0
  1202. /package/dist/{chats-VOLBYA3R.js.map → chats-4HK6UYD2.js.map} +0 -0
  1203. /package/dist/{chunk-UK4XSLV2.js.map → chunk-2B2JFTWI.js.map} +0 -0
  1204. /package/dist/{chunk-B4BITHOD.js.map → chunk-2HWX6AWY.js.map} +0 -0
  1205. /package/dist/{chunk-G4FU6VC5.js.map → chunk-2O5CCKV7.js.map} +0 -0
  1206. /package/dist/{chunk-ELC42LJJ.js.map → chunk-2W6DMVGH.js.map} +0 -0
  1207. /package/dist/{chunk-BXTIG5JL.js.map → chunk-3BKESS5W.js.map} +0 -0
  1208. /package/dist/{chunk-FLTAPEVY.js.map → chunk-3VBPJQ7L.js.map} +0 -0
  1209. /package/dist/{chunk-Z5JWFNG4.js.map → chunk-3X262BEG.js.map} +0 -0
  1210. /package/dist/{chunk-DGHSXHZR.js.map → chunk-4CYB33V3.js.map} +0 -0
  1211. /package/dist/{chunk-JT3UUBID.js.map → chunk-4JB556VC.js.map} +0 -0
  1212. /package/dist/{chunk-CDPX6WAL.js.map → chunk-4QYZJPSM.js.map} +0 -0
  1213. /package/dist/{chunk-H6ASYVQX.js.map → chunk-4WLJYLRL.js.map} +0 -0
  1214. /package/dist/{chunk-TEQEZAJI.js.map → chunk-56ZJO7TM.js.map} +0 -0
  1215. /package/dist/{chunk-AQRBEPZL.js.map → chunk-5LQGW5UF.js.map} +0 -0
  1216. /package/dist/{chunk-TEJOILEY.js.map → chunk-6IL7JFX5.js.map} +0 -0
  1217. /package/dist/{chunk-Q5XUFN2W.js.map → chunk-6LNCKT6S.js.map} +0 -0
  1218. /package/dist/{chunk-B64KJW5C.js.map → chunk-6LUDG5AB.js.map} +0 -0
  1219. /package/dist/{chunk-JAC6JVCI.js.map → chunk-6OIKNJ7G.js.map} +0 -0
  1220. /package/dist/{chunk-ZCGM7ZWM.js.map → chunk-6UQV5DOD.js.map} +0 -0
  1221. /package/dist/{chunk-L7I47VGM.js.map → chunk-6WA7QSCN.js.map} +0 -0
  1222. /package/dist/{chunk-4QFMRL6O.js.map → chunk-7CHPHER2.js.map} +0 -0
  1223. /package/dist/{chunk-U6AWJIFP.js.map → chunk-7J7ASYIM.js.map} +0 -0
  1224. /package/dist/{chunk-TPJ34LXX.js.map → chunk-7MMTIJO3.js.map} +0 -0
  1225. /package/dist/{chunk-2N7TB346.js.map → chunk-7Y3LKR4P.js.map} +0 -0
  1226. /package/dist/{chunk-3QPG2D27.js.map → chunk-AA3D7GZF.js.map} +0 -0
  1227. /package/dist/{chunk-Q736UFSD.js.map → chunk-AGL7EWP2.js.map} +0 -0
  1228. /package/dist/{chunk-KGJ6EIX3.js.map → chunk-AHVD6IEI.js.map} +0 -0
  1229. /package/dist/{chunk-3GXHML4V.js.map → chunk-ASJMLTMX.js.map} +0 -0
  1230. /package/dist/{chunk-WZATC4O5.js.map → chunk-AWENMEFC.js.map} +0 -0
  1231. /package/dist/{chunk-EGICPBDY.js.map → chunk-AYX7PB2L.js.map} +0 -0
  1232. /package/dist/{chunk-EJ6EED6I.js.map → chunk-BHZLKLK7.js.map} +0 -0
  1233. /package/dist/{chunk-DHF4FXWS.js.map → chunk-BVER7I36.js.map} +0 -0
  1234. /package/dist/{chunk-MTW2NDDD.js.map → chunk-C3RZNVLM.js.map} +0 -0
  1235. /package/dist/{chunk-6AMN346B.js.map → chunk-CA5QBLIZ.js.map} +0 -0
  1236. /package/dist/{chunk-QLO4RNHU.js.map → chunk-CONTVNSN.js.map} +0 -0
  1237. /package/dist/{chunk-MKG57P2E.js.map → chunk-CUTTTFAU.js.map} +0 -0
  1238. /package/dist/{chunk-IGCS3X4F.js.map → chunk-D32EWSMB.js.map} +0 -0
  1239. /package/dist/{chunk-2CC4CPDT.js.map → chunk-EE6NZ6NG.js.map} +0 -0
  1240. /package/dist/{chunk-M4KFO256.js.map → chunk-EG6HMBCF.js.map} +0 -0
  1241. /package/dist/{chunk-J4BJLHLQ.js.map → chunk-EGZM35HT.js.map} +0 -0
  1242. /package/dist/{chunk-MKOI6QYM.js.map → chunk-FHLAJYZE.js.map} +0 -0
  1243. /package/dist/{chunk-XA76OGSL.js.map → chunk-FSNQFZ2Z.js.map} +0 -0
  1244. /package/dist/{chunk-XGG72YRO.js.map → chunk-G67OBCXI.js.map} +0 -0
  1245. /package/dist/{chunk-2TS2ITSG.js.map → chunk-GFYGVIT3.js.map} +0 -0
  1246. /package/dist/{chunk-CTJWMZPL.js.map → chunk-GRNHQWSV.js.map} +0 -0
  1247. /package/dist/{chunk-JAME5NBT.js.map → chunk-GWQSZWHT.js.map} +0 -0
  1248. /package/dist/{chunk-BFAPSFS7.js.map → chunk-HBXR26LB.js.map} +0 -0
  1249. /package/dist/{chunk-MC5F2L64.js.map → chunk-HUO5MZ7S.js.map} +0 -0
  1250. /package/dist/{chunk-5OC6VUDZ.js.map → chunk-HVL22WUU.js.map} +0 -0
  1251. /package/dist/{chunk-AZIXX73C.js.map → chunk-IA5GLVRV.js.map} +0 -0
  1252. /package/dist/{chunk-JCDCIQMA.js.map → chunk-IEPCI2EB.js.map} +0 -0
  1253. /package/dist/{chunk-HM4NWA72.js.map → chunk-IKSBLQTL.js.map} +0 -0
  1254. /package/dist/{chunk-QSS34JWZ.js.map → chunk-IRLMIKI7.js.map} +0 -0
  1255. /package/dist/{chunk-V5ODOBBI.js.map → chunk-IW4MX7OX.js.map} +0 -0
  1256. /package/dist/{chunk-7NBQQOCU.js.map → chunk-J4WOF6WK.js.map} +0 -0
  1257. /package/dist/{chunk-VAURJ4QJ.js.map → chunk-J63TN3GR.js.map} +0 -0
  1258. /package/dist/{chunk-JSOOLOHP.js.map → chunk-JESSFI7R.js.map} +0 -0
  1259. /package/dist/{chunk-H3RCEM6L.js.map → chunk-K4QPBXV7.js.map} +0 -0
  1260. /package/dist/{chunk-YAMKCMAS.js.map → chunk-K5VDDKKF.js.map} +0 -0
  1261. /package/dist/{chunk-WTPID22G.js.map → chunk-KM5K47TW.js.map} +0 -0
  1262. /package/dist/{chunk-ITIUWJGQ.js.map → chunk-LGJIJVVH.js.map} +0 -0
  1263. /package/dist/{chunk-IAE24RKD.js.map → chunk-LHSSIUU4.js.map} +0 -0
  1264. /package/dist/{chunk-EKOMZH2S.js.map → chunk-LQMPA4DY.js.map} +0 -0
  1265. /package/dist/{chunk-RVIBHENP.js.map → chunk-M3IXPK6U.js.map} +0 -0
  1266. /package/dist/{chunk-2Z6PFHD2.js.map → chunk-MJU5VKX2.js.map} +0 -0
  1267. /package/dist/{chunk-D5HD46VV.js.map → chunk-MRGU3NPN.js.map} +0 -0
  1268. /package/dist/{chunk-2YXTXSYG.js.map → chunk-MSLFPL77.js.map} +0 -0
  1269. /package/dist/{chunk-L4QEMWNJ.js.map → chunk-NKCWJPMN.js.map} +0 -0
  1270. /package/dist/{chunk-LQACNCAV.js.map → chunk-OADMSHME.js.map} +0 -0
  1271. /package/dist/{chunk-X25XRSDP.js.map → chunk-ONGZKI5J.js.map} +0 -0
  1272. /package/dist/{chunk-RRKUXGAU.js.map → chunk-OOZNTJP6.js.map} +0 -0
  1273. /package/dist/{chunk-MIHY534L.js.map → chunk-OP3NHIFH.js.map} +0 -0
  1274. /package/dist/{chunk-5QNW5PCM.js.map → chunk-OU4KWL6B.js.map} +0 -0
  1275. /package/dist/{chunk-COOJKEJE.js.map → chunk-PLIGHRIQ.js.map} +0 -0
  1276. /package/dist/{chunk-4AO3LSYM.js.map → chunk-PLROJ3SX.js.map} +0 -0
  1277. /package/dist/{chunk-VAV5CCDD.js.map → chunk-PSM3RI4B.js.map} +0 -0
  1278. /package/dist/{chunk-Q3G4ZI2U.js.map → chunk-Q4O7ICAK.js.map} +0 -0
  1279. /package/dist/{chunk-TNI7CN4L.js.map → chunk-Q6XM6ZDB.js.map} +0 -0
  1280. /package/dist/{chunk-O2ECZKXP.js.map → chunk-QHRUCSRI.js.map} +0 -0
  1281. /package/dist/{chunk-IYDESWW4.js.map → chunk-QUDPMIW7.js.map} +0 -0
  1282. /package/dist/{chunk-22RM3UOO.js.map → chunk-QZ4YHQLW.js.map} +0 -0
  1283. /package/dist/{chunk-Z3RGBLVJ.js.map → chunk-R2JGUOT6.js.map} +0 -0
  1284. /package/dist/{chunk-YDALLZNS.js.map → chunk-R5I4IHJ5.js.map} +0 -0
  1285. /package/dist/{chunk-MSIOGH67.js.map → chunk-RJXO66C4.js.map} +0 -0
  1286. /package/dist/{chunk-CF5I4Q5M.js.map → chunk-RYNN6UUF.js.map} +0 -0
  1287. /package/dist/{chunk-SIRRBWQ2.js.map → chunk-S4V2GOKV.js.map} +0 -0
  1288. /package/dist/{chunk-6EOWBGGW.js.map → chunk-S7D4GTYY.js.map} +0 -0
  1289. /package/dist/{chunk-MZPS46OR.js.map → chunk-SIKCVWM3.js.map} +0 -0
  1290. /package/dist/{chunk-4HFM5RCP.js.map → chunk-T4RV7XOC.js.map} +0 -0
  1291. /package/dist/{chunk-HPF3USL2.js.map → chunk-TDUAGNSQ.js.map} +0 -0
  1292. /package/dist/{chunk-W3TZPHZO.js.map → chunk-TZRWET3S.js.map} +0 -0
  1293. /package/dist/{chunk-C7KV5O5J.js.map → chunk-U5V4CIIG.js.map} +0 -0
  1294. /package/dist/{chunk-DPOUS5DN.js.map → chunk-U625CQ3Y.js.map} +0 -0
  1295. /package/dist/{chunk-QVHZTCB5.js.map → chunk-UDEVIXKX.js.map} +0 -0
  1296. /package/dist/{chunk-LJEJCIHR.js.map → chunk-UUDWZIDC.js.map} +0 -0
  1297. /package/dist/{chunk-LAOCXV6Z.js.map → chunk-VAQBBNLD.js.map} +0 -0
  1298. /package/dist/{chunk-BIBXZJZI.js.map → chunk-VCDFBFPT.js.map} +0 -0
  1299. /package/dist/{chunk-MPTNN35I.js.map → chunk-VF3W7CI7.js.map} +0 -0
  1300. /package/dist/{chunk-KUI74TNG.js.map → chunk-VHOOAQY4.js.map} +0 -0
  1301. /package/dist/{chunk-6MJKVNLL.js.map → chunk-VK2VC6A2.js.map} +0 -0
  1302. /package/dist/{chunk-3WN5GWX4.js.map → chunk-WWPRSJOS.js.map} +0 -0
  1303. /package/dist/{chunk-BMMXYR7A.js.map → chunk-WZXMZFVB.js.map} +0 -0
  1304. /package/dist/{chunk-O5VSYBUA.js.map → chunk-XKYFNMTB.js.map} +0 -0
  1305. /package/dist/{chunk-I33FO2ON.js.map → chunk-XL42ZEVH.js.map} +0 -0
  1306. /package/dist/{chunk-XWAOECD2.js.map → chunk-XPUQFPIU.js.map} +0 -0
  1307. /package/dist/{chunk-CBVUO7SK.js.map → chunk-XQEHLDGP.js.map} +0 -0
  1308. /package/dist/{chunk-S5S54J2K.js.map → chunk-XQWC223L.js.map} +0 -0
  1309. /package/dist/{chunk-VWHUO3AP.js.map → chunk-XYDHBLZ2.js.map} +0 -0
  1310. /package/dist/{chunk-V7EN5LFS.js.map → chunk-XZO6ONVI.js.map} +0 -0
  1311. /package/dist/{chunk-H25GY4U4.js.map → chunk-YFFQ3HY4.js.map} +0 -0
  1312. /package/dist/{chunk-URGXEDFV.js.map → chunk-YGUGL4ZL.js.map} +0 -0
  1313. /package/dist/{chunk-2Q7K4F4H.js.map → chunk-YOHGEF2N.js.map} +0 -0
  1314. /package/dist/{chunk-TLQY4QBW.js.map → chunk-YT3S2XFG.js.map} +0 -0
  1315. /package/dist/{chunk-IJ6WA2JW.js.map → chunk-ZPCZ4XDB.js.map} +0 -0
  1316. /package/dist/{cite-WCAOCOO5.js.map → cite-2ZJG3FBV.js.map} +0 -0
  1317. /package/dist/{claim-3UMAFZEM.js.map → claim-IGU5W4CT.js.map} +0 -0
  1318. /package/dist/{client-VCKP6WBR.js.map → client-MSRCSDB7.js.map} +0 -0
  1319. /package/dist/{code-VXOTFGD2.js.map → code-T7Z5JDQ2.js.map} +0 -0
  1320. /package/dist/{companies-RL5A26AT.js.map → companies-HCSBVXCE.js.map} +0 -0
  1321. /package/dist/{company-DJ44F5C6.js.map → company-SSMY4G2T.js.map} +0 -0
  1322. /package/dist/{complete-PGNIP3LN.js.map → complete-FQNRXUI5.js.map} +0 -0
  1323. /package/dist/{config-UR45YCIN.js.map → config-XRPKA5QR.js.map} +0 -0
  1324. /package/dist/{connect-ROARWN63.js.map → connect-VXEE3QBU.js.map} +0 -0
  1325. /package/dist/{content-EQQIKG5H.js.map → content-2JFP747N.js.map} +0 -0
  1326. /package/dist/{conversation-GDFMJL7X.js.map → conversation-KKJKZIX5.js.map} +0 -0
  1327. /package/dist/{conversion-report-2FREFML5.js.map → conversion-report-G65UHQRO.js.map} +0 -0
  1328. /package/dist/{conversion-writes-JZIJSQ7T.js.map → conversion-writes-333V4OVR.js.map} +0 -0
  1329. /package/dist/{conversions-2IFWDQKK.js.map → conversions-7UHCNIAO.js.map} +0 -0
  1330. /package/dist/{conversions-Q5EBTEXA.js.map → conversions-L6775Q22.js.map} +0 -0
  1331. /package/dist/{countries-GRCU4IGM.js.map → countries-XJVDM635.js.map} +0 -0
  1332. /package/dist/{create-BRCSXXFO.js.map → create-AXWJECPP.js.map} +0 -0
  1333. /package/dist/{create-PXAUL6FF.js.map → create-B24XHUGZ.js.map} +0 -0
  1334. /package/dist/{create-B5DIYK5D.js.map → create-HJKTD5FN.js.map} +0 -0
  1335. /package/dist/{create-R6CMATVY.js.map → create-V4NGP5KB.js.map} +0 -0
  1336. /package/dist/{creatives-4EPM3RHG.js.map → creatives-OKFLX67Y.js.map} +0 -0
  1337. /package/dist/{creatives-D6O6Z46U.js.map → creatives-WX6GQ37F.js.map} +0 -0
  1338. /package/dist/{credentials-CLJO7WWY.js.map → credentials-4JFUH6FN.js.map} +0 -0
  1339. /package/dist/{crm-JJHYRABB.js.map → crm-6MLYUEK7.js.map} +0 -0
  1340. /package/dist/{crm-H5ITJ2RC.js.map → crm-PUQBWZKE.js.map} +0 -0
  1341. /package/dist/{crop-NE7YX4SS.js.map → crop-V5MSIY5F.js.map} +0 -0
  1342. /package/dist/{currency-EFDQYW5B.js.map → currency-SCSJ5FW2.js.map} +0 -0
  1343. /package/dist/{custom-conversions-GQTU5E6X.js.map → custom-conversions-GN4JDS5F.js.map} +0 -0
  1344. /package/dist/{customers-C5YXAVXI.js.map → customers-WXD2LTUC.js.map} +0 -0
  1345. /package/dist/{decide-6Q5X3V3F.js.map → decide-PW2NRMRK.js.map} +0 -0
  1346. /package/dist/{delete-WZ3KVVX5.js.map → delete-EAJN6ZHT.js.map} +0 -0
  1347. /package/dist/{delete-NBUDIGSD.js.map → delete-GDIFIYA2.js.map} +0 -0
  1348. /package/dist/{delete-3GYCQK6B.js.map → delete-JQG3ZWQX.js.map} +0 -0
  1349. /package/dist/{delete-SP66F7ZV.js.map → delete-L7CGJ23X.js.map} +0 -0
  1350. /package/dist/{delete-QHDDR66K.js.map → delete-OQREQEGN.js.map} +0 -0
  1351. /package/dist/{delete-EKKOEB3N.js.map → delete-ZR3DVLWU.js.map} +0 -0
  1352. /package/dist/{demographics-O7AJW7DO.js.map → demographics-LMRGNO7J.js.map} +0 -0
  1353. /package/dist/{describe-MAGTSOW4.js.map → describe-OHWLLBDE.js.map} +0 -0
  1354. /package/dist/{describe-DJPIUEFE.js.map → describe-YELOXWHY.js.map} +0 -0
  1355. /package/dist/{dimensions-IC2H7V3H.js.map → dimensions-CLLCVVRY.js.map} +0 -0
  1356. /package/dist/{discard-RMVZAX2J.js.map → discard-K2KIIFJQ.js.map} +0 -0
  1357. /package/dist/{discover-PSL2NBJL.js.map → discover-SQJLRS4G.js.map} +0 -0
  1358. /package/dist/{discover-BPUUWRBP.js.map → discover-UJMDGDQO.js.map} +0 -0
  1359. /package/dist/{domain-J3ZMBOHS.js.map → domain-CJX5JSLS.js.map} +0 -0
  1360. /package/dist/{download-ZVOGLTFB.js.map → download-HFDBP6BO.js.map} +0 -0
  1361. /package/dist/{download-EHDJXBAC.js.map → download-SZ5P3GLV.js.map} +0 -0
  1362. /package/dist/{draft-GCOCG4PO.js.map → draft-7QDE2Z3N.js.map} +0 -0
  1363. /package/dist/{draft-27NMTARB.js.map → draft-ILXHFWTT.js.map} +0 -0
  1364. /package/dist/{draft-6PJD3MCW.js.map → draft-NUFU5YME.js.map} +0 -0
  1365. /package/dist/{draft-TPR3DH5N.js.map → draft-QSTD3DH2.js.map} +0 -0
  1366. /package/dist/{draft-MWYKIZC4.js.map → draft-TV5IH5U4.js.map} +0 -0
  1367. /package/dist/{draft-JESKGZ6O.js.map → draft-WNMHUFAH.js.map} +0 -0
  1368. /package/dist/{env-NZXNMWSD.js.map → env-3256G2OE.js.map} +0 -0
  1369. /package/dist/{experiment-XAYSEYTU.js.map → experiment-5L5USMAL.js.map} +0 -0
  1370. /package/dist/{export-W54UZ62P.js.map → export-YSOM4E3B.js.map} +0 -0
  1371. /package/dist/{extract-JMY6YRPW.js.map → extract-7FYXXEQZ.js.map} +0 -0
  1372. /package/dist/{facets-B5AZAU2C.js.map → facets-2FRELYRC.js.map} +0 -0
  1373. /package/dist/{favorites-Y6CT6NSQ.js.map → favorites-LTG2F6W2.js.map} +0 -0
  1374. /package/dist/{feed-35BRQPTH.js.map → feed-RSBWEI75.js.map} +0 -0
  1375. /package/dist/{feedback-4MCMOMVN.js.map → feedback-PQUM7UBT.js.map} +0 -0
  1376. /package/dist/{fetch-I6P72CDL.js.map → fetch-3PWYTX4R.js.map} +0 -0
  1377. /package/dist/{fetch-JDNFK476.js.map → fetch-FLQYW27W.js.map} +0 -0
  1378. /package/dist/{find-SVGRA7IA.js.map → find-SHHDWCPM.js.map} +0 -0
  1379. /package/dist/{fit-DKVH5BDW.js.map → fit-4XCDLF7C.js.map} +0 -0
  1380. /package/dist/{flows-LURTZICL.js.map → flows-4ALWJVNF.js.map} +0 -0
  1381. /package/dist/{follow-24QSDNAG.js.map → follow-N4TKU3UM.js.map} +0 -0
  1382. /package/dist/{follow-competitors-AG4E4XFA.js.map → follow-competitors-AHQ57BWS.js.map} +0 -0
  1383. /package/dist/{following-YGM6TBK3.js.map → following-CEYH33DW.js.map} +0 -0
  1384. /package/dist/{fonts-HUXFDDAE.js.map → fonts-CYJ5EFR4.js.map} +0 -0
  1385. /package/dist/{forecast-UHTW4Y7Q.js.map → forecast-SG2VUBZD.js.map} +0 -0
  1386. /package/dist/{funding-WZNGXRLJ.js.map → funding-X7M5WLDX.js.map} +0 -0
  1387. /package/dist/{funnel-QM7WFFMD.js.map → funnel-F7DS7PUN.js.map} +0 -0
  1388. /package/dist/{ga4-W3U5YTRT.js.map → ga4-QPBAKGSH.js.map} +0 -0
  1389. /package/dist/{generate-KAWRRYTT.js.map → generate-LVBI3VDD.js.map} +0 -0
  1390. /package/dist/{get-YWDZYEAC.js.map → get-DMV7KG2F.js.map} +0 -0
  1391. /package/dist/{get-GEUSRD5Y.js.map → get-EA7AX4NW.js.map} +0 -0
  1392. /package/dist/{get-TS2ZJDCQ.js.map → get-EOSJWMWT.js.map} +0 -0
  1393. /package/dist/{get-JIZPYK3Z.js.map → get-HVQHHDW6.js.map} +0 -0
  1394. /package/dist/{get-3MTAVNTP.js.map → get-KQLCVQCK.js.map} +0 -0
  1395. /package/dist/{get-FWPR2YPC.js.map → get-NAOMB6Q2.js.map} +0 -0
  1396. /package/dist/{get-5SPNAIUQ.js.map → get-XYJBQFIT.js.map} +0 -0
  1397. /package/dist/{get-237TYJZT.js.map → get-XZ7XPXZE.js.map} +0 -0
  1398. /package/dist/{gif-NP6EDGEE.js.map → gif-XJ26IWAP.js.map} +0 -0
  1399. /package/dist/{google-DTSLO3PT.js.map → google-QOKWSPOA.js.map} +0 -0
  1400. /package/dist/{google-ads-RZOQQDQN.js.map → google-ads-B4FBPQ7O.js.map} +0 -0
  1401. /package/dist/{group-3DT4UYSR.js.map → group-7EYM3PNJ.js.map} +0 -0
  1402. /package/dist/{group-OEKKCFXT.js.map → group-GDTEICRY.js.map} +0 -0
  1403. /package/dist/{gsc-4FEFPFPB.js.map → gsc-KVIAZMF4.js.map} +0 -0
  1404. /package/dist/{history-YQSYXBJH.js.map → history-22YGILIT.js.map} +0 -0
  1405. /package/dist/{history-XL52537O.js.map → history-E3JGYADF.js.map} +0 -0
  1406. /package/dist/{history-H7S7XRBX.js.map → history-HKCSYH5L.js.map} +0 -0
  1407. /package/dist/{hubspot-2DSISSUI.js.map → hubspot-LEW2RP5D.js.map} +0 -0
  1408. /package/dist/{icon-43UJTGGE.js.map → icon-JLVEYF34.js.map} +0 -0
  1409. /package/dist/{ideas-2XBFQJ56.js.map → ideas-JAIU4GC4.js.map} +0 -0
  1410. /package/dist/{images-VFRQ32G5.js.map → images-ZG6RRAEP.js.map} +0 -0
  1411. /package/dist/{improve-IMXQN6OD.js.map → improve-XSHWCMZS.js.map} +0 -0
  1412. /package/dist/{ingest-4RPLN54K.js.map → ingest-GTXBGUNQ.js.map} +0 -0
  1413. /package/dist/{ingest-TPVH44VI.js.map → ingest-SX7K6GNE.js.map} +0 -0
  1414. /package/dist/{insights-UVCFOB3N.js.map → insights-IVUUWSQL.js.map} +0 -0
  1415. /package/dist/{insights-BR3456EI.js.map → insights-PJPQB46E.js.map} +0 -0
  1416. /package/dist/{inspect-VD3GVXDU.js.map → inspect-55BXSPJG.js.map} +0 -0
  1417. /package/dist/{inspiration-XZI5KCQW.js.map → inspiration-NBOKHPZ5.js.map} +0 -0
  1418. /package/dist/{intent-F5NTOSQC.js.map → intent-KSVTHFFE.js.map} +0 -0
  1419. /package/dist/{job-GOX3KIKG.js.map → job-4VXDCYSG.js.map} +0 -0
  1420. /package/dist/{job-create-F2PQSN3C.js.map → job-create-NZEZDOZT.js.map} +0 -0
  1421. /package/dist/{job-status-3FMA5D7T.js.map → job-status-XI3ENS7D.js.map} +0 -0
  1422. /package/dist/{keep-23ZYMWPG.js.map → keep-UYNOC3JZ.js.map} +0 -0
  1423. /package/dist/{keyword-gap-EB5QATYN.js.map → keyword-gap-7UVDSID5.js.map} +0 -0
  1424. /package/dist/{keyword-metrics-PW2DDIJW.js.map → keyword-metrics-QFRXZRAQ.js.map} +0 -0
  1425. /package/dist/{keywords-for-site-JEPABY6E.js.map → keywords-for-site-Q4BCJ4PQ.js.map} +0 -0
  1426. /package/dist/{knowledge-7M7DSRF3.js.map → knowledge-LVE3J3AK.js.map} +0 -0
  1427. /package/dist/{landing-4N6YSB4L.js.map → landing-AJYM5GBY.js.map} +0 -0
  1428. /package/dist/{landings-VNQ4VA2U.js.map → landings-SIN3MTUZ.js.map} +0 -0
  1429. /package/dist/{languages-4S26FJDP.js.map → languages-AIASAINW.js.map} +0 -0
  1430. /package/dist/{languages-2X22HXM3.js.map → languages-RDR6EBNJ.js.map} +0 -0
  1431. /package/dist/{launches-L4EUROCJ.js.map → launches-4TVHXAZT.js.map} +0 -0
  1432. /package/dist/{layerize-6QHQMA7Q.js.map → layerize-OLVGZRND.js.map} +0 -0
  1433. /package/dist/{lead-routes-5TPFJEVH.js.map → lead-routes-ZOQDPCR3.js.map} +0 -0
  1434. /package/dist/{leads-R5OZJQHW.js.map → leads-YSDLFBHN.js.map} +0 -0
  1435. /package/dist/{learn-AQ2FRFB7.js.map → learn-FDQZNIP3.js.map} +0 -0
  1436. /package/dist/{library-MNJC24E4.js.map → library-7CLWRDM3.js.map} +0 -0
  1437. /package/dist/{lighthouse-DJMAXFTD.js.map → lighthouse-3ACQ3MVG.js.map} +0 -0
  1438. /package/dist/{line-item-writes-LGO7HIJJ.js.map → line-item-writes-JARN73DV.js.map} +0 -0
  1439. /package/dist/{line-items-AAZVKQ7E.js.map → line-items-B5GLDAJ2.js.map} +0 -0
  1440. /package/dist/{link-7IGHVARH.js.map → link-YAZF34BZ.js.map} +0 -0
  1441. /package/dist/{linkedin-person-D6U2ZAUW.js.map → linkedin-person-XDH7Q3PB.js.map} +0 -0
  1442. /package/dist/{list-537S75BZ.js.map → list-6NYRZXKQ.js.map} +0 -0
  1443. /package/dist/{list-WIXQXNKB.js.map → list-6WISGNQ2.js.map} +0 -0
  1444. /package/dist/{list-Q52FPW3H.js.map → list-6YBIWX44.js.map} +0 -0
  1445. /package/dist/{list-P44QRX2O.js.map → list-72JQGWNO.js.map} +0 -0
  1446. /package/dist/{list-UMJACDTQ.js.map → list-FX7OG3OJ.js.map} +0 -0
  1447. /package/dist/{list-2277GCPH.js.map → list-ITPBLMV3.js.map} +0 -0
  1448. /package/dist/{list-XK33NCSC.js.map → list-J43GOBOX.js.map} +0 -0
  1449. /package/dist/{list-V4PSDBLX.js.map → list-K4Z3BOWI.js.map} +0 -0
  1450. /package/dist/{list-VZKUHY4Y.js.map → list-ONSYTCX2.js.map} +0 -0
  1451. /package/dist/{locations-WXGOI3VV.js.map → locations-UNSREUBX.js.map} +0 -0
  1452. /package/dist/{locations-UWBQLHXW.js.map → locations-XAC3GME3.js.map} +0 -0
  1453. /package/dist/{log-6ZKMUTYS.js.map → log-PPNNFETI.js.map} +0 -0
  1454. /package/dist/{logo-4LSFZ3ZO.js.map → logo-UNVIMA4B.js.map} +0 -0
  1455. /package/dist/{lookup-WIM5WR25.js.map → lookup-L5QG3BWH.js.map} +0 -0
  1456. /package/dist/{map-ZL4MQVJZ.js.map → map-QILMIKS7.js.map} +0 -0
  1457. /package/dist/{mcp-GSRYLRD4.js.map → mcp-GOKFM4PF.js.map} +0 -0
  1458. /package/dist/{media-KKI3KWLR.js.map → media-BN6B75NF.js.map} +0 -0
  1459. /package/dist/{media-34I7UB7Z.js.map → media-YDDWV32Y.js.map} +0 -0
  1460. /package/dist/{media-sources-VSPVHLYN.js.map → media-sources-HABLVJE3.js.map} +0 -0
  1461. /package/dist/{members-L6SXP6GC.js.map → members-B4UI6ISY.js.map} +0 -0
  1462. /package/dist/{meme-6NFYFQ7T.js.map → meme-2MERLAVW.js.map} +0 -0
  1463. /package/dist/{meta-2UK7KIE4.js.map → meta-7FJQD44L.js.map} +0 -0
  1464. /package/dist/{metrics-4AFEEDVP.js.map → metrics-SBKBEZJR.js.map} +0 -0
  1465. /package/dist/{models-2ZEM64H5.js.map → models-ZBLBNNEH.js.map} +0 -0
  1466. /package/dist/{normalize-G75RDSE4.js.map → normalize-5WVEQJXD.js.map} +0 -0
  1467. /package/dist/{normalize-GK7DH7ZP.js.map → normalize-YPQBHWYS.js.map} +0 -0
  1468. /package/dist/{options-FDAAHG7C.js.map → options-BV3TVUCK.js.map} +0 -0
  1469. /package/dist/{organization-K2FTFAAO.js.map → organization-4OTGNRHP.js.map} +0 -0
  1470. /package/dist/{output-ELEO2Z6R.js.map → output-FX4KJAO5.js.map} +0 -0
  1471. /package/dist/{page-4X6IBUWG.js.map → page-5KWQ7PM3.js.map} +0 -0
  1472. /package/dist/{pages-7HW5YOZV.js.map → pages-HKTAGXH3.js.map} +0 -0
  1473. /package/dist/{performance-N3UROH7Z.js.map → performance-4MWQVTTA.js.map} +0 -0
  1474. /package/dist/{performance-RG2HR46T.js.map → performance-TKE7NQF6.js.map} +0 -0
  1475. /package/dist/{pinterest-KA6VFDM4.js.map → pinterest-UDX53CWY.js.map} +0 -0
  1476. /package/dist/{pixels-D5HF24FI.js.map → pixels-BSNCVT77.js.map} +0 -0
  1477. /package/dist/{pixels-HEI5WVAO.js.map → pixels-TR2PAYWV.js.map} +0 -0
  1478. /package/dist/{plan-XCA6R3HZ.js.map → plan-V57AATQ5.js.map} +0 -0
  1479. /package/dist/{posts-ALGM6ONV.js.map → posts-JHMXNHDV.js.map} +0 -0
  1480. /package/dist/{preview-55TRUF4Q.js.map → preview-VY7UH2SK.js.map} +0 -0
  1481. /package/dist/{preview-NVWIEUHF.js.map → preview-XUG4K4KV.js.map} +0 -0
  1482. /package/dist/{profile-NHUPUCBR.js.map → profile-PV3R3BEG.js.map} +0 -0
  1483. /package/dist/{promoted-tweet-writes-7QZRFDOM.js.map → promoted-tweet-writes-O3S5OKUZ.js.map} +0 -0
  1484. /package/dist/{promoted-tweets-V555Y7DN.js.map → promoted-tweets-4ZKSEC4I.js.map} +0 -0
  1485. /package/dist/{properties-2ZXA5BPJ.js.map → properties-U2XUD2M6.js.map} +0 -0
  1486. /package/dist/{publish-5KR6YLA6.js.map → publish-4RAYD7VI.js.map} +0 -0
  1487. /package/dist/{query-K7MYBRTS.js.map → query-4C6UQN42.js.map} +0 -0
  1488. /package/dist/{query-63CTX2PH.js.map → query-7FWE7GLV.js.map} +0 -0
  1489. /package/dist/{query-DMWY3TDD.js.map → query-7Y2Y6YFI.js.map} +0 -0
  1490. /package/dist/{questionnaire-WHE42RD4.js.map → questionnaire-3IPJXJT7.js.map} +0 -0
  1491. /package/dist/{read-NESEKULG.js.map → read-WEQLEI7R.js.map} +0 -0
  1492. /package/dist/{reddit-XPQ7YAJW.js.map → reddit-2FWCB7XY.js.map} +0 -0
  1493. /package/dist/{refresh-XFHEBSDU.js.map → refresh-SGDB4QOD.js.map} +0 -0
  1494. /package/dist/{refresh-ILDEPU5A.js.map → refresh-WZBVPKWE.js.map} +0 -0
  1495. /package/dist/{release-3ECEF26P.js.map → release-YL3ZII3Z.js.map} +0 -0
  1496. /package/dist/{relevant-pages-XYQKVX3U.js.map → relevant-pages-PF3LLUED.js.map} +0 -0
  1497. /package/dist/{remove-NHE4UT7G.js.map → remove-52MSQXSW.js.map} +0 -0
  1498. /package/dist/{remove-OCTUC3RB.js.map → remove-EIV7LJUA.js.map} +0 -0
  1499. /package/dist/{reopen-JRI3TYD4.js.map → reopen-CW27MUJH.js.map} +0 -0
  1500. /package/dist/{research-ODPU62BA.js.map → research-234BOCKM.js.map} +0 -0
  1501. /package/dist/{research-TG5CBTYP.js.map → research-RABLL4HR.js.map} +0 -0
  1502. /package/dist/{reset-J2NLNITD.js.map → reset-5KJDDVJL.js.map} +0 -0
  1503. /package/dist/{reset-SRU7YJUR.js.map → reset-REUL47CB.js.map} +0 -0
  1504. /package/dist/{resolve-KHMMUGB2.js.map → resolve-WRDEHLYL.js.map} +0 -0
  1505. /package/dist/{retry-WP7LWKZF.js.map → retry-2A5HV4SN.js.map} +0 -0
  1506. /package/dist/{retry-VLH4AO7F.js.map → retry-FNT2XVH3.js.map} +0 -0
  1507. /package/dist/{retry-failed-R5HPQ3KQ.js.map → retry-failed-ND7UXYTJ.js.map} +0 -0
  1508. /package/dist/{rules-FYVD2QBB.js.map → rules-2CUG2YG7.js.map} +0 -0
  1509. /package/dist/{run-YA6IWQAJ.js.map → run-RKLNKV2U.js.map} +0 -0
  1510. /package/dist/{run-AQTACLY6.js.map → run-YKGN3GQR.js.map} +0 -0
  1511. /package/dist/{schedule-D7EDEM45.js.map → schedule-774JCRVM.js.map} +0 -0
  1512. /package/dist/{schedule-EH2MOC5C.js.map → schedule-PKKSZ5RX.js.map} +0 -0
  1513. /package/dist/{scheduled-agents-DTAEP25E.js.map → scheduled-agents-ZI3EWKAT.js.map} +0 -0
  1514. /package/dist/{schema-7B4MVVAS.js.map → schema-BXNL4LKR.js.map} +0 -0
  1515. /package/dist/{schema-Z43AJOJ4.js.map → schema-GFMVUZL2.js.map} +0 -0
  1516. /package/dist/{scrape-VL2RWSTW.js.map → scrape-KKLE4WAU.js.map} +0 -0
  1517. /package/dist/{screenshot-Y6EEXS3Q.js.map → screenshot-K6XOER6Z.js.map} +0 -0
  1518. /package/dist/{search-TXBYKNQC.js.map → search-43ULIJL3.js.map} +0 -0
  1519. /package/dist/{search-CXC7N5XJ.js.map → search-AXUNJUWY.js.map} +0 -0
  1520. /package/dist/{search-XHSTUBDY.js.map → search-DLLJEYMB.js.map} +0 -0
  1521. /package/dist/{search-L3GTZYRW.js.map → search-LWWTXBB2.js.map} +0 -0
  1522. /package/dist/{search-JEXYEAPQ.js.map → search-VU6GI3U3.js.map} +0 -0
  1523. /package/dist/{search-ZZWIJRXJ.js.map → search-XO365KES.js.map} +0 -0
  1524. /package/dist/{search-copy-FIPG7OCC.js.map → search-copy-BHNLLCUV.js.map} +0 -0
  1525. /package/dist/{seeds-ADJKURNG.js.map → seeds-6ROVZBFB.js.map} +0 -0
  1526. /package/dist/{sends-RS4LWRAC.js.map → sends-P6OPCYH5.js.map} +0 -0
  1527. /package/dist/{sequences-2RPKDKGQ.js.map → sequences-DP4BHM3E.js.map} +0 -0
  1528. /package/dist/{setup-links-OE6PC2YQ.js.map → setup-links-T5TJZA3E.js.map} +0 -0
  1529. /package/dist/{shared-4GGUIOF2.js.map → shared-24IPELBM.js.map} +0 -0
  1530. /package/dist/{shopify-CCPLZI2H.js.map → shopify-OQEKI7HC.js.map} +0 -0
  1531. /package/dist/{site-FW5BBLYG.js.map → site-QRLBZPEV.js.map} +0 -0
  1532. /package/dist/{sitemaps-Z6IELTQV.js.map → sitemaps-SWADO4SI.js.map} +0 -0
  1533. /package/dist/{sites-KLAKI2EY.js.map → sites-H3FYJQFO.js.map} +0 -0
  1534. /package/dist/{skills-OJP36EVR.js.map → skills-OYO6Y3DQ.js.map} +0 -0
  1535. /package/dist/{sources-X77TGJ52.js.map → sources-U2WRH6D7.js.map} +0 -0
  1536. /package/dist/{sources-WPHMWBEK.js.map → sources-Y2BKZVXA.js.map} +0 -0
  1537. /package/dist/{stats-MIMFX4R7.js.map → stats-TTJHXR3E.js.map} +0 -0
  1538. /package/dist/{status-FLETGJ2A.js.map → status-4BSXND3I.js.map} +0 -0
  1539. /package/dist/{sticker-IREEEN7I.js.map → sticker-CRIAIO75.js.map} +0 -0
  1540. /package/dist/{stock-5AOSQH52.js.map → stock-TOFKLWSR.js.map} +0 -0
  1541. /package/dist/{studies-YGYAH3JI.js.map → studies-VFNWS6ND.js.map} +0 -0
  1542. /package/dist/{studio-4EV5S7PR.js.map → studio-WD364TWB.js.map} +0 -0
  1543. /package/dist/{suggest-5RTISDLI.js.map → suggest-GX4IROQN.js.map} +0 -0
  1544. /package/dist/{sync-OHIXI4I6.js.map → sync-BU7HU3FS.js.map} +0 -0
  1545. /package/dist/{sync-363VKXU3.js.map → sync-GQL5JX4U.js.map} +0 -0
  1546. /package/dist/{sync-VCAFAYW4.js.map → sync-VNBBOVBU.js.map} +0 -0
  1547. /package/dist/{sync-definition-ZDE5L644.js.map → sync-definition-EOARPSBS.js.map} +0 -0
  1548. /package/dist/{tag-DSCUKNC3.js.map → tag-SQ5ROLTP.js.map} +0 -0
  1549. /package/dist/{tag-manager-IINALUEJ.js.map → tag-manager-7S7PVYIJ.js.map} +0 -0
  1550. /package/dist/{tags-YHAC3NVY.js.map → tags-2226Q3VK.js.map} +0 -0
  1551. /package/dist/{tags-VOKUNEIW.js.map → tags-7QIBFIBX.js.map} +0 -0
  1552. /package/dist/{tags-Y6MNMIEA.js.map → tags-BNWKAV3H.js.map} +0 -0
  1553. /package/dist/{tags-6MN3AWKN.js.map → tags-HG5EBHSO.js.map} +0 -0
  1554. /package/dist/{tags-ZCQMJ5YH.js.map → tags-WTN4EBT5.js.map} +0 -0
  1555. /package/dist/{targeting-constants-54S3FXIF.js.map → targeting-constants-6KZXMRNI.js.map} +0 -0
  1556. /package/dist/{targeting-criteria-ECQFHQF3.js.map → targeting-criteria-QSCRW75G.js.map} +0 -0
  1557. /package/dist/{targets-U2JHTB5U.js.map → targets-3KT3DO6O.js.map} +0 -0
  1558. /package/dist/{terms-OFHNLW6U.js.map → terms-IRLEAMIY.js.map} +0 -0
  1559. /package/dist/{testimonials-IDVLMXDT.js.map → testimonials-35FTFNQ5.js.map} +0 -0
  1560. /package/dist/{top-companies-CBI4O3ZB.js.map → top-companies-JAWMSK2Q.js.map} +0 -0
  1561. /package/dist/{transcript-IIRFTFRW.js.map → transcript-OIYU7F4E.js.map} +0 -0
  1562. /package/dist/{triggers-Q3KRAMA3.js.map → triggers-7QRQFTVM.js.map} +0 -0
  1563. /package/dist/{tweets-TRTXC6O4.js.map → tweets-7XVF7PJO.js.map} +0 -0
  1564. /package/dist/{unfollow-DATOGPLZ.js.map → unfollow-ZCP6D2SC.js.map} +0 -0
  1565. /package/dist/{unlink-7RVQXKAR.js.map → unlink-PYCYTYVN.js.map} +0 -0
  1566. /package/dist/{unstage-3LPHNZKR.js.map → unstage-2OUF6ELM.js.map} +0 -0
  1567. /package/dist/{unstage-LLQCMZ5H.js.map → unstage-YADONHH6.js.map} +0 -0
  1568. /package/dist/{update-SD5YQIJC.js.map → update-DEBDSBDI.js.map} +0 -0
  1569. /package/dist/{update-AL3LBHGK.js.map → update-IDUSNDOI.js.map} +0 -0
  1570. /package/dist/{update-YBTFH5MN.js.map → update-NG3HUYZZ.js.map} +0 -0
  1571. /package/dist/{update-AWR7EHGA.js.map → update-P5IT7AIN.js.map} +0 -0
  1572. /package/dist/{update-LNSSLZXG.js.map → update-U6NU7OXI.js.map} +0 -0
  1573. /package/dist/{upload-45GCGMA5.js.map → upload-4F2JICEH.js.map} +0 -0
  1574. /package/dist/{upload-7PPMVWVA.js.map → upload-SS64KHDS.js.map} +0 -0
  1575. /package/dist/{upscale-WVJZG76V.js.map → upscale-JNNXDN6X.js.map} +0 -0
  1576. /package/dist/{url-options-AHJPR5VY.js.map → url-options-EDPKAPPP.js.map} +0 -0
  1577. /package/dist/{url-params-U6ZM4LL2.js.map → url-params-4G26OEOO.js.map} +0 -0
  1578. /package/dist/{use-6FADOAFZ.js.map → use-TKFP6WVP.js.map} +0 -0
  1579. /package/dist/{variant-RNM36P4J.js.map → variant-3VTKOQUR.js.map} +0 -0
  1580. /package/dist/{videos-GHFCOTT7.js.map → videos-EDTBHLOZ.js.map} +0 -0
  1581. /package/dist/{videos-NW2UP342.js.map → videos-JRNJH66J.js.map} +0 -0
  1582. /package/dist/{view-YR6MDLWL.js.map → view-6HX3FYMS.js.map} +0 -0
  1583. /package/dist/{viewer-check-IDXFRRCO.js.map → viewer-check-OBBBAYV5.js.map} +0 -0
  1584. /package/dist/{web-VMPKMBKA.js.map → web-GPUEUIDT.js.map} +0 -0
  1585. /package/dist/{winners-4T5RFQXU.js.map → winners-MEC77MZ4.js.map} +0 -0
  1586. /package/dist/{winning-ads-7UJXCWFH.js.map → winning-ads-2DECFON4.js.map} +0 -0
  1587. /package/dist/{write-commands-UO3OQIHH.js.map → write-commands-D5M5A4YI.js.map} +0 -0
  1588. /package/dist/{write-commands-6D55SB56.js.map → write-commands-LQVERLAQ.js.map} +0 -0
  1589. /package/dist/{x-UGTUOCVR.js.map → x-4TM5RET4.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/engine/creative-rules/select.ts","../src/engine/nodes/local/lib/render-review.ts","../src/engine/nodes/local/lib/rules-findings.ts"],"sourcesContent":["/**\n * Which rules hold for one ad, and how a model is told them. Pure.\n *\n * A rule holds when it is active, its scope takes this ad, and the ad does not waive it (a person's\n * explicit ask beats a rule, visibly: `waive` in the ad's prompt.json). The strongest and newest\n * come first and the list stops at about 3k tokens, so a long list never drowns a prompt.\n */\nimport { createHash } from \"node:crypto\";\nimport { AD_PLACEMENTS } from \"@baker/canvas-contract\";\nimport type { CreativeRule } from \"./schema.ts\";\n\n/** The ad a rule is selected for: its kind, the product it sells, where it runs (`platforms`, else the one `platform`). */\nexport type RuleTarget = {\n kind?: \"static\" | \"video\";\n product?: string;\n platform?: string;\n platforms?: readonly string[];\n};\n\n/** A platform's family, as a rule's scope may name it: a placement is its platform, Google's campaign types `google`. */\nfunction platformFamily(name: string): string {\n const platform = AD_PLACEMENTS.find((p) => p.id === name)?.platform ?? name;\n return platform.startsWith(\"google_\") ? \"google\" : platform;\n}\n\n/** Whether a rule scoped to `scoped` holds for an ad running on any of `runs`: by name, or by family. */\nfunction runsOn(scoped: readonly string[], runs: readonly string[]): boolean {\n return runs.some((run) => scoped.some((name) => name === run || platformFamily(name) === platformFamily(run)));\n}\n\n/** About 3k tokens of rules. */\nconst RULES_CHARS = 12_000;\nconst STRENGTH_ORDER = { never: 0, must: 1, prefer: 2 } as const;\n\n/** Whether a rule's scope takes this ad; a part the ad does not say is never a reason to drop one. */\nfunction holdsFor(rule: CreativeRule, target: RuleTarget): boolean {\n if (rule.for === \"landings\") return false;\n const { kinds, products, platforms } = rule.scope;\n if (kinds?.length && target.kind && !kinds.includes(target.kind)) return false;\n if (products?.length && target.product && !products.includes(target.product)) return false;\n const runs = target.platforms?.length ? target.platforms : target.platform ? [target.platform] : [];\n if (platforms?.length && runs.length > 0 && !runsOn(platforms, runs)) return false;\n return true;\n}\n\n/** Never before must before prefer; a taught rule before the brand's, the newest first. */\nfunction byStrength(a: CreativeRule, b: CreativeRule): number {\n return (\n STRENGTH_ORDER[a.strength] - STRENGTH_ORDER[b.strength] ||\n Number(a.origin === \"declared\") - Number(b.origin === \"declared\") ||\n (b.source.date ?? \"\").localeCompare(a.source.date ?? \"\")\n );\n}\n\n/** The rules that hold for this ad, strongest and newest first, within the prompt budget. Pure. */\nexport function selectRules(\n rules: readonly CreativeRule[],\n target: RuleTarget,\n waived: readonly string[] = [],\n): CreativeRule[] {\n const held = rules\n .filter((r) => r.status === \"active\" && !waived.includes(r.id) && holdsFor(r, target))\n .sort(byStrength);\n const picked: CreativeRule[] = [];\n let used = 0;\n for (const rule of held) {\n used += rule.text.length + (rule.source.quote?.length ?? 0);\n if (used > RULES_CHARS && picked.length > 0) break;\n picked.push(rule);\n }\n return picked;\n}\n\n/** The active rules every landing is held to (`for: landings` or `all`), never first. Pure. */\nexport function landingRules(rules: readonly CreativeRule[]): CreativeRule[] {\n return rules.filter((r) => r.status === \"active\" && (r.for === \"landings\" || r.for === \"all\")).sort(byStrength);\n}\n\n/** Whether two rules ever hold for the same piece: one only for landings never meets one only for ads. Pure. */\nexport function meetsOn(a: CreativeRule, b: CreativeRule): boolean {\n const reach = (r: CreativeRule) => r.for ?? \"ads\";\n return reach(a) === \"all\" || reach(b) === \"all\" || reach(a) === reach(b);\n}\n\n/** Whether `existing` already holds for every piece `candidate` would: the same words saved again add nothing. Pure. */\nexport function covers(existing: CreativeRule, candidate: CreativeRule): boolean {\n const reach = (r: CreativeRule) => r.for ?? \"ads\";\n return reach(existing) === \"all\" || reach(existing) === reach(candidate);\n}\n\n/** The rules a run was checked against, in twelve characters: their ids, strengths and words. Pure. */\nexport function rulesDigest(rules: readonly CreativeRule[]): string {\n const canonical = [...rules]\n .map((r) => [r.id, r.strength, r.applies, r.text, r.check ?? null])\n .sort((a, b) => String(a[0]).localeCompare(String(b[0])));\n return createHash(\"sha256\").update(JSON.stringify(canonical)).digest(\"hex\").slice(0, 12);\n}\n\n/**\n * Where the rules sit in a compiled prompt. A brief is part of the canvas's fingerprint\n * (`computeSourceSha`), and a rule is the company's, never one ad's edit: the fingerprint is taken\n * without them, so a rule edit re-renders on the next run but never marks every creative edited.\n */\nexport const RULES_OPEN = \"<company_rules>\";\nexport const RULES_CLOSE = \"</company_rules>\";\n\n/** The rules as a model reads them: each in its words, with the person's own when they taught it. Pure. */\nexport function rulesBlock(rules: readonly CreativeRule[], intro?: string): string {\n if (rules.length === 0) return \"\";\n const lines = rules.map((r) => {\n const quote = r.source.quote && r.source.quote !== r.text ? ` (their words: \"${r.source.quote}\")` : \"\";\n return `- [${r.strength}] ${r.id}: ${r.text}${quote}`;\n });\n const lead =\n intro ?? \"The company's standing rules for its ads: a never or a must is a requirement, a prefer is its taste.\";\n return [RULES_OPEN, lead, ...lines, RULES_CLOSE].join(\"\\n\");\n}\n\n/** `text` with every rules block taken out, and the blank lines left around it. Pure. */\nexport function withoutRulesBlocks(text: string): string {\n if (!text.includes(RULES_OPEN)) return text;\n return text.replace(new RegExp(`\\\\s*${RULES_OPEN}[\\\\s\\\\S]*?${RULES_CLOSE.replace(\"/\", \"\\\\/\")}`, \"g\"), \"\");\n}\n\n/** `value` with a rules block taken out of every string in it, however deep. Pure. */\nexport function withoutRulesDeep(value: unknown): unknown {\n if (typeof value === \"string\") return withoutRulesBlocks(value);\n if (Array.isArray(value)) return value.map(withoutRulesDeep);\n if (value && typeof value === \"object\") {\n return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, withoutRulesDeep(v)]));\n }\n return value;\n}\n\n/** The most rules a render's brief carries: an image model weighs a short list. */\nconst BRIEF_RULES = 8;\n\n/**\n * The rules a render is told: the ones a picture can keep. A person's for what it shows, who appears\n * and its logo; the brand's (BRAND.md) only for who appears and its logo, since a brand document's\n * picture rules are often its web design system's, and the person approved ads that break them\n * (prod, Oct 2026: 49 of 50 approved ads broke one). Pure.\n */\nexport function briefRules(rules: readonly CreativeRule[]): CreativeRule[] {\n return rules\n .filter((r) =>\n r.origin === \"learned\"\n ? r.applies === \"picture\" || r.applies === \"cast\" || r.applies === \"logo\"\n : r.applies === \"cast\" || r.applies === \"logo\",\n )\n .slice(0, BRIEF_RULES);\n}\n","import { execFile } from \"node:child_process\";\nimport { mkdtemp, readdir, readFile, rm } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport path from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { z } from \"zod\";\nimport { hasOpenRouterKey, openRouterKey } from \"../../../../env.ts\";\nimport type { CreativeRule } from \"../../../creative-rules/schema.ts\";\nimport { rulesBlock } from \"../../../creative-rules/select.ts\";\nimport type { VitalJob } from \"../../../scaffold/static-ad-spec.ts\";\nimport { classifyRuleFindings, heardRules } from \"./rules-findings.ts\";\n\n/**\n * Somebody looks at the finished video.\n *\n * Until this existed, nothing in the pipeline ever saw a generated clip. The\n * frame-vision pass (`hyperframe-check.ts`) reads the HTML composition — captions,\n * overlay, legibility — and stops there; what the video model actually returned was\n * never opened by anything. The gap is not theoretical. A finished 28-second ad\n * shipped with:\n *\n * • two fitters mounting a solar panel lying across the roof tiles with no rails\n * under it, one of them drilling into the face of the module;\n * • a bracket base and a phone floating unattached in shot;\n * • a worker missing a leg;\n * • four different men playing what the script treats as one customer;\n * • no brand mark in any frame, and no closing card — it ends on a man shuffling\n * blank paper, four seconds after the last caption.\n *\n * Every one is obvious to anyone watching and invisible to every check the run\n * already had. Reviewing the render is not a nicety layered on top: it is the first\n * time anything in the system looks at the thing it sold.\n *\n * Reported, never blocking. The render is already paid for by the time this runs, so\n * discarding it would burn the credits twice; the findings come back as the work to\n * do on the next pass.\n */\n\n/**\n * The dense model, not the fast one — measured, not assumed.\n *\n * Asked about the frame holding the panel with no rails under it, `gemini-flash-latest`\n * answered \"nothing wrong\" at 512px, at 1024px, and alone on a single frame. The same\n * frame and the same question on `gemini-pro-latest` came back with the missing rails,\n * the hovering bracket and a worker's missing leg. A cheap reviewer that always says\n * clean is worse than none: it launders an unwatched render as a checked one.\n *\n * `~google/…` is the floating alias: OpenRouter resolves it per request, so the pass\n * follows the current Pro tier instead of a version somebody has to remember to bump.\n * Safe to float here in a way it was not before — the price now comes back with the\n * answer, so a model swap underneath cannot put a stale rate in the ledger.\n */\nexport const RENDER_REVIEW_MODEL = \"~google/gemini-pro-latest\";\n\n/** How many frames the reviewer sees. */\nexport const RENDER_REVIEW_FRAMES = 12;\n\n/** Widest edge of a sampled frame, in pixels. */\nexport const RENDER_REVIEW_WIDTH = 1024;\n\n/**\n * The model that WATCHES the finished ad, as opposed to the one that reads stills.\n *\n * A flash tier on purpose: this pass uploads the whole video, so it is the expensive one\n * to run, and the questions it answers (is this the right accent, does the voice fit the\n * mouth, do the cuts hold) are judgements a flash model makes as well as a pro one.\n *\n * Floating, like the stills model above, and for the same reason. Measured 2026-09-17,\n * the alias resolves to `google/gemini-3.8-flash` — which a pinned `gemini-3.7-flash`\n * would have kept us off for no reason anybody had decided.\n */\nexport const RENDER_WATCH_MODEL = \"~google/gemini-flash-latest\";\n\n/**\n * What one review call spent, as the GATEWAY reports it.\n *\n * `usage.cost` is OpenRouter's own charge for the call, in dollars, returned with the\n * answer because the request opts in with `usage: { include: true }` — the same thing\n * every other provider call on this platform does. So there is no price list to keep:\n * the sandbox relays the provider's number instead of computing one, and `reportCost`\n * records it exactly as it records a canvas node's.\n *\n * This pass used to call Gemini directly, on the stated grounds that the video goes up\n * inline and OpenRouter had no route that takes one. It does: a `video_url` content part\n * accepts a base64 data URL, verified end to end against this account — HTTP 200, 128\n * video tokens counted, the model describing the clip it was sent. The direct route cost\n * a hand-maintained price table, a second credential in every Runtime, and a model id\n * that had to stay pinned so the table's key would not drift out from under it.\n *\n * Tokens are still carried, because they are what a human reads when asking why a review\n * cost what it did. The dollars are what the ledger uses.\n */\nexport type ReviewUsage = { model: string; inputTokens: number; outputTokens: number; costUsd: number };\n\ntype UsageSink = (usage: ReviewUsage) => void;\n\n/**\n * The gateway's own accounting, as returned. Absent on a failed call, which costs nothing.\n *\n * The cost is the first STRICTLY POSITIVE of `usage.cost` and\n * `cost_details.upstream_inference_cost`, which is the rule `extractCostUsd` already\n * states in `convex/lib/canvasOpenRouter.ts`: on a BYOK, cached or free-tier route\n * OpenRouter charges 0 while the upstream figure is what the company actually owes, and\n * picking the first DEFINED value instead reports that call as free. Duplicated rather\n * than imported because the backend is not on this side of the wire; if the two ever\n * have to disagree, that is the bug.\n */\nexport function usageFrom(model: string, body: unknown): ReviewUsage | null {\n const usage = (\n body as {\n usage?: {\n prompt_tokens?: number;\n completion_tokens?: number;\n cost?: number;\n cost_details?: { upstream_inference_cost?: number };\n };\n }\n )?.usage;\n if (!usage) return null;\n const positive = (value: number | undefined): number | null =>\n typeof value === \"number\" && Number.isFinite(value) && value > 0 ? value : null;\n return {\n model,\n inputTokens: usage.prompt_tokens ?? 0,\n outputTokens: usage.completion_tokens ?? 0,\n costUsd: positive(usage.cost) ?? positive(usage.cost_details?.upstream_inference_cost) ?? 0,\n };\n}\n\n/** Above this the video is not watched at all, rather than watched in part. */\nexport const WATCH_MAX_BYTES = 60 * 1024 * 1024;\n\n/** The items of the static review prompt (`static-review.ts` `buildStaticReviewPrompt`), as the model names the one a finding answers. */\nexport const STATIC_REVIEW_ITEMS = [\n \"text\",\n \"logo\",\n \"layout\",\n \"safe_zone\",\n \"picture\",\n \"subject\",\n \"person\",\n \"people\",\n \"one_idea\",\n \"thumbnail\",\n \"concept\",\n \"viewer\",\n \"proof\",\n \"sizes\",\n \"native\",\n \"rule\",\n \"other\",\n] as const;\n/** What on the ad a finding is about: its own words, its button, its logo, words printed on something in the scene, or the picture. */\nexport const FINDING_ELEMENTS = [\"copy\", \"button\", \"logo\", \"scene_text\", \"picture\", \"other\"] as const;\n/** What is wrong with it: cut by the frame, not there, too blurred to read, or anything else. */\nexport const FINDING_DEFECTS = [\"cut\", \"missing\", \"unreadable\", \"other\"] as const;\nexport const FRAME_EDGES = [\"top\", \"bottom\", \"left\", \"right\"] as const;\n\n/**\n * What the static review model says a finding is, in typed fields it fills beside its words, so the\n * code that grades and corrects the ad never matches the words themselves.\n */\nexport type FindingKind = {\n item: (typeof STATIC_REVIEW_ITEMS)[number];\n element: (typeof FINDING_ELEMENTS)[number];\n defect: (typeof FINDING_DEFECTS)[number];\n /** For an element the frame cuts, the edges it is cut at; none otherwise. */\n edges: Array<(typeof FRAME_EDGES)[number]>;\n /** The company rule a finding says the ad breaks (`item: \"rule\"`), by id. */\n rule?: string;\n /** What the missing element did for the proven ad (`item: \"concept\"`): what stops the scroll, or the proof. */\n job?: VitalJob;\n};\n\nexport type RenderFinding = {\n severity: \"blocking\" | \"warning\";\n /** What is wrong, in the words the agent has to act on. */\n what: string;\n /** The scene file to edit to fix it, when the finding belongs to one shot. */\n scene?: string;\n /** What the static review model said it is (`FindingKind`); none for a finding the code measured. Never sent to the run record. */\n kind?: FindingKind;\n};\n\n/** One shot's slot on the finished timeline, and the file that describes it. */\nexport type SceneWindow = { file: string; startS: number; endS: number };\n\n/**\n * The scene a moment belongs to.\n *\n * A finding that says \"at 18.36s a worker stands on a solar panel\" is only half an\n * instruction: somebody still has to work out which of six shot briefs produced that\n * second. The blueprint already knows — every scene file carries `start_s`/`end_s` —\n * so the finding can name the file to edit instead of leaving that as homework. Re-run\n * after editing and the cache regenerates only the beat that changed.\n */\nexport function sceneAt(windows: SceneWindow[], atS: number): string | undefined {\n return windows.find((w) => atS >= w.startS && atS < w.endS)?.file;\n}\n\n/**\n * The frames to look at, spread across the whole runtime.\n *\n * Evenly spaced rather than sampled at a fixed rate: a rate that catches a 4-second\n * defect in a 20s ad misses it in a 60s one, and the frame count is what costs. The\n * last frame is taken explicitly — the closing card is exactly what a spread sample\n * lands just short of, and a dead ending was one of the defects that shipped.\n */\nexport function reviewFrameTimes(durationS: number, frames: number): number[] {\n const n = Math.max(2, frames);\n const last = Math.max(0, durationS - 0.15);\n const step = last / (n - 1);\n return Array.from({ length: n }, (_, i) => Math.round(i * step * 100) / 100);\n}\n\n/** ffmpeg args that pull one frame at `atS`. */\nexport function buildFrameGrabArgs(video: string, atS: number, out: string): string[] {\n return [\n \"-v\",\n \"error\",\n \"-ss\",\n String(atS),\n \"-i\",\n video,\n \"-frames:v\",\n \"1\",\n \"-vf\",\n `scale=${RENDER_REVIEW_WIDTH}:-2`,\n out,\n \"-y\",\n ];\n}\n\nconst FrameReview = z.object({\n /** Something in shot that could not happen, or is being done wrong. */\n impossible: z.array(z.string()).default([]),\n /** Objects present in frame that belong to no part of the scene. */\n strays: z.array(z.string()).default([]),\n});\n\nconst ReelReview = z.object({\n /** Whether the people the script treats as one person stay one person. */\n cast_is_consistent: z.boolean().default(true),\n cast_note: z.string().default(\"\"),\n /** Whether the advertiser's mark is visible anywhere. */\n brand_mark_visible: z.boolean().default(false),\n /** Whether the last frames close the ad rather than trailing off. */\n ends_on_a_close: z.boolean().default(false),\n ending_note: z.string().default(\"\"),\n /** Whether the ad ever cuts away from the presenter to show anything. */\n shows_more_than_a_face: z.boolean().default(true),\n shows_note: z.string().default(\"\"),\n});\n\n/**\n * What is wrong with ONE frame.\n *\n * Asked per frame rather than over the batch, because the batch answers like a\n * summary. Given all twelve at once the model reported the single worst thing it\n * saw; given the rooftop frame alone it reported the missing rails, the hovering\n * bracket and the missing leg. The questions are closed and each names a defect that\n * reached a finished ad — an open \"review this\" comes back as praise.\n */\nexport function buildFrameReviewPrompt(opts: { subject?: string }): string {\n const subject = opts.subject ? ` The advertiser is ${opts.subject}.` : \"\";\n return (\n `This is ONE frame from a video advertisement.${subject}\\n\\n` +\n `Answer only about what is visible in THIS frame. Do not judge whether the ad is good, ` +\n `and do not comment on style, mood or lighting.\\n\\n` +\n `1. IMPOSSIBLE OR WRONG. Is anything shown that could not physically happen, or that ` +\n `shows the job being done incorrectly? Judge the PROCEDURE, not only the physics: ` +\n `equipment resting where it would never rest, a component fitted to nothing, someone ` +\n `handling a part in a way that would damage it, an object at the wrong scale beside a ` +\n `person, a body with a limb missing or duplicated.\\n` +\n `2. STRAYS. Is any object present that belongs to no part of the scene — floating, ` +\n `unattached, or cut off from whatever should hold it?\\n\\n` +\n `Report only what you can actually see. An empty list is the right answer for a clean ` +\n `frame. Keep each item under twelve words.\\n\\n` +\n `Reply with only this JSON: {\"impossible\":[],\"strays\":[]}`\n );\n}\n\n/**\n * What is wrong with the reel as a whole.\n *\n * These three cannot be asked of one frame: whether the customer is the same person\n * throughout, whether the mark appears anywhere at all, and whether the last shot\n * closes the ad. All three shipped broken in the same render.\n */\nexport function buildReelReviewPrompt(opts: { subject?: string; script?: string }): string {\n const subject = opts.subject ? ` The advertiser is ${opts.subject}.` : \"\";\n const script = opts.script ? `\\n\\nThe voiceover says, in order:\\n${opts.script}` : \"\";\n return (\n `These frames are sampled in order from one video advertisement.${subject}` +\n script +\n `\\n\\nAnswer only about what is visible.\\n\\n` +\n `1. CAST. Do the people stay the same people? If the script speaks about one customer ` +\n `and the frames show different faces in that role, say so and count them.\\n` +\n `2. BRAND. Is the advertiser's logo or wordmark visible in ANY frame? Answer yes only if ` +\n `you can actually see a mark — a colour is not a mark.\\n` +\n `3. ENDING. Do the final frames close the advertisement — a call to action, a mark, a ` +\n `card — or does the picture simply carry on and stop?\\n` +\n `4. WHAT IT SHOWS. Does the advertisement ever cut away from the person to show the ` +\n `thing it is selling, or its result? Answer false if every frame is the same person ` +\n `with only the framing changed, and nothing is ever shown.\\n\\n` +\n `Reply with only this JSON:\\n` +\n `{\"cast_is_consistent\":true,\"cast_note\":\"\",\"brand_mark_visible\":false,` +\n `\"ends_on_a_close\":false,\"ending_note\":\"\",\"shows_more_than_a_face\":true,\"shows_note\":\"\"}`\n );\n}\n\n/** The model's reply, as JSON, however it wrapped it. */\nexport function parseReviewJson(raw: string): unknown {\n const fenced = raw.match(/```(?:json)?\\s*([\\s\\S]*?)```/);\n const body = (fenced?.[1] ?? raw).trim();\n const start = body.indexOf(\"{\");\n const end = body.lastIndexOf(\"}\");\n if (start === -1 || end === -1 || end < start) return null;\n const json = body.slice(start, end + 1);\n for (const candidate of [json, json.replace(UNCLOSED_NUMBERS, \"[$1]}\")]) {\n try {\n return JSON.parse(candidate);\n } catch {\n // A reply only the repair below can read is tried next.\n }\n }\n return boxListOf(json.replace(UNCLOSED_NUMBERS, \"[$1]}\"));\n}\n\n/** A list of numbers closed with \"}\" instead of \"]}\", as a box reader writes a box now and then. */\nconst UNCLOSED_NUMBERS = /\\[(\\s*-?\\d+(?:\\.\\d+)?(?:\\s*,\\s*-?\\d+(?:\\.\\d+)?)*)\\s*\\}/g;\n\n/** The opening of a box reader's reply: `{\"items\":[`. */\nconst BOX_LIST = /^\\{\\s*\"items\"\\s*:\\s*\\[/;\n\n/** Where the string literal opened by the quote at `open` closes: its closing quote, else the text's end. */\nfunction closingQuote(text: string, open: number): number {\n for (let i = open + 1; i < text.length; i++) {\n if (text[i] === \"\\\\\") i++;\n else if (text[i] === '\"') return i;\n }\n return text.length;\n}\n\n/**\n * Each `{…}` object in `text` at its own top level, string literals skipped over, and the offset\n * just past the last one closed; `open` is true when an object is left unclosed at the end.\n */\nfunction objectsIn(text: string): { objects: string[]; end: number; open: boolean } {\n const out: string[] = [];\n let end = 0;\n let depth = 0;\n let from = 0;\n for (let i = 0; i < text.length; i++) {\n const ch = text[i];\n if (ch === '\"') i = closingQuote(text, i);\n else if (ch === \"{\") {\n if (depth === 0) from = i;\n depth++;\n } else if (ch === \"}\" && depth > 0) {\n depth--;\n if (depth === 0) {\n out.push(text.slice(from, i + 1));\n end = i + 1;\n }\n }\n }\n return { objects: out, end, open: depth > 0 };\n}\n\n/**\n * A box reader's list with stray words or a second list written among its boxes (`}箍]}`,\n * `} receipts: [{…}]}`): every box, each once. Null for any other reply, and for a list with a\n * box that does not read on its own or that was cut off (an unclosed object, or no closing `]`):\n * a reading short of a line is no reading.\n */\nfunction boxListOf(json: string): { items: unknown[] } | null {\n const list = json.match(BOX_LIST);\n if (!list) return null;\n const seen = new Set<string>();\n const items: unknown[] = [];\n const body = json.slice(list[0].length);\n const scan = objectsIn(body);\n if (scan.open || !body.slice(scan.end).includes(\"]\")) return null;\n for (const object of scan.objects) {\n let item: unknown;\n try {\n item = JSON.parse(object);\n } catch {\n return null;\n }\n const key = JSON.stringify(item);\n if (seen.has(key)) continue;\n seen.add(key);\n items.push(item);\n }\n return items.length > 0 ? { items } : null;\n}\n\n/** Same complaint, different words — enough to collapse repeats of one defect. */\nconst normalise = (s: string) =>\n s\n .toLowerCase()\n .replace(/[^a-z0-9 ]/g, \" \")\n .replace(/\\s+/g, \" \")\n .trim();\n\n/**\n * Per-frame answers, collapsed into one list of findings.\n *\n * A defect that persists across a shot is reported by every frame of it, so the same\n * complaint arrives up to a dozen times. Deduplicated on the wording and stamped with\n * where it was seen, which is also what tells the agent WHICH beat to re-render.\n */\nconst ANATOMY = /\\b(finger|fingers|hand|hands|thumb|limb|leg|legs|arm|arms|foot|feet|anatomy)\\b/i;\n\n/** Each distinct complaint, with every frame time that reported it. */\nfunction collapseRepeats(frames: { at: number; json: unknown }[]): { what: string; at: number[] }[] {\n const seen = new Map<string, { what: string; at: number[] }>();\n for (const frame of frames) {\n const parsed = FrameReview.safeParse(frame.json);\n if (!parsed.success) continue;\n for (const item of [...parsed.data.impossible, ...parsed.data.strays]) {\n const text = item.trim();\n const key = normalise(text);\n if (!key) continue;\n const hit = seen.get(key);\n if (hit) hit.at.push(frame.at);\n else seen.set(key, { what: text, at: [frame.at] });\n }\n }\n return [...seen.values()];\n}\n\nexport function classifyFrameFindings(\n frames: { at: number; json: unknown }[],\n windows: SceneWindow[] = [],\n): RenderFinding[] {\n const seen = collapseRepeats(frames);\n // Mangled hands are the signature failure of every video model, so they arrive\n // once per frame in slightly different words and bury everything else. Rolled up\n // into one finding about the render, which is also the honest reading: anatomy\n // broken in most frames is not a note, it is a reason not to ship the take.\n const anatomy = seen.filter((f) => ANATOMY.test(f.what));\n const rest = seen.filter((f) => !ANATOMY.test(f.what));\n const findings = rest.map((f) => {\n const scene = sceneAt(windows, f.at[0] as number);\n return {\n severity: \"blocking\" as const,\n what: `At ${f.at.map((s) => `${s}s`).join(\", \")}${scene ? ` (${scene})` : \"\"}: ${f.what}`,\n ...(scene ? { scene } : {}),\n };\n });\n if (anatomy.length > 0) {\n const at = [...new Set(anatomy.flatMap((f) => f.at))].sort((a, b) => a - b);\n findings.push({\n severity: \"blocking\",\n what:\n `Malformed hands or limbs in ${at.length} of ${frames.length} sampled frames ` +\n `(${at.map((s) => `${s}s${sceneAt(windows, s) ? ` → ${sceneAt(windows, s)}` : \"\"}`).join(\", \")}): ` +\n `${anatomy.map((f) => f.what).join(\" \")} ` +\n \"Re-render those beats — keep hands out of frame, or away from the object being held.\",\n });\n }\n return findings;\n}\n\n/** The whole-reel answer, as findings. */\n/**\n * The watch pass's question sheet.\n *\n * Deliberately narrow: only what a still cannot answer. The frame passes already cover\n * anatomy, legibility, the mark and the ending, and asking twice costs a second upload of\n * the whole video for an answer already in hand.\n *\n * The accent question asks for EVIDENCE, not just a verdict. Measured against a native\n * speaker's judgement on three ads, the model said \"peninsular\" where the ear heard Latin\n * American — so this under-reports, and a bare boolean would read as an all-clear it has\n * not earned. Quoting what it heard lets a human check the claim instead of trusting it.\n */\nexport function buildWatchReviewPrompt(opts: {\n market?: string;\n script?: string;\n /** The company's rules: the ones the playing video can break are asked about, by id (`heardRules`). */\n rules?: readonly CreativeRule[];\n}): string {\n const market = opts.market?.trim();\n const heard = heardRules(opts.rules ?? []);\n const rules =\n heard.length > 0\n ? `${rulesBlock(heard, \"5. RULES. The company holds every ad to its own rules, each with its id:\")}\\n` +\n \"For each rule this video plainly breaks, in what is said, how it sounds, its subtitles or what is shown, give its id exactly, the timestamp and what breaks it. A rule about something this video does not do is not broken.\\n\"\n : \"\";\n return (\n \"Watch and LISTEN to this advertisement, then answer about the things that only exist \" +\n \"in motion and in sound.\\n\" +\n `1. SPOKEN VARIETY. ${market ? `The ad is set in ${market}. ` : \"\"}Does the speaker's accent belong there? ` +\n \"Quote the words you heard that show it — a phonetic marker beats an impression.\\n\" +\n \"2. VOICE AND MOUTH. Does the voice belong to the mouth on screen, in timing and in person?\\n\" +\n \"3. CUTS. Do the shot changes hold, or does something jump, repeat or stutter between them?\\n\" +\n \"4. DEFECTS. List anything else wrong, each with the exact timestamp where it happens — a \" +\n \"moment maps to the shot that produced it, and a defect without one is a complaint rather \" +\n \"than an instruction.\\n\" +\n rules +\n 'Answer JSON only: {\"spoken_variety_matches\":true|false,\"variety_note\":\"...\",' +\n '\"voice_matches_mouth\":true|false,\"mouth_note\":\"...\",' +\n '\"cuts_are_clean\":true|false,\"cuts_note\":\"...\",' +\n `\"defects\":[{\"at\":\"MM:SS.s\",\"kind\":\"cut|lipsync|audio|visual\",\"what\":\"...\"}]${heard.length > 0 ? ',\"rules_broken\":[{\"rule\":\"<rule id>\",\"at\":\"MM:SS.s\",\"what\":\"...\"}]' : \"\"}}`\n );\n}\n\n/**\n * What the WATCH pass answers — the questions a still cannot be asked.\n *\n * The frame passes are twelve stills, so everything between them is invisible and the\n * audio is not there at all. Three ads shipped in Latin American Spanish for a market of\n * Spain and the review said nothing, because an accent is not visible in a photograph; the\n * user heard it before the system did. Same for a voice that drifts off the lips, and for a\n * cut that only exists between two sampled moments.\n */\nconst WatchReview = z.object({\n spoken_variety_matches: z.boolean(),\n variety_note: z.string().default(\"\"),\n voice_matches_mouth: z.boolean(),\n mouth_note: z.string().default(\"\"),\n cuts_are_clean: z.boolean(),\n cuts_note: z.string().default(\"\"),\n});\n\n/**\n * The timed defects the watch pass reports, each one placed on the timeline.\n *\n * Asked for with a timestamp because a moment maps to a shot: \"abrupt jump cut at 00:06.8\"\n * becomes \"edit `scenes/s02.json`\", which is the difference between a complaint and an\n * instruction. Measured on a real ad the model returned five cuts and an English audio\n * fragment in a Spanish read, each with its second — none of which twelve stills could have\n * carried, and one of which nobody had noticed at all.\n *\n * No agentic processing involved: the timestamps come from asking for them.\n */\nconst WatchDefects = z.object({\n defects: z\n .array(\n z.object({\n at: z.string().default(\"\"),\n kind: z.string().default(\"\"),\n what: z.string().default(\"\"),\n }),\n )\n .default([]),\n});\n\n/**\n * The rules the watch pass says the video breaks, each placed on the timeline: a never or a must\n * blocks, a prefer is a note, a rule nobody asked about is dropped. Pure.\n */\nexport function classifyWatchRules(\n json: unknown,\n rules: readonly CreativeRule[],\n windows: SceneWindow[],\n): RenderFinding[] {\n const broken = (json as { rules_broken?: unknown } | null)?.rules_broken;\n if (!Array.isArray(broken)) return [];\n return broken.flatMap((raw) => {\n const entry = (raw ?? {}) as { at?: unknown };\n const at = typeof entry.at === \"string\" ? entry.at.trim() : \"\";\n const [finding] = classifyRuleFindings({ broken: [{ ...(raw as object), format: at }] }, heardRules(rules));\n if (!finding) return [];\n const moment = parseMoment(at);\n const scene = moment === null ? undefined : sceneAt(windows, moment);\n return [{ ...finding, ...(scene ? { scene } : {}) }];\n });\n}\n\n/** `MM:SS.s` or plain seconds → seconds, or null when it is neither. */\nexport function parseMoment(at: string): number | null {\n const trimmed = at.trim();\n const clock = /^(\\d+):(\\d+(?:\\.\\d+)?)$/.exec(trimmed);\n if (clock) return Number(clock[1]) * 60 + Number(clock[2]);\n const plain = Number(trimmed.replace(/s$/i, \"\"));\n return Number.isFinite(plain) ? plain : null;\n}\n\nexport function classifyWatchDefects(json: unknown, windows: SceneWindow[]): RenderFinding[] {\n const parsed = WatchDefects.safeParse(json);\n if (!parsed.success) return [];\n return parsed.data.defects\n .filter((d) => d.what.trim())\n .map((d) => {\n const at = parseMoment(d.at);\n const scene = at === null ? undefined : sceneAt(windows, at);\n const when = d.at.trim() ? ` at ${d.at.trim()}` : \"\";\n return {\n severity: \"warning\" as const,\n what: `${d.what.trim()}${when}${d.kind.trim() ? ` (${d.kind.trim()})` : \"\"}.`,\n ...(scene ? { scene } : {}),\n };\n });\n}\n\n/**\n * Whether the finished ad is the one that was ASKED for.\n *\n * Every other pass here grades the render against the spec, and that cannot answer this\n * question: both sides of that comparison came from the same reading of the request, so an\n * ad that executes a misread brief perfectly comes back clean. Four did, in a row, while\n * the person who asked caught a Latin American voice, a mouth dubbed over, a stand-in logo\n * and a customer repairing the panel she was there to praise.\n *\n * So this pass is given the request in the words it was made in, and nothing else about how\n * it was interpreted. Blocking, because an ad that is not what was asked for is not a\n * quality problem — it is the wrong ad, however well it is made.\n */\nconst FidelityReview = z.object({\n delivers_the_ask: z.boolean(),\n missing: z.array(z.string()).default([]),\n contradicted: z.array(z.string()).default([]),\n});\n\n/** The request, in the words it was made in, against what the video actually is. */\nexport function buildFidelityPrompt(brief: string): string {\n return (\n \"Someone asked for an advertisement in these words:\\n\\n\" +\n `\"\"\"${brief.trim()}\"\"\"\\n\\n` +\n \"Watch and LISTEN to the video, then answer only this: does it deliver what they asked \" +\n \"for? Judge the request as it was written — not what would make a good ad, and not what \" +\n \"you would have made. Two lists: what they asked for that is NOT in the video, and what \" +\n \"the video does that CONTRADICTS what they asked for. Quote their own words in each \" +\n \"entry so the answer can be checked. Empty lists when it delivers.\\n\" +\n 'Answer JSON only: {\"delivers_the_ask\":true|false,\"missing\":[\"...\"],\"contradicted\":[\"...\"]}'\n );\n}\n\nexport function classifyFidelityFindings(json: unknown): RenderFinding[] {\n const parsed = FidelityReview.safeParse(json);\n if (!parsed.success) return [];\n const r = parsed.data;\n if (r.delivers_the_ask) return [];\n return [...r.missing, ...r.contradicted]\n .map((entry) => entry.trim())\n .filter(Boolean)\n .map((what) => ({ severity: \"blocking\" as const, what: `Not what was asked for: ${what}.` }));\n}\n\n/** Turn the watch pass's answer into findings. Unreadable answers report nothing. */\nexport function classifyWatchFindings(json: unknown): RenderFinding[] {\n const parsed = WatchReview.safeParse(json);\n if (!parsed.success) return [];\n const r = parsed.data;\n const findings: RenderFinding[] = [];\n if (!r.spoken_variety_matches) {\n findings.push({\n severity: \"blocking\",\n what:\n `The voice speaks the wrong variety of the language${r.variety_note.trim() ? `: ${r.variety_note.trim()}` : \"\"}. ` +\n \"A pinned voice cannot fix this — the re-voicing is speech-to-speech and carries the accent \" +\n \"across, so state the market on the ad and let the clip prompt name the accent.\",\n });\n }\n if (!r.voice_matches_mouth) {\n findings.push({\n severity: \"blocking\",\n what:\n `The voice does not match the mouth${r.mouth_note.trim() ? `: ${r.mouth_note.trim()}` : \"\"}. ` +\n \"A person visibly speaking under a track that is not theirs reads as bad dubbing.\",\n });\n }\n if (!r.cuts_are_clean) {\n findings.push({\n severity: \"warning\",\n what: `The cuts do not hold${r.cuts_note.trim() ? `: ${r.cuts_note.trim()}` : \"\"}.`,\n });\n }\n return findings;\n}\n\nexport function classifyReelFindings(json: unknown): RenderFinding[] {\n const parsed = ReelReview.safeParse(json);\n if (!parsed.success) return [];\n const r = parsed.data;\n const findings: RenderFinding[] = [];\n if (!r.cast_is_consistent) {\n findings.push({\n severity: \"blocking\",\n what:\n `The cast changes between shots${r.cast_note.trim() ? `: ${r.cast_note.trim()}` : \"\"}. ` +\n \"One customer played by several faces reads as stock footage. Ground the frames on one \" +\n \"identity (`baker avatars`) or write the beats so the subject is never the same person twice.\",\n });\n }\n if (!r.brand_mark_visible) {\n findings.push({\n severity: \"warning\",\n what:\n \"No brand mark is visible in any frame. THIS IS NOT A RE-RENDER: the mark is drawn by the \" +\n \"caption composition as an ordinary `<img>`, never generated as a picture — so fix the mark \" +\n \"itself (a bad path, or an SVG whose geometry clips its own wordmark) or the `.brand-mark` / \" +\n \"`.endcard-logo` rules in `<composition>/index.html`, then re-run. Every clip comes back from \" +\n \"the cache and only the composition pass renders again, so it costs seconds and no generation.\",\n });\n }\n if (!r.shows_more_than_a_face) {\n findings.push({\n severity: \"blocking\",\n what:\n `The ad never shows what it is selling${r.shows_note.trim() ? `: ${r.shows_note.trim()}` : \"\"} — every frame is ` +\n \"the same person with only the framing changed. Give the middle beats their own picture (the bill, the roof, \" +\n \"the install, the house) and set `cast: false` on them.\",\n });\n }\n if (!r.ends_on_a_close) {\n findings.push({\n severity: \"warning\",\n what:\n `The video does not close${r.ending_note.trim() ? `: ${r.ending_note.trim()}` : \"\"} — it runs on ` +\n \"and stops. Give the last beat a call to action, and keep its shot short enough that the \" +\n \"picture ends with the read.\",\n });\n }\n return findings;\n}\n\n/**\n * The local file to review, out of whatever the run returned.\n *\n * A canvas ends in one output or several, and only a video is worth watching —\n * a static ad is the image gate's business, not this one. The LAST video wins:\n * the caption pass and the music mix each emit one, and the finished ad is the\n * one at the end of that chain.\n */\nexport function videoPathFromOutput(output: unknown): string | null {\n const refs = Array.isArray(output) ? output : [output];\n let found: string | null = null;\n for (const ref of refs) {\n const r = ref as { kind?: unknown; path?: unknown; mime?: unknown } | null;\n if (!r || typeof r !== \"object\") continue;\n const isVideo = r.kind === \"video\" || (typeof r.mime === \"string\" && r.mime.startsWith(\"video/\"));\n if (isVideo && typeof r.path === \"string\" && r.path) found = r.path;\n }\n return found;\n}\n\n/**\n * What the finished audio measures, as opposed to what it sounds like.\n *\n * A model looking at frames cannot hear, and asking one to judge a mix would be\n * guessing at something ffmpeg answers exactly. These are the failures that are\n * arithmetic: an ad with no audio at all, a mix so quiet nobody hears the bed, and one\n * pushed into the ceiling so the voice distorts.\n *\n * Measured on real renders: a music bed sitting at -41 dB was completely inaudible\n * under a continuous voiceover and read as \"no music\"; a healthy ad of the same length\n * measured -19.3 dB mean and -1.5 dB peak.\n */\n/** One `volumedetect` reading, in dB. `-inf` — real digital silence — survives as -Infinity. */\nfunction parseVolume(volumedetect: string, key: \"mean_volume\" | \"max_volume\"): number {\n const raw = new RegExp(`${key}:\\\\s*(-?(?:inf|[\\\\d.]+)) dB`).exec(volumedetect)?.[1];\n if (raw === undefined) return Number.NaN;\n if (raw === \"-inf\") return Number.NEGATIVE_INFINITY;\n return Number.parseFloat(raw);\n}\n\nexport function classifyAudio(volumedetect: string, hasAudioStream: boolean): RenderFinding[] {\n if (!hasAudioStream) {\n return [\n {\n severity: \"blocking\",\n what: \"The finished video has no audio track at all — no voice, no music, nothing. An ad that plays silent in a feed is not an ad.\",\n },\n ];\n }\n // `-inf` is a value ffmpeg really returns — it is what a stream of pure zeroes measures.\n // Read with a digits-only pattern both numbers came back NaN, every threshold below was\n // skipped, and a completely silent ad passed the audio review with nothing to report.\n const mean = parseVolume(volumedetect, \"mean_volume\");\n const max = parseVolume(volumedetect, \"max_volume\");\n const findings: RenderFinding[] = [];\n if (mean === Number.NEGATIVE_INFINITY || max === Number.NEGATIVE_INFINITY) {\n return [\n {\n severity: \"blocking\",\n what: \"The finished video has an audio track, but it is completely silent — digital zero from start to end. An ad that plays silent in a feed is not an ad.\",\n },\n ];\n }\n if (Number.isFinite(mean) && mean < -30) {\n findings.push({\n severity: \"warning\",\n what:\n `The mix is very quiet (${mean} dB average). On a phone at half volume this is close to silence — ` +\n \"check the music bed is not ducked into nothing under the voice.\",\n });\n }\n if (Number.isFinite(max) && max > -0.5) {\n findings.push({\n severity: \"warning\",\n what:\n `The mix peaks at ${max} dB, which is at or over the ceiling — the voice will distort on a phone speaker. ` +\n \"Bring the loudest track down a few dB.\",\n });\n }\n return findings;\n}\n\n/** What the agent is told when the reviewer could not run. */\nexport const RENDER_REVIEW_UNAVAILABLE =\n \"The render was NOT reviewed — no model gateway key in this environment. Watch it yourself before sending it on.\";\n\n/** Every this-many sampled frame is checked against the company's rules: four of twelve. */\nconst RULE_FRAME_STEP = 3;\n\n/**\n * The company's rules a picture can break, on a few of the frames already grabbed (`checkStills`);\n * a look that did not come back is said, as a note: the rules are unchecked, not kept.\n */\nasync function framesAgainstRules(\n grabbed: ReadonlyArray<{ at: number; image: string }>,\n checkStills: ((stills: string[], labels: string[]) => Promise<RenderFinding[] | null>) | undefined,\n): Promise<RenderFinding[]> {\n if (!checkStills) return [];\n const sampled = grabbed.filter((_, i) => i % RULE_FRAME_STEP === 0);\n const found = await checkStills(\n sampled.map((f) => f.image),\n sampled.map((f) => `the frame at ${f.at.toFixed(1)}s`),\n ).catch(() => null);\n return (\n found ?? [\n {\n severity: \"warning\",\n what: \"The frames were not checked against the company's rules (the model did not answer): read them against `rules` in the brief yourself.\",\n },\n ]\n );\n}\n\n/** Concurrent vision calls. Thirteen at once loses answers to the rate limit. */\nconst REVIEW_CONCURRENCY = 3;\n\n/** `Promise.all` with a ceiling, preserving order. */\nasync function mapWithLimit<T, R>(items: T[], limit: number, fn: (item: T) => Promise<R>): Promise<R[]> {\n const out = new Array<R>(items.length);\n let next = 0;\n await Promise.all(\n Array.from({ length: Math.min(limit, items.length) }, async () => {\n for (let i = next++; i < items.length; i = next++) {\n out[i] = await fn(items[i] as T);\n }\n }),\n );\n return out;\n}\n\nconst execFileAsync = promisify(execFile);\n\n/** What ffmpeg measures about the finished mix. Never throws: an unmeasurable mix is\n * reported as nothing rather than as a fault. */\nasync function measureAudio(video: string): Promise<RenderFinding[]> {\n const streams = await execFileAsync(\n \"ffprobe\",\n [\"-v\", \"error\", \"-select_streams\", \"a\", \"-show_entries\", \"stream=codec_type\", \"-of\", \"csv=p=0\", video],\n { timeout: 20_000 },\n ).catch(() => null);\n if (!streams) return [];\n const hasAudio = streams.stdout.trim().length > 0;\n if (!hasAudio) return classifyAudio(\"\", false);\n const vol = await execFileAsync(\"ffmpeg\", [\"-i\", video, \"-map\", \"0:a:0\", \"-af\", \"volumedetect\", \"-f\", \"null\", \"-\"], {\n timeout: 120_000,\n maxBuffer: 8 * 1024 * 1024,\n }).catch((e: { stderr?: string }) => ({ stdout: \"\", stderr: e.stderr ?? \"\" }));\n // volumedetect reports on stderr, and ffmpeg exits non-zero on the null muxer.\n return classifyAudio(vol.stderr ?? \"\", true);\n}\n\n/** Seconds of picture, or null when the file cannot be probed. */\nasync function videoDuration(video: string): Promise<number | null> {\n try {\n const { stdout } = await execFileAsync(\n \"ffprobe\",\n [\"-v\", \"error\", \"-show_entries\", \"format=duration\", \"-of\", \"default=nw=1:nk=1\", video],\n { timeout: 20_000 },\n );\n const seconds = Number.parseFloat(stdout.trim());\n return Number.isFinite(seconds) && seconds > 0 ? seconds : null;\n } catch {\n return null;\n }\n}\n\n/** One OpenRouter completion, or null when the gateway could not answer. */\ntype ReviewContentPart =\n | { type: \"text\"; text: string }\n | { type: \"image_url\"; image_url: { url: string } }\n | { type: \"video_url\"; video_url: { url: string } };\n\n/**\n * One call to the gateway, which is the only place this module talks to a model.\n *\n * `usage: { include: true }` is what makes the reply carry `usage.cost`, and carrying it\n * is why there is no price list on either side of this. Both passes come through here so\n * they cannot drift into two different ideas of what a call costs.\n *\n * Returns null on anything that is not a parseable answer — no key, a non-200, a reply\n * that is not JSON. The caller reports that as \"nobody looked\", never as \"clean\".\n */\n/** How much the model reasons before answering: `minimal` for a transcription, the model's own default for a judgment. */\nexport type GatewayReasoning = { effort: \"minimal\" | \"low\" | \"medium\" | \"high\" };\n\nasync function askGateway(\n model: string,\n parts: ReviewContentPart[],\n timeoutMs: number,\n spent: UsageSink,\n reasoning?: GatewayReasoning,\n /** More of the request: a pinned `provider`, a `temperature`, a `response_format`. */\n extra: Record<string, unknown> = {},\n /**\n * What every call of a kind shares, sent first as a system message: a prefix the provider can\n * cache (the company's rules, the same for every review of its ads).\n */\n system?: string,\n): Promise<unknown> {\n const key = openRouterKey();\n if (!key) return null;\n try {\n const response = await fetch(\"https://openrouter.ai/api/v1/chat/completions\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\", authorization: `Bearer ${key}` },\n body: JSON.stringify({\n model,\n messages: [...(system ? [{ role: \"system\", content: system }] : []), { role: \"user\", content: parts }],\n usage: { include: true },\n ...(reasoning ? { reasoning } : {}),\n ...extra,\n }),\n signal: AbortSignal.timeout(timeoutMs),\n });\n if (!response.ok) return null;\n const body = (await response.json()) as { choices?: { message?: { content?: string } }[] };\n const usage = usageFrom(model, body);\n if (usage) spent(usage);\n const text = body.choices?.[0]?.message?.content;\n return text ? parseReviewJson(text) : null;\n } catch {\n return null;\n }\n}\n\n/**\n * The same pass, given the VIDEO instead of stills.\n *\n * Inline rather than an upload-and-poll: an ad is seconds long, so a data URL costs one\n * round trip where the Files API costs three. Skipped above the cap rather than truncated\n * — a review of the first half reported as a review is the failure this module exists to\n * stop. `WATCH_MAX_BYTES` is ours, not the gateway's: OpenRouter documents no hard inline\n * limit, only \"compress when possible\", and a number we picked is easier to reason about\n * than one nobody states. Probed at the cap rather than assumed — a 51.6MB file is a\n * 68.8MB request body and came back 200 in 45s, so the timeout below is the binding\n * constraint long before the size is.\n */\nasync function askVideo(video: string, prompt: string, spent: UsageSink): Promise<unknown> {\n let bytes: Buffer;\n try {\n bytes = await readFile(video);\n } catch {\n return null;\n }\n if (bytes.byteLength > WATCH_MAX_BYTES) return null;\n return await askGateway(\n RENDER_WATCH_MODEL,\n [\n { type: \"text\", text: prompt },\n { type: \"video_url\", video_url: { url: `data:video/mp4;base64,${bytes.toString(\"base64\")}` } },\n ],\n 600_000,\n spent,\n );\n}\n\nasync function ask(images: string[], prompt: string, spent: UsageSink): Promise<unknown> {\n return await askGateway(\n RENDER_REVIEW_MODEL,\n [\n { type: \"text\", text: prompt },\n ...images.map(\n (b64): ReviewContentPart => ({ type: \"image_url\", image_url: { url: `data:image/jpeg;base64,${b64}` } }),\n ),\n ],\n 180_000,\n spent,\n );\n}\n\n/**\n * One question about finished STILL images (base64 JPEG), through the same gateway and\n * accounting as the video review. Null when no model could answer, which the caller\n * reports as \"nobody looked\", never as \"clean\".\n */\nexport async function askAboutStills(\n images: string[],\n prompt: string,\n onSpend?: (usage: ReviewUsage) => void,\n): Promise<unknown> {\n if (!hasOpenRouterKey()) return null;\n return await ask(images, prompt, (usage) => onSpend?.(usage));\n}\n\n/**\n * One question about STILL images (base64 JPEG) to `model`, text first, through the same\n * gateway and accounting. Null when no model could answer.\n */\nexport async function askAboutImages(\n model: string,\n images: string[],\n prompt: string,\n onSpend?: (usage: ReviewUsage) => void,\n /** How long the answer may take: a long one (a spec written back) needs more than a verdict. */\n timeoutMs = 60_000,\n reasoning?: GatewayReasoning,\n /** Sent first as a system message, the same for every call of a kind (`askGateway`). */\n system?: string,\n /** More of the request: a `temperature` and `seed` for a judgment that must read the same each time. */\n request: Record<string, unknown> = {},\n): Promise<unknown> {\n if (!hasOpenRouterKey()) return null;\n return await askGateway(\n model,\n [\n { type: \"text\", text: prompt },\n ...images.map(\n (b64): ReviewContentPart => ({ type: \"image_url\", image_url: { url: `data:image/jpeg;base64,${b64}` } }),\n ),\n ],\n timeoutMs,\n (usage) => onSpend?.(usage),\n reasoning,\n request,\n system,\n );\n}\n\n/**\n * One text-only question to `model`, through the same gateway and accounting. Null when no\n * model could answer, which the caller reports as \"nobody looked\", never as a pass.\n */\nexport async function askAboutText(\n model: string,\n prompt: string,\n onSpend?: (usage: ReviewUsage) => void,\n /** An extraction pins its provider and asks for JSON at temperature 0: the same text reads the same. */\n opts: { timeoutMs?: number; request?: Record<string, unknown> } = {},\n): Promise<unknown> {\n if (!hasOpenRouterKey()) return null;\n return await askGateway(\n model,\n [{ type: \"text\", text: prompt }],\n opts.timeoutMs ?? 60_000,\n (usage) => onSpend?.(usage),\n undefined,\n opts.request,\n );\n}\n\n/**\n * Look at the finished video and report what is wrong with it.\n *\n * Returns null when the review could not run at all — no key, no ffmpeg, no readable\n * video — which the caller reports as \"nobody looked\", never as \"clean\". The\n * difference is the whole point: an unwatched render was reported as good.\n */\nexport async function reviewRenderedVideo(opts: {\n video: string;\n subject?: string;\n script?: string;\n /** Where the ad is set — the watch pass judges the accent against it. */\n market?: string;\n /**\n * The request, in the words it was made in. Not the spec, and not a summary: the point of\n * this pass is to compare the video against something that did NOT come from the same\n * reading of the ask, and a summary written by the reader is that reading again.\n */\n brief?: string;\n /** Scene timings, so a finding can name the file that produced the shot. */\n windows?: SceneWindow[];\n /** The company's rules this ad is held to: the watch pass hears the ones the playing video can break. */\n rules?: readonly CreativeRule[];\n /**\n * The rules a picture can break, checked on some of the sampled frames (`reviewAgainstRules`), each\n * labelled by its moment; null when nobody looked.\n */\n checkStills?: (stills: string[], labels: string[]) => Promise<RenderFinding[] | null>;\n /**\n * Called once per model call that returned a token count, so the caller can carry the\n * spend home. A review that could not run reports nothing, because it spent nothing.\n */\n onSpend?: (usage: ReviewUsage) => void;\n}): Promise<RenderFinding[] | null> {\n if (!hasOpenRouterKey()) return null;\n const duration = await videoDuration(opts.video);\n if (duration === null) return null;\n const spent: UsageSink = (usage) => opts.onSpend?.(usage);\n\n const dir = await mkdtemp(path.join(tmpdir(), \"baker-review-\"));\n try {\n const grabbed: { at: number; image: string }[] = [];\n for (const [i, at] of reviewFrameTimes(duration, RENDER_REVIEW_FRAMES).entries()) {\n const out = path.join(dir, `f${String(i).padStart(2, \"0\")}.jpg`);\n try {\n await execFileAsync(\"ffmpeg\", buildFrameGrabArgs(opts.video, at, out), { timeout: 30_000 });\n grabbed.push({ at, image: await readFile(out, { encoding: \"base64\" }) });\n } catch {\n // A frame that will not grab is not a reason to abandon the review — the rest\n // of the sample still answers every question being asked.\n }\n }\n if (grabbed.length === 0) return null;\n\n // The whole-reel question first and alone. Fired alongside twelve per-frame\n // calls it lost to the rate limit every time, and `ask` returns null on a\n // failure — so the run that found fourteen frame defects silently reported\n // nothing about the cast, the missing mark or the dead ending.\n const reel = await ask(\n grabbed.map((f) => f.image),\n buildReelReviewPrompt({ subject: opts.subject, script: opts.script }),\n spent,\n );\n const framePrompt = buildFrameReviewPrompt({ subject: opts.subject });\n const perFrame = await mapWithLimit(grabbed, REVIEW_CONCURRENCY, async (f) => ({\n at: f.at,\n json: await ask([f.image], framePrompt, spent),\n }));\n\n // Every answer coming back null means the model was unreachable, not that the\n // render is clean — the caller has to be able to tell those apart.\n const unread = perFrame.filter((f) => f.json === null).length;\n if (unread === perFrame.length && reel === null) return null;\n // The pass that WATCHES, run after the stills rather than beside them: it uploads the\n // whole video, and firing it alongside twelve frame calls is what lost the reel answer\n // to the rate limit before. Its findings are the ones a photograph cannot carry — the\n // accent, the voice against the mouth, the cuts.\n const watch = await askVideo(\n opts.video,\n buildWatchReviewPrompt({\n market: opts.market,\n script: opts.script,\n ...(opts.rules ? { rules: opts.rules } : {}),\n }),\n spent,\n );\n const ruled = await framesAgainstRules(grabbed, opts.checkStills);\n // Asked separately from the defect passes, because they are different judgements: one\n // is \"is this well made\", this one is \"is this the ad they asked for\". A well-made ad\n // of the wrong brief passes every other check here.\n const fidelity = opts.brief?.trim() ? await askVideo(opts.video, buildFidelityPrompt(opts.brief), spent) : null;\n const findings = [\n ...classifyFrameFindings(perFrame, opts.windows ?? []),\n ...classifyReelFindings(reel),\n ...classifyWatchFindings(watch),\n ...classifyWatchDefects(watch, opts.windows ?? []),\n ...classifyWatchRules(watch, opts.rules ?? [], opts.windows ?? []),\n ...ruled,\n ...classifyFidelityFindings(fidelity),\n // Measured, not judged: a model looking at frames cannot hear the mix.\n ...(await measureAudio(opts.video)),\n ];\n findings.push(\n ...unreviewedNotes({\n watched: watch !== null,\n fidelityAsked: Boolean(opts.brief?.trim()),\n fidelityRead: fidelity !== null,\n unread,\n frames: perFrame.length,\n }),\n );\n return findings;\n } finally {\n await rm(dir, { recursive: true, force: true });\n }\n}\n\n/**\n * Each scene's slot on the timeline, read from the blueprint beside a canvas.\n *\n * Returns an empty list when the canvas has no split blueprint — a hand-built graph, a\n * static ad — and the findings then carry timestamps only, which is what they did\n * before. Never throws: a review that cannot name the file is still worth having.\n */\n/**\n * What the review has to be told about the ad, read from the blueprint beside the canvas.\n *\n * Every question the two whole-reel passes ask is relative to something: the accent is\n * judged against a MARKET, the cast against a SCRIPT, the frames against an advertiser.\n * Handed none of them, `buildWatchReviewPrompt` still asked \"does the speaker's accent\n * belong there?\" with no antecedent for \"there\" — and `classifyWatchFindings` still turned\n * the answer into a BLOCKING finding. A verdict against nothing is worse than no verdict,\n * and the accent is the exact failure this pass was added for.\n *\n * Read rather than passed down because the caller is `canvas run`, which is handed a graph\n * and no brief. `prompt.json` sits in the same directory `sceneWindowsBeside` already\n * reads, and is the one artefact that knows all three.\n *\n * Returns an empty context for a hand-built canvas — the prompts then drop the clauses\n * that have no antecedent, which is what they did before.\n */\nexport async function reviewContextBeside(\n canvasPath: string,\n): Promise<{ market?: string; subject?: string; script?: string }> {\n const raw = await readFile(path.join(path.dirname(canvasPath), \"prompt.json\"), \"utf-8\").catch(() => null);\n if (!raw) return {};\n try {\n const blueprint = JSON.parse(raw) as {\n global?: { market?: unknown; transcript?: unknown; branding?: { name?: unknown } };\n };\n const global = blueprint.global ?? {};\n const text = (value: unknown): string | undefined =>\n typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n return {\n ...(text(global.market) ? { market: text(global.market) } : {}),\n ...(text(global.branding?.name) ? { subject: text(global.branding?.name) } : {}),\n ...(text(global.transcript) ? { script: text(global.transcript) } : {}),\n };\n } catch {\n // A blueprint that will not parse is the run's problem, not the review's.\n return {};\n }\n}\n\nexport async function sceneWindowsBeside(canvasPath: string): Promise<SceneWindow[]> {\n const dir = path.join(path.dirname(canvasPath), \"scenes\");\n const files = await readdir(dir).catch(() => null);\n if (!files) return [];\n const windows: SceneWindow[] = [];\n for (const name of files.filter((f) => f.endsWith(\".json\")).sort()) {\n const raw = await readFile(path.join(dir, name), \"utf-8\").catch(() => null);\n if (!raw) continue;\n try {\n const scene = JSON.parse(raw) as { start_s?: unknown; end_s?: unknown };\n if (typeof scene.start_s === \"number\" && typeof scene.end_s === \"number\") {\n windows.push({ file: `scenes/${name}`, startS: scene.start_s, endS: scene.end_s });\n }\n } catch {\n // A scene file that will not parse is the run's problem, not the review's.\n }\n }\n return windows;\n}\n\n/**\n * What nobody looked at, said out loud.\n *\n * A partial review reported as a complete one is the failure this whole module exists to\n * stop. `askVideo` returns null on a timeout, an HTTP failure, a reply it could not parse\n * — and deterministically for a finished video over the inline cap; every one of those\n * contributed zero findings, which reads as \"the audio and the cuts are fine\". They are\n * unchecked, not fine, and they are the findings a photograph cannot carry.\n */\nfunction unreviewedNotes(state: {\n watched: boolean;\n fidelityAsked: boolean;\n fidelityRead: boolean;\n unread: number;\n frames: number;\n}): RenderFinding[] {\n const notes: RenderFinding[] = [];\n if (!state.watched) {\n notes.push({\n severity: \"warning\",\n what: \"Nobody watched the finished video end to end — the accent, the voice against the mouth and the cuts are unchecked. The frame-by-frame review still ran.\",\n });\n }\n if (state.fidelityAsked && !state.fidelityRead) {\n notes.push({\n severity: \"warning\",\n what: \"The video was not checked against what you asked for — only against whether it is well made. A well-made ad of the wrong brief passes every other check here.\",\n });\n }\n if (state.unread > 0) {\n notes.push({\n severity: \"warning\",\n what: `${state.unread} of ${state.frames} frames could not be reviewed — that part of the video is unchecked.`,\n });\n }\n return notes;\n}\n","/**\n * What a review is asked about the company's rules and how its answer is graded, for every look at\n * a finished ad: the rules a picture can show broken (`reviewedRules`) and the ones only the video\n * playing can (`heardRules`), each held by id. Pure: the asking is `rules-review.ts` for stills and\n * the watch pass (`render-review.ts`) for a video.\n */\nimport type { CreativeRule } from \"../../../creative-rules/schema.ts\";\nimport { rulesBlock } from \"../../../creative-rules/select.ts\";\nimport type { FindingKind, RenderFinding } from \"./render-review.ts\";\n\n/** Rules a still can show broken: a voice, a sound or subtitles need the video playing. */\nconst SEEN_IN_A_STILL: ReadonlySet<CreativeRule[\"applies\"]> = new Set([\"copy\", \"picture\", \"cast\", \"logo\", \"any\"]);\n\n/**\n * The rules a finished ad is held to by eye: the ones a person taught (never BRAND.md's, which the\n * briefs, the judge and the banned-word check carry instead) that a picture can break. Measured on\n * production, Oct 2026: held to its BRAND.md's rules, 49 of 50 approved ads were blocked (a web\n * design system's \"no gradients\", \"courts always from above\"); held to the rules a person taught,\n * 3, two of them true breaks. Pure.\n */\nexport const reviewedRules = (rules: readonly CreativeRule[]) =>\n rules.filter((r) => r.origin === \"learned\" && SEEN_IN_A_STILL.has(r.applies));\n\n/** The question about the pictures; the rules themselves are the system message (`rulesSystem`). Pure. */\nexport function buildRulesReviewPrompt(opts: { formats: readonly string[]; rules: readonly CreativeRule[] }): string {\n const ids = reviewedRules(opts.rules).map((r) => r.id);\n return [\n `These are the finished sizes of ONE ad, in this order: ${opts.formats.join(\", \")}.`,\n `Check the ad against each of the company's rules above (${ids.join(\", \")}). A rule is broken only when you can plainly see it broken on the ad as it is: its words as they print, what the picture shows, who appears, the logo. A rule about something this ad does not show is not broken. Never report anything that is not one of these rules.`,\n 'For each rule broken, give its id exactly, the size you see it on, and in under twenty words what on the ad breaks it. Reply with only this JSON: {\"broken\":[{\"rule\":\"<rule id>\",\"format\":\"4:5\",\"what\":\"...\"}]}; {\"broken\":[]} when the ad keeps every rule.',\n ].join(\"\\n\");\n}\n\n/** The company's rules as the system message every rules review shares. Pure. */\nexport function rulesSystem(rules: readonly CreativeRule[]): string {\n return rulesBlock(\n reviewedRules(rules),\n \"You check finished ads against the company's own standing rules for every ad. A never or a must is a requirement; a prefer is its taste. The rules, each with its id:\",\n );\n}\n\n/** What on the ad a rule is about, as a finding names it. */\nconst ELEMENT: Record<CreativeRule[\"applies\"], FindingKind[\"element\"]> = {\n copy: \"copy\",\n logo: \"logo\",\n picture: \"picture\",\n cast: \"picture\",\n any: \"picture\",\n voice: \"other\",\n sound: \"other\",\n subtitles: \"other\",\n};\n\n/** The model's answer as findings: a never or a must broken blocks, a prefer is a note, an unknown id is dropped. Pure. */\nexport function classifyRuleFindings(json: unknown, rules: readonly CreativeRule[]): RenderFinding[] {\n const broken = (json as { broken?: unknown } | null)?.broken;\n if (!Array.isArray(broken)) return [];\n return broken.flatMap((raw) => {\n const entry = (raw ?? {}) as { rule?: unknown; format?: unknown; what?: unknown };\n const rule = rules.find((r) => r.id === entry.rule);\n const what = typeof entry.what === \"string\" ? entry.what.trim() : \"\";\n if (!rule || !what) return [];\n const format = typeof entry.format === \"string\" && entry.format.trim() ? `${entry.format.trim()}: ` : \"\";\n const kind: FindingKind = {\n item: \"rule\",\n element: ELEMENT[rule.applies],\n defect: \"other\",\n edges: [],\n rule: rule.id,\n };\n return [\n {\n severity: rule.strength === \"prefer\" ? \"warning\" : \"blocking\",\n what: `${format}breaks ${rule.id} (${rule.text}): ${what}`,\n kind,\n } satisfies RenderFinding,\n ];\n });\n}\n\n/** Rules only the video playing can show broken: how it sounds, its subtitles, what is said. */\nconst HEARD: ReadonlySet<CreativeRule[\"applies\"]> = new Set([\"voice\", \"sound\", \"subtitles\", \"copy\", \"any\"]);\n\n/** The rules the watch pass holds a video to: the ones a person taught that the playing video can break. Pure. */\nexport const heardRules = (rules: readonly CreativeRule[]) =>\n rules.filter((r) => r.origin === \"learned\" && HEARD.has(r.applies));\n"],"mappings":"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","names":[]}
@@ -0,0 +1,57 @@
1
+ import {
2
+ formEventKey
3
+ } from "./chunk-PILLZPNC.js";
4
+ import {
5
+ flowNodeTriggers
6
+ } from "./chunk-YOHGEF2N.js";
7
+
8
+ // ../api/src/analytics/flowEventKeys.ts
9
+ function flowNodes(node, acc = []) {
10
+ if (!node || typeof node !== "object") return acc;
11
+ const record = node;
12
+ acc.push(record);
13
+ if (Array.isArray(record.children)) for (const child of record.children) flowNodes(child, acc);
14
+ return acc;
15
+ }
16
+ function flowEventKeys(tree, slug) {
17
+ const primary = [];
18
+ const secondary = [];
19
+ const nodes = flowNodes(tree).filter((node) => typeof node.id === "string" && node.id !== "");
20
+ if (nodes.length === 0) return [];
21
+ for (const node of nodes) {
22
+ const id = node.id;
23
+ const triggers = flowNodeTriggers(node.nodeData);
24
+ for (const triggerId of triggers.available) {
25
+ const candidate = {
26
+ eventKey: formEventKey(slug, id, triggerId),
27
+ nodeId: id,
28
+ nodeName: typeof node.name === "string" ? node.name : id,
29
+ nodeType: triggers.type,
30
+ triggerId,
31
+ isCompletion: triggers.completion === triggerId
32
+ };
33
+ (candidate.isCompletion ? primary : secondary).push(candidate);
34
+ }
35
+ }
36
+ return [
37
+ ...primary,
38
+ ...secondary,
39
+ {
40
+ eventKey: `submit:${slug}`,
41
+ nodeId: null,
42
+ nodeName: "the Form ran out of steps",
43
+ nodeType: null,
44
+ triggerId: null,
45
+ // A Form reaching its last node is as primary as an outcome gets for a
46
+ // Form with no widget in it — but it never fires on one that ends in a
47
+ // booking widget or a redirect, so it does not lead the list.
48
+ isCompletion: false
49
+ }
50
+ ];
51
+ }
52
+
53
+ export {
54
+ flowNodes,
55
+ flowEventKeys
56
+ };
57
+ //# sourceMappingURL=chunk-ONGZKI5J.js.map
@@ -0,0 +1,26 @@
1
+ import {
2
+ writeJsonEnvelope
3
+ } from "./chunk-VF3W7CI7.js";
4
+ import {
5
+ apiGet
6
+ } from "./chunk-UUDWZIDC.js";
7
+
8
+ // src/available-accounts.ts
9
+ var AVAILABLE_ARG = {
10
+ type: "boolean",
11
+ description: "List everything the connected login reaches, each marked selected: true|false. Use it when the account, property, site or container the user means is not in the plain list.",
12
+ required: false
13
+ };
14
+ async function writeAvailableAccounts(platform, onError) {
15
+ try {
16
+ writeJsonEnvelope(await apiGet("/api/connections/available", { platform }));
17
+ } catch (err) {
18
+ onError(err);
19
+ }
20
+ }
21
+
22
+ export {
23
+ AVAILABLE_ARG,
24
+ writeAvailableAccounts
25
+ };
26
+ //# sourceMappingURL=chunk-OOZNTJP6.js.map
@@ -0,0 +1,39 @@
1
+ import {
2
+ ApiError
3
+ } from "./chunk-UUDWZIDC.js";
4
+ import {
5
+ writeJson
6
+ } from "./chunk-6V4UAC5I.js";
7
+
8
+ // src/commands/posts/shared.ts
9
+ function reportError(err) {
10
+ if (err instanceof ApiError) {
11
+ writeJson({ ok: false, error: { code: err.code, message: err.message } });
12
+ process.exit(1);
13
+ }
14
+ writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: "Unexpected error" } });
15
+ process.exit(1);
16
+ }
17
+ function validationError(message) {
18
+ writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message } });
19
+ process.exit(1);
20
+ }
21
+ function nextStepHints(post) {
22
+ if (post.platform !== "linkedin") return [];
23
+ if (post.usable === "usable") {
24
+ return [`Boost it: \`baker ads linkedin creatives create --format tla --post ${post.id} --campaign <ad set>\`.`];
25
+ }
26
+ if (post.usable === "needs_approval") {
27
+ return [
28
+ `It can run as a Thought Leader ad once its author approves it (Campaign Manager \u2192 Thought leader ad \u2192 find the post \u2192 request permission; they can turn on auto-approval for the page). Stage it now with \`baker ads linkedin creatives create --format tla --post ${post.id} --campaign <ad set>\` \u2014 LinkedIn refuses it at publish until they have. If the user says the author already approved it, record it with \`baker posts approved ${post.id} --account-id <ad account>\` and Baker stops reminding them for that ad account.`
29
+ ];
30
+ }
31
+ return [];
32
+ }
33
+
34
+ export {
35
+ reportError,
36
+ validationError,
37
+ nextStepHints
38
+ };
39
+ //# sourceMappingURL=chunk-OP3NHIFH.js.map
@@ -0,0 +1,106 @@
1
+ import {
2
+ apiGet
3
+ } from "./chunk-UUDWZIDC.js";
4
+
5
+ // src/commands/testimonials/emptyCorpusHints.ts
6
+ function resolveEmptyReason({
7
+ resultCount,
8
+ activeFilters,
9
+ sourceCount
10
+ }) {
11
+ if (resultCount > 0) {
12
+ return null;
13
+ }
14
+ if (activeFilters.length > 0) {
15
+ return "filtered_out";
16
+ }
17
+ return sourceCount === 0 ? "no_corpus_connected" : "corpus_empty";
18
+ }
19
+ var NO_CORPUS_EXIT = "Testimonials are ingested from the client's public review pages \u2014 an agent cannot write one \u2014 so no rewording will find quotes. If the user named the client's own review page (Google Maps, Trustpilot, Yelp, Tripadvisor, G2, Capterra, Amazon, App Store, Google Play), add it with `baker testimonials sources add <link>` \u2014 its reviews arrive over the next minutes, not in this turn. Stop searching and source proof another way: a result or case study the client already published, a named-customer logo (`baker images logo`), or a founder claim attributed as a claim. Otherwise ship without a testimonial block and file the gap: `baker actions create --name \"Collect customer quotes for <page>\" --priority medium --tags <slug>`. Never invent, paraphrase-into-existence, or pad with unrelated praise.";
20
+ function emptyReasonDetail(reason, sourceCount, activeFilters) {
21
+ if (reason === "filtered_out") {
22
+ return `No rows matched, and ${activeFilters.join(", ")} narrowed this read. The corpus was not checked \u2014 drop every filter to see whether the library itself is empty.`;
23
+ }
24
+ if (reason === "no_corpus_connected") {
25
+ return "This company has no review source connected \u2014 checked against its source list, not inferred from the empty result.";
26
+ }
27
+ return `${sourceCount} review source${sourceCount === 1 ? " is" : "s are"} connected but hold no testimonials yet \u2014 the source is there, the rows are not. Ingestion may still be running.`;
28
+ }
29
+ function morePagesHint(resultCount, cursor) {
30
+ const found = resultCount === 0 ? "This page held no matches" : `This page held ${resultCount}`;
31
+ return `${found}, and the library continues past it \u2014 so this is one page, not the client's whole set. Do not report it as the corpus and do not conclude anything is missing from it. Read the next page with \`baker testimonials list --cursor ${cursor}\` (same filters), or go straight at the rows you want with \`baker testimonials search <query>\`.`;
32
+ }
33
+ function endOfWalkHint(command) {
34
+ const noun = command === "search" ? "results" : "rows";
35
+ return `That was the end of the library \u2014 no more ${noun} past the page before this one. Nothing here says the corpus is empty (the earlier pages held it), so answer from what those pages returned rather than re-reading.`;
36
+ }
37
+ async function measureEmptyCorpus({
38
+ command,
39
+ resultCount,
40
+ activeFilters,
41
+ nextCursor = null,
42
+ continued = false
43
+ }) {
44
+ if (nextCursor) {
45
+ return { hints: [morePagesHint(resultCount, nextCursor)] };
46
+ }
47
+ if (resultCount > 0) {
48
+ return { hints: [] };
49
+ }
50
+ if (continued) {
51
+ return { hints: [endOfWalkHint(command)] };
52
+ }
53
+ if (activeFilters.length > 0) {
54
+ const reason2 = "filtered_out";
55
+ return {
56
+ hints: emptyCorpusHints({ command, reason: reason2, sourceCount: 0, activeFilters }),
57
+ empty: { reason: reason2, detail: emptyReasonDetail(reason2, 0, activeFilters) }
58
+ };
59
+ }
60
+ let sourceCount;
61
+ try {
62
+ const sources = await apiGet("/api/testimonials/sources");
63
+ sourceCount = Array.isArray(sources) ? sources.length : 0;
64
+ } catch {
65
+ return {
66
+ hints: [
67
+ "No rows, and the check for connected review sources failed \u2014 so this is NOT evidence that the client has no reviews. Do not record an absence you could not verify. Re-run once; if it fails again, say the library could not be read rather than that it is empty."
68
+ ]
69
+ };
70
+ }
71
+ const reason = resolveEmptyReason({ resultCount, activeFilters, sourceCount });
72
+ if (reason === null) {
73
+ return { hints: [] };
74
+ }
75
+ return {
76
+ hints: emptyCorpusHints({ command, reason, sourceCount, activeFilters }),
77
+ empty: { reason, detail: emptyReasonDetail(reason, sourceCount, activeFilters) }
78
+ };
79
+ }
80
+ function emptyCorpusHints({
81
+ command,
82
+ reason,
83
+ sourceCount,
84
+ activeFilters
85
+ }) {
86
+ if (reason === null) {
87
+ return [];
88
+ }
89
+ if (reason === "filtered_out") {
90
+ return [
91
+ `No rows \u2014 ${activeFilters.join(", ")} narrowed this. Drop every filter and re-run once before touching the query; a filter combination and an empty library look identical from here.`
92
+ ];
93
+ }
94
+ const lead = command === "search" ? "No hits" : "No rows";
95
+ if (reason === "no_corpus_connected") {
96
+ return [`${lead}, and this company's source list is empty: there is no review corpus to search. ${NO_CORPUS_EXIT}`];
97
+ }
98
+ return [
99
+ `${lead}. ${sourceCount} review source${sourceCount === 1 ? " is" : "s are"} connected but no testimonials have landed yet \u2014 so this is a timing or ingestion gap, not a missing connection, and re-querying will not change it. Ingestion may still be running: say so rather than reporting the client has no reviews. ${NO_CORPUS_EXIT}`
100
+ ];
101
+ }
102
+
103
+ export {
104
+ measureEmptyCorpus
105
+ };
106
+ //# sourceMappingURL=chunk-OU4KWL6B.js.map
@@ -0,0 +1,91 @@
1
+ // src/commands/rules/view.ts
2
+ import { readdir, readFile } from "fs/promises";
3
+ import path from "path";
4
+ function readSurface(value) {
5
+ if (value === void 0) return {};
6
+ return value === "ads" || value === "landings" ? { surface: value } : null;
7
+ }
8
+ var RULE_CHARS = 200;
9
+ var QUOTE_CHARS = 160;
10
+ var RETIRE_AFTER = 3;
11
+ var MANY_RULES = 40;
12
+ var cut = (text, max) => text.length > max ? `${text.slice(0, max - 1)}\u2026` : text;
13
+ function fromOf(rule) {
14
+ if (rule.origin === "declared") return "BRAND.md";
15
+ const when = rule.source.date ? ` ${rule.source.date}` : "";
16
+ const where = rule.source.slug ? ` on ${rule.source.slug}` : "";
17
+ return `taught${when}${where}`;
18
+ }
19
+ function checkView(check) {
20
+ return {
21
+ ...check?.forbid ? { bans: check.forbid } : {},
22
+ ...check?.allow ? { except: check.allow } : {},
23
+ ...check?.require ? { requires: check.require } : {},
24
+ ...check?.people ? { people: check.people } : {}
25
+ };
26
+ }
27
+ function rulesView(rules, opts = {}) {
28
+ const max = opts.full ? Number.POSITIVE_INFINITY : RULE_CHARS;
29
+ const quoteMax = opts.full ? Number.POSITIVE_INFINITY : QUOTE_CHARS;
30
+ return rules.map((r) => ({
31
+ id: r.id,
32
+ strength: r.strength,
33
+ ...r.for ? { for: r.for } : {},
34
+ applies: r.applies,
35
+ rule: cut(r.text, max),
36
+ ...r.source.quote ? { their_words: cut(r.source.quote, quoteMax) } : {},
37
+ from: fromOf(r),
38
+ ...checkView(r.check),
39
+ ...Object.keys(r.scope).length > 0 ? { scope: r.scope } : {},
40
+ ...r.status === "retired" ? { status: "retired" } : {},
41
+ ...r.retiredBy ? { retired_by: r.retiredBy } : {}
42
+ }));
43
+ }
44
+ function waiverCounts(specs) {
45
+ const counts = /* @__PURE__ */ new Map();
46
+ for (const spec of specs) {
47
+ const waive = spec?.waive;
48
+ if (!Array.isArray(waive)) continue;
49
+ for (const entry of waive) {
50
+ const id = entry?.rule;
51
+ if (typeof id === "string" && id) counts.set(id, (counts.get(id) ?? 0) + 1);
52
+ }
53
+ }
54
+ return counts;
55
+ }
56
+ async function readCreativeSpecs(root) {
57
+ const dir = path.join(root, "src", "creatives");
58
+ const entries = await readdir(dir, { withFileTypes: true }).catch(() => []);
59
+ const specs = await Promise.all(
60
+ entries.filter((e) => e.isDirectory() && !e.name.startsWith("_")).map(
61
+ (e) => readFile(path.join(dir, e.name, "prompt.json"), "utf8").then((raw) => JSON.parse(raw)).catch(() => null)
62
+ )
63
+ );
64
+ return specs.filter((s) => s !== null);
65
+ }
66
+ function rulesHints(active, waived) {
67
+ const hints = [];
68
+ for (const rule of active) {
69
+ const times = waived.get(rule.id) ?? 0;
70
+ if (times >= RETIRE_AFTER) {
71
+ hints.push(
72
+ `${rule.id} was waived by ${times} ads: ask the person whether it still holds, and \`baker rules retire ${rule.id}\` if not.`
73
+ );
74
+ }
75
+ }
76
+ if (active.length > MANY_RULES) {
77
+ hints.push(
78
+ `${active.length} active rules: every prompt carries them all. Ask the person whether some can be retired or merged.`
79
+ );
80
+ }
81
+ return hints;
82
+ }
83
+
84
+ export {
85
+ readSurface,
86
+ rulesView,
87
+ waiverCounts,
88
+ readCreativeSpecs,
89
+ rulesHints
90
+ };
91
+ //# sourceMappingURL=chunk-OW3D63SI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/rules/view.ts"],"sourcesContent":["/**\n * The company's creative rules as the agent reads them, in `baker creatives brief` and\n * `baker rules list`: what each is for (ads, landings or both), each one's id, strength and words, the person's own words when\n * they taught it, and where it came from; and which ones ads keep waiving. Pure, but for the read\n * of the ads' waivers.\n */\nimport { readdir, readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport type { CreativeRule } from \"../../engine/creative-rules/schema.ts\";\n\n/** What `--for` names on the commands that read rules or pieces: ads or landings, {} when left out, null for anything else. Pure. */\nexport function readSurface(value: unknown): { surface?: \"ads\" | \"landings\" } | null {\n if (value === undefined) return {};\n return value === \"ads\" || value === \"landings\" ? { surface: value } : null;\n}\n\n/** A rule cut to this in the compact view: the whole is behind `--full`. */\nconst RULE_CHARS = 200;\nconst QUOTE_CHARS = 160;\n/** Waived this often, a rule may no longer hold. */\nconst RETIRE_AFTER = 3;\n/** Past this many active rules, every prompt carries a long list: worth a look. */\nconst MANY_RULES = 40;\n\nconst cut = (text: string, max: number) => (text.length > max ? `${text.slice(0, max - 1)}…` : text);\n\n/** Where a rule came from, in a few words. */\nfunction fromOf(rule: CreativeRule): string {\n if (rule.origin === \"declared\") return \"BRAND.md\";\n const when = rule.source.date ? ` ${rule.source.date}` : \"\";\n const where = rule.source.slug ? ` on ${rule.source.slug}` : \"\";\n return `taught${when}${where}`;\n}\n\nexport type RuleView = {\n id: string;\n strength: CreativeRule[\"strength\"];\n /** landings or all; absent, the rule is for ads. */\n for?: CreativeRule[\"for\"];\n applies: CreativeRule[\"applies\"];\n rule: string;\n their_words?: string;\n from: string;\n /** The words it bans in an ad's words, and the phrases that may still hold them. */\n bans?: string[];\n except?: string[];\n /** Words every ad must say. */\n requires?: string[];\n /** Only real people may appear. */\n people?: \"real\";\n scope?: CreativeRule[\"scope\"];\n status?: \"retired\";\n retired_by?: string;\n};\n\n/** What code checks of a rule, as the agent reads it. Pure. */\nfunction checkView(check: CreativeRule[\"check\"]): Pick<RuleView, \"bans\" | \"except\" | \"requires\" | \"people\"> {\n return {\n ...(check?.forbid ? { bans: check.forbid } : {}),\n ...(check?.allow ? { except: check.allow } : {}),\n ...(check?.require ? { requires: check.require } : {}),\n ...(check?.people ? { people: check.people } : {}),\n };\n}\n\n/** Each rule as the agent reads it. Pure. */\nexport function rulesView(rules: readonly CreativeRule[], opts: { full?: boolean } = {}): RuleView[] {\n const max = opts.full ? Number.POSITIVE_INFINITY : RULE_CHARS;\n const quoteMax = opts.full ? Number.POSITIVE_INFINITY : QUOTE_CHARS;\n return rules.map((r) => ({\n id: r.id,\n strength: r.strength,\n ...(r.for ? { for: r.for } : {}),\n applies: r.applies,\n rule: cut(r.text, max),\n ...(r.source.quote ? { their_words: cut(r.source.quote, quoteMax) } : {}),\n from: fromOf(r),\n ...checkView(r.check),\n ...(Object.keys(r.scope).length > 0 ? { scope: r.scope } : {}),\n ...(r.status === \"retired\" ? { status: \"retired\" as const } : {}),\n ...(r.retiredBy ? { retired_by: r.retiredBy } : {}),\n }));\n}\n\n/** How many ads waive each rule (`waive: [{rule, why}]` in their prompt.json). Pure. */\nexport function waiverCounts(specs: readonly unknown[]): Map<string, number> {\n const counts = new Map<string, number>();\n for (const spec of specs) {\n const waive = (spec as { waive?: unknown } | null)?.waive;\n if (!Array.isArray(waive)) continue;\n for (const entry of waive) {\n const id = (entry as { rule?: unknown } | null)?.rule;\n if (typeof id === \"string\" && id) counts.set(id, (counts.get(id) ?? 0) + 1);\n }\n }\n return counts;\n}\n\n/** Every creative's prompt.json, parsed; one that cannot be read is left out. */\nexport async function readCreativeSpecs(root: string): Promise<unknown[]> {\n const dir = path.join(root, \"src\", \"creatives\");\n const entries = await readdir(dir, { withFileTypes: true }).catch(() => []);\n const specs = await Promise.all(\n entries\n .filter((e) => e.isDirectory() && !e.name.startsWith(\"_\"))\n .map((e) =>\n readFile(path.join(dir, e.name, \"prompt.json\"), \"utf8\")\n .then((raw): unknown => JSON.parse(raw))\n .catch(() => null),\n ),\n );\n return specs.filter((s) => s !== null);\n}\n\n/** What the rules say to do next: retire one ads keep waiving, look at a list grown long. Pure. */\nexport function rulesHints(active: readonly CreativeRule[], waived: ReadonlyMap<string, number>): string[] {\n const hints: string[] = [];\n for (const rule of active) {\n const times = waived.get(rule.id) ?? 0;\n if (times >= RETIRE_AFTER) {\n hints.push(\n `${rule.id} was waived by ${times} ads: ask the person whether it still holds, and \\`baker rules retire ${rule.id}\\` if not.`,\n );\n }\n }\n if (active.length > MANY_RULES) {\n hints.push(\n `${active.length} active rules: every prompt carries them all. Ask the person whether some can be retired or merged.`,\n );\n }\n return hints;\n}\n"],"mappings":"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","names":[]}