@koda-sl/baker-cli 0.442.0 → 0.443.0-dev.043c1d4ac

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 (1581) hide show
  1. package/README.md +38 -23
  2. package/canvas/tiktok-captions-composition/index.html +5 -6
  3. package/canvas/tiktok-captions-composition/meta.json +5 -0
  4. package/dist/account-4H7QVBRK.js +80 -0
  5. package/dist/account-4H7QVBRK.js.map +1 -0
  6. package/dist/account-IEVEOFIK.js +49 -0
  7. package/dist/account-IEVEOFIK.js.map +1 -0
  8. package/dist/account-RDRK7NOE.js +79 -0
  9. package/dist/account-RDRK7NOE.js.map +1 -0
  10. package/dist/account-writes-AK42HGRM.js +66 -0
  11. package/dist/account-writes-AK42HGRM.js.map +1 -0
  12. package/dist/accounts-4CDRK4S4.js +75 -0
  13. package/dist/accounts-4CDRK4S4.js.map +1 -0
  14. package/dist/accounts-4TYIUVWY.js +77 -0
  15. package/dist/accounts-4TYIUVWY.js.map +1 -0
  16. package/dist/accounts-5QDKBZMH.js +115 -0
  17. package/dist/accounts-5QDKBZMH.js.map +1 -0
  18. package/dist/accounts-6COLJJHM.js +611 -0
  19. package/dist/accounts-6COLJJHM.js.map +1 -0
  20. package/dist/accounts-KYJO3JC6.js +114 -0
  21. package/dist/accounts-KYJO3JC6.js.map +1 -0
  22. package/dist/actions-PEI6ZQAG.js +55 -0
  23. package/dist/active-entities-YUSOUR5M.js +103 -0
  24. package/dist/active-entities-YUSOUR5M.js.map +1 -0
  25. package/dist/activities-ZVQOBHZH.js +74 -0
  26. package/dist/activities-ZVQOBHZH.js.map +1 -0
  27. package/dist/ad-group-writes-QQS4223F.js +170 -0
  28. package/dist/ad-group-writes-QQS4223F.js.map +1 -0
  29. package/dist/ad-groups-WGPDPUI2.js +68 -0
  30. package/dist/ad-groups-WGPDPUI2.js.map +1 -0
  31. package/dist/ad-writes-XE2IE4DS.js +174 -0
  32. package/dist/ad-writes-XE2IE4DS.js.map +1 -0
  33. package/dist/add-577QWMCF.js +97 -0
  34. package/dist/add-577QWMCF.js.map +1 -0
  35. package/dist/add-CUWAW7KG.js +105 -0
  36. package/dist/add-CUWAW7KG.js.map +1 -0
  37. package/dist/add-XDOQQCHS.js +104 -0
  38. package/dist/add-XDOQQCHS.js.map +1 -0
  39. package/dist/add-XEDSBYLM.js +280 -0
  40. package/dist/add-XEDSBYLM.js.map +1 -0
  41. package/dist/ads-BCOSQALY.js +77 -0
  42. package/dist/ads-BCOSQALY.js.map +1 -0
  43. package/dist/ads-H7GH7A26.js +113 -0
  44. package/dist/ads-H7GH7A26.js.map +1 -0
  45. package/dist/ads-TJ7ACFHG.js +40 -0
  46. package/dist/adsets-H7QT42U6.js +176 -0
  47. package/dist/adsets-H7QT42U6.js.map +1 -0
  48. package/dist/advertisers-WSNHNCBQ.js +116 -0
  49. package/dist/advertisers-WSNHNCBQ.js.map +1 -0
  50. package/dist/advertisers-YMHPZYNF.js +111 -0
  51. package/dist/advertisers-YMHPZYNF.js.map +1 -0
  52. package/dist/analytics-PT2GKCFU.js +1958 -0
  53. package/dist/analytics-PT2GKCFU.js.map +1 -0
  54. package/dist/analytics-ZVWUY66X.js +433 -0
  55. package/dist/analytics-ZVWUY66X.js.map +1 -0
  56. package/dist/animate-3Z7HXOLE.js +480 -0
  57. package/dist/animate-3Z7HXOLE.js.map +1 -0
  58. package/dist/assign-B26AJLGN.js +77 -0
  59. package/dist/assign-B26AJLGN.js.map +1 -0
  60. package/dist/audience-size-ZX565D5P.js +94 -0
  61. package/dist/audience-size-ZX565D5P.js.map +1 -0
  62. package/dist/audiences-HFRVIE2X.js +85 -0
  63. package/dist/audiences-HFRVIE2X.js.map +1 -0
  64. package/dist/audiences-JACGRBNN.js +78 -0
  65. package/dist/audiences-JACGRBNN.js.map +1 -0
  66. package/dist/audiences-TGD5US2M.js +268 -0
  67. package/dist/audiences-TGD5US2M.js.map +1 -0
  68. package/dist/audit-AD4ZZNJN.js +88 -0
  69. package/dist/audit-AD4ZZNJN.js.map +1 -0
  70. package/dist/audit-SAXVPGWS.js +151 -0
  71. package/dist/audit-SAXVPGWS.js.map +1 -0
  72. package/dist/autocomplete-6PYFCOMX.js +107 -0
  73. package/dist/autocomplete-6PYFCOMX.js.map +1 -0
  74. package/dist/avatars-2UQJXHPV.js +38 -0
  75. package/dist/bid-pricing-WSHACGX4.js +99 -0
  76. package/dist/bid-pricing-WSHACGX4.js.map +1 -0
  77. package/dist/brand-XBABUT52.js +22 -0
  78. package/dist/brief-KKNC32TA.js +478 -0
  79. package/dist/brief-KKNC32TA.js.map +1 -0
  80. package/dist/businesses-JBDQZZIG.js +53 -0
  81. package/dist/businesses-JBDQZZIG.js.map +1 -0
  82. package/dist/campaign-groups-G35366AW.js +95 -0
  83. package/dist/campaign-groups-G35366AW.js.map +1 -0
  84. package/dist/campaign-writes-SXLZFYF6.js +170 -0
  85. package/dist/campaign-writes-SXLZFYF6.js.map +1 -0
  86. package/dist/campaign-writes-ZQGN7FQ3.js +165 -0
  87. package/dist/campaign-writes-ZQGN7FQ3.js.map +1 -0
  88. package/dist/campaigns-GXUCHQ2S.js +109 -0
  89. package/dist/campaigns-GXUCHQ2S.js.map +1 -0
  90. package/dist/campaigns-WBEG5QA4.js +110 -0
  91. package/dist/campaigns-WBEG5QA4.js.map +1 -0
  92. package/dist/campaigns-WECN54WV.js +107 -0
  93. package/dist/campaigns-WECN54WV.js.map +1 -0
  94. package/dist/campaigns-YS3OGQXO.js +76 -0
  95. package/dist/campaigns-YS3OGQXO.js.map +1 -0
  96. package/dist/canvas-KEXE5P6S.js +46 -0
  97. package/dist/capabilities-74I5AQ36.js +144 -0
  98. package/dist/capabilities-74I5AQ36.js.map +1 -0
  99. package/dist/cards-4477BFEV.js +85 -0
  100. package/dist/cards-4477BFEV.js.map +1 -0
  101. package/dist/catalog-IQEQ5TGQ.js +66 -0
  102. package/dist/catalog-IQEQ5TGQ.js.map +1 -0
  103. package/dist/catalogs-BRXEDE56.js +128 -0
  104. package/dist/catalogs-BRXEDE56.js.map +1 -0
  105. package/dist/changes-6QBJMGJC.js +135 -0
  106. package/dist/changes-6QBJMGJC.js.map +1 -0
  107. package/dist/chatgpt-7W75X3ER.js +47 -0
  108. package/dist/chats-DWHF64IU.js +262 -0
  109. package/dist/chats-DWHF64IU.js.map +1 -0
  110. package/dist/chunk-27NMXSC3.js +486 -0
  111. package/dist/chunk-27NMXSC3.js.map +1 -0
  112. package/dist/chunk-2CD5ZP7M.js +6659 -0
  113. package/dist/chunk-2CD5ZP7M.js.map +1 -0
  114. package/dist/chunk-2TK4DEOE.js +74 -0
  115. package/dist/chunk-3RJ3VGJP.js +197 -0
  116. package/dist/chunk-3RJ3VGJP.js.map +1 -0
  117. package/dist/chunk-4NDCTLI5.js +191 -0
  118. package/dist/chunk-4NZ47VXO.js +137 -0
  119. package/dist/chunk-4NZ47VXO.js.map +1 -0
  120. package/dist/chunk-4SJDDGPV.js +1411 -0
  121. package/dist/chunk-4SJDDGPV.js.map +1 -0
  122. package/dist/chunk-5ARG3CQG.js +141 -0
  123. package/dist/chunk-5HYSKH77.js +315 -0
  124. package/dist/chunk-5HYSKH77.js.map +1 -0
  125. package/dist/chunk-5Z2KSVIV.js +67 -0
  126. package/dist/chunk-654U6NU6.js +534 -0
  127. package/dist/chunk-654U6NU6.js.map +1 -0
  128. package/dist/chunk-6B7VKFS4.js +172 -0
  129. package/dist/chunk-6G5K6ZC6.js +46 -0
  130. package/dist/chunk-73QKIIIR.js +23 -0
  131. package/dist/chunk-75FDTDLH.js +96 -0
  132. package/dist/chunk-75VNSKS3.js +455 -0
  133. package/dist/chunk-75VNSKS3.js.map +1 -0
  134. package/dist/chunk-7GPDUS3P.js +494 -0
  135. package/dist/chunk-7GPDUS3P.js.map +1 -0
  136. package/dist/chunk-7J6EHOH6.js +274 -0
  137. package/dist/chunk-7OFNN4CT.js +58 -0
  138. package/dist/chunk-7QJVPMVB.js +592 -0
  139. package/dist/chunk-7QJVPMVB.js.map +1 -0
  140. package/dist/chunk-AN447DQB.js +159 -0
  141. package/dist/chunk-AN447DQB.js.map +1 -0
  142. package/dist/chunk-BYDF22T4.js +346 -0
  143. package/dist/chunk-BYDF22T4.js.map +1 -0
  144. package/dist/chunk-C6U6UDHJ.js +106 -0
  145. package/dist/chunk-CLMM6P6B.js +1751 -0
  146. package/dist/chunk-CLMM6P6B.js.map +1 -0
  147. package/dist/chunk-DIY6QR3E.js +96 -0
  148. package/dist/chunk-EFSYTROP.js +94 -0
  149. package/dist/chunk-EIP4PYCL.js +496 -0
  150. package/dist/chunk-EIP4PYCL.js.map +1 -0
  151. package/dist/chunk-EZUG6WE2.js +60 -0
  152. package/dist/chunk-EZUG6WE2.js.map +1 -0
  153. package/dist/chunk-F2S5BLPE.js +97 -0
  154. package/dist/chunk-F2S5BLPE.js.map +1 -0
  155. package/dist/chunk-FEXDI4NM.js +103 -0
  156. package/dist/chunk-FHXIEMCG.js +382 -0
  157. package/dist/chunk-FTWJFDIN.js +23992 -0
  158. package/dist/chunk-FTWJFDIN.js.map +1 -0
  159. package/dist/chunk-FXED3VZK.js +174 -0
  160. package/dist/chunk-FXED3VZK.js.map +1 -0
  161. package/dist/chunk-GIJT3A5U.js +166 -0
  162. package/dist/chunk-GIJT3A5U.js.map +1 -0
  163. package/dist/chunk-H26L3OQY.js +42 -0
  164. package/dist/chunk-HIPDMQZ6.js +136 -0
  165. package/dist/chunk-HMEFD2CG.js +5163 -0
  166. package/dist/chunk-HMEFD2CG.js.map +1 -0
  167. package/dist/chunk-HO3IUJ4K.js +70 -0
  168. package/dist/chunk-HO3IUJ4K.js.map +1 -0
  169. package/dist/chunk-HXTGYOQC.js +813 -0
  170. package/dist/chunk-HXTGYOQC.js.map +1 -0
  171. package/dist/chunk-HYCIBVDW.js +98 -0
  172. package/dist/chunk-ICM2OXZV.js +304 -0
  173. package/dist/chunk-ICM2OXZV.js.map +1 -0
  174. package/dist/chunk-IFWP3ZDO.js +215 -0
  175. package/dist/chunk-IKGWQBKJ.js +422 -0
  176. package/dist/chunk-IKGWQBKJ.js.map +1 -0
  177. package/dist/chunk-IXKEWS7X.js +433 -0
  178. package/dist/chunk-JERXV5A3.js +26 -0
  179. package/dist/chunk-JM73NDCM.js +163 -0
  180. package/dist/chunk-JM73NDCM.js.map +1 -0
  181. package/dist/chunk-K3PN7TN5.js +84 -0
  182. package/dist/chunk-K3PN7TN5.js.map +1 -0
  183. package/dist/chunk-KLNKEVIY.js +136 -0
  184. package/dist/chunk-KNY76UGC.js +84 -0
  185. package/dist/chunk-KWAOTV7F.js +830 -0
  186. package/dist/chunk-L3OLEAJN.js +92 -0
  187. package/dist/chunk-L3OLEAJN.js.map +1 -0
  188. package/dist/chunk-LERTEZST.js +28 -0
  189. package/dist/chunk-LL2CD5WU.js +310 -0
  190. package/dist/chunk-LO6GEJ4Z.js +51 -0
  191. package/dist/chunk-LS5MTRFI.js +106 -0
  192. package/dist/chunk-LZ73CZGP.js +188 -0
  193. package/dist/chunk-MELOSESI.js +20 -0
  194. package/dist/chunk-MLU6STIN.js +66 -0
  195. package/dist/chunk-MLU6STIN.js.map +1 -0
  196. package/dist/chunk-MZL4H5PY.js +225 -0
  197. package/dist/chunk-MZL4H5PY.js.map +1 -0
  198. package/dist/chunk-NAWWC5I3.js +454 -0
  199. package/dist/chunk-NFSLRRIE.js +77 -0
  200. package/dist/chunk-NFSLRRIE.js.map +1 -0
  201. package/dist/chunk-NPE7EWBE.js +297 -0
  202. package/dist/chunk-NU7JSWVA.js +946 -0
  203. package/dist/chunk-NU7JSWVA.js.map +1 -0
  204. package/dist/chunk-OBDAYP2P.js +3155 -0
  205. package/dist/chunk-OBDAYP2P.js.map +1 -0
  206. package/dist/chunk-OC5IJSIW.js +420 -0
  207. package/dist/chunk-OC5IJSIW.js.map +1 -0
  208. package/dist/chunk-OKG6GX2F.js +169 -0
  209. package/dist/chunk-OTFHEHIU.js +1706 -0
  210. package/dist/chunk-OTFHEHIU.js.map +1 -0
  211. package/dist/chunk-PBA3YCZA.js +76 -0
  212. package/dist/chunk-PWGWMIIJ.js +25 -0
  213. package/dist/chunk-QHLB5V7J.js +19 -0
  214. package/dist/chunk-QJE6ZYGI.js +131 -0
  215. package/dist/chunk-QSN5MZGS.js +74 -0
  216. package/dist/chunk-QXZYAIWS.js +390 -0
  217. package/dist/chunk-QXZYAIWS.js.map +1 -0
  218. package/dist/chunk-RRUJQVWA.js +4372 -0
  219. package/dist/chunk-RRUJQVWA.js.map +1 -0
  220. package/dist/chunk-RSW6QJPH.js +217 -0
  221. package/dist/chunk-RX6F3GEA.js +610 -0
  222. package/dist/chunk-RX6F3GEA.js.map +1 -0
  223. package/dist/chunk-SBMIQDCX.js +175 -0
  224. package/dist/chunk-SJDPHVGE.js +363 -0
  225. package/dist/chunk-SJDPHVGE.js.map +1 -0
  226. package/dist/chunk-STIB5DR5.js +56 -0
  227. package/dist/chunk-TBEUMOEL.js +95 -0
  228. package/dist/chunk-TCNNOLVZ.js +207 -0
  229. package/dist/chunk-TCNNOLVZ.js.map +1 -0
  230. package/dist/chunk-TD2P4HBP.js +55 -0
  231. package/dist/chunk-URIYUZIN.js +111 -0
  232. package/dist/chunk-URIYUZIN.js.map +1 -0
  233. package/dist/chunk-VAJBWA2U.js +75 -0
  234. package/dist/chunk-VAJBWA2U.js.map +1 -0
  235. package/dist/chunk-VBHDZSI5.js +57 -0
  236. package/dist/chunk-VFIOJD5M.js +309 -0
  237. package/dist/chunk-VVZBBKRC.js +296 -0
  238. package/dist/chunk-VWCELTQE.js +1079 -0
  239. package/dist/chunk-VWCELTQE.js.map +1 -0
  240. package/dist/chunk-W3B4BHQU.js +31 -0
  241. package/dist/chunk-W3ZHJJVT.js +139 -0
  242. package/dist/chunk-W3ZHJJVT.js.map +1 -0
  243. package/dist/chunk-WS2GMOSG.js +74 -0
  244. package/dist/chunk-XBOK23HI.js +214 -0
  245. package/dist/chunk-XG3XCHN6.js +26 -0
  246. package/dist/chunk-XL3BMSYG.js +125 -0
  247. package/dist/chunk-XWH7CCBL.js +6065 -0
  248. package/dist/chunk-XWH7CCBL.js.map +1 -0
  249. package/dist/chunk-XYMPS526.js +622 -0
  250. package/dist/chunk-Y5ZGWLWP.js +2882 -0
  251. package/dist/chunk-Y5ZGWLWP.js.map +1 -0
  252. package/dist/chunk-YBMVHGY3.js +333 -0
  253. package/dist/chunk-ZJ47BR6X.js +337 -0
  254. package/dist/chunk-ZJ47BR6X.js.map +1 -0
  255. package/dist/chunk-ZNBDKK4Y.js +76 -0
  256. package/dist/chunk-ZNBDKK4Y.js.map +1 -0
  257. package/dist/chunk-ZXTW3TXY.js +133 -0
  258. package/dist/chunk-ZXTW3TXY.js.map +1 -0
  259. package/dist/claim-EIL4ZBSN.js +197 -0
  260. package/dist/claim-EIL4ZBSN.js.map +1 -0
  261. package/dist/cli.js +36 -37
  262. package/dist/cli.js.map +1 -1
  263. package/dist/client-VHN32ZRE.js +19 -0
  264. package/dist/code-YS6ZMGX3.js +76 -0
  265. package/dist/code-YS6ZMGX3.js.map +1 -0
  266. package/dist/companies-2UG7RDYN.js +195 -0
  267. package/dist/companies-2UG7RDYN.js.map +1 -0
  268. package/dist/complete-I4KRFYMD.js +81 -0
  269. package/dist/complete-I4KRFYMD.js.map +1 -0
  270. package/dist/config-CQN5FHMZ.js +88 -0
  271. package/dist/config-CQN5FHMZ.js.map +1 -0
  272. package/dist/connect-TA5W6YGW.js +36 -0
  273. package/dist/content-3ZPP4SW2.js +81 -0
  274. package/dist/content-3ZPP4SW2.js.map +1 -0
  275. package/dist/conversation-BJI54MI6.js +93 -0
  276. package/dist/conversation-BJI54MI6.js.map +1 -0
  277. package/dist/conversion-report-XQBJ6LG4.js +125 -0
  278. package/dist/conversion-report-XQBJ6LG4.js.map +1 -0
  279. package/dist/conversion-upload-command-JULHGVIR.js +438 -0
  280. package/dist/conversion-upload-command-JULHGVIR.js.map +1 -0
  281. package/dist/conversion-writes-UBCVXP2E.js +120 -0
  282. package/dist/conversion-writes-UBCVXP2E.js.map +1 -0
  283. package/dist/conversions-D236RTUK.js +76 -0
  284. package/dist/conversions-D236RTUK.js.map +1 -0
  285. package/dist/conversions-VJOJ5S4U.js +135 -0
  286. package/dist/conversions-VJOJ5S4U.js.map +1 -0
  287. package/dist/countries-FYHM3IMJ.js +82 -0
  288. package/dist/countries-FYHM3IMJ.js.map +1 -0
  289. package/dist/create-E7BIZNUC.js +130 -0
  290. package/dist/create-E7BIZNUC.js.map +1 -0
  291. package/dist/create-HKOO7O5L.js +59 -0
  292. package/dist/create-HKOO7O5L.js.map +1 -0
  293. package/dist/create-JLQCXAT2.js +207 -0
  294. package/dist/create-JLQCXAT2.js.map +1 -0
  295. package/dist/create-VY3RQXOY.js +235 -0
  296. package/dist/create-VY3RQXOY.js.map +1 -0
  297. package/dist/creatives-PSWCNY7U.js +87 -0
  298. package/dist/creatives-PSWCNY7U.js.map +1 -0
  299. package/dist/creatives-QXMBEA2V.js +51 -0
  300. package/dist/creatives-QXMBEA2V.js.map +1 -0
  301. package/dist/creatives-VXQQUH2F.js +182 -0
  302. package/dist/creatives-VXQQUH2F.js.map +1 -0
  303. package/dist/credentials-G5BJK7OR.js +1055 -0
  304. package/dist/credentials-G5BJK7OR.js.map +1 -0
  305. package/dist/critique-CMLAPVUB.js +1449 -0
  306. package/dist/critique-CMLAPVUB.js.map +1 -0
  307. package/dist/critique-O5VNNBPB.js +214 -0
  308. package/dist/critique-O5VNNBPB.js.map +1 -0
  309. package/dist/crm-CL7R67FT.js +224 -0
  310. package/dist/crm-CL7R67FT.js.map +1 -0
  311. package/dist/crm-GJCAM3DI.js +318 -0
  312. package/dist/crm-GJCAM3DI.js.map +1 -0
  313. package/dist/crop-2J4RKJ6B.js +113 -0
  314. package/dist/crop-2J4RKJ6B.js.map +1 -0
  315. package/dist/currency-DJDVIR3C.js +88 -0
  316. package/dist/currency-DJDVIR3C.js.map +1 -0
  317. package/dist/custom-conversions-6P555U2K.js +125 -0
  318. package/dist/custom-conversions-6P555U2K.js.map +1 -0
  319. package/dist/customers-4RJGRR2Y.js +56 -0
  320. package/dist/delete-3AV3ARMX.js +71 -0
  321. package/dist/delete-3AV3ARMX.js.map +1 -0
  322. package/dist/delete-4QXLTL24.js +63 -0
  323. package/dist/delete-4QXLTL24.js.map +1 -0
  324. package/dist/delete-A5XD52K4.js +69 -0
  325. package/dist/delete-A5XD52K4.js.map +1 -0
  326. package/dist/delete-IJNJTAGW.js +54 -0
  327. package/dist/delete-IJNJTAGW.js.map +1 -0
  328. package/dist/delete-MRM2S4Z5.js +71 -0
  329. package/dist/delete-MRM2S4Z5.js.map +1 -0
  330. package/dist/delete-R57JFJ3A.js +66 -0
  331. package/dist/delete-R57JFJ3A.js.map +1 -0
  332. package/dist/demographics-VMARSTTE.js +138 -0
  333. package/dist/demographics-VMARSTTE.js.map +1 -0
  334. package/dist/describe-6NVOWIBE.js +97 -0
  335. package/dist/describe-6NVOWIBE.js.map +1 -0
  336. package/dist/describe-P3PPIQME.js +97 -0
  337. package/dist/describe-P3PPIQME.js.map +1 -0
  338. package/dist/dimensions-EYAYO27I.js +101 -0
  339. package/dist/dimensions-EYAYO27I.js.map +1 -0
  340. package/dist/discard-Y2BKPW4Z.js +66 -0
  341. package/dist/discard-Y2BKPW4Z.js.map +1 -0
  342. package/dist/discover-M3ZKKFEL.js +172 -0
  343. package/dist/discover-M3ZKKFEL.js.map +1 -0
  344. package/dist/domain-YTHDTRWN.js +98 -0
  345. package/dist/domain-YTHDTRWN.js.map +1 -0
  346. package/dist/download-7T6HIJKD.js +299 -0
  347. package/dist/download-7T6HIJKD.js.map +1 -0
  348. package/dist/draft-ABGQYDHP.js +328 -0
  349. package/dist/draft-ABGQYDHP.js.map +1 -0
  350. package/dist/draft-BGUJDHXR.js +103 -0
  351. package/dist/draft-BGUJDHXR.js.map +1 -0
  352. package/dist/draft-KIBMVKSR.js +100 -0
  353. package/dist/draft-KIBMVKSR.js.map +1 -0
  354. package/dist/draft-KOLU5BRR.js +217 -0
  355. package/dist/draft-KOLU5BRR.js.map +1 -0
  356. package/dist/draft-MNFJ4G3C.js +281 -0
  357. package/dist/draft-MNFJ4G3C.js.map +1 -0
  358. package/dist/draft-U6CT6LCC.js +107 -0
  359. package/dist/draft-U6CT6LCC.js.map +1 -0
  360. package/dist/draft-YDY2Q2K6.js +233 -0
  361. package/dist/draft-YDY2Q2K6.js.map +1 -0
  362. package/dist/draft-ZVVUAMMQ.js +306 -0
  363. package/dist/draft-ZVVUAMMQ.js.map +1 -0
  364. package/dist/engine/index.d.ts +10 -0
  365. package/dist/engine/index.js +16 -17
  366. package/dist/env-KIP2J2UB.js +43 -0
  367. package/dist/experiment-LKK77YAN.js +1377 -0
  368. package/dist/experiment-LKK77YAN.js.map +1 -0
  369. package/dist/export-JQRMBJ7D.js +168 -0
  370. package/dist/export-JQRMBJ7D.js.map +1 -0
  371. package/dist/extract-7QKLME7Z.js +113 -0
  372. package/dist/extract-7QKLME7Z.js.map +1 -0
  373. package/dist/facets-UXN4MYPO.js +114 -0
  374. package/dist/facets-UXN4MYPO.js.map +1 -0
  375. package/dist/favorites-NSGF4OV5.js +178 -0
  376. package/dist/favorites-NSGF4OV5.js.map +1 -0
  377. package/dist/feed-RV4KPPXM.js +157 -0
  378. package/dist/feed-RV4KPPXM.js.map +1 -0
  379. package/dist/feedback-3FQYLADC.js +66 -0
  380. package/dist/feedback-3FQYLADC.js.map +1 -0
  381. package/dist/feedback-record-DTRZC73R.js +176 -0
  382. package/dist/feedback-record-DTRZC73R.js.map +1 -0
  383. package/dist/fetch-UTTJAOLC.js +171 -0
  384. package/dist/fetch-UTTJAOLC.js.map +1 -0
  385. package/dist/fetch-XF76JABV.js +139 -0
  386. package/dist/fetch-XF76JABV.js.map +1 -0
  387. package/dist/find-OTDIX6V4.js +134 -0
  388. package/dist/find-OTDIX6V4.js.map +1 -0
  389. package/dist/fit-KXHYKIA4.js +43 -0
  390. package/dist/flows-PB4K66NJ.js +244 -0
  391. package/dist/flows-PB4K66NJ.js.map +1 -0
  392. package/dist/follow-DUIEGDVK.js +82 -0
  393. package/dist/follow-DUIEGDVK.js.map +1 -0
  394. package/dist/follow-competitors-IT5ZVJPE.js +131 -0
  395. package/dist/follow-competitors-IT5ZVJPE.js.map +1 -0
  396. package/dist/following-RKC2FLHI.js +109 -0
  397. package/dist/following-RKC2FLHI.js.map +1 -0
  398. package/dist/fonts-NTOQS2KU.js +34 -0
  399. package/dist/forecast-RWDIDDWP.js +104 -0
  400. package/dist/forecast-RWDIDDWP.js.map +1 -0
  401. package/dist/funding-NYO65IMT.js +85 -0
  402. package/dist/funding-NYO65IMT.js.map +1 -0
  403. package/dist/funnel-XCKPRYTV.js +837 -0
  404. package/dist/funnel-XCKPRYTV.js.map +1 -0
  405. package/dist/ga4-UDQ2HA2J.js +55 -0
  406. package/dist/generate-DMQUS665.js +262 -0
  407. package/dist/generate-DMQUS665.js.map +1 -0
  408. package/dist/get-3L6W3E3T.js +59 -0
  409. package/dist/get-3L6W3E3T.js.map +1 -0
  410. package/dist/get-67IG7SZI.js +78 -0
  411. package/dist/get-67IG7SZI.js.map +1 -0
  412. package/dist/get-6WEYKOY6.js +63 -0
  413. package/dist/get-6WEYKOY6.js.map +1 -0
  414. package/dist/get-P743RPSI.js +63 -0
  415. package/dist/get-P743RPSI.js.map +1 -0
  416. package/dist/get-WO22OCMZ.js +54 -0
  417. package/dist/get-WO22OCMZ.js.map +1 -0
  418. package/dist/get-XN5ZGDIK.js +61 -0
  419. package/dist/get-XN5ZGDIK.js.map +1 -0
  420. package/dist/get-YIHTAMRT.js +92 -0
  421. package/dist/get-YIHTAMRT.js.map +1 -0
  422. package/dist/gif-53ULFVLR.js +94 -0
  423. package/dist/gif-53ULFVLR.js.map +1 -0
  424. package/dist/google-KIBLORXX.js +1872 -0
  425. package/dist/google-KIBLORXX.js.map +1 -0
  426. package/dist/google-KTO3PLEU.js +136 -0
  427. package/dist/google-KTO3PLEU.js.map +1 -0
  428. package/dist/group-EFZ3AJIE.js +43 -0
  429. package/dist/group-EFZ3AJIE.js.map +1 -0
  430. package/dist/group-GKWCCX66.js +43 -0
  431. package/dist/group-GKWCCX66.js.map +1 -0
  432. package/dist/gsc-P3QYGDV2.js +30 -0
  433. package/dist/history-PBFRKLU6.js +133 -0
  434. package/dist/history-PBFRKLU6.js.map +1 -0
  435. package/dist/history-Q3QCT64S.js +67 -0
  436. package/dist/history-Q3QCT64S.js.map +1 -0
  437. package/dist/hubspot-PMOZST7W.js +779 -0
  438. package/dist/hubspot-PMOZST7W.js.map +1 -0
  439. package/dist/icon-I43F77FV.js +137 -0
  440. package/dist/icon-I43F77FV.js.map +1 -0
  441. package/dist/ideas-PU7IAX6F.js +32 -0
  442. package/dist/images-QI2HTX6B.js +90 -0
  443. package/dist/improve-BCCU5AS6.js +86 -0
  444. package/dist/improve-BCCU5AS6.js.map +1 -0
  445. package/dist/ingest-BYJNFOOT.js +23 -0
  446. package/dist/ingest-ZQM47NVZ.js +107 -0
  447. package/dist/ingest-ZQM47NVZ.js.map +1 -0
  448. package/dist/insights-LNAXV2CG.js +122 -0
  449. package/dist/insights-LNAXV2CG.js.map +1 -0
  450. package/dist/insights-NZWSJKU4.js +423 -0
  451. package/dist/insights-NZWSJKU4.js.map +1 -0
  452. package/dist/inspect-CQH55Q6G.js +189 -0
  453. package/dist/inspect-CQH55Q6G.js.map +1 -0
  454. package/dist/inspiration-I4MMKAWA.js +53 -0
  455. package/dist/intent-ICKFJRT2.js +95 -0
  456. package/dist/intent-ICKFJRT2.js.map +1 -0
  457. package/dist/job-L7RJZMSG.js +202 -0
  458. package/dist/job-L7RJZMSG.js.map +1 -0
  459. package/dist/job-create-JUDAN52O.js +109 -0
  460. package/dist/job-create-JUDAN52O.js.map +1 -0
  461. package/dist/job-status-U43WE3RJ.js +74 -0
  462. package/dist/job-status-U43WE3RJ.js.map +1 -0
  463. package/dist/keep-55CPC7DG.js +78 -0
  464. package/dist/keep-55CPC7DG.js.map +1 -0
  465. package/dist/keyword-gap-NGPH32FN.js +130 -0
  466. package/dist/keyword-gap-NGPH32FN.js.map +1 -0
  467. package/dist/keyword-metrics-E3NJUSEQ.js +197 -0
  468. package/dist/keyword-metrics-E3NJUSEQ.js.map +1 -0
  469. package/dist/keywords-for-site-RH47P4GJ.js +124 -0
  470. package/dist/keywords-for-site-RH47P4GJ.js.map +1 -0
  471. package/dist/landing-4PA7GCPM.js +28 -0
  472. package/dist/landing-4PA7GCPM.js.map +1 -0
  473. package/dist/languages-JDYL2N5F.js +40 -0
  474. package/dist/languages-JDYL2N5F.js.map +1 -0
  475. package/dist/languages-JMVNOHMG.js +55 -0
  476. package/dist/languages-JMVNOHMG.js.map +1 -0
  477. package/dist/layerize-RPD6SNP6.js +190 -0
  478. package/dist/layerize-RPD6SNP6.js.map +1 -0
  479. package/dist/leads-7EVHMNUF.js +293 -0
  480. package/dist/leads-7EVHMNUF.js.map +1 -0
  481. package/dist/leads-I7BO5V7P.js +90 -0
  482. package/dist/leads-I7BO5V7P.js.map +1 -0
  483. package/dist/learn-HZU3QWNN.js +204 -0
  484. package/dist/library-ARKRLCNJ.js +109 -0
  485. package/dist/library-ARKRLCNJ.js.map +1 -0
  486. package/dist/lighthouse-NQBUCHTW.js +75 -0
  487. package/dist/lighthouse-NQBUCHTW.js.map +1 -0
  488. package/dist/line-item-writes-JSR53MID.js +208 -0
  489. package/dist/line-item-writes-JSR53MID.js.map +1 -0
  490. package/dist/line-items-2WFLKOOR.js +103 -0
  491. package/dist/line-items-2WFLKOOR.js.map +1 -0
  492. package/dist/link-AYXOJQDV.js +64 -0
  493. package/dist/link-AYXOJQDV.js.map +1 -0
  494. package/dist/linkedin-M2PVZYLV.js +1008 -0
  495. package/dist/linkedin-M2PVZYLV.js.map +1 -0
  496. package/dist/list-3OKEMUFD.js +151 -0
  497. package/dist/list-3OKEMUFD.js.map +1 -0
  498. package/dist/list-4MQC23JH.js +63 -0
  499. package/dist/list-4MQC23JH.js.map +1 -0
  500. package/dist/list-7MVBXOJT.js +51 -0
  501. package/dist/list-7MVBXOJT.js.map +1 -0
  502. package/dist/list-A5UCIR2J.js +65 -0
  503. package/dist/list-A5UCIR2J.js.map +1 -0
  504. package/dist/list-AL7N6X2P.js +50 -0
  505. package/dist/list-AL7N6X2P.js.map +1 -0
  506. package/dist/list-LI4OGQFW.js +57 -0
  507. package/dist/list-LI4OGQFW.js.map +1 -0
  508. package/dist/list-P7NAFN6J.js +76 -0
  509. package/dist/list-P7NAFN6J.js.map +1 -0
  510. package/dist/list-QGLIL7J6.js +303 -0
  511. package/dist/list-QGLIL7J6.js.map +1 -0
  512. package/dist/locations-2NKBJKBT.js +67 -0
  513. package/dist/locations-2NKBJKBT.js.map +1 -0
  514. package/dist/locations-S4U6IJIS.js +40 -0
  515. package/dist/locations-S4U6IJIS.js.map +1 -0
  516. package/dist/log-QHR2JNKW.js +92 -0
  517. package/dist/log-QHR2JNKW.js.map +1 -0
  518. package/dist/logo-2IP663QO.js +18 -0
  519. package/dist/lookup-XK45W2SH.js +22 -0
  520. package/dist/make-ANPR2D2L.js +516 -0
  521. package/dist/make-ANPR2D2L.js.map +1 -0
  522. package/dist/map-3BVFAP33.js +404 -0
  523. package/dist/map-3BVFAP33.js.map +1 -0
  524. package/dist/mcp-LH5KR6RO.js +476 -0
  525. package/dist/mcp-LH5KR6RO.js.map +1 -0
  526. package/dist/media-6CQYG4UY.js +89 -0
  527. package/dist/media-6CQYG4UY.js.map +1 -0
  528. package/dist/media-M7E6V2XU.js +15 -0
  529. package/dist/media-sources-3D246I3O.js +32 -0
  530. package/dist/members-4DUQHLZH.js +44 -0
  531. package/dist/members-4DUQHLZH.js.map +1 -0
  532. package/dist/meta-EZ4SY25M.js +69 -0
  533. package/dist/metrics-AY4RP54F.js +152 -0
  534. package/dist/metrics-AY4RP54F.js.map +1 -0
  535. package/dist/models-5NTC7A5G.js +155 -0
  536. package/dist/models-5NTC7A5G.js.map +1 -0
  537. package/dist/normalize-CD4PQRYY.js +138 -0
  538. package/dist/normalize-CD4PQRYY.js.map +1 -0
  539. package/dist/normalize-ICQF2AST.js +806 -0
  540. package/dist/normalize-ICQF2AST.js.map +1 -0
  541. package/dist/options-6TE5E34Z.js +121 -0
  542. package/dist/options-6TE5E34Z.js.map +1 -0
  543. package/dist/output-RAH3TSIL.js +24 -0
  544. package/dist/page-GS3WLT2C.js +105 -0
  545. package/dist/page-GS3WLT2C.js.map +1 -0
  546. package/dist/pages-FXYQLHSJ.js +66 -0
  547. package/dist/pages-FXYQLHSJ.js.map +1 -0
  548. package/dist/performance-7LQQCEAW.js +24 -0
  549. package/dist/pinterest-AUH7WBA7.js +96 -0
  550. package/dist/pinterest-AUH7WBA7.js.map +1 -0
  551. package/dist/pixels-TZPF746S.js +60 -0
  552. package/dist/pixels-TZPF746S.js.map +1 -0
  553. package/dist/pixels-ZFF4BGUH.js +108 -0
  554. package/dist/pixels-ZFF4BGUH.js.map +1 -0
  555. package/dist/preview-AD4GKYIA.js +169 -0
  556. package/dist/preview-AD4GKYIA.js.map +1 -0
  557. package/dist/promoted-tweet-writes-F76YIMB6.js +180 -0
  558. package/dist/promoted-tweet-writes-F76YIMB6.js.map +1 -0
  559. package/dist/promoted-tweets-EJL37P7K.js +119 -0
  560. package/dist/promoted-tweets-EJL37P7K.js.map +1 -0
  561. package/dist/properties-L2XIYQDS.js +101 -0
  562. package/dist/properties-L2XIYQDS.js.map +1 -0
  563. package/dist/publish-H5S2IKZP.js +322 -0
  564. package/dist/publish-H5S2IKZP.js.map +1 -0
  565. package/dist/query-CPZZNMDY.js +1341 -0
  566. package/dist/query-CPZZNMDY.js.map +1 -0
  567. package/dist/query-SGGBCHTF.js +236 -0
  568. package/dist/query-SGGBCHTF.js.map +1 -0
  569. package/dist/query-VTGVZQIO.js +247 -0
  570. package/dist/query-VTGVZQIO.js.map +1 -0
  571. package/dist/read-LSF7DYTG.js +140 -0
  572. package/dist/read-LSF7DYTG.js.map +1 -0
  573. package/dist/reddit-INGPFGP4.js +26 -0
  574. package/dist/refresh-MKSKISPX.js +94 -0
  575. package/dist/refresh-MKSKISPX.js.map +1 -0
  576. package/dist/release-J5LIAIZT.js +60 -0
  577. package/dist/release-J5LIAIZT.js.map +1 -0
  578. package/dist/relevant-pages-MTMFMBPD.js +99 -0
  579. package/dist/relevant-pages-MTMFMBPD.js.map +1 -0
  580. package/dist/remove-6LGGKMLJ.js +48 -0
  581. package/dist/remove-6LGGKMLJ.js.map +1 -0
  582. package/dist/remove-LYEK7VFV.js +50 -0
  583. package/dist/remove-LYEK7VFV.js.map +1 -0
  584. package/dist/reopen-FR4UBOG7.js +63 -0
  585. package/dist/reopen-FR4UBOG7.js.map +1 -0
  586. package/dist/rerun-3FEOYNG2.js +86 -0
  587. package/dist/rerun-3FEOYNG2.js.map +1 -0
  588. package/dist/research-PA53M335.js +59 -0
  589. package/dist/research-RPJSOWPT.js +226 -0
  590. package/dist/research-RPJSOWPT.js.map +1 -0
  591. package/dist/reset-H3ES4WV5.js +54 -0
  592. package/dist/reset-H3ES4WV5.js.map +1 -0
  593. package/dist/reset-RCYRE5WO.js +54 -0
  594. package/dist/reset-RCYRE5WO.js.map +1 -0
  595. package/dist/resolve-QIDQJCE6.js +121 -0
  596. package/dist/resolve-QIDQJCE6.js.map +1 -0
  597. package/dist/retry-PLLCFOJW.js +60 -0
  598. package/dist/retry-PLLCFOJW.js.map +1 -0
  599. package/dist/retry-WLVMR7XP.js +62 -0
  600. package/dist/retry-WLVMR7XP.js.map +1 -0
  601. package/dist/retry-failed-6HXPUVXJ.js +45 -0
  602. package/dist/retry-failed-6HXPUVXJ.js.map +1 -0
  603. package/dist/run-2IM2QOCI.js +61 -0
  604. package/dist/run-4D7ZCLMF.js +65 -0
  605. package/dist/run-4D7ZCLMF.js.map +1 -0
  606. package/dist/scaffold-ad-YYUVL4IP.js +1550 -0
  607. package/dist/scaffold-ad-YYUVL4IP.js.map +1 -0
  608. package/dist/scaffold-static-ad-SUEYXLOR.js +948 -0
  609. package/dist/scaffold-static-ad-SUEYXLOR.js.map +1 -0
  610. package/dist/scaffold-video-IBH2YJZD.js +874 -0
  611. package/dist/scaffold-video-IBH2YJZD.js.map +1 -0
  612. package/dist/schedule-O2K6M43V.js +66 -0
  613. package/dist/schedule-O2K6M43V.js.map +1 -0
  614. package/dist/schedule-RXUUCNNI.js +61 -0
  615. package/dist/schedule-RXUUCNNI.js.map +1 -0
  616. package/dist/scheduled-agents-2NCGSD76.js +49 -0
  617. package/dist/schema-6GR77VJG.js +63 -0
  618. package/dist/schema-6GR77VJG.js.map +1 -0
  619. package/dist/schema-SFODURN7.js +129 -0
  620. package/dist/schema-SFODURN7.js.map +1 -0
  621. package/dist/scrape-ETAMW43A.js +2241 -0
  622. package/dist/scrape-ETAMW43A.js.map +1 -0
  623. package/dist/screenshot-YCQF25ZB.js +102 -0
  624. package/dist/screenshot-YCQF25ZB.js.map +1 -0
  625. package/dist/search-742XSULP.js +224 -0
  626. package/dist/search-742XSULP.js.map +1 -0
  627. package/dist/search-7QVZOWSI.js +174 -0
  628. package/dist/search-7QVZOWSI.js.map +1 -0
  629. package/dist/search-MEEM4D3W.js +92 -0
  630. package/dist/search-MEEM4D3W.js.map +1 -0
  631. package/dist/search-OQNGSMUH.js +91 -0
  632. package/dist/search-OQNGSMUH.js.map +1 -0
  633. package/dist/search-XUIVHGAY.js +26 -0
  634. package/dist/seeds-N6FF5S4T.js +101 -0
  635. package/dist/seeds-N6FF5S4T.js.map +1 -0
  636. package/dist/select-ZWDEVAH2.js +95 -0
  637. package/dist/sends-WGJVQUMF.js +309 -0
  638. package/dist/sends-WGJVQUMF.js.map +1 -0
  639. package/dist/sequences-OIPVR7JL.js +146 -0
  640. package/dist/sequences-OIPVR7JL.js.map +1 -0
  641. package/dist/set-prompt-SBEOQGCF.js +187 -0
  642. package/dist/set-prompt-SBEOQGCF.js.map +1 -0
  643. package/dist/setup-links-XW4A6L2I.js +141 -0
  644. package/dist/setup-links-XW4A6L2I.js.map +1 -0
  645. package/dist/shared-HJDFNID4.js +31 -0
  646. package/dist/site-6UTQSYIK.js +177 -0
  647. package/dist/site-6UTQSYIK.js.map +1 -0
  648. package/dist/sitemaps-POPZJTAX.js +87 -0
  649. package/dist/sitemaps-POPZJTAX.js.map +1 -0
  650. package/dist/sites-262H6LM4.js +101 -0
  651. package/dist/sites-262H6LM4.js.map +1 -0
  652. package/dist/skills-6TQZLIMP.js +47 -0
  653. package/dist/skills-6TQZLIMP.js.map +1 -0
  654. package/dist/sources-QQNWQLUM.js +421 -0
  655. package/dist/sources-QQNWQLUM.js.map +1 -0
  656. package/dist/sources-UGMZFZ2E.js +30 -0
  657. package/dist/stale-QRO3M5R2.js +64 -0
  658. package/dist/stale-QRO3M5R2.js.map +1 -0
  659. package/dist/stats-NNXZMPZR.js +34 -0
  660. package/dist/status-NXGKJGH7.js +62 -0
  661. package/dist/status-NXGKJGH7.js.map +1 -0
  662. package/dist/sticker-4KMBSMP5.js +94 -0
  663. package/dist/sticker-4KMBSMP5.js.map +1 -0
  664. package/dist/stock-2YCDN3N6.js +179 -0
  665. package/dist/stock-2YCDN3N6.js.map +1 -0
  666. package/dist/studio-HUEBE6DS.js +49 -0
  667. package/dist/sync-CF7FVUQJ.js +54 -0
  668. package/dist/sync-CF7FVUQJ.js.map +1 -0
  669. package/dist/sync-RXS6BPLM.js +54 -0
  670. package/dist/sync-RXS6BPLM.js.map +1 -0
  671. package/dist/sync-ZSNUBYPM.js +265 -0
  672. package/dist/sync-ZSNUBYPM.js.map +1 -0
  673. package/dist/sync-definition-YBDM7D4M.js +54 -0
  674. package/dist/tag-manager-HREEYGVM.js +43 -0
  675. package/dist/tags-C65JB762.js +224 -0
  676. package/dist/tags-C65JB762.js.map +1 -0
  677. package/dist/tags-CMBKEXIZ.js +20 -0
  678. package/dist/tags-CMBKEXIZ.js.map +1 -0
  679. package/dist/tags-GFFQLLG2.js +20 -0
  680. package/dist/tags-GFFQLLG2.js.map +1 -0
  681. package/dist/tags-IJN2SPSM.js +20 -0
  682. package/dist/tags-IJN2SPSM.js.map +1 -0
  683. package/dist/tags-R3K35KTL.js +26 -0
  684. package/dist/targeting-constants-XJ2VOW7K.js +118 -0
  685. package/dist/targeting-constants-XJ2VOW7K.js.map +1 -0
  686. package/dist/targeting-criteria-IHBPLHSX.js +113 -0
  687. package/dist/targeting-criteria-IHBPLHSX.js.map +1 -0
  688. package/dist/targets-JH37NVJF.js +102 -0
  689. package/dist/targets-JH37NVJF.js.map +1 -0
  690. package/dist/templates-HXSHQ23T.js +178 -0
  691. package/dist/templates-HXSHQ23T.js.map +1 -0
  692. package/dist/testimonials-5QGCPZ6K.js +32 -0
  693. package/dist/top-companies-FJEFKVI7.js +108 -0
  694. package/dist/top-companies-FJEFKVI7.js.map +1 -0
  695. package/dist/translate-H7O5K3RC.js +457 -0
  696. package/dist/translate-H7O5K3RC.js.map +1 -0
  697. package/dist/triggers-SEOAAJSS.js +141 -0
  698. package/dist/triggers-SEOAAJSS.js.map +1 -0
  699. package/dist/tweets-ATP3FQAC.js +123 -0
  700. package/dist/tweets-ATP3FQAC.js.map +1 -0
  701. package/dist/unfollow-CBVPGPF7.js +46 -0
  702. package/dist/unfollow-CBVPGPF7.js.map +1 -0
  703. package/dist/unlink-UZDVSHBO.js +67 -0
  704. package/dist/unlink-UZDVSHBO.js.map +1 -0
  705. package/dist/unstage-4ZEULXEQ.js +95 -0
  706. package/dist/unstage-4ZEULXEQ.js.map +1 -0
  707. package/dist/unstage-CE5RRGM5.js +84 -0
  708. package/dist/unstage-CE5RRGM5.js.map +1 -0
  709. package/dist/update-DGZKEP6T.js +63 -0
  710. package/dist/update-DGZKEP6T.js.map +1 -0
  711. package/dist/update-JOS4ITAV.js +142 -0
  712. package/dist/update-JOS4ITAV.js.map +1 -0
  713. package/dist/update-JZ4I6WW7.js +98 -0
  714. package/dist/update-JZ4I6WW7.js.map +1 -0
  715. package/dist/update-ZXOG2V34.js +155 -0
  716. package/dist/update-ZXOG2V34.js.map +1 -0
  717. package/dist/upload-L5SYZB3X.js +150 -0
  718. package/dist/upload-L5SYZB3X.js.map +1 -0
  719. package/dist/upload-SSOPA7ZT.js +126 -0
  720. package/dist/upload-SSOPA7ZT.js.map +1 -0
  721. package/dist/upscale-YWRLFU22.js +109 -0
  722. package/dist/upscale-YWRLFU22.js.map +1 -0
  723. package/dist/url-options-QEWKRKZ3.js +127 -0
  724. package/dist/url-options-QEWKRKZ3.js.map +1 -0
  725. package/dist/url-params-OR5N5EWT.js +98 -0
  726. package/dist/url-params-OR5N5EWT.js.map +1 -0
  727. package/dist/use-UT2DIZOG.js +95 -0
  728. package/dist/use-UT2DIZOG.js.map +1 -0
  729. package/dist/validate-2PLHIP6I.js +90 -0
  730. package/dist/validate-2PLHIP6I.js.map +1 -0
  731. package/dist/variant-FLZJYGYL.js +338 -0
  732. package/dist/variant-FLZJYGYL.js.map +1 -0
  733. package/dist/videos-GIYDCCKR.js +39 -0
  734. package/dist/view-NPAG66QK.js +121 -0
  735. package/dist/view-NPAG66QK.js.map +1 -0
  736. package/dist/viewer-check-VN2JK2LW.js +70 -0
  737. package/dist/web-WUGLSULO.js +135 -0
  738. package/dist/web-WUGLSULO.js.map +1 -0
  739. package/dist/winners-I5BMATJZ.js +79 -0
  740. package/dist/winners-I5BMATJZ.js.map +1 -0
  741. package/dist/winning-ads-7QWEIMRU.js +62 -0
  742. package/dist/write-commands-ERKVRHTC.js +206 -0
  743. package/dist/write-commands-ERKVRHTC.js.map +1 -0
  744. package/dist/write-commands-SVJ43D7G.js +1015 -0
  745. package/dist/write-commands-SVJ43D7G.js.map +1 -0
  746. package/dist/write-commands-TAYGTJEZ.js +737 -0
  747. package/dist/write-commands-TAYGTJEZ.js.map +1 -0
  748. package/dist/write-commands-WTRSOSO3.js +713 -0
  749. package/dist/write-commands-WTRSOSO3.js.map +1 -0
  750. package/dist/x-OEAKQBB7.js +47 -0
  751. package/package.json +1 -1
  752. package/dist/account-5GT2BEST.js +0 -80
  753. package/dist/account-5GT2BEST.js.map +0 -1
  754. package/dist/account-S2RDGMMM.js +0 -81
  755. package/dist/account-S2RDGMMM.js.map +0 -1
  756. package/dist/account-YLZAL6W7.js +0 -50
  757. package/dist/account-YLZAL6W7.js.map +0 -1
  758. package/dist/account-writes-VBY7FJ7C.js +0 -67
  759. package/dist/account-writes-VBY7FJ7C.js.map +0 -1
  760. package/dist/accounts-4IIHAQGS.js +0 -116
  761. package/dist/accounts-4IIHAQGS.js.map +0 -1
  762. package/dist/accounts-E7TRNPFA.js +0 -115
  763. package/dist/accounts-E7TRNPFA.js.map +0 -1
  764. package/dist/accounts-GFJOGX7J.js +0 -613
  765. package/dist/accounts-GFJOGX7J.js.map +0 -1
  766. package/dist/accounts-INB4Z4LZ.js +0 -76
  767. package/dist/accounts-INB4Z4LZ.js.map +0 -1
  768. package/dist/accounts-NLL4QWKY.js +0 -78
  769. package/dist/accounts-NLL4QWKY.js.map +0 -1
  770. package/dist/actions-7XF5L4U3.js +0 -55
  771. package/dist/active-entities-IGQG5EZO.js +0 -104
  772. package/dist/active-entities-IGQG5EZO.js.map +0 -1
  773. package/dist/activities-MH4C4IVV.js +0 -75
  774. package/dist/activities-MH4C4IVV.js.map +0 -1
  775. package/dist/ad-group-writes-B64OBHQ4.js +0 -171
  776. package/dist/ad-group-writes-B64OBHQ4.js.map +0 -1
  777. package/dist/ad-groups-APCFB6SI.js +0 -69
  778. package/dist/ad-groups-APCFB6SI.js.map +0 -1
  779. package/dist/ad-writes-A7P772KD.js +0 -175
  780. package/dist/ad-writes-A7P772KD.js.map +0 -1
  781. package/dist/add-33WQDKGF.js +0 -106
  782. package/dist/add-33WQDKGF.js.map +0 -1
  783. package/dist/add-65OIGMD7.js +0 -99
  784. package/dist/add-65OIGMD7.js.map +0 -1
  785. package/dist/add-EW276CKL.js +0 -282
  786. package/dist/add-EW276CKL.js.map +0 -1
  787. package/dist/add-EXKVB5KR.js +0 -107
  788. package/dist/add-EXKVB5KR.js.map +0 -1
  789. package/dist/ads-A2HP6UVG.js +0 -114
  790. package/dist/ads-A2HP6UVG.js.map +0 -1
  791. package/dist/ads-H6NPLMNX.js +0 -78
  792. package/dist/ads-H6NPLMNX.js.map +0 -1
  793. package/dist/ads-IRE5RZCS.js +0 -40
  794. package/dist/adsets-UZJTGQQM.js +0 -153
  795. package/dist/adsets-UZJTGQQM.js.map +0 -1
  796. package/dist/advertisers-CFS2JAYJ.js +0 -113
  797. package/dist/advertisers-CFS2JAYJ.js.map +0 -1
  798. package/dist/advertisers-WQBPBK4D.js +0 -117
  799. package/dist/advertisers-WQBPBK4D.js.map +0 -1
  800. package/dist/analytics-L46XME7Y.js +0 -434
  801. package/dist/analytics-L46XME7Y.js.map +0 -1
  802. package/dist/analytics-UT7FQ6XA.js +0 -1959
  803. package/dist/analytics-UT7FQ6XA.js.map +0 -1
  804. package/dist/animate-S6ZU3723.js +0 -482
  805. package/dist/animate-S6ZU3723.js.map +0 -1
  806. package/dist/assign-XHHVXXOL.js +0 -79
  807. package/dist/assign-XHHVXXOL.js.map +0 -1
  808. package/dist/audience-size-6FR7WFVU.js +0 -95
  809. package/dist/audience-size-6FR7WFVU.js.map +0 -1
  810. package/dist/audiences-BN2LT7E6.js +0 -86
  811. package/dist/audiences-BN2LT7E6.js.map +0 -1
  812. package/dist/audiences-HQS6V7EV.js +0 -269
  813. package/dist/audiences-HQS6V7EV.js.map +0 -1
  814. package/dist/audiences-JVEXHN67.js +0 -79
  815. package/dist/audiences-JVEXHN67.js.map +0 -1
  816. package/dist/audit-7UDFEGZV.js +0 -152
  817. package/dist/audit-7UDFEGZV.js.map +0 -1
  818. package/dist/audit-YTRTNTAK.js +0 -89
  819. package/dist/audit-YTRTNTAK.js.map +0 -1
  820. package/dist/autocomplete-LAZ6FFG6.js +0 -108
  821. package/dist/autocomplete-LAZ6FFG6.js.map +0 -1
  822. package/dist/avatars-G54K55J3.js +0 -38
  823. package/dist/bid-pricing-EQKORHAA.js +0 -100
  824. package/dist/bid-pricing-EQKORHAA.js.map +0 -1
  825. package/dist/brand-ODTHWWFL.js +0 -22
  826. package/dist/brief-EA4DWOJW.js +0 -479
  827. package/dist/brief-EA4DWOJW.js.map +0 -1
  828. package/dist/businesses-QHNI7MSK.js +0 -54
  829. package/dist/businesses-QHNI7MSK.js.map +0 -1
  830. package/dist/campaign-groups-EJEGKHQD.js +0 -96
  831. package/dist/campaign-groups-EJEGKHQD.js.map +0 -1
  832. package/dist/campaign-writes-DZE43ZOC.js +0 -166
  833. package/dist/campaign-writes-DZE43ZOC.js.map +0 -1
  834. package/dist/campaign-writes-OX62FCEH.js +0 -171
  835. package/dist/campaign-writes-OX62FCEH.js.map +0 -1
  836. package/dist/campaigns-APRWHCGF.js +0 -111
  837. package/dist/campaigns-APRWHCGF.js.map +0 -1
  838. package/dist/campaigns-D2LYKUO2.js +0 -108
  839. package/dist/campaigns-D2LYKUO2.js.map +0 -1
  840. package/dist/campaigns-E3H4POUU.js +0 -77
  841. package/dist/campaigns-E3H4POUU.js.map +0 -1
  842. package/dist/campaigns-OPLRDMJW.js +0 -110
  843. package/dist/campaigns-OPLRDMJW.js.map +0 -1
  844. package/dist/canvas-M5HAG7VA.js +0 -46
  845. package/dist/capabilities-4Q4CMVIE.js +0 -146
  846. package/dist/capabilities-4Q4CMVIE.js.map +0 -1
  847. package/dist/cards-L37M7Q3L.js +0 -86
  848. package/dist/cards-L37M7Q3L.js.map +0 -1
  849. package/dist/catalog-HOWAUW2V.js +0 -67
  850. package/dist/catalog-HOWAUW2V.js.map +0 -1
  851. package/dist/catalogs-XBIQ4PNK.js +0 -129
  852. package/dist/catalogs-XBIQ4PNK.js.map +0 -1
  853. package/dist/changes-HCOPS4FF.js +0 -136
  854. package/dist/changes-HCOPS4FF.js.map +0 -1
  855. package/dist/chatgpt-PLKNBNVL.js +0 -47
  856. package/dist/chats-HELZHJO4.js +0 -264
  857. package/dist/chats-HELZHJO4.js.map +0 -1
  858. package/dist/chunk-3KQ5R3H7.js +0 -45
  859. package/dist/chunk-3KQ5R3H7.js.map +0 -1
  860. package/dist/chunk-4MU3U3SO.js +0 -103
  861. package/dist/chunk-4VKV3DNC.js +0 -23992
  862. package/dist/chunk-4VKV3DNC.js.map +0 -1
  863. package/dist/chunk-5HH4RGC4.js +0 -136
  864. package/dist/chunk-5HH4RGC4.js.map +0 -1
  865. package/dist/chunk-5NQIFCNX.js +0 -141
  866. package/dist/chunk-6CCDQO2F.js +0 -225
  867. package/dist/chunk-6CCDQO2F.js.map +0 -1
  868. package/dist/chunk-6FBZ5E6L.js +0 -96
  869. package/dist/chunk-6YWRJMGR.js +0 -309
  870. package/dist/chunk-73MCYA5Z.js +0 -310
  871. package/dist/chunk-7DQAVVUA.js +0 -130
  872. package/dist/chunk-7DQAVVUA.js.map +0 -1
  873. package/dist/chunk-A3PEJ3V3.js +0 -95
  874. package/dist/chunk-A57AHUNA.js +0 -28
  875. package/dist/chunk-ABELDLY3.js +0 -594
  876. package/dist/chunk-ABELDLY3.js.map +0 -1
  877. package/dist/chunk-AWICKT2B.js +0 -25
  878. package/dist/chunk-AYC2WM4P.js +0 -106
  879. package/dist/chunk-AYC2WM4P.js.map +0 -1
  880. package/dist/chunk-BDD2ILIT.js +0 -56
  881. package/dist/chunk-BSFTG66P.js +0 -2743
  882. package/dist/chunk-BSFTG66P.js.map +0 -1
  883. package/dist/chunk-BSUN6JMU.js +0 -215
  884. package/dist/chunk-CBEL3P22.js +0 -57
  885. package/dist/chunk-CSADPKPC.js +0 -161
  886. package/dist/chunk-CSADPKPC.js.map +0 -1
  887. package/dist/chunk-DPEQVHTX.js +0 -26
  888. package/dist/chunk-DQLBKU7G.js +0 -469
  889. package/dist/chunk-DQLBKU7G.js.map +0 -1
  890. package/dist/chunk-ECXNE6RJ.js +0 -622
  891. package/dist/chunk-EDFVATFW.js +0 -211
  892. package/dist/chunk-EDFVATFW.js.map +0 -1
  893. package/dist/chunk-EPK2GYLV.js +0 -214
  894. package/dist/chunk-EYO62URT.js +0 -172
  895. package/dist/chunk-F3WFP75M.js +0 -94
  896. package/dist/chunk-F6NJAHAZ.js +0 -19
  897. package/dist/chunk-F7HBCFUA.js +0 -188
  898. package/dist/chunk-FCTWXNRC.js +0 -365
  899. package/dist/chunk-FCTWXNRC.js.map +0 -1
  900. package/dist/chunk-FFZBW4CC.js +0 -297
  901. package/dist/chunk-FR345TDN.js +0 -577
  902. package/dist/chunk-FR345TDN.js.map +0 -1
  903. package/dist/chunk-FRVROFI6.js +0 -98
  904. package/dist/chunk-G32FXVQ6.js +0 -31
  905. package/dist/chunk-HA5D6US2.js +0 -26
  906. package/dist/chunk-HWWPDUZM.js +0 -217
  907. package/dist/chunk-IEULFYA2.js +0 -174
  908. package/dist/chunk-IEULFYA2.js.map +0 -1
  909. package/dist/chunk-IMZIECST.js +0 -830
  910. package/dist/chunk-IPF4P6ZQ.js +0 -392
  911. package/dist/chunk-IPF4P6ZQ.js.map +0 -1
  912. package/dist/chunk-IRHNWYDT.js +0 -106
  913. package/dist/chunk-JH7NHC5W.js +0 -169
  914. package/dist/chunk-JIHG6K7N.js +0 -30
  915. package/dist/chunk-JIHG6K7N.js.map +0 -1
  916. package/dist/chunk-JKDITP62.js +0 -1380
  917. package/dist/chunk-JKDITP62.js.map +0 -1
  918. package/dist/chunk-JMXBUIVI.js +0 -84
  919. package/dist/chunk-KHCN2QXV.js +0 -346
  920. package/dist/chunk-KHCN2QXV.js.map +0 -1
  921. package/dist/chunk-KY4MPR6R.js +0 -3155
  922. package/dist/chunk-KY4MPR6R.js.map +0 -1
  923. package/dist/chunk-L4DOL7L7.js +0 -125
  924. package/dist/chunk-L6PDFIND.js +0 -496
  925. package/dist/chunk-L6PDFIND.js.map +0 -1
  926. package/dist/chunk-L7HPNEKW.js +0 -304
  927. package/dist/chunk-L7HPNEKW.js.map +0 -1
  928. package/dist/chunk-LB3VYIS2.js +0 -141
  929. package/dist/chunk-LB3VYIS2.js.map +0 -1
  930. package/dist/chunk-LDVMMLRA.js +0 -106
  931. package/dist/chunk-LQ4HBQ2B.js +0 -433
  932. package/dist/chunk-LXUEWTHJ.js +0 -788
  933. package/dist/chunk-LXUEWTHJ.js.map +0 -1
  934. package/dist/chunk-LYZVLKRA.js +0 -175
  935. package/dist/chunk-MBKCUSMR.js +0 -6078
  936. package/dist/chunk-MBKCUSMR.js.map +0 -1
  937. package/dist/chunk-MPI3SWIT.js +0 -536
  938. package/dist/chunk-MPI3SWIT.js.map +0 -1
  939. package/dist/chunk-MXPFUDFR.js +0 -1024
  940. package/dist/chunk-MXPFUDFR.js.map +0 -1
  941. package/dist/chunk-N5SQSMMR.js +0 -229
  942. package/dist/chunk-N5SQSMMR.js.map +0 -1
  943. package/dist/chunk-NEONVKMJ.js +0 -455
  944. package/dist/chunk-NEONVKMJ.js.map +0 -1
  945. package/dist/chunk-NFSV3CDO.js +0 -6198
  946. package/dist/chunk-NFSV3CDO.js.map +0 -1
  947. package/dist/chunk-NGT6MARJ.js +0 -274
  948. package/dist/chunk-NGYKF4T6.js +0 -20
  949. package/dist/chunk-NMMKTPGI.js +0 -136
  950. package/dist/chunk-O4AXPEOE.js +0 -923
  951. package/dist/chunk-O4AXPEOE.js.map +0 -1
  952. package/dist/chunk-OPEMWO6C.js +0 -5096
  953. package/dist/chunk-OPEMWO6C.js.map +0 -1
  954. package/dist/chunk-OZLBLXTK.js +0 -74
  955. package/dist/chunk-PB4LQHL2.js +0 -4341
  956. package/dist/chunk-PB4LQHL2.js.map +0 -1
  957. package/dist/chunk-PDJZMQ7F.js +0 -316
  958. package/dist/chunk-PDJZMQ7F.js.map +0 -1
  959. package/dist/chunk-PNHDM76R.js +0 -74
  960. package/dist/chunk-PNHDM76R.js.map +0 -1
  961. package/dist/chunk-Q7UF4ERB.js +0 -74
  962. package/dist/chunk-QRXTDXMX.js +0 -129
  963. package/dist/chunk-QRXTDXMX.js.map +0 -1
  964. package/dist/chunk-QTERC4PG.js +0 -1700
  965. package/dist/chunk-QTERC4PG.js.map +0 -1
  966. package/dist/chunk-QYOPQRLI.js +0 -296
  967. package/dist/chunk-R34LJSPM.js +0 -42
  968. package/dist/chunk-R4ODZS43.js +0 -492
  969. package/dist/chunk-R4ODZS43.js.map +0 -1
  970. package/dist/chunk-RJAQEZVD.js +0 -23
  971. package/dist/chunk-RPFBZHHE.js +0 -55
  972. package/dist/chunk-SXRSLUW7.js +0 -454
  973. package/dist/chunk-T5RKIWPQ.js +0 -352
  974. package/dist/chunk-T5RKIWPQ.js.map +0 -1
  975. package/dist/chunk-TCSPJQ2X.js +0 -136
  976. package/dist/chunk-TD44SXQX.js +0 -58
  977. package/dist/chunk-TQAXOBKJ.js +0 -364
  978. package/dist/chunk-TQAXOBKJ.js.map +0 -1
  979. package/dist/chunk-TTFTS2SO.js +0 -131
  980. package/dist/chunk-UA5EUJXV.js +0 -51
  981. package/dist/chunk-W7OFLOZB.js +0 -46
  982. package/dist/chunk-WAQYXH2U.js +0 -76
  983. package/dist/chunk-WWD4PITU.js +0 -333
  984. package/dist/chunk-WZ5YRUQU.js +0 -12
  985. package/dist/chunk-WZ5YRUQU.js.map +0 -1
  986. package/dist/chunk-XEVVAGAG.js +0 -422
  987. package/dist/chunk-XEVVAGAG.js.map +0 -1
  988. package/dist/chunk-Y4JR4RDM.js +0 -74
  989. package/dist/chunk-YMOVI3WT.js +0 -382
  990. package/dist/chunk-YS6PCTPS.js +0 -96
  991. package/dist/chunk-YUP46PWY.js +0 -199
  992. package/dist/chunk-YUP46PWY.js.map +0 -1
  993. package/dist/chunk-Z4NYXXTP.js +0 -42
  994. package/dist/chunk-Z4NYXXTP.js.map +0 -1
  995. package/dist/chunk-Z5AUNK6P.js +0 -1709
  996. package/dist/chunk-Z5AUNK6P.js.map +0 -1
  997. package/dist/chunk-ZAFR46HG.js +0 -67
  998. package/dist/chunk-ZHW3O25C.js +0 -191
  999. package/dist/claim-CG2IMTHK.js +0 -199
  1000. package/dist/claim-CG2IMTHK.js.map +0 -1
  1001. package/dist/client-XKDFFS7O.js +0 -20
  1002. package/dist/code-JWIOO2AJ.js +0 -78
  1003. package/dist/code-JWIOO2AJ.js.map +0 -1
  1004. package/dist/companies-LQN4HUUH.js +0 -196
  1005. package/dist/companies-LQN4HUUH.js.map +0 -1
  1006. package/dist/complete-MKB27QP7.js +0 -82
  1007. package/dist/complete-MKB27QP7.js.map +0 -1
  1008. package/dist/config-LJOEAYFZ.js +0 -89
  1009. package/dist/config-LJOEAYFZ.js.map +0 -1
  1010. package/dist/connect-ATGYJNG4.js +0 -37
  1011. package/dist/content-Y2BJSXG6.js +0 -83
  1012. package/dist/content-Y2BJSXG6.js.map +0 -1
  1013. package/dist/conversation-EFNQM435.js +0 -94
  1014. package/dist/conversation-EFNQM435.js.map +0 -1
  1015. package/dist/conversion-report-EUSTSHPV.js +0 -126
  1016. package/dist/conversion-report-EUSTSHPV.js.map +0 -1
  1017. package/dist/conversion-upload-command-677OT5NZ.js +0 -432
  1018. package/dist/conversion-upload-command-677OT5NZ.js.map +0 -1
  1019. package/dist/conversion-writes-E7M6VHGB.js +0 -121
  1020. package/dist/conversion-writes-E7M6VHGB.js.map +0 -1
  1021. package/dist/conversions-BXZLEXHU.js +0 -136
  1022. package/dist/conversions-BXZLEXHU.js.map +0 -1
  1023. package/dist/conversions-FERAOXWG.js +0 -77
  1024. package/dist/conversions-FERAOXWG.js.map +0 -1
  1025. package/dist/countries-TKPX2GDH.js +0 -83
  1026. package/dist/countries-TKPX2GDH.js.map +0 -1
  1027. package/dist/create-HGMIWFVX.js +0 -132
  1028. package/dist/create-HGMIWFVX.js.map +0 -1
  1029. package/dist/create-LBJV3NPD.js +0 -209
  1030. package/dist/create-LBJV3NPD.js.map +0 -1
  1031. package/dist/create-QTPZ7PP7.js +0 -117
  1032. package/dist/create-QTPZ7PP7.js.map +0 -1
  1033. package/dist/create-SBIHEG25.js +0 -60
  1034. package/dist/create-SBIHEG25.js.map +0 -1
  1035. package/dist/creatives-CIOOFE3T.js +0 -88
  1036. package/dist/creatives-CIOOFE3T.js.map +0 -1
  1037. package/dist/creatives-MIUJAK4E.js +0 -49
  1038. package/dist/creatives-MIUJAK4E.js.map +0 -1
  1039. package/dist/creatives-QXR7QDXM.js +0 -183
  1040. package/dist/creatives-QXR7QDXM.js.map +0 -1
  1041. package/dist/credentials-CMVAKAUL.js +0 -1057
  1042. package/dist/credentials-CMVAKAUL.js.map +0 -1
  1043. package/dist/critique-LUB35ORK.js +0 -213
  1044. package/dist/critique-LUB35ORK.js.map +0 -1
  1045. package/dist/critique-XXCM7YAV.js +0 -1477
  1046. package/dist/critique-XXCM7YAV.js.map +0 -1
  1047. package/dist/crm-EGNVKQHB.js +0 -279
  1048. package/dist/crm-EGNVKQHB.js.map +0 -1
  1049. package/dist/crm-I6IQ5M55.js +0 -226
  1050. package/dist/crm-I6IQ5M55.js.map +0 -1
  1051. package/dist/crop-ES2IDPUL.js +0 -115
  1052. package/dist/crop-ES2IDPUL.js.map +0 -1
  1053. package/dist/currency-VFKYXFBM.js +0 -89
  1054. package/dist/currency-VFKYXFBM.js.map +0 -1
  1055. package/dist/custom-conversions-WPTEXOWR.js +0 -126
  1056. package/dist/custom-conversions-WPTEXOWR.js.map +0 -1
  1057. package/dist/customers-ACRYXALZ.js +0 -58
  1058. package/dist/delete-3AHBFPQJ.js +0 -68
  1059. package/dist/delete-3AHBFPQJ.js.map +0 -1
  1060. package/dist/delete-E7WYQN2L.js +0 -73
  1061. package/dist/delete-E7WYQN2L.js.map +0 -1
  1062. package/dist/delete-EJCB5MHV.js +0 -71
  1063. package/dist/delete-EJCB5MHV.js.map +0 -1
  1064. package/dist/delete-J677F4BG.js +0 -64
  1065. package/dist/delete-J677F4BG.js.map +0 -1
  1066. package/dist/delete-LVQ7R6DI.js +0 -73
  1067. package/dist/delete-LVQ7R6DI.js.map +0 -1
  1068. package/dist/delete-U4K6NIOE.js +0 -55
  1069. package/dist/delete-U4K6NIOE.js.map +0 -1
  1070. package/dist/demographics-RY6R6VWA.js +0 -139
  1071. package/dist/demographics-RY6R6VWA.js.map +0 -1
  1072. package/dist/describe-N36XDO4P.js +0 -99
  1073. package/dist/describe-N36XDO4P.js.map +0 -1
  1074. package/dist/describe-Q5OAJDYH.js +0 -99
  1075. package/dist/describe-Q5OAJDYH.js.map +0 -1
  1076. package/dist/dimensions-YIWQVFTO.js +0 -103
  1077. package/dist/dimensions-YIWQVFTO.js.map +0 -1
  1078. package/dist/discard-UO4DJNP3.js +0 -67
  1079. package/dist/discard-UO4DJNP3.js.map +0 -1
  1080. package/dist/discover-IASOLBUQ.js +0 -173
  1081. package/dist/discover-IASOLBUQ.js.map +0 -1
  1082. package/dist/domain-QBF4TBGL.js +0 -100
  1083. package/dist/domain-QBF4TBGL.js.map +0 -1
  1084. package/dist/download-DKFYGXEH.js +0 -301
  1085. package/dist/download-DKFYGXEH.js.map +0 -1
  1086. package/dist/draft-5ZZOTJZR.js +0 -282
  1087. package/dist/draft-5ZZOTJZR.js.map +0 -1
  1088. package/dist/draft-DKMUTG4F.js +0 -104
  1089. package/dist/draft-DKMUTG4F.js.map +0 -1
  1090. package/dist/draft-FMOQUVPP.js +0 -219
  1091. package/dist/draft-FMOQUVPP.js.map +0 -1
  1092. package/dist/draft-KFXJCKCH.js +0 -234
  1093. package/dist/draft-KFXJCKCH.js.map +0 -1
  1094. package/dist/draft-KJ6SH67P.js +0 -101
  1095. package/dist/draft-KJ6SH67P.js.map +0 -1
  1096. package/dist/draft-QW7EYFFU.js +0 -329
  1097. package/dist/draft-QW7EYFFU.js.map +0 -1
  1098. package/dist/draft-URMXE4U4.js +0 -101
  1099. package/dist/draft-URMXE4U4.js.map +0 -1
  1100. package/dist/draft-ZU7MZLIT.js +0 -300
  1101. package/dist/draft-ZU7MZLIT.js.map +0 -1
  1102. package/dist/env-ODWJOKNV.js +0 -44
  1103. package/dist/experiment-TUKKH6UJ.js +0 -1378
  1104. package/dist/experiment-TUKKH6UJ.js.map +0 -1
  1105. package/dist/export-WXFUVX6F.js +0 -170
  1106. package/dist/export-WXFUVX6F.js.map +0 -1
  1107. package/dist/extract-PY3J3WVF.js +0 -115
  1108. package/dist/extract-PY3J3WVF.js.map +0 -1
  1109. package/dist/facets-NUEIHCKA.js +0 -115
  1110. package/dist/facets-NUEIHCKA.js.map +0 -1
  1111. package/dist/favorites-JDFIYSV2.js +0 -180
  1112. package/dist/favorites-JDFIYSV2.js.map +0 -1
  1113. package/dist/feed-CYFNDBJS.js +0 -159
  1114. package/dist/feed-CYFNDBJS.js.map +0 -1
  1115. package/dist/feedback-E2P3NB7H.js +0 -68
  1116. package/dist/feedback-E2P3NB7H.js.map +0 -1
  1117. package/dist/feedback-record-IMCTEDOX.js +0 -137
  1118. package/dist/feedback-record-IMCTEDOX.js.map +0 -1
  1119. package/dist/fetch-ELSDT3NZ.js +0 -141
  1120. package/dist/fetch-ELSDT3NZ.js.map +0 -1
  1121. package/dist/fetch-NM7MD3CN.js +0 -172
  1122. package/dist/fetch-NM7MD3CN.js.map +0 -1
  1123. package/dist/find-HYMLZCKA.js +0 -136
  1124. package/dist/find-HYMLZCKA.js.map +0 -1
  1125. package/dist/fit-5WZ6NVSF.js +0 -44
  1126. package/dist/flows-ZEUUIXCS.js +0 -246
  1127. package/dist/flows-ZEUUIXCS.js.map +0 -1
  1128. package/dist/follow-RGJ76HHD.js +0 -84
  1129. package/dist/follow-RGJ76HHD.js.map +0 -1
  1130. package/dist/follow-competitors-JMNOP2ZT.js +0 -133
  1131. package/dist/follow-competitors-JMNOP2ZT.js.map +0 -1
  1132. package/dist/following-5GINRDTL.js +0 -111
  1133. package/dist/following-5GINRDTL.js.map +0 -1
  1134. package/dist/fonts-7U7I2TWV.js +0 -27
  1135. package/dist/forecast-PGDYFFKQ.js +0 -105
  1136. package/dist/forecast-PGDYFFKQ.js.map +0 -1
  1137. package/dist/funding-ED6PDKJF.js +0 -86
  1138. package/dist/funding-ED6PDKJF.js.map +0 -1
  1139. package/dist/funnel-IML4F5ZP.js +0 -838
  1140. package/dist/funnel-IML4F5ZP.js.map +0 -1
  1141. package/dist/ga4-QPEXE6YG.js +0 -55
  1142. package/dist/generate-VVTQCJRI.js +0 -264
  1143. package/dist/generate-VVTQCJRI.js.map +0 -1
  1144. package/dist/get-CZSESEHU.js +0 -61
  1145. package/dist/get-CZSESEHU.js.map +0 -1
  1146. package/dist/get-DEGOS3R6.js +0 -63
  1147. package/dist/get-DEGOS3R6.js.map +0 -1
  1148. package/dist/get-L3ZGUJJB.js +0 -65
  1149. package/dist/get-L3ZGUJJB.js.map +0 -1
  1150. package/dist/get-NX5DGSRP.js +0 -65
  1151. package/dist/get-NX5DGSRP.js.map +0 -1
  1152. package/dist/get-TL6UET23.js +0 -56
  1153. package/dist/get-TL6UET23.js.map +0 -1
  1154. package/dist/get-UNZMYRB6.js +0 -80
  1155. package/dist/get-UNZMYRB6.js.map +0 -1
  1156. package/dist/get-ZVRRZDUU.js +0 -94
  1157. package/dist/get-ZVRRZDUU.js.map +0 -1
  1158. package/dist/gif-MNBSPA64.js +0 -96
  1159. package/dist/gif-MNBSPA64.js.map +0 -1
  1160. package/dist/google-C2Z4XWRL.js +0 -1866
  1161. package/dist/google-C2Z4XWRL.js.map +0 -1
  1162. package/dist/google-LJSSLBP3.js +0 -138
  1163. package/dist/google-LJSSLBP3.js.map +0 -1
  1164. package/dist/group-7BGYA6LK.js +0 -44
  1165. package/dist/group-7BGYA6LK.js.map +0 -1
  1166. package/dist/group-MPYAKBH5.js +0 -44
  1167. package/dist/group-MPYAKBH5.js.map +0 -1
  1168. package/dist/gsc-LC5ADBA3.js +0 -30
  1169. package/dist/history-GPQE2ZYR.js +0 -68
  1170. package/dist/history-GPQE2ZYR.js.map +0 -1
  1171. package/dist/history-XTSLGMK6.js +0 -135
  1172. package/dist/history-XTSLGMK6.js.map +0 -1
  1173. package/dist/hubspot-GPTEZD3A.js +0 -781
  1174. package/dist/hubspot-GPTEZD3A.js.map +0 -1
  1175. package/dist/icon-YKMRIU7A.js +0 -139
  1176. package/dist/icon-YKMRIU7A.js.map +0 -1
  1177. package/dist/ideas-NEBJBIBM.js +0 -31
  1178. package/dist/images-ASWWS5TH.js +0 -90
  1179. package/dist/improve-VXDJGXTG.js +0 -88
  1180. package/dist/improve-VXDJGXTG.js.map +0 -1
  1181. package/dist/ingest-AW37RWJN.js +0 -109
  1182. package/dist/ingest-AW37RWJN.js.map +0 -1
  1183. package/dist/ingest-X7UPOCKP.js +0 -24
  1184. package/dist/insights-MHUV75RQ.js +0 -424
  1185. package/dist/insights-MHUV75RQ.js.map +0 -1
  1186. package/dist/insights-NLQXAW3F.js +0 -123
  1187. package/dist/insights-NLQXAW3F.js.map +0 -1
  1188. package/dist/inspect-TXVKPBAR.js +0 -191
  1189. package/dist/inspect-TXVKPBAR.js.map +0 -1
  1190. package/dist/inspiration-64DY3QWN.js +0 -53
  1191. package/dist/intent-3HY6DRHW.js +0 -96
  1192. package/dist/intent-3HY6DRHW.js.map +0 -1
  1193. package/dist/job-L73KC4TC.js +0 -203
  1194. package/dist/job-L73KC4TC.js.map +0 -1
  1195. package/dist/job-create-LR3EHWKO.js +0 -110
  1196. package/dist/job-create-LR3EHWKO.js.map +0 -1
  1197. package/dist/job-status-MSL4EAJT.js +0 -75
  1198. package/dist/job-status-MSL4EAJT.js.map +0 -1
  1199. package/dist/keep-XUATLR5B.js +0 -80
  1200. package/dist/keep-XUATLR5B.js.map +0 -1
  1201. package/dist/keyword-gap-DJAYVD4U.js +0 -131
  1202. package/dist/keyword-gap-DJAYVD4U.js.map +0 -1
  1203. package/dist/keyword-metrics-4FEFFTQO.js +0 -198
  1204. package/dist/keyword-metrics-4FEFFTQO.js.map +0 -1
  1205. package/dist/keywords-for-site-HIMEQY63.js +0 -125
  1206. package/dist/keywords-for-site-HIMEQY63.js.map +0 -1
  1207. package/dist/landing-KU3ILVB3.js +0 -28
  1208. package/dist/landing-KU3ILVB3.js.map +0 -1
  1209. package/dist/languages-4QYK5DMW.js +0 -56
  1210. package/dist/languages-4QYK5DMW.js.map +0 -1
  1211. package/dist/languages-L5E7WS77.js +0 -41
  1212. package/dist/languages-L5E7WS77.js.map +0 -1
  1213. package/dist/layerize-YAVLAXYM.js +0 -192
  1214. package/dist/layerize-YAVLAXYM.js.map +0 -1
  1215. package/dist/leads-DR3EK77T.js +0 -91
  1216. package/dist/leads-DR3EK77T.js.map +0 -1
  1217. package/dist/leads-PFPQOCBR.js +0 -286
  1218. package/dist/leads-PFPQOCBR.js.map +0 -1
  1219. package/dist/learn-D4D75X2Y.js +0 -204
  1220. package/dist/library-E2SJS7PT.js +0 -111
  1221. package/dist/library-E2SJS7PT.js.map +0 -1
  1222. package/dist/lighthouse-QMECKX4R.js +0 -76
  1223. package/dist/lighthouse-QMECKX4R.js.map +0 -1
  1224. package/dist/line-item-writes-XMDA7AZQ.js +0 -209
  1225. package/dist/line-item-writes-XMDA7AZQ.js.map +0 -1
  1226. package/dist/line-items-YGKTYKVE.js +0 -104
  1227. package/dist/line-items-YGKTYKVE.js.map +0 -1
  1228. package/dist/link-AOB3WGGN.js +0 -65
  1229. package/dist/link-AOB3WGGN.js.map +0 -1
  1230. package/dist/linkedin-WRJNY6NY.js +0 -1002
  1231. package/dist/linkedin-WRJNY6NY.js.map +0 -1
  1232. package/dist/list-66VKYGKM.js +0 -52
  1233. package/dist/list-66VKYGKM.js.map +0 -1
  1234. package/dist/list-6DZWRLDN.js +0 -59
  1235. package/dist/list-6DZWRLDN.js.map +0 -1
  1236. package/dist/list-6KJWGPPS.js +0 -67
  1237. package/dist/list-6KJWGPPS.js.map +0 -1
  1238. package/dist/list-GXCKA2AN.js +0 -153
  1239. package/dist/list-GXCKA2AN.js.map +0 -1
  1240. package/dist/list-KNHZPT7L.js +0 -65
  1241. package/dist/list-KNHZPT7L.js.map +0 -1
  1242. package/dist/list-LPETG6A6.js +0 -78
  1243. package/dist/list-LPETG6A6.js.map +0 -1
  1244. package/dist/list-WHJNWHSZ.js +0 -53
  1245. package/dist/list-WHJNWHSZ.js.map +0 -1
  1246. package/dist/list-YV5Z2J6U.js +0 -305
  1247. package/dist/list-YV5Z2J6U.js.map +0 -1
  1248. package/dist/locations-4FZYKG2A.js +0 -68
  1249. package/dist/locations-4FZYKG2A.js.map +0 -1
  1250. package/dist/locations-W32YE2KS.js +0 -41
  1251. package/dist/locations-W32YE2KS.js.map +0 -1
  1252. package/dist/log-YVW46HL7.js +0 -94
  1253. package/dist/log-YVW46HL7.js.map +0 -1
  1254. package/dist/logo-7O7VW5R3.js +0 -19
  1255. package/dist/lookup-Z2X5WAO6.js +0 -23
  1256. package/dist/make-Q6BQ7LNT.js +0 -505
  1257. package/dist/make-Q6BQ7LNT.js.map +0 -1
  1258. package/dist/map-VZM5C6DA.js +0 -406
  1259. package/dist/map-VZM5C6DA.js.map +0 -1
  1260. package/dist/mcp-KSJDALG6.js +0 -478
  1261. package/dist/mcp-KSJDALG6.js.map +0 -1
  1262. package/dist/media-7P66TUIR.js +0 -15
  1263. package/dist/media-JBQKYSRQ.js +0 -90
  1264. package/dist/media-JBQKYSRQ.js.map +0 -1
  1265. package/dist/media-sources-427U333M.js +0 -32
  1266. package/dist/members-ABGEFALK.js +0 -46
  1267. package/dist/members-ABGEFALK.js.map +0 -1
  1268. package/dist/meta-JH4FHVNX.js +0 -69
  1269. package/dist/metrics-ALSPX6EQ.js +0 -153
  1270. package/dist/metrics-ALSPX6EQ.js.map +0 -1
  1271. package/dist/models-7BM5BKXX.js +0 -157
  1272. package/dist/models-7BM5BKXX.js.map +0 -1
  1273. package/dist/normalize-DFK3DGGZ.js +0 -808
  1274. package/dist/normalize-DFK3DGGZ.js.map +0 -1
  1275. package/dist/normalize-NDR7YEQE.js +0 -140
  1276. package/dist/normalize-NDR7YEQE.js.map +0 -1
  1277. package/dist/options-G5VGH22X.js +0 -123
  1278. package/dist/options-G5VGH22X.js.map +0 -1
  1279. package/dist/output-ZLXBAA4O.js +0 -25
  1280. package/dist/page-L7BBMINT.js +0 -107
  1281. package/dist/page-L7BBMINT.js.map +0 -1
  1282. package/dist/pages-NBV35ECG.js +0 -67
  1283. package/dist/pages-NBV35ECG.js.map +0 -1
  1284. package/dist/performance-SOMZNPIG.js +0 -25
  1285. package/dist/pinterest-KXAZTRDP.js +0 -98
  1286. package/dist/pinterest-KXAZTRDP.js.map +0 -1
  1287. package/dist/pixels-DYWHXAJT.js +0 -109
  1288. package/dist/pixels-DYWHXAJT.js.map +0 -1
  1289. package/dist/pixels-UMS2QBUG.js +0 -61
  1290. package/dist/pixels-UMS2QBUG.js.map +0 -1
  1291. package/dist/preview-C5FER5SU.js +0 -170
  1292. package/dist/preview-C5FER5SU.js.map +0 -1
  1293. package/dist/promoted-tweet-writes-3PECZLQA.js +0 -181
  1294. package/dist/promoted-tweet-writes-3PECZLQA.js.map +0 -1
  1295. package/dist/promoted-tweets-GMV6WIWV.js +0 -120
  1296. package/dist/promoted-tweets-GMV6WIWV.js.map +0 -1
  1297. package/dist/properties-YAJQF577.js +0 -102
  1298. package/dist/properties-YAJQF577.js.map +0 -1
  1299. package/dist/publish-5WDUTTG5.js +0 -355
  1300. package/dist/publish-5WDUTTG5.js.map +0 -1
  1301. package/dist/query-TBWL52JI.js +0 -1342
  1302. package/dist/query-TBWL52JI.js.map +0 -1
  1303. package/dist/query-VESQSTQI.js +0 -237
  1304. package/dist/query-VESQSTQI.js.map +0 -1
  1305. package/dist/query-XZQSY62P.js +0 -248
  1306. package/dist/query-XZQSY62P.js.map +0 -1
  1307. package/dist/read-UMAWDVKX.js +0 -141
  1308. package/dist/read-UMAWDVKX.js.map +0 -1
  1309. package/dist/reddit-OPHQFRRC.js +0 -27
  1310. package/dist/refresh-U56RE7DI.js +0 -96
  1311. package/dist/refresh-U56RE7DI.js.map +0 -1
  1312. package/dist/release-P66DYNKQ.js +0 -61
  1313. package/dist/release-P66DYNKQ.js.map +0 -1
  1314. package/dist/relevant-pages-DSQQU6F7.js +0 -100
  1315. package/dist/relevant-pages-DSQQU6F7.js.map +0 -1
  1316. package/dist/remove-GRLXSDZC.js +0 -50
  1317. package/dist/remove-GRLXSDZC.js.map +0 -1
  1318. package/dist/remove-IRIP4OKM.js +0 -52
  1319. package/dist/remove-IRIP4OKM.js.map +0 -1
  1320. package/dist/reopen-PMIO7NJJ.js +0 -65
  1321. package/dist/reopen-PMIO7NJJ.js.map +0 -1
  1322. package/dist/rerun-V4O6TKBY.js +0 -84
  1323. package/dist/rerun-V4O6TKBY.js.map +0 -1
  1324. package/dist/research-MG3MESKH.js +0 -59
  1325. package/dist/research-RFPBKIVP.js +0 -228
  1326. package/dist/research-RFPBKIVP.js.map +0 -1
  1327. package/dist/reset-3HKXFAV7.js +0 -56
  1328. package/dist/reset-3HKXFAV7.js.map +0 -1
  1329. package/dist/reset-LQZA3CIB.js +0 -56
  1330. package/dist/reset-LQZA3CIB.js.map +0 -1
  1331. package/dist/resolve-H33CQAY4.js +0 -122
  1332. package/dist/resolve-H33CQAY4.js.map +0 -1
  1333. package/dist/retry-6F3YAVYQ.js +0 -64
  1334. package/dist/retry-6F3YAVYQ.js.map +0 -1
  1335. package/dist/retry-QWD3HWFP.js +0 -62
  1336. package/dist/retry-QWD3HWFP.js.map +0 -1
  1337. package/dist/retry-failed-7OAJ5TMD.js +0 -47
  1338. package/dist/retry-failed-7OAJ5TMD.js.map +0 -1
  1339. package/dist/run-CGZIVYLV.js +0 -67
  1340. package/dist/run-CGZIVYLV.js.map +0 -1
  1341. package/dist/run-PZF26R6H.js +0 -59
  1342. package/dist/scaffold-ad-AI6R4GDU.js +0 -1458
  1343. package/dist/scaffold-ad-AI6R4GDU.js.map +0 -1
  1344. package/dist/scaffold-static-ad-T7ZDHRB3.js +0 -944
  1345. package/dist/scaffold-static-ad-T7ZDHRB3.js.map +0 -1
  1346. package/dist/scaffold-video-R24U2WC7.js +0 -840
  1347. package/dist/scaffold-video-R24U2WC7.js.map +0 -1
  1348. package/dist/schedule-BK44B77G.js +0 -68
  1349. package/dist/schedule-BK44B77G.js.map +0 -1
  1350. package/dist/schedule-F2EEY4UK.js +0 -63
  1351. package/dist/schedule-F2EEY4UK.js.map +0 -1
  1352. package/dist/scheduled-agents-CIEAOWM6.js +0 -49
  1353. package/dist/schema-3B6FDPBF.js +0 -131
  1354. package/dist/schema-3B6FDPBF.js.map +0 -1
  1355. package/dist/schema-4FOZ5W35.js +0 -65
  1356. package/dist/schema-4FOZ5W35.js.map +0 -1
  1357. package/dist/scrape-P46M2J43.js +0 -2243
  1358. package/dist/scrape-P46M2J43.js.map +0 -1
  1359. package/dist/screenshot-6F7G3LN5.js +0 -104
  1360. package/dist/screenshot-6F7G3LN5.js.map +0 -1
  1361. package/dist/search-23LREBOG.js +0 -94
  1362. package/dist/search-23LREBOG.js.map +0 -1
  1363. package/dist/search-DNYAA6TT.js +0 -176
  1364. package/dist/search-DNYAA6TT.js.map +0 -1
  1365. package/dist/search-FORHMB7P.js +0 -27
  1366. package/dist/search-KQMPPO3X.js +0 -226
  1367. package/dist/search-KQMPPO3X.js.map +0 -1
  1368. package/dist/search-X4AKUB2K.js +0 -93
  1369. package/dist/search-X4AKUB2K.js.map +0 -1
  1370. package/dist/seeds-K4CHZ2HU.js +0 -103
  1371. package/dist/seeds-K4CHZ2HU.js.map +0 -1
  1372. package/dist/select-52K6KZGY.js +0 -95
  1373. package/dist/sends-UH2MZGCD.js +0 -310
  1374. package/dist/sends-UH2MZGCD.js.map +0 -1
  1375. package/dist/sequences-BXGO3NPA.js +0 -148
  1376. package/dist/sequences-BXGO3NPA.js.map +0 -1
  1377. package/dist/set-prompt-3IXP42AK.js +0 -186
  1378. package/dist/set-prompt-3IXP42AK.js.map +0 -1
  1379. package/dist/setup-links-OV6ALAUU.js +0 -143
  1380. package/dist/setup-links-OV6ALAUU.js.map +0 -1
  1381. package/dist/shared-VMV44VPB.js +0 -32
  1382. package/dist/site-MQ5ORTKV.js +0 -179
  1383. package/dist/site-MQ5ORTKV.js.map +0 -1
  1384. package/dist/sitemaps-LKCTG2WM.js +0 -88
  1385. package/dist/sitemaps-LKCTG2WM.js.map +0 -1
  1386. package/dist/sites-YHUF7G4Z.js +0 -102
  1387. package/dist/sites-YHUF7G4Z.js.map +0 -1
  1388. package/dist/skills-CG674XHN.js +0 -49
  1389. package/dist/skills-CG674XHN.js.map +0 -1
  1390. package/dist/sources-44THTN2Y.js +0 -422
  1391. package/dist/sources-44THTN2Y.js.map +0 -1
  1392. package/dist/sources-BQNCLGWT.js +0 -30
  1393. package/dist/stale-JGLP7BAC.js +0 -63
  1394. package/dist/stale-JGLP7BAC.js.map +0 -1
  1395. package/dist/stats-TO3J2FU6.js +0 -34
  1396. package/dist/status-NJ3SMBGS.js +0 -64
  1397. package/dist/status-NJ3SMBGS.js.map +0 -1
  1398. package/dist/sticker-YBOWSWMR.js +0 -96
  1399. package/dist/sticker-YBOWSWMR.js.map +0 -1
  1400. package/dist/stock-E6NMDSVI.js +0 -181
  1401. package/dist/stock-E6NMDSVI.js.map +0 -1
  1402. package/dist/studio-LHH62SZC.js +0 -49
  1403. package/dist/sync-2R5UKTHN.js +0 -56
  1404. package/dist/sync-2R5UKTHN.js.map +0 -1
  1405. package/dist/sync-AZRR5JNS.js +0 -266
  1406. package/dist/sync-AZRR5JNS.js.map +0 -1
  1407. package/dist/sync-ML7E5J22.js +0 -56
  1408. package/dist/sync-ML7E5J22.js.map +0 -1
  1409. package/dist/sync-definition-LBPI7P5F.js +0 -48
  1410. package/dist/tag-manager-D3YNI7JG.js +0 -43
  1411. package/dist/tags-BYGKXDDS.js +0 -21
  1412. package/dist/tags-BYGKXDDS.js.map +0 -1
  1413. package/dist/tags-OOQV4G2Y.js +0 -26
  1414. package/dist/tags-TKYXWGN4.js +0 -21
  1415. package/dist/tags-TKYXWGN4.js.map +0 -1
  1416. package/dist/tags-V732MEES.js +0 -226
  1417. package/dist/tags-V732MEES.js.map +0 -1
  1418. package/dist/tags-YLC46IXM.js +0 -21
  1419. package/dist/tags-YLC46IXM.js.map +0 -1
  1420. package/dist/targeting-constants-XT56MOGP.js +0 -119
  1421. package/dist/targeting-constants-XT56MOGP.js.map +0 -1
  1422. package/dist/targeting-criteria-24X3IIJS.js +0 -114
  1423. package/dist/targeting-criteria-24X3IIJS.js.map +0 -1
  1424. package/dist/targets-AKAN2HFY.js +0 -104
  1425. package/dist/targets-AKAN2HFY.js.map +0 -1
  1426. package/dist/templates-7MRVQTB2.js +0 -180
  1427. package/dist/templates-7MRVQTB2.js.map +0 -1
  1428. package/dist/testimonials-OIZMXEYZ.js +0 -32
  1429. package/dist/top-companies-3IG5FRQ2.js +0 -109
  1430. package/dist/top-companies-3IG5FRQ2.js.map +0 -1
  1431. package/dist/triggers-ZHNWHJG4.js +0 -143
  1432. package/dist/triggers-ZHNWHJG4.js.map +0 -1
  1433. package/dist/tweets-V5R5DUA2.js +0 -124
  1434. package/dist/tweets-V5R5DUA2.js.map +0 -1
  1435. package/dist/unfollow-RYDJDDAV.js +0 -48
  1436. package/dist/unfollow-RYDJDDAV.js.map +0 -1
  1437. package/dist/unlink-CS7QNOU2.js +0 -68
  1438. package/dist/unlink-CS7QNOU2.js.map +0 -1
  1439. package/dist/unstage-DDZ5F2Z6.js +0 -86
  1440. package/dist/unstage-DDZ5F2Z6.js.map +0 -1
  1441. package/dist/unstage-KPLOFKU5.js +0 -96
  1442. package/dist/unstage-KPLOFKU5.js.map +0 -1
  1443. package/dist/update-ASY63WIK.js +0 -157
  1444. package/dist/update-ASY63WIK.js.map +0 -1
  1445. package/dist/update-HA5IQCJ2.js +0 -99
  1446. package/dist/update-HA5IQCJ2.js.map +0 -1
  1447. package/dist/update-R3VD5DC3.js +0 -143
  1448. package/dist/update-R3VD5DC3.js.map +0 -1
  1449. package/dist/update-WMCBSNSD.js +0 -64
  1450. package/dist/update-WMCBSNSD.js.map +0 -1
  1451. package/dist/upload-ADEYBWTV.js +0 -152
  1452. package/dist/upload-ADEYBWTV.js.map +0 -1
  1453. package/dist/upload-WBNPIOVR.js +0 -128
  1454. package/dist/upload-WBNPIOVR.js.map +0 -1
  1455. package/dist/upscale-WYTZPUIA.js +0 -111
  1456. package/dist/upscale-WYTZPUIA.js.map +0 -1
  1457. package/dist/url-options-DOCH5AWX.js +0 -128
  1458. package/dist/url-options-DOCH5AWX.js.map +0 -1
  1459. package/dist/url-params-IYTU3MVV.js +0 -99
  1460. package/dist/url-params-IYTU3MVV.js.map +0 -1
  1461. package/dist/use-RGJMULXG.js +0 -97
  1462. package/dist/use-RGJMULXG.js.map +0 -1
  1463. package/dist/validate-T22BKIFK.js +0 -89
  1464. package/dist/validate-T22BKIFK.js.map +0 -1
  1465. package/dist/variant-3DBL2RDV.js +0 -339
  1466. package/dist/variant-3DBL2RDV.js.map +0 -1
  1467. package/dist/videos-7SB2CLZW.js +0 -39
  1468. package/dist/view-5QDCP7HF.js +0 -123
  1469. package/dist/view-5QDCP7HF.js.map +0 -1
  1470. package/dist/viewer-check-NGIMC2BR.js +0 -66
  1471. package/dist/web-IRWXTGE2.js +0 -136
  1472. package/dist/web-IRWXTGE2.js.map +0 -1
  1473. package/dist/winners-JSI4N26Y.js +0 -81
  1474. package/dist/winners-JSI4N26Y.js.map +0 -1
  1475. package/dist/winning-ads-XQZ6HEX5.js +0 -62
  1476. package/dist/write-commands-3C3TV2YC.js +0 -714
  1477. package/dist/write-commands-3C3TV2YC.js.map +0 -1
  1478. package/dist/write-commands-7WIG5UDU.js +0 -731
  1479. package/dist/write-commands-7WIG5UDU.js.map +0 -1
  1480. package/dist/write-commands-G7HHGAEE.js +0 -1009
  1481. package/dist/write-commands-G7HHGAEE.js.map +0 -1
  1482. package/dist/write-commands-ROQSZFXR.js +0 -207
  1483. package/dist/write-commands-ROQSZFXR.js.map +0 -1
  1484. package/dist/x-BLTCL6L3.js +0 -47
  1485. /package/dist/{actions-7XF5L4U3.js.map → actions-PEI6ZQAG.js.map} +0 -0
  1486. /package/dist/{ads-IRE5RZCS.js.map → ads-TJ7ACFHG.js.map} +0 -0
  1487. /package/dist/{avatars-G54K55J3.js.map → avatars-2UQJXHPV.js.map} +0 -0
  1488. /package/dist/{brand-ODTHWWFL.js.map → brand-XBABUT52.js.map} +0 -0
  1489. /package/dist/{canvas-M5HAG7VA.js.map → canvas-KEXE5P6S.js.map} +0 -0
  1490. /package/dist/{chatgpt-PLKNBNVL.js.map → chatgpt-7W75X3ER.js.map} +0 -0
  1491. /package/dist/{chunk-OZLBLXTK.js.map → chunk-2TK4DEOE.js.map} +0 -0
  1492. /package/dist/{chunk-ZHW3O25C.js.map → chunk-4NDCTLI5.js.map} +0 -0
  1493. /package/dist/{chunk-5NQIFCNX.js.map → chunk-5ARG3CQG.js.map} +0 -0
  1494. /package/dist/{chunk-ZAFR46HG.js.map → chunk-5Z2KSVIV.js.map} +0 -0
  1495. /package/dist/{chunk-EYO62URT.js.map → chunk-6B7VKFS4.js.map} +0 -0
  1496. /package/dist/{chunk-W7OFLOZB.js.map → chunk-6G5K6ZC6.js.map} +0 -0
  1497. /package/dist/{chunk-RJAQEZVD.js.map → chunk-73QKIIIR.js.map} +0 -0
  1498. /package/dist/{chunk-YS6PCTPS.js.map → chunk-75FDTDLH.js.map} +0 -0
  1499. /package/dist/{chunk-NGT6MARJ.js.map → chunk-7J6EHOH6.js.map} +0 -0
  1500. /package/dist/{chunk-TD44SXQX.js.map → chunk-7OFNN4CT.js.map} +0 -0
  1501. /package/dist/{chunk-LDVMMLRA.js.map → chunk-C6U6UDHJ.js.map} +0 -0
  1502. /package/dist/{chunk-6FBZ5E6L.js.map → chunk-DIY6QR3E.js.map} +0 -0
  1503. /package/dist/{chunk-F3WFP75M.js.map → chunk-EFSYTROP.js.map} +0 -0
  1504. /package/dist/{chunk-4MU3U3SO.js.map → chunk-FEXDI4NM.js.map} +0 -0
  1505. /package/dist/{chunk-YMOVI3WT.js.map → chunk-FHXIEMCG.js.map} +0 -0
  1506. /package/dist/{chunk-R34LJSPM.js.map → chunk-H26L3OQY.js.map} +0 -0
  1507. /package/dist/{chunk-NMMKTPGI.js.map → chunk-HIPDMQZ6.js.map} +0 -0
  1508. /package/dist/{chunk-FRVROFI6.js.map → chunk-HYCIBVDW.js.map} +0 -0
  1509. /package/dist/{chunk-BSUN6JMU.js.map → chunk-IFWP3ZDO.js.map} +0 -0
  1510. /package/dist/{chunk-LQ4HBQ2B.js.map → chunk-IXKEWS7X.js.map} +0 -0
  1511. /package/dist/{chunk-DPEQVHTX.js.map → chunk-JERXV5A3.js.map} +0 -0
  1512. /package/dist/{chunk-TCSPJQ2X.js.map → chunk-KLNKEVIY.js.map} +0 -0
  1513. /package/dist/{chunk-JMXBUIVI.js.map → chunk-KNY76UGC.js.map} +0 -0
  1514. /package/dist/{chunk-IMZIECST.js.map → chunk-KWAOTV7F.js.map} +0 -0
  1515. /package/dist/{chunk-A57AHUNA.js.map → chunk-LERTEZST.js.map} +0 -0
  1516. /package/dist/{chunk-73MCYA5Z.js.map → chunk-LL2CD5WU.js.map} +0 -0
  1517. /package/dist/{chunk-UA5EUJXV.js.map → chunk-LO6GEJ4Z.js.map} +0 -0
  1518. /package/dist/{chunk-IRHNWYDT.js.map → chunk-LS5MTRFI.js.map} +0 -0
  1519. /package/dist/{chunk-F7HBCFUA.js.map → chunk-LZ73CZGP.js.map} +0 -0
  1520. /package/dist/{chunk-NGYKF4T6.js.map → chunk-MELOSESI.js.map} +0 -0
  1521. /package/dist/{chunk-SXRSLUW7.js.map → chunk-NAWWC5I3.js.map} +0 -0
  1522. /package/dist/{chunk-FFZBW4CC.js.map → chunk-NPE7EWBE.js.map} +0 -0
  1523. /package/dist/{chunk-JH7NHC5W.js.map → chunk-OKG6GX2F.js.map} +0 -0
  1524. /package/dist/{chunk-WAQYXH2U.js.map → chunk-PBA3YCZA.js.map} +0 -0
  1525. /package/dist/{chunk-AWICKT2B.js.map → chunk-PWGWMIIJ.js.map} +0 -0
  1526. /package/dist/{chunk-F6NJAHAZ.js.map → chunk-QHLB5V7J.js.map} +0 -0
  1527. /package/dist/{chunk-TTFTS2SO.js.map → chunk-QJE6ZYGI.js.map} +0 -0
  1528. /package/dist/{chunk-Y4JR4RDM.js.map → chunk-QSN5MZGS.js.map} +0 -0
  1529. /package/dist/{chunk-HWWPDUZM.js.map → chunk-RSW6QJPH.js.map} +0 -0
  1530. /package/dist/{chunk-LYZVLKRA.js.map → chunk-SBMIQDCX.js.map} +0 -0
  1531. /package/dist/{chunk-BDD2ILIT.js.map → chunk-STIB5DR5.js.map} +0 -0
  1532. /package/dist/{chunk-A3PEJ3V3.js.map → chunk-TBEUMOEL.js.map} +0 -0
  1533. /package/dist/{chunk-RPFBZHHE.js.map → chunk-TD2P4HBP.js.map} +0 -0
  1534. /package/dist/{chunk-CBEL3P22.js.map → chunk-VBHDZSI5.js.map} +0 -0
  1535. /package/dist/{chunk-6YWRJMGR.js.map → chunk-VFIOJD5M.js.map} +0 -0
  1536. /package/dist/{chunk-QYOPQRLI.js.map → chunk-VVZBBKRC.js.map} +0 -0
  1537. /package/dist/{chunk-G32FXVQ6.js.map → chunk-W3B4BHQU.js.map} +0 -0
  1538. /package/dist/{chunk-Q7UF4ERB.js.map → chunk-WS2GMOSG.js.map} +0 -0
  1539. /package/dist/{chunk-EPK2GYLV.js.map → chunk-XBOK23HI.js.map} +0 -0
  1540. /package/dist/{chunk-HA5D6US2.js.map → chunk-XG3XCHN6.js.map} +0 -0
  1541. /package/dist/{chunk-L4DOL7L7.js.map → chunk-XL3BMSYG.js.map} +0 -0
  1542. /package/dist/{chunk-ECXNE6RJ.js.map → chunk-XYMPS526.js.map} +0 -0
  1543. /package/dist/{chunk-WWD4PITU.js.map → chunk-YBMVHGY3.js.map} +0 -0
  1544. /package/dist/{client-XKDFFS7O.js.map → client-VHN32ZRE.js.map} +0 -0
  1545. /package/dist/{connect-ATGYJNG4.js.map → connect-TA5W6YGW.js.map} +0 -0
  1546. /package/dist/{customers-ACRYXALZ.js.map → customers-4RJGRR2Y.js.map} +0 -0
  1547. /package/dist/{env-ODWJOKNV.js.map → env-KIP2J2UB.js.map} +0 -0
  1548. /package/dist/{fit-5WZ6NVSF.js.map → fit-KXHYKIA4.js.map} +0 -0
  1549. /package/dist/{fonts-7U7I2TWV.js.map → fonts-NTOQS2KU.js.map} +0 -0
  1550. /package/dist/{ga4-QPEXE6YG.js.map → ga4-UDQ2HA2J.js.map} +0 -0
  1551. /package/dist/{gsc-LC5ADBA3.js.map → gsc-P3QYGDV2.js.map} +0 -0
  1552. /package/dist/{ideas-NEBJBIBM.js.map → ideas-PU7IAX6F.js.map} +0 -0
  1553. /package/dist/{images-ASWWS5TH.js.map → images-QI2HTX6B.js.map} +0 -0
  1554. /package/dist/{ingest-X7UPOCKP.js.map → ingest-BYJNFOOT.js.map} +0 -0
  1555. /package/dist/{inspiration-64DY3QWN.js.map → inspiration-I4MMKAWA.js.map} +0 -0
  1556. /package/dist/{learn-D4D75X2Y.js.map → learn-HZU3QWNN.js.map} +0 -0
  1557. /package/dist/{logo-7O7VW5R3.js.map → logo-2IP663QO.js.map} +0 -0
  1558. /package/dist/{lookup-Z2X5WAO6.js.map → lookup-XK45W2SH.js.map} +0 -0
  1559. /package/dist/{media-7P66TUIR.js.map → media-M7E6V2XU.js.map} +0 -0
  1560. /package/dist/{media-sources-427U333M.js.map → media-sources-3D246I3O.js.map} +0 -0
  1561. /package/dist/{meta-JH4FHVNX.js.map → meta-EZ4SY25M.js.map} +0 -0
  1562. /package/dist/{output-ZLXBAA4O.js.map → output-RAH3TSIL.js.map} +0 -0
  1563. /package/dist/{performance-SOMZNPIG.js.map → performance-7LQQCEAW.js.map} +0 -0
  1564. /package/dist/{reddit-OPHQFRRC.js.map → reddit-INGPFGP4.js.map} +0 -0
  1565. /package/dist/{research-MG3MESKH.js.map → research-PA53M335.js.map} +0 -0
  1566. /package/dist/{run-PZF26R6H.js.map → run-2IM2QOCI.js.map} +0 -0
  1567. /package/dist/{scheduled-agents-CIEAOWM6.js.map → scheduled-agents-2NCGSD76.js.map} +0 -0
  1568. /package/dist/{search-FORHMB7P.js.map → search-XUIVHGAY.js.map} +0 -0
  1569. /package/dist/{select-52K6KZGY.js.map → select-ZWDEVAH2.js.map} +0 -0
  1570. /package/dist/{shared-VMV44VPB.js.map → shared-HJDFNID4.js.map} +0 -0
  1571. /package/dist/{sources-BQNCLGWT.js.map → sources-UGMZFZ2E.js.map} +0 -0
  1572. /package/dist/{stats-TO3J2FU6.js.map → stats-NNXZMPZR.js.map} +0 -0
  1573. /package/dist/{studio-LHH62SZC.js.map → studio-HUEBE6DS.js.map} +0 -0
  1574. /package/dist/{sync-definition-LBPI7P5F.js.map → sync-definition-YBDM7D4M.js.map} +0 -0
  1575. /package/dist/{tag-manager-D3YNI7JG.js.map → tag-manager-HREEYGVM.js.map} +0 -0
  1576. /package/dist/{tags-OOQV4G2Y.js.map → tags-R3K35KTL.js.map} +0 -0
  1577. /package/dist/{testimonials-OIZMXEYZ.js.map → testimonials-5QGCPZ6K.js.map} +0 -0
  1578. /package/dist/{videos-7SB2CLZW.js.map → videos-GIYDCCKR.js.map} +0 -0
  1579. /package/dist/{viewer-check-NGIMC2BR.js.map → viewer-check-VN2JK2LW.js.map} +0 -0
  1580. /package/dist/{winning-ads-XQZ6HEX5.js.map → winning-ads-7QWEIMRU.js.map} +0 -0
  1581. /package/dist/{x-BLTCL6L3.js.map → x-OEAKQBB7.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/engine/nodes/local/lib/render-review.ts"],"sourcesContent":["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\";\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\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};\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 try {\n return JSON.parse(body.slice(start, end + 1));\n } catch {\n return null;\n }\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: { market?: string; script?: string }): string {\n const market = opts.market?.trim();\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 '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\":\"...\"}]}'\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/** `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/** 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): 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: [{ role: \"user\", content: parts }],\n usage: { include: true },\n ...(reasoning ? { reasoning } : {}),\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): 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 );\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): Promise<unknown> {\n if (!hasOpenRouterKey()) return null;\n return await askGateway(model, [{ type: \"text\", text: prompt }], 60_000, (usage) => onSpend?.(usage));\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 /**\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({ market: opts.market, script: opts.script }),\n spent,\n );\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 ...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"],"mappings":"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","names":[]}
@@ -1,98 +0,0 @@
1
- import {
2
- isRemoteUrl
3
- } from "./chunk-WAQYXH2U.js";
4
- import {
5
- detectImageContentType,
6
- uploadLocalImage
7
- } from "./chunk-YS6PCTPS.js";
8
- import {
9
- IMAGE_GENERATE_MODELS,
10
- MODEL_REGISTRY,
11
- VIDEO_GENERATE_MODELS
12
- } from "./chunk-KY4MPR6R.js";
13
- import {
14
- ApiError,
15
- apiPost
16
- } from "./chunk-EPK2GYLV.js";
17
-
18
- // src/commands/studio/modelOptions.ts
19
- function unionOfStringEnum(node, models, param) {
20
- const values = /* @__PURE__ */ new Set();
21
- for (const model of models) {
22
- const schema = MODEL_REGISTRY[node][model]?.params[param];
23
- if (schema?.kind === "string") for (const value of schema.enum ?? []) values.add(value);
24
- }
25
- return [...values];
26
- }
27
- function unionOfNumberEnum(node, models, param) {
28
- const values = /* @__PURE__ */ new Set();
29
- for (const model of models) {
30
- const schema = MODEL_REGISTRY[node][model]?.params[param];
31
- if (schema?.kind === "number") for (const value of schema.enum ?? []) values.add(value);
32
- }
33
- return [...values].sort((a, b) => a - b);
34
- }
35
- var IMAGE_MODEL_IDS = [...IMAGE_GENERATE_MODELS];
36
- var VIDEO_MODEL_IDS = [...VIDEO_GENERATE_MODELS];
37
- var IMAGE_SIZES = unionOfStringEnum("image_generate", IMAGE_GENERATE_MODELS, "image_size");
38
- var IMAGE_QUALITIES = unionOfStringEnum("image_generate", IMAGE_GENERATE_MODELS, "quality");
39
- var CLIP_RESOLUTIONS = unionOfStringEnum("video_generate", VIDEO_GENERATE_MODELS, "resolution");
40
- var CLIP_DURATIONS = unionOfNumberEnum("video_generate", VIDEO_GENERATE_MODELS, "duration");
41
- var CLIP_PERSON_GENERATION = unionOfStringEnum("video_generate", VIDEO_GENERATE_MODELS, "person_generation");
42
-
43
- // src/commands/studio/references.ts
44
- var LIBRARY_ID_RE = /^[a-z0-9]{16,}$/i;
45
- var FILE_EXTENSION_RE = /\.[a-z0-9]{2,5}$/i;
46
- var PATH_HINT_RE = /[/\\]/;
47
- function classify(entry) {
48
- if (isRemoteUrl(entry)) return { kind: "url", value: entry };
49
- if (PATH_HINT_RE.test(entry) || FILE_EXTENSION_RE.test(entry)) return { kind: "path", value: entry };
50
- if (LIBRARY_ID_RE.test(entry)) return { kind: "id", value: entry };
51
- throw new ApiError(
52
- "VALIDATION_ERROR",
53
- `"${entry}" is not a library image id, a file path, or an image URL. Pass a comma-separated mix of those.`
54
- );
55
- }
56
- function parseImageRefs(spec) {
57
- return spec.split(",").map((entry) => entry.trim()).filter(Boolean).map(classify);
58
- }
59
- var defaultDeps = {
60
- ingest: (url) => apiPost("/api/images/ingest", { url, source: "uploaded" }),
61
- upload: (path) => uploadLocalImage({ file: path, contentType: detectImageContentType(path), source: "uploaded" })
62
- };
63
- async function resolveLibraryImageIds(spec, limit, deps = defaultDeps) {
64
- const refs = parseImageRefs(spec);
65
- if (limit && refs.length > limit.max) {
66
- throw new ApiError("VALIDATION_ERROR", limit.refuse(refs.length));
67
- }
68
- const imageIds = [];
69
- const added = [];
70
- for (const ref of refs) {
71
- if (ref.kind === "id") {
72
- imageIds.push(ref.value);
73
- continue;
74
- }
75
- const { imageId } = ref.kind === "url" ? await deps.ingest(ref.value) : await deps.upload(ref.value).catch(uploadFailure(ref.value));
76
- imageIds.push(imageId);
77
- added.push(imageId);
78
- }
79
- return { imageIds, added };
80
- }
81
- function uploadFailure(path) {
82
- return (error) => {
83
- if (error instanceof ApiError) throw error;
84
- throw new ApiError("VALIDATION_ERROR", `Could not read "${path}" as an image.`);
85
- };
86
- }
87
-
88
- export {
89
- IMAGE_MODEL_IDS,
90
- VIDEO_MODEL_IDS,
91
- IMAGE_SIZES,
92
- IMAGE_QUALITIES,
93
- CLIP_RESOLUTIONS,
94
- CLIP_DURATIONS,
95
- CLIP_PERSON_GENERATION,
96
- resolveLibraryImageIds
97
- };
98
- //# sourceMappingURL=chunk-FRVROFI6.js.map
@@ -1,31 +0,0 @@
1
- import {
2
- API_KEY_FORMAT_MESSAGE,
3
- isBakerApiKey
4
- } from "./chunk-SXRSLUW7.js";
5
-
6
- // src/engine/client/env.ts
7
- function credentialsFromEnv(env = process.env) {
8
- const url = env.BAKER_API_URL;
9
- const apiKey = env.BAKER_API_KEY;
10
- if (!url || !apiKey) return null;
11
- return { url, apiKey };
12
- }
13
- function requireCredentialsFromEnv(env = process.env) {
14
- const c = credentialsFromEnv(env);
15
- if (!c) {
16
- throw new Error("missing BAKER_API_URL and/or BAKER_API_KEY environment variables");
17
- }
18
- if (!isBakerApiKey(c.apiKey)) {
19
- throw new Error(`BAKER_API_KEY invalid: ${API_KEY_FORMAT_MESSAGE}`);
20
- }
21
- return c;
22
- }
23
- function remoteCacheEnabledFromEnv(env = process.env) {
24
- return env.BAKER_CANVAS_REMOTE_CACHE !== "off";
25
- }
26
-
27
- export {
28
- requireCredentialsFromEnv,
29
- remoteCacheEnabledFromEnv
30
- };
31
- //# sourceMappingURL=chunk-G32FXVQ6.js.map
@@ -1,26 +0,0 @@
1
- import {
2
- DEFAULT_VIDEO_GENERATE_MODEL,
3
- clipAudioMode,
4
- spokenWordsIn
5
- } from "./chunk-KY4MPR6R.js";
6
-
7
- // src/commands/studio/avatarModel.ts
8
- function pinnedModelHint(input) {
9
- if (!input.avatar || !input.model) return null;
10
- if (input.model === DEFAULT_VIDEO_GENERATE_MODEL) return null;
11
- const speaks = input.generateAudio ?? true;
12
- if (!speaks) return null;
13
- return `You pinned --model ${input.model} on a speaking avatar. Without it this clip routes to ${DEFAULT_VIDEO_GENERATE_MODEL}, which was chosen for exactly this case: the better picture, both orientations, and audio always on. Drop --model unless the user asked for a specific one \u2014 and note ${input.model} may not take the length or the reference you are counting on.`;
14
- }
15
- function silentModelHint(model, prompt) {
16
- if (!model || !prompt) return null;
17
- if (clipAudioMode(model) !== "never") return null;
18
- if (spokenWordsIn(prompt) === 0) return null;
19
- return `${model} renders no audio \u2014 the line in this prompt will be mouthed and never heard. For a shot where someone speaks use ${DEFAULT_VIDEO_GENERATE_MODEL} (audio always on), or alibaba/wan-3.0 past 10 seconds. Keep this model for shots with no voice in them.`;
20
- }
21
-
22
- export {
23
- pinnedModelHint,
24
- silentModelHint
25
- };
26
- //# sourceMappingURL=chunk-HA5D6US2.js.map
@@ -1,217 +0,0 @@
1
- import {
2
- FLOW_ACCOUNT_ONLY_KINDS,
3
- FLOW_AGENT_DESTINATION_KINDS,
4
- FLOW_RESOURCE_NODE_TYPES,
5
- FLOW_SECRET_FIELDS,
6
- FLOW_SECRET_SIDE_EFFECT_TYPES,
7
- isFlowOauthSideEffect
8
- } from "./chunk-MBKCUSMR.js";
9
- import {
10
- writeJson
11
- } from "./chunk-O4AXPEOE.js";
12
-
13
- // src/commands/flows/shared.ts
14
- import { existsSync, readdirSync, readFileSync, writeFileSync } from "fs";
15
- import { join } from "path";
16
- var FLOWS_DIR = "src/lib/flow-engine/flows";
17
- function flowsDir() {
18
- let dir = process.cwd();
19
- for (let i = 0; i < 6; i++) {
20
- const candidate = join(dir, FLOWS_DIR);
21
- if (existsSync(candidate)) {
22
- return candidate;
23
- }
24
- const parent = join(dir, "..");
25
- if (parent === dir) {
26
- break;
27
- }
28
- dir = parent;
29
- }
30
- return join(process.cwd(), FLOWS_DIR);
31
- }
32
- function failLocal(message) {
33
- writeJson({ ok: false, error: { code: "NOT_FOUND", message } });
34
- process.exit(1);
35
- }
36
- function listFlowSlugs() {
37
- const dir = flowsDir();
38
- if (!existsSync(dir)) {
39
- return [];
40
- }
41
- return readdirSync(dir, { withFileTypes: true }).filter((entry) => entry.isDirectory() && !entry.name.startsWith("_") && entry.name !== ".gitkeep").map((entry) => entry.name).sort();
42
- }
43
- function flowDataPath(slug) {
44
- return join(flowsDir(), slug, "_data.json");
45
- }
46
- function writeFlowTree(slug, tree) {
47
- writeFileSync(flowDataPath(slug), `${JSON.stringify(tree, null, 2)}
48
- `, "utf-8");
49
- }
50
- function walkNodes(node, acc = []) {
51
- if (!node || typeof node !== "object") return acc;
52
- acc.push(node);
53
- if (Array.isArray(node.children)) {
54
- for (const child of node.children) walkNodes(child, acc);
55
- }
56
- return acc;
57
- }
58
- function collectSideEffects(tree) {
59
- return walkNodes(tree).flatMap(
60
- (node) => Array.isArray(node.sideEffects) ? node.sideEffects.filter((sideEffect) => Boolean(sideEffect) && typeof sideEffect === "object").map((sideEffect) => ({ node, sideEffect })) : []
61
- );
62
- }
63
- function flowExists(slug) {
64
- return existsSync(join(flowsDir(), slug, "_data.json"));
65
- }
66
- function readFlowTree(slug) {
67
- const path = join(flowsDir(), slug, "_data.json");
68
- if (!existsSync(path)) {
69
- failLocal(`No form "${slug}". Run "baker flows list" to see the forms in this workspace.`);
70
- }
71
- try {
72
- return JSON.parse(readFileSync(path, "utf-8"));
73
- } catch (error) {
74
- failLocal(`Could not read form "${slug}": ${error instanceof Error ? error.message : String(error)}`);
75
- }
76
- }
77
- function isConfigured(value) {
78
- return typeof value === "string" && value.length > 0;
79
- }
80
- function nodeMeta(record) {
81
- const nodeId = typeof record.id === "string" ? record.id : "";
82
- const nodeName = typeof record.name === "string" ? record.name : void 0;
83
- return { nodeId, ...nodeName ? { nodeName } : {} };
84
- }
85
- function widgetNodeStatus(record, meta) {
86
- const nodeData = record.nodeData;
87
- const nodeType = nodeData?.type;
88
- if (typeof nodeType !== "string" || !FLOW_RESOURCE_NODE_TYPES.includes(nodeType)) {
89
- return null;
90
- }
91
- const external = nodeData?.form?.external;
92
- const selected = external != null && typeof external === "object";
93
- const name = selected ? external.name : void 0;
94
- return {
95
- ...meta,
96
- target: "node",
97
- kind: nodeType,
98
- status: selected ? `${nodeType} \u2014 selected${typeof name === "string" ? ` "${name}"` : ""}` : `${nodeType} \u2014 not selected`,
99
- needsInput: !selected
100
- };
101
- }
102
- function sideEffectNeedsInput(raw) {
103
- const effect = raw;
104
- const type = effect?.type;
105
- if (typeof type !== "string" || !FLOW_SECRET_SIDE_EFFECT_TYPES.includes(type)) {
106
- return false;
107
- }
108
- const configured = isConfigured(effect?.encryptedConfig);
109
- if (!isFlowOauthSideEffect(type)) return !configured;
110
- return !isConfigured(effect?.oauthProviderId) || !configured;
111
- }
112
- function sideEffectStatus(raw, meta) {
113
- const effect = raw;
114
- const type = effect?.type;
115
- if (typeof type !== "string" || !FLOW_SECRET_SIDE_EFFECT_TYPES.includes(type)) {
116
- return null;
117
- }
118
- const configured = isConfigured(effect?.encryptedConfig);
119
- const oauth = isFlowOauthSideEffect(type);
120
- const connected = isConfigured(effect?.oauthProviderId);
121
- const needs = FLOW_SECRET_FIELDS[type];
122
- const status = oauth ? `${type} \u2014 connection ${connected ? "[connected]" : "[needs connection]"}, config ${configured ? "[set]" : "[missing]"}` : configured ? `${type} \u2014 [configured]` : `${type} \u2014 [missing]${needs.length > 0 ? ` (needs: ${needs.join(", ")})` : ""}`;
123
- return {
124
- ...meta,
125
- target: "sideEffect",
126
- ...typeof effect?.id === "string" ? { sideEffectId: effect.id } : {},
127
- kind: type,
128
- status,
129
- needsInput: sideEffectNeedsInput(effect)
130
- };
131
- }
132
- function requestFlowInputCall(slug, status) {
133
- const args = status.target === "node" ? `{ target: "node", flowSlug: "${slug}", nodeId: "${status.nodeId}", nodeType: "${status.kind}" }` : `{ target: "sideEffect", flowSlug: "${slug}", nodeId: "${status.nodeId}", sideEffectId: "${status.sideEffectId}", sideEffectType: "${status.kind}" }`;
134
- const card = `request_flow_input with ${args}`;
135
- const target = status.target === "node" ? `--node ${status.nodeId}` : `--side-effect ${status.sideEffectId}`;
136
- const fallback = "only if nothing is connected or several could be meant";
137
- if (status.kind === "hubspotForm") {
138
- return `baker flows connect ${slug} ${target} --hubspot-form <formId from baker hubspot forms list> \u2014 ${fallback}: ${card}`;
139
- }
140
- if (status.kind === "hubspot" || status.kind === "hubspotMeeting") {
141
- const list = status.kind === "hubspot" ? "forms view <id>" : "meetings view <slug>";
142
- return `write \`baker hubspot ${list} --as-node\` into the step's form.external \u2014 ${fallback}: ${card}`;
143
- }
144
- if (FLOW_ACCOUNT_ONLY_KINDS.includes(status.kind)) {
145
- return `baker flows connect ${slug} ${target} \u2014 ${fallback}: ${card}`;
146
- }
147
- if (FLOW_AGENT_DESTINATION_KINDS.includes(status.kind)) {
148
- const sheet = status.kind === "googleSpreadsheet" ? ' (or --new-sheet "<title>" --columns "\u2026")' : "";
149
- return `baker flows connect ${slug} ${target} --resource <id from baker flows options ${status.kind}>${sheet} \u2014 ${fallback}: ${card}`;
150
- }
151
- return card;
152
- }
153
- function collectConfigStatus(node, acc) {
154
- if (!node || typeof node !== "object") {
155
- return;
156
- }
157
- const record = node;
158
- const meta = nodeMeta(record);
159
- const widget = widgetNodeStatus(record, meta);
160
- if (widget) {
161
- acc.push(widget);
162
- }
163
- if (Array.isArray(record.sideEffects)) {
164
- for (const raw of record.sideEffects) {
165
- const status = sideEffectStatus(raw, meta);
166
- if (status) {
167
- acc.push(status);
168
- }
169
- }
170
- }
171
- if (Array.isArray(record.children)) {
172
- for (const child of record.children) {
173
- collectConfigStatus(child, acc);
174
- }
175
- }
176
- }
177
- function redactTree(node) {
178
- if (Array.isArray(node)) {
179
- return node.map(redactTree);
180
- }
181
- if (!node || typeof node !== "object") {
182
- return node;
183
- }
184
- const out = {};
185
- for (const [key, value] of Object.entries(node)) {
186
- if (key === "encryptedConfig") {
187
- out[key] = isConfigured(value) ? "[configured]" : value;
188
- } else {
189
- out[key] = redactTree(value);
190
- }
191
- }
192
- return out;
193
- }
194
- function stepNameKey(name) {
195
- return name.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/[-\s]+/g, "_").toUpperCase();
196
- }
197
- function isUsableStepNameKey(key) {
198
- return /^[\p{ID_Start}$_][\p{ID_Continue}$‌‍]*$/u.test(key);
199
- }
200
-
201
- export {
202
- flowsDir,
203
- listFlowSlugs,
204
- flowDataPath,
205
- writeFlowTree,
206
- walkNodes,
207
- collectSideEffects,
208
- flowExists,
209
- readFlowTree,
210
- sideEffectNeedsInput,
211
- requestFlowInputCall,
212
- collectConfigStatus,
213
- redactTree,
214
- stepNameKey,
215
- isUsableStepNameKey
216
- };
217
- //# sourceMappingURL=chunk-HWWPDUZM.js.map